diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 293bcbd71..2ed56d376 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -1,16 +1,18 @@ { "permissions": { "allow": [ - "mcp__dual-graph__graph_scan", "mcp__dual-graph__graph_continue", - "Bash(find G:ResgridResgridCoreResgrid.ModelBilling -type f -name *.cs)", - "Bash(python3:*)", + "mcp__dual-graph__graph_read", + "Bash(dotnet build:*)", + "mcp__dual-graph__graph_register_edit", + "mcp__dual-graph__graph_scan", + "Bash(find /g/Resgrid/Resgrid -type d \\\\\\(-name *mobile* -o -name *Mobile* -o -name *app* -o -name *App* -o -name *apps* -o -name *Apps* \\\\\\))", "Bash(xargs grep:*)", - "Bash(grep -E \"\\\\.cs$|Program\")", - "Bash(grep -l \"DepartmentMembers\\\\|DepartmentMember\" \"G:\\\\Resgrid\\\\Resgrid/Repositories/Resgrid.Repositories.DataRepository/\"*.cs)", - "Bash(find /g/Resgrid/Resgrid/Repositories/Resgrid.Repositories.DataRepository/Servers -name *.cs)", - "Bash(find G:/Resgrid/Resgrid -newer G:/Resgrid/Resgrid/CLAUDE.md -name *.cs -not -path */obj/* -not -path */.git/*)", - "Bash(dotnet build:*)" + "Bash(grep -r \"mapbox\\\\|react-native\\\\|rnmapbox\" /g/Resgrid/Resgrid --include=package.json --include=*.ts --include=*.tsx)", + "Bash(find G:ResgridResgridWebResgrid.WebAreasUserViews -type f -name *.cshtml)", + "Bash(grep -r \"google.maps\\\\|mapboxgl\\\\|leaflet\\\\|openstreetmap\" G:/Resgrid/Resgrid/Web/Resgrid.Web/Areas/User/Apps/src --include=*.ts)", + "Bash(grep -r \"leaflet\\\\|L\\\\.tileLayer\\\\|OpenStreetMap\" /g/Resgrid/Resgrid/Web/Resgrid.Web.Services --include=*.cs)", + "Bash(find /g/Resgrid/Resgrid -type f -name *.swift -o -name *.kt -o -name *.java)" ] }, "hooks": { diff --git a/.gitignore b/.gitignore index 0d0bebd75..d77155386 100644 --- a/.gitignore +++ b/.gitignore @@ -274,3 +274,4 @@ Web/Resgrid.WebCore/wwwroot/lib/* .dual-graph/ .claude/settings.local.json .claude/settings.local.json +/Web/Resgrid.Web/wwwroot/js/ng/chunks diff --git a/Core/Resgrid.Config/MappingConfig.cs b/Core/Resgrid.Config/MappingConfig.cs index 0622b9e28..d33f0bfef 100644 --- a/Core/Resgrid.Config/MappingConfig.cs +++ b/Core/Resgrid.Config/MappingConfig.cs @@ -1,7 +1,12 @@ -namespace Resgrid.Config +using System; + +namespace Resgrid.Config { public static class MappingConfig { + public const string LeafletMapProvider = "leaflet"; + public const string MapboxMapProvider = "mapbox"; + public static int PersonnelLocationStaleSeconds = 30; public static int UnitLocationStaleSeconds = 30; public static int PersonnelLocationMinMeters = 20; @@ -53,11 +58,16 @@ public static class MappingConfig public static string BigBoardOSMKey = ""; public static string DispatchAppMapboxKey = ""; + public static string WebsiteMapboxKey = ""; + public static string WebsiteMapboxAccessToken = ""; + public static string WebsiteMapMode = LeafletMapProvider; public static string LeafletTileUrl = "https://api.maptiler.com/maps/streets/{{z}}/{{x}}/{{y}}.png?key={0}"; public static string MapBoxTileUrl = ""; + public static string MapBoxStyleUrl = ""; public static string LeafletAttribution = "© OpenStreetMap contributors CC-BY-SA"; + public static string MapBoxAttribution = "© Mapbox © OpenStreetMap contributors"; /*********************************** * Geocoding and Routing Service URLs @@ -65,52 +75,275 @@ public static class MappingConfig public static string NominatimUrl = "https://nominatim.openstreetmap.org"; public static string OsrmUrl = "https://router.project-osrm.org"; + public static ResolvedMapConfig GetMapConfig(string key) + { + var surfaceKey = string.IsNullOrWhiteSpace(key) ? InfoConfig.WebsiteKey : key; + var mapProvider = GetPreferredMapProvider(surfaceKey); + + if (mapProvider == MapboxMapProvider) + { + var mapboxAccessToken = NormalizePublicMapboxAccessToken(GetSystemMapboxAccessToken(surfaceKey)); + + if (TryCreateMapboxConfig(MapBoxStyleUrl, mapboxAccessToken, false, out var mapboxConfig)) + return mapboxConfig; + + if (!string.IsNullOrWhiteSpace(mapboxAccessToken) && !string.IsNullOrWhiteSpace(MapBoxTileUrl)) + { + return new ResolvedMapConfig + { + MapProvider = MapboxMapProvider, + TileUrl = ReplaceTileKey(MapBoxTileUrl, mapboxAccessToken), + StyleUrl = MapBoxStyleUrl, + AccessToken = mapboxAccessToken, + Attribution = MapBoxAttribution, + IsDepartmentOverride = false + }; + } + } + + return new ResolvedMapConfig + { + MapProvider = LeafletMapProvider, + TileUrl = GetLegacyLeafletUrl(surfaceKey), + StyleUrl = string.Empty, + AccessToken = string.Empty, + Attribution = LeafletAttribution, + IsDepartmentOverride = false + }; + } + + public static bool TryCreateMapboxConfig(string styleUrl, string accessToken, bool isDepartmentOverride, out ResolvedMapConfig mapConfig) + { + mapConfig = null; + var publicAccessToken = NormalizePublicMapboxAccessToken(accessToken); + + if (string.IsNullOrWhiteSpace(styleUrl) || string.IsNullOrWhiteSpace(publicAccessToken)) + return false; + + var styleId = GetMapboxStyleId(styleUrl); + + if (string.IsNullOrWhiteSpace(styleId)) + return false; + + mapConfig = new ResolvedMapConfig + { + MapProvider = MapboxMapProvider, + TileUrl = $"https://api.mapbox.com/styles/v1/{styleId}/tiles/256/{{z}}/{{x}}/{{y}}@2x?access_token={publicAccessToken}", + StyleUrl = NormalizeMapboxStyleUrl(styleUrl, styleId), + AccessToken = publicAccessToken, + Attribution = MapBoxAttribution, + IsDepartmentOverride = isDepartmentOverride + }; + + return true; + } + + public static bool IsSupportedMapboxStyleUrl(string styleUrl) + { + return !string.IsNullOrWhiteSpace(GetMapboxStyleId(styleUrl)); + } + public static string GetWebsiteOSMUrl() { - if (!string.IsNullOrWhiteSpace(WebsiteOSMKey)) - return string.Format(MapBoxTileUrl, WebsiteOSMKey); - else - return LeafletTileUrl; + return GetMapConfig(InfoConfig.WebsiteKey).TileUrl; } public static string GetApiOSMUrl() { - if (!string.IsNullOrWhiteSpace(ApiOSMKey)) - return string.Format(LeafletTileUrl, ApiOSMKey); - else - return LeafletTileUrl; + return GetMapConfig(InfoConfig.ApiKey).TileUrl; } public static string GetResponderAppOSMUrl() { - if (!string.IsNullOrWhiteSpace(ResponderAppOSMKey)) - return string.Format(LeafletTileUrl, ResponderAppOSMKey); - else - return LeafletTileUrl; + return GetMapConfig(InfoConfig.ResponderAppKey).TileUrl; } public static string GetUnitAppOSMUrl() { - if (!string.IsNullOrWhiteSpace(UnitAppOSMKey)) - return string.Format(LeafletTileUrl, UnitAppOSMKey); - else - return LeafletTileUrl; + return GetMapConfig(InfoConfig.UnitAppKey).TileUrl; } public static string GetBigBoardAppOSMUrl() { - if (!string.IsNullOrWhiteSpace(BigBoardOSMKey)) - return string.Format(LeafletTileUrl, BigBoardOSMKey); - else - return LeafletTileUrl; + return GetMapConfig(InfoConfig.BigBoardKey).TileUrl; } public static string GetDispatchAppOSMUrl() { - if (!string.IsNullOrWhiteSpace(DispatchAppMapboxKey)) - return string.Format(MapBoxTileUrl, DispatchAppMapboxKey); - else + return GetMapConfig(InfoConfig.DispatchAppKey).TileUrl; + } + + private static string GetLegacyLeafletUrl(string key) + { + if (key == InfoConfig.WebsiteKey) + { + if (!string.IsNullOrWhiteSpace(WebsiteOSMKey)) + return ReplaceTileKey(LeafletTileUrl, WebsiteOSMKey); + + return LeafletTileUrl; + } + + if (key == InfoConfig.ApiKey) + { + if (!string.IsNullOrWhiteSpace(ApiOSMKey)) + return ReplaceTileKey(LeafletTileUrl, ApiOSMKey); + + return LeafletTileUrl; + } + + if (key == InfoConfig.ResponderAppKey) + { + if (!string.IsNullOrWhiteSpace(ResponderAppOSMKey)) + return ReplaceTileKey(LeafletTileUrl, ResponderAppOSMKey); + return LeafletTileUrl; + } + + if (key == InfoConfig.UnitAppKey) + { + if (!string.IsNullOrWhiteSpace(UnitAppOSMKey)) + return ReplaceTileKey(LeafletTileUrl, UnitAppOSMKey); + + return LeafletTileUrl; + } + + if (key == InfoConfig.BigBoardKey) + { + if (!string.IsNullOrWhiteSpace(BigBoardOSMKey)) + return ReplaceTileKey(LeafletTileUrl, BigBoardOSMKey); + + return LeafletTileUrl; + } + + if (key == InfoConfig.DispatchAppKey) + { + if (!string.IsNullOrWhiteSpace(DispatchAppOSMKey)) + return ReplaceTileKey(LeafletTileUrl, DispatchAppOSMKey); + + return LeafletTileUrl; + } + + return LeafletTileUrl; + } + + private static string GetPreferredMapProvider(string key) + { + if (key == InfoConfig.WebsiteKey) + return NormalizeMapProvider(WebsiteMapMode); + + if (key == InfoConfig.DispatchAppKey && !string.IsNullOrWhiteSpace(DispatchAppMapboxKey)) + return MapboxMapProvider; + + if (key == InfoConfig.UnitAppKey && !string.IsNullOrWhiteSpace(UnitAppMapBoxKey)) + return MapboxMapProvider; + + return LeafletMapProvider; + } + + private static string GetSystemMapboxAccessToken(string key) + { + if (key == InfoConfig.WebsiteKey) + { + if (!string.IsNullOrWhiteSpace(WebsiteMapboxAccessToken)) + return WebsiteMapboxAccessToken; + + if (!string.IsNullOrWhiteSpace(WebsiteMapboxKey)) + return WebsiteMapboxKey; + + return WebsiteOSMKey; + } + + if (key == InfoConfig.DispatchAppKey) + return DispatchAppMapboxKey; + + if (key == InfoConfig.UnitAppKey) + return UnitAppMapBoxKey; + + return string.Empty; + } + + private static string NormalizeMapProvider(string provider) + { + if (string.IsNullOrWhiteSpace(provider)) + return LeafletMapProvider; + + return provider.Trim().Equals(MapboxMapProvider, StringComparison.InvariantCultureIgnoreCase) + ? MapboxMapProvider + : LeafletMapProvider; + } + + private static string ReplaceTileKey(string tileUrl, string key) + { + if (string.IsNullOrWhiteSpace(tileUrl)) + return tileUrl; + + var normalizedTileUrl = tileUrl + .Replace("{{", "{", StringComparison.InvariantCulture) + .Replace("}}", "}", StringComparison.InvariantCulture); + + if (string.IsNullOrWhiteSpace(key)) + return normalizedTileUrl; + + return normalizedTileUrl.Replace("{0}", key, StringComparison.InvariantCulture); + } + + private static string NormalizeMapboxStyleUrl(string styleUrl, string styleId) + { + if (styleUrl.StartsWith("mapbox://styles/", StringComparison.InvariantCultureIgnoreCase)) + return styleUrl; + + return $"mapbox://styles/{styleId}"; + } + + private static string NormalizePublicMapboxAccessToken(string accessToken) + { + if (string.IsNullOrWhiteSpace(accessToken)) + return string.Empty; + + var trimmedAccessToken = accessToken.Trim(); + + return trimmedAccessToken.StartsWith("pk.", StringComparison.Ordinal) + ? trimmedAccessToken + : string.Empty; + } + + private static string GetMapboxStyleId(string styleUrl) + { + if (string.IsNullOrWhiteSpace(styleUrl)) + return null; + + var trimmedStyleUrl = styleUrl.Trim(); + + if (trimmedStyleUrl.StartsWith("mapbox://styles/", StringComparison.InvariantCultureIgnoreCase)) + return ExtractMapboxStyleId(trimmedStyleUrl.Substring("mapbox://styles/".Length)); + + if (Uri.TryCreate(trimmedStyleUrl, UriKind.Absolute, out var mapboxStyleUri)) + { + var path = mapboxStyleUri.AbsolutePath.Trim('/'); + var stylesIndex = path.IndexOf("styles/v1/", StringComparison.InvariantCultureIgnoreCase); + + if (stylesIndex >= 0) + { + var stylePath = path.Substring(stylesIndex + "styles/v1/".Length); + return ExtractMapboxStyleId(stylePath); + } + } + + return null; + } + + private static string ExtractMapboxStyleId(string stylePath) + { + if (string.IsNullOrWhiteSpace(stylePath)) + return null; + + var normalizedPath = stylePath.Trim('/'); + var pathSegments = normalizedPath.Split('/', StringSplitOptions.RemoveEmptyEntries); + + if (pathSegments.Length < 2) + return null; + + return $"{pathSegments[0]}/{pathSegments[1]}"; } } } diff --git a/Core/Resgrid.Config/NumberProviderConfig.cs b/Core/Resgrid.Config/NumberProviderConfig.cs index 681e4f344..569dfe1b0 100644 --- a/Core/Resgrid.Config/NumberProviderConfig.cs +++ b/Core/Resgrid.Config/NumberProviderConfig.cs @@ -15,6 +15,7 @@ public static class NumberProviderConfig public static string TwilioResgridNumber = ""; public static string TwilioApiUrl = SystemBehaviorConfig.ResgridApiBaseUrl + "/api/Twilio/IncomingMessage"; public static string TwilioVoiceCallApiUrl = SystemBehaviorConfig.ResgridApiBaseUrl + "/api/Twilio/VoiceCall?userId={0}&callId={1}"; + public static string TwilioVoiceVerificationApiUrl = SystemBehaviorConfig.ResgridApiBaseUrl + "/api/Twilio/VoiceVerification?userId={0}&contactType={1}"; public static string TwilioVoiceApiUrl = SystemBehaviorConfig.ResgridApiBaseUrl + "/api/Twilio/InboundVoice"; // Diafaan (https://www.diafaan.com) diff --git a/Core/Resgrid.Config/ResolvedMapConfig.cs b/Core/Resgrid.Config/ResolvedMapConfig.cs new file mode 100644 index 000000000..4ea53dc28 --- /dev/null +++ b/Core/Resgrid.Config/ResolvedMapConfig.cs @@ -0,0 +1,17 @@ +namespace Resgrid.Config +{ + public class ResolvedMapConfig + { + public string MapProvider { get; set; } + + public string TileUrl { get; set; } + + public string StyleUrl { get; set; } + + public string AccessToken { get; set; } + + public string Attribution { get; set; } + + public bool IsDepartmentOverride { get; set; } + } +} diff --git a/Core/Resgrid.Framework/FileHelper.cs b/Core/Resgrid.Framework/FileHelper.cs index 4f9377444..c9f05d4e6 100644 --- a/Core/Resgrid.Framework/FileHelper.cs +++ b/Core/Resgrid.Framework/FileHelper.cs @@ -6,6 +6,16 @@ namespace Resgrid.Framework { public static class FileHelper { + public static string GetFileExtensionWithoutDot(string fileName) + { + var extension = Path.GetExtension(fileName); + + if (string.IsNullOrWhiteSpace(extension)) + return string.Empty; + + return extension.TrimStart('.').ToLowerInvariant(); + } + public static string GetContentTypeByExtension(string strExtension) { switch (strExtension) diff --git a/Core/Resgrid.Localization/Areas/User/Home/EditProfile.en.resx b/Core/Resgrid.Localization/Areas/User/Home/EditProfile.en.resx index a07195af6..552e2f548 100644 --- a/Core/Resgrid.Localization/Areas/User/Home/EditProfile.en.resx +++ b/Core/Resgrid.Localization/Areas/User/Home/EditProfile.en.resx @@ -402,6 +402,9 @@ A verification code has been sent. + + A verification call is being placed. Please answer and note the code spoken to you. + Verification successful. diff --git a/Core/Resgrid.Model/DepartmentSettingTypes.cs b/Core/Resgrid.Model/DepartmentSettingTypes.cs index 788f838a6..995c97f8d 100644 --- a/Core/Resgrid.Model/DepartmentSettingTypes.cs +++ b/Core/Resgrid.Model/DepartmentSettingTypes.cs @@ -47,5 +47,8 @@ public enum DepartmentSettingTypes WeatherAlertCacheMinutes = 43, WeatherAlertAutoMessageSchedule = 44, WeatherAlertExcludedEvents = 45, + MappingUseMapboxOverride = 46, + MappingMapboxStyleUrl = 47, + MappingMapboxAccessToken = 48, } } diff --git a/Core/Resgrid.Model/PersonnelCallCheckInStatus.cs b/Core/Resgrid.Model/PersonnelCallCheckInStatus.cs new file mode 100644 index 000000000..75ff2a9d0 --- /dev/null +++ b/Core/Resgrid.Model/PersonnelCallCheckInStatus.cs @@ -0,0 +1,49 @@ +using System; + +namespace Resgrid.Model +{ + /// + /// Represents the check-in timer status for a single dispatched person on a call + /// that has personnel check-in timers enabled. + /// + public class PersonnelCallCheckInStatus + { + /// The ASP.NET Identity user identifier. + public string UserId { get; set; } + + /// + /// The user's display name (first + last name from their profile). + /// May be null if the profile could not be resolved. + /// + public string FullName { get; set; } + + /// UTC timestamp of the user's most-recent personnel check-in on this call, or null if never checked in. + public DateTime? LastCheckIn { get; set; } + + /// True when the user must check in immediately (timer has expired). + public bool NeedsCheckIn { get; set; } + + /// + /// Minutes remaining until the next check-in is required. + /// Positive = time still available, negative = how many minutes overdue. + /// Zero or negative implies is true. + /// + public double MinutesRemaining { get; set; } + + /// + /// Colour-coded status string: "Green" (within timer), "Warning" (within warning + /// threshold), or "Critical" (timer expired). + /// + public string Status { get; set; } + + /// + /// The resolved duration (in minutes) of the personnel check-in timer for this call. + /// + public int DurationMinutes { get; set; } + + /// + /// The warning threshold (in minutes) of the personnel check-in timer for this call. + /// + public int WarningThresholdMinutes { get; set; } + } +} diff --git a/Core/Resgrid.Model/Providers/IOutboundVoiceProvider.cs b/Core/Resgrid.Model/Providers/IOutboundVoiceProvider.cs index 608772030..cf04dd5ba 100644 --- a/Core/Resgrid.Model/Providers/IOutboundVoiceProvider.cs +++ b/Core/Resgrid.Model/Providers/IOutboundVoiceProvider.cs @@ -5,5 +5,10 @@ namespace Resgrid.Model.Providers public interface IOutboundVoiceProvider { Task CommunicateCallAsync(string phoneNumber, UserProfile profile, Call call); + + /// + /// Places a Twilio voice call that speaks the verification code digits to the user. + /// + Task SendVoiceVerificationCallAsync(string phoneNumber, string userId, int contactType); } } diff --git a/Core/Resgrid.Model/Repositories/ICallsRepository.cs b/Core/Resgrid.Model/Repositories/ICallsRepository.cs index 0decedf5f..5d3e6dbd2 100644 --- a/Core/Resgrid.Model/Repositories/ICallsRepository.cs +++ b/Core/Resgrid.Model/Repositories/ICallsRepository.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Threading.Tasks; @@ -81,5 +81,15 @@ public interface ICallsRepository: IRepository Task> GetAllCallsByContactIdAsync(string contactId, int departmentId); Task GetCallsCountByDepartmentDateRangeAsync(int departmentId, DateTime startDate, DateTime endDate); + + /// + /// Gets all active calls for a department that have check-in timers enabled + /// and that the specified user has been dispatched on. + /// Optimised as a single JOIN query to avoid N+1 lookups. + /// + /// The identity user identifier to filter dispatches by. + /// The department identifier (used to scope the result). + /// Active calls with check-in timers that the user is dispatched on. + Task> GetActiveCallsWithCheckInTimersForUserAsync(string userId, int departmentId); } } diff --git a/Core/Resgrid.Model/Services/ICallsService.cs b/Core/Resgrid.Model/Services/ICallsService.cs index ae82eadda..98dcbcc06 100644 --- a/Core/Resgrid.Model/Services/ICallsService.cs +++ b/Core/Resgrid.Model/Services/ICallsService.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; @@ -441,5 +441,14 @@ Task ClearGroupForDispatchesAsync(int departmentGroupId, Task> GetCallVideoFeedsByCallIdAsync(int callId); Task DeleteCallVideoFeedAsync(CallVideoFeed feed, string deletedByUserId, CancellationToken cancellationToken = default(CancellationToken)); + + /// + /// Gets all active calls for a department that have personnel check-in timers + /// enabled and that the specified user has been dispatched on. + /// + /// The ASP.NET Identity user identifier. + /// The department to scope the search to. + /// Active calls with check-in timers dispatched to the user. + Task> GetActiveCallsWithCheckInTimersForUserAsync(string userId, int departmentId); } } diff --git a/Core/Resgrid.Model/Services/ICheckInTimerService.cs b/Core/Resgrid.Model/Services/ICheckInTimerService.cs index af58eb921..b1dd71567 100644 --- a/Core/Resgrid.Model/Services/ICheckInTimerService.cs +++ b/Core/Resgrid.Model/Services/ICheckInTimerService.cs @@ -26,5 +26,24 @@ public interface ICheckInTimerService // Timer Status Computation Task> GetActiveTimerStatusesForCallAsync(Call call); + + // ── New: per-user and per-call personnel check-in status ──────────────── + + /// + /// Returns a check-in summary for every active call (with check-in timers + /// enabled) that has been dispatched on. + /// Used by API Endpoint 1. + /// + /// The ASP.NET Identity user identifier to query for. + /// Dept scope (from JWT claims) – prevents cross-dept data access. + Task> GetUserActiveCallCheckInSummariesAsync(string userId, int departmentId); + + /// + /// For a call that has a personnel check-in timer active, returns the current + /// check-in status for every person dispatched on that call. + /// Used by API Endpoint 2. + /// + /// The call to evaluate. Must have = true. + Task> GetCallPersonnelCheckInStatusesAsync(Call call); } } diff --git a/Core/Resgrid.Model/Services/IContactVerificationService.cs b/Core/Resgrid.Model/Services/IContactVerificationService.cs index 7441c0c40..616ae89b6 100644 --- a/Core/Resgrid.Model/Services/IContactVerificationService.cs +++ b/Core/Resgrid.Model/Services/IContactVerificationService.cs @@ -25,9 +25,10 @@ public interface IContactVerificationService Task SendMobileVerificationCodeAsync(string userId, int departmentId, string departmentNumber, CancellationToken cancellationToken = default); /// - /// Generates a verification code and sends it via SMS to the user's home number. + /// Generates a verification code and delivers it via a Twilio voice call to the + /// user's home number, speaking the digits and repeating multiple times. /// Returns false if the user has no home number, if rate limits are exceeded, - /// or if the send fails. + /// or if the call fails. /// Task SendHomeVerificationCodeAsync(string userId, int departmentId, string departmentNumber, CancellationToken cancellationToken = default); diff --git a/Core/Resgrid.Model/Services/IDepartmentSettingsService.cs b/Core/Resgrid.Model/Services/IDepartmentSettingsService.cs index 486989119..1eb3a01af 100644 --- a/Core/Resgrid.Model/Services/IDepartmentSettingsService.cs +++ b/Core/Resgrid.Model/Services/IDepartmentSettingsService.cs @@ -1,7 +1,8 @@ -using System; +using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; +using Resgrid.Config; namespace Resgrid.Model.Services { @@ -266,6 +267,14 @@ public interface IDepartmentSettingsService Task GetMappingUnitAllowStatusWithNoLocationToOverwriteAsync(int departmentId); + Task GetMappingUseMapboxOverrideAsync(int departmentId); + + Task GetMappingMapboxStyleUrlAsync(int departmentId); + + Task GetMappingMapboxAccessTokenAsync(int departmentId); + + Task GetMapConfigForDepartmentAsync(int departmentId, string key = null); + Task GetDepartmentModuleSettingsAsync(int departmentId, bool bypassCache = false); Task GetUnitDispatchAlsoDispatchToAssignedPersonnelAsync(int departmentId); diff --git a/Core/Resgrid.Model/UserCallCheckInSummary.cs b/Core/Resgrid.Model/UserCallCheckInSummary.cs new file mode 100644 index 000000000..ad080ce71 --- /dev/null +++ b/Core/Resgrid.Model/UserCallCheckInSummary.cs @@ -0,0 +1,57 @@ +using System; + +namespace Resgrid.Model +{ + /// + /// Represents the check-in timer status for a single user on a single active call + /// that has personnel check-in timers enabled. + /// + public class UserCallCheckInSummary + { + /// The call identifier. + public int CallId { get; set; } + + /// The call name / nature of call. + public string CallName { get; set; } + + /// The human-readable call number (e.g. "2024-0042"). + public string CallNumber { get; set; } + + /// UTC timestamp when the call was logged. + public DateTime CallStartedOn { get; set; } + + /// True when a personnel-type check-in timer is active for this call. + public bool HasPersonnelTimer { get; set; } + + /// + /// How long (in minutes) the user has before they must check in. + /// Only meaningful when is true. + /// + public int DurationMinutes { get; set; } + + /// + /// Number of minutes before the deadline at which a "Warning" status is issued. + /// Only meaningful when is true. + /// + public int WarningThresholdMinutes { get; set; } + + /// UTC timestamp of the user's most-recent check-in on this call, or null if never checked in. + public DateTime? LastCheckIn { get; set; } + + /// True when the user must check in immediately (timer has expired). + public bool NeedsCheckIn { get; set; } + + /// + /// Minutes remaining until the next check-in is required. + /// Positive = time still available, negative = how many minutes overdue. + /// Zero or negative implies is true. + /// + public double MinutesRemaining { get; set; } + + /// + /// Colour-coded status string: "Green", "Warning", "Critical", or "NoTimer" + /// when no personnel timer is configured for the call. + /// + public string Status { get; set; } + } +} diff --git a/Core/Resgrid.Model/UserProfile.cs b/Core/Resgrid.Model/UserProfile.cs index 0401df007..e40481c1d 100644 --- a/Core/Resgrid.Model/UserProfile.cs +++ b/Core/Resgrid.Model/UserProfile.cs @@ -178,6 +178,12 @@ public class UserProfile: IEntity [ProtoMember(48)] public string CalendarSyncToken { get; set; } + [ProtoMember(49)] + public bool MobileVerificationVoiceCodeConsumed { get; set; } + + [ProtoMember(50)] + public bool HomeVerificationVoiceCodeConsumed { get; set; } + [NotMapped] [JsonIgnore] public object IdValue diff --git a/Core/Resgrid.Services/CallsService.cs b/Core/Resgrid.Services/CallsService.cs index 32d2e92b2..feeca3b2b 100644 --- a/Core/Resgrid.Services/CallsService.cs +++ b/Core/Resgrid.Services/CallsService.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Net; @@ -1031,5 +1031,11 @@ public async Task> GetCallVideoFeedsByCallIdAsync(int callId return true; } + + public async Task> GetActiveCallsWithCheckInTimersForUserAsync(string userId, int departmentId) + { + var calls = await _callsRepository.GetActiveCallsWithCheckInTimersForUserAsync(userId, departmentId); + return calls?.ToList() ?? new List(); + } } } diff --git a/Core/Resgrid.Services/CheckInTimerService.cs b/Core/Resgrid.Services/CheckInTimerService.cs index c4d4fed84..28507f3d8 100644 --- a/Core/Resgrid.Services/CheckInTimerService.cs +++ b/Core/Resgrid.Services/CheckInTimerService.cs @@ -33,7 +33,6 @@ public CheckInTimerService( _unitsService = unitsService; _callsService = callsService; } - #region Configuration CRUD public async Task> GetTimerConfigsForDepartmentAsync(int departmentId) @@ -380,5 +379,163 @@ private static HashSet ParseActiveForStates(string activeForStates) } #endregion State Filtering + + #region Per-User Active Call Check-In Summaries (Endpoint 1) + + /// + public async Task> GetUserActiveCallCheckInSummariesAsync(string userId, int departmentId) + { + if (string.IsNullOrWhiteSpace(userId)) + return new List(); + + // Single optimised query: joins Calls + CallDispatches, filtered by + // user, department, CheckInTimersEnabled=true, State=Active (0). + var activeCalls = await _callsService.GetActiveCallsWithCheckInTimersForUserAsync(userId, departmentId); + if (activeCalls == null || !activeCalls.Any()) + return new List(); + + var summaries = new List(); + var now = DateTime.UtcNow; + + foreach (var call in activeCalls) + { + // Resolve the configured timers for this call (handles overrides). + var resolvedTimers = await ResolveAllTimersForCallAsync(call); + + // Find the first personnel-type timer (TargetType == Personnel = 0). + var personnelTimer = resolvedTimers + .FirstOrDefault(t => t.TargetType == (int)CheckInTimerTargetType.Personnel); + + if (personnelTimer == null) + { + // No personnel timer active for this call – include the call but + // mark it clearly so the client can inform the user. + summaries.Add(new UserCallCheckInSummary + { + CallId = call.CallId, + CallName = call.Name, + CallNumber = call.Number, + CallStartedOn = call.LoggedOn, + HasPersonnelTimer = false, + Status = "NoTimer" + }); + continue; + } + + // Get the user's last check-in on this call (single targeted query). + var lastCheckIn = await _recordRepository.GetLastCheckInForUserOnCallAsync(call.CallId, userId); + + // Baseline is the last check-in timestamp OR the call start time if + // the user has never checked in. + var baseTime = lastCheckIn?.Timestamp ?? call.LoggedOn; + var elapsed = (now - baseTime).TotalMinutes; + var minutesRemaining = personnelTimer.DurationMinutes - elapsed; + + string status; + if (minutesRemaining > personnelTimer.WarningThresholdMinutes) + status = "Green"; + else if (minutesRemaining > 0) + status = "Warning"; + else + status = "Critical"; + + summaries.Add(new UserCallCheckInSummary + { + CallId = call.CallId, + CallName = call.Name, + CallNumber = call.Number, + CallStartedOn = call.LoggedOn, + HasPersonnelTimer = true, + DurationMinutes = personnelTimer.DurationMinutes, + WarningThresholdMinutes = personnelTimer.WarningThresholdMinutes, + LastCheckIn = lastCheckIn?.Timestamp, + NeedsCheckIn = minutesRemaining <= 0, + MinutesRemaining = Math.Round(minutesRemaining, 1), + Status = status + }); + } + + return summaries; + } + + #endregion Per-User Active Call Check-In Summaries + + #region Call Personnel Check-In Statuses (Endpoint 2) + + /// + public async Task> GetCallPersonnelCheckInStatusesAsync(Call call) + { + if (call == null || !call.CheckInTimersEnabled || call.State != (int)CallStates.Active) + return new List(); + + // Resolve the personnel timer for this call. + var resolvedTimers = await ResolveAllTimersForCallAsync(call); + var personnelTimer = resolvedTimers + .FirstOrDefault(t => t.TargetType == (int)CheckInTimerTargetType.Personnel); + + // If no personnel timer is configured there's nothing to report. + if (personnelTimer == null) + return new List(); + + // Load dispatched personnel (single query). + if (call.Dispatches == null) + call = await _callsService.PopulateCallData(call, true, false, false, false, false, false, false, false, false); + + var dispatches = call.Dispatches?.ToList() ?? new List(); + if (!dispatches.Any()) + return new List(); + + // Load ALL check-in records for the call at once (single query), then + // keep only the most-recent personnel-type record per user in memory. + // This avoids N separate "last check-in" queries. + var allCheckIns = (await _recordRepository.GetByCallIdAsync(call.CallId))?.ToList() + ?? new List(); + + var latestByUser = allCheckIns + .Where(r => r.CheckInType == (int)CheckInTimerTargetType.Personnel) + .GroupBy(r => r.UserId) + .ToDictionary( + g => g.Key, + g => g.OrderByDescending(r => r.Timestamp).First()); + + var now = DateTime.UtcNow; + var statuses = new List(); + + foreach (var dispatch in dispatches) + { + latestByUser.TryGetValue(dispatch.UserId, out var lastRecord); + + var baseTime = lastRecord?.Timestamp ?? call.LoggedOn; + var elapsed = (now - baseTime).TotalMinutes; + var minutesRemaining = personnelTimer.DurationMinutes - elapsed; + + string status; + if (minutesRemaining > personnelTimer.WarningThresholdMinutes) + status = "Green"; + else if (minutesRemaining > 0) + status = "Warning"; + else + status = "Critical"; + + statuses.Add(new PersonnelCallCheckInStatus + { + UserId = dispatch.UserId, + // FullName is intentionally left null here; the controller enriches + // it from IUserProfileService to avoid pulling that dependency into + // this service. + FullName = null, + LastCheckIn = lastRecord?.Timestamp, + NeedsCheckIn = minutesRemaining <= 0, + MinutesRemaining = Math.Round(minutesRemaining, 1), + Status = status, + DurationMinutes = personnelTimer.DurationMinutes, + WarningThresholdMinutes = personnelTimer.WarningThresholdMinutes + }); + } + + return statuses; + } + + #endregion Call Personnel Check-In Statuses } } diff --git a/Core/Resgrid.Services/ContactVerificationService.cs b/Core/Resgrid.Services/ContactVerificationService.cs index 15ad083fa..0c8a0b122 100644 --- a/Core/Resgrid.Services/ContactVerificationService.cs +++ b/Core/Resgrid.Services/ContactVerificationService.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; using Resgrid.Framework; using Resgrid.Model; +using Resgrid.Model.Providers; using Resgrid.Model.Services; namespace Resgrid.Services @@ -20,6 +21,7 @@ public sealed class ContactVerificationService : IContactVerificationService private readonly ISmsService _smsService; private readonly ISystemAuditsService _systemAuditsService; private readonly IEncryptionService _encryptionService; + private readonly IOutboundVoiceProvider _outboundVoiceProvider; public ContactVerificationService( IUserProfileService userProfileService, @@ -27,7 +29,8 @@ public ContactVerificationService( IEmailService emailService, ISmsService smsService, ISystemAuditsService systemAuditsService, - IEncryptionService encryptionService) + IEncryptionService encryptionService, + IOutboundVoiceProvider outboundVoiceProvider) { _userProfileService = userProfileService; _usersService = usersService; @@ -35,6 +38,7 @@ public ContactVerificationService( _smsService = smsService; _systemAuditsService = systemAuditsService; _encryptionService = encryptionService; + _outboundVoiceProvider = outboundVoiceProvider; } public async Task SendEmailVerificationCodeAsync(string userId, int departmentId, CancellationToken cancellationToken = default) @@ -82,6 +86,7 @@ public async Task SendMobileVerificationCodeAsync(string userId, int depar string code = GenerateCode(); profile.MobileVerificationCode = _encryptionService.Encrypt(code); profile.MobileVerificationCodeExpiry = DateTime.UtcNow.AddMinutes(Config.VerificationConfig.VerificationCodeExpiryMinutes); + profile.MobileVerificationVoiceCodeConsumed = false; await _userProfileService.SaveProfileAsync(departmentId, profile, cancellationToken); @@ -104,12 +109,17 @@ public async Task SendHomeVerificationCodeAsync(string userId, int departm string code = GenerateCode(); profile.HomeVerificationCode = _encryptionService.Encrypt(code); profile.HomeVerificationCodeExpiry = DateTime.UtcNow.AddMinutes(Config.VerificationConfig.VerificationCodeExpiryMinutes); + profile.HomeVerificationVoiceCodeConsumed = false; await _userProfileService.SaveProfileAsync(departmentId, profile, cancellationToken); - bool sent = await _smsService.SendSmsVerificationCodeAsync(profile.GetHomePhoneNumber(), code, departmentNumber); + // Use a Twilio voice call instead of SMS for home numbers, since they may be + // landlines that cannot receive text messages. The call speaks the digits + // of the verification code, repeating multiple times so the user can note them. + bool sent = await _outboundVoiceProvider.SendVoiceVerificationCallAsync( + profile.GetHomePhoneNumber(), userId, (int)ContactVerificationType.HomeNumber); - await WriteAuditAsync(userId, departmentId, ContactVerificationType.HomeNumber, sent, "Send", null, cancellationToken); + await WriteAuditAsync(userId, departmentId, ContactVerificationType.HomeNumber, sent, "SendVoice", null, cancellationToken); return sent; } @@ -262,6 +272,7 @@ public Task ResetVerificationForChangedContactAsync(UserProfile existingProfile, updatedProfile.MobileNumberVerified = false; updatedProfile.MobileVerificationCode = null; updatedProfile.MobileVerificationCodeExpiry = null; + updatedProfile.MobileVerificationVoiceCodeConsumed = false; updatedProfile.MobileVerificationAttempts = 0; updatedProfile.MobileVerificationAttemptsResetDate = null; } @@ -271,6 +282,7 @@ public Task ResetVerificationForChangedContactAsync(UserProfile existingProfile, updatedProfile.HomeNumberVerified = false; updatedProfile.HomeVerificationCode = null; updatedProfile.HomeVerificationCodeExpiry = null; + updatedProfile.HomeVerificationVoiceCodeConsumed = false; updatedProfile.HomeVerificationAttempts = 0; updatedProfile.HomeVerificationAttemptsResetDate = null; } diff --git a/Core/Resgrid.Services/DepartmentSettingsService.cs b/Core/Resgrid.Services/DepartmentSettingsService.cs index ba8d78616..90067085c 100644 --- a/Core/Resgrid.Services/DepartmentSettingsService.cs +++ b/Core/Resgrid.Services/DepartmentSettingsService.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; +using Resgrid.Config; using Resgrid.Framework; using Resgrid.Model; using Resgrid.Model.Providers; @@ -628,6 +629,44 @@ public async Task GetMappingUnitAllowStatusWithNoLocationToOverwriteAsync( return false; } + + public async Task GetMappingUseMapboxOverrideAsync(int departmentId) + { + var settingValue = await GetSettingByDepartmentIdType(departmentId, DepartmentSettingTypes.MappingUseMapboxOverride); + + if (settingValue != null && bool.TryParse(settingValue.Setting, out bool enabled)) + return enabled; + + return false; + } + + public async Task GetMappingMapboxStyleUrlAsync(int departmentId) + { + var settingValue = await GetSettingByDepartmentIdType(departmentId, DepartmentSettingTypes.MappingMapboxStyleUrl); + + return settingValue?.Setting; + } + + public async Task GetMappingMapboxAccessTokenAsync(int departmentId) + { + var settingValue = await GetSettingByDepartmentIdType(departmentId, DepartmentSettingTypes.MappingMapboxAccessToken); + + return settingValue?.Setting; + } + + public async Task GetMapConfigForDepartmentAsync(int departmentId, string key = null) + { + if (departmentId > 0 && await GetMappingUseMapboxOverrideAsync(departmentId)) + { + var styleUrl = await GetMappingMapboxStyleUrlAsync(departmentId); + var accessToken = await GetMappingMapboxAccessTokenAsync(departmentId); + + if (MappingConfig.TryCreateMapboxConfig(styleUrl, accessToken, true, out var mapConfig)) + return mapConfig; + } + + return MappingConfig.GetMapConfig(key); + } #endregion Department Mapping Settings private async Task GetSettingByDepartmentIdType(int departmentId, DepartmentSettingTypes settingType) diff --git a/Core/Resgrid.Services/UserProfileService.cs b/Core/Resgrid.Services/UserProfileService.cs index 79cfdc5b2..147768847 100644 --- a/Core/Resgrid.Services/UserProfileService.cs +++ b/Core/Resgrid.Services/UserProfileService.cs @@ -93,6 +93,7 @@ public async Task> GetAllProfilesForDepartmentIn profile.MobileNumberVerified = false; profile.MobileVerificationCode = null; profile.MobileVerificationCodeExpiry = null; + profile.MobileVerificationVoiceCodeConsumed = false; profile.MobileVerificationAttempts = 0; profile.MobileVerificationAttemptsResetDate = null; } @@ -101,6 +102,7 @@ public async Task> GetAllProfilesForDepartmentIn profile.HomeNumberVerified = false; profile.HomeVerificationCode = null; profile.HomeVerificationCodeExpiry = null; + profile.HomeVerificationVoiceCodeConsumed = false; profile.HomeVerificationAttempts = 0; profile.HomeVerificationAttemptsResetDate = null; } diff --git a/Providers/Resgrid.Providers.Migrations/Migrations/M0048_AddingVoiceVerificationConsumptionFlags.cs b/Providers/Resgrid.Providers.Migrations/Migrations/M0048_AddingVoiceVerificationConsumptionFlags.cs new file mode 100644 index 000000000..ef0660652 --- /dev/null +++ b/Providers/Resgrid.Providers.Migrations/Migrations/M0048_AddingVoiceVerificationConsumptionFlags.cs @@ -0,0 +1,21 @@ +using FluentMigrator; + +namespace Resgrid.Providers.Migrations.Migrations +{ + [Migration(48)] + public class M0048_AddingVoiceVerificationConsumptionFlags : Migration + { + public override void Up() + { + Alter.Table("UserProfiles") + .AddColumn("MobileVerificationVoiceCodeConsumed").AsBoolean().NotNullable().WithDefaultValue(false) + .AddColumn("HomeVerificationVoiceCodeConsumed").AsBoolean().NotNullable().WithDefaultValue(false); + } + + public override void Down() + { + Delete.Column("MobileVerificationVoiceCodeConsumed").FromTable("UserProfiles"); + Delete.Column("HomeVerificationVoiceCodeConsumed").FromTable("UserProfiles"); + } + } +} diff --git a/Providers/Resgrid.Providers.MigrationsPg/Migrations/M0048_AddingVoiceVerificationConsumptionFlagsPg.cs b/Providers/Resgrid.Providers.MigrationsPg/Migrations/M0048_AddingVoiceVerificationConsumptionFlagsPg.cs new file mode 100644 index 000000000..1bdbd967b --- /dev/null +++ b/Providers/Resgrid.Providers.MigrationsPg/Migrations/M0048_AddingVoiceVerificationConsumptionFlagsPg.cs @@ -0,0 +1,21 @@ +using FluentMigrator; + +namespace Resgrid.Providers.MigrationsPg.Migrations +{ + [Migration(48)] + public class M0048_AddingVoiceVerificationConsumptionFlagsPg : Migration + { + public override void Up() + { + Alter.Table("UserProfiles".ToLower()) + .AddColumn("MobileVerificationVoiceCodeConsumed".ToLower()).AsBoolean().NotNullable().WithDefaultValue(false) + .AddColumn("HomeVerificationVoiceCodeConsumed".ToLower()).AsBoolean().NotNullable().WithDefaultValue(false); + } + + public override void Down() + { + Delete.Column("MobileVerificationVoiceCodeConsumed".ToLower()).FromTable("UserProfiles".ToLower()); + Delete.Column("HomeVerificationVoiceCodeConsumed".ToLower()).FromTable("UserProfiles".ToLower()); + } + } +} diff --git a/Providers/Resgrid.Providers.Number/OutboundVoiceProvider.cs b/Providers/Resgrid.Providers.Number/OutboundVoiceProvider.cs index 204983aa2..eef54e204 100644 --- a/Providers/Resgrid.Providers.Number/OutboundVoiceProvider.cs +++ b/Providers/Resgrid.Providers.Number/OutboundVoiceProvider.cs @@ -60,5 +60,32 @@ public async Task CommunicateCallAsync(string phoneNumber, UserProfile pro return false; } + + public async Task SendVoiceVerificationCallAsync(string phoneNumber, string userId, int contactType) + { + if (string.IsNullOrWhiteSpace(phoneNumber) || string.IsNullOrWhiteSpace(userId)) + return false; + + try + { + TwilioClient.Init(Config.NumberProviderConfig.TwilioAccountSid, Config.NumberProviderConfig.TwilioAuthToken); + + string fromNumber = Config.NumberProviderConfig.TwilioResgridNumber; + if (string.IsNullOrWhiteSpace(fromNumber)) + return false; + + var options = new CreateCallOptions(new PhoneNumber(phoneNumber), new PhoneNumber(fromNumber)); + options.Url = new Uri(string.Format(Config.NumberProviderConfig.TwilioVoiceVerificationApiUrl, userId, contactType)); + options.Method = "GET"; + + var phoneCall = await CallResource.CreateAsync(options); + return phoneCall != null; + } + catch (Exception ex) + { + Resgrid.Framework.Logging.LogException(ex); + return false; + } + } } } diff --git a/Repositories/Resgrid.Repositories.DataRepository/CallsRepository.cs b/Repositories/Resgrid.Repositories.DataRepository/CallsRepository.cs index 24a3b3a09..90a9ced87 100644 --- a/Repositories/Resgrid.Repositories.DataRepository/CallsRepository.cs +++ b/Repositories/Resgrid.Repositories.DataRepository/CallsRepository.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Data.Common; using System.Threading.Tasks; @@ -28,7 +28,6 @@ public CallsRepository(IConnectionProvider connectionProvider, SqlConfiguration _queryFactory = queryFactory; _unitOfWork = unitOfWork; } - public async Task> GetAllCallsByDepartmentDateRangeAsync(int departmentId, DateTime startDate, DateTime endDate) { try @@ -458,5 +457,44 @@ public void CleanUpCallDispatchAudio() // new SqlParameter("@DeleteBeforeDate", lastestDate)); } + + public async Task> GetActiveCallsWithCheckInTimersForUserAsync(string userId, int departmentId) + { + try + { + var selectFunction = new Func>>(async x => + { + var dynamicParameters = new DynamicParametersExtension(); + dynamicParameters.Add("UserId", userId); + dynamicParameters.Add("DepartmentId", departmentId); + + var query = _queryFactory.GetQuery(); + + return await x.QueryAsync(sql: query, + param: dynamicParameters, + transaction: _unitOfWork.Transaction); + }); + + DbConnection conn = null; + if (_unitOfWork?.Connection == null) + { + using (conn = _connectionProvider.Create()) + { + await conn.OpenAsync(); + return await selectFunction(conn); + } + } + else + { + conn = _unitOfWork.CreateOrGetConnection(); + return await selectFunction(conn); + } + } + catch (Exception ex) + { + Logging.LogException(ex); + throw; + } + } } } diff --git a/Repositories/Resgrid.Repositories.DataRepository/Configs/SqlConfiguration.cs b/Repositories/Resgrid.Repositories.DataRepository/Configs/SqlConfiguration.cs index c467e885d..59731b79e 100644 --- a/Repositories/Resgrid.Repositories.DataRepository/Configs/SqlConfiguration.cs +++ b/Repositories/Resgrid.Repositories.DataRepository/Configs/SqlConfiguration.cs @@ -1,4 +1,4 @@ -// From https://github.com/grandchamp/Identity.Dapper +// From https://github.com/grandchamp/Identity.Dapper namespace Resgrid.Repositories.DataRepository.Configs { @@ -315,6 +315,7 @@ protected SqlConfiguration() { } public string SelectAllOpenCallsByDidDateQuery { get; set; } public string SelectAllCallsByDidLoggedOnQuery { get; set; } public string UpdateUserDispatchesAsSentQuery { get; set; } + public string SelectActiveCallsWithCheckInTimersForUserQuery { get; set; } public string SelectCallProtocolsByCallIdQuery { get; set; } public string SelectAllCallDispatchesByCallIdQuery { get; set; } public string SelectCallAttachmentByCallIdQuery { get; set; } diff --git a/Repositories/Resgrid.Repositories.DataRepository/Queries/Calls/SelectActiveCallsWithCheckInTimersForUserQuery.cs b/Repositories/Resgrid.Repositories.DataRepository/Queries/Calls/SelectActiveCallsWithCheckInTimersForUserQuery.cs new file mode 100644 index 000000000..7bd535cc7 --- /dev/null +++ b/Repositories/Resgrid.Repositories.DataRepository/Queries/Calls/SelectActiveCallsWithCheckInTimersForUserQuery.cs @@ -0,0 +1,43 @@ +using Resgrid.Model; +using Resgrid.Model.Repositories.Queries.Contracts; +using Resgrid.Repositories.DataRepository.Configs; +using Resgrid.Repositories.DataRepository.Extensions; + +namespace Resgrid.Repositories.DataRepository.Queries.Calls +{ + /// + /// Returns all active records that have CheckInTimersEnabled = 1 + /// and that a specific user has been dispatched on, scoped to a single department. + /// Used by Endpoint 1 of the personnel check-in status feature. + /// + public class SelectActiveCallsWithCheckInTimersForUserQuery : ISelectQuery + { + private readonly SqlConfiguration _sqlConfiguration; + + public SelectActiveCallsWithCheckInTimersForUserQuery(SqlConfiguration sqlConfiguration) + { + _sqlConfiguration = sqlConfiguration; + } + + public string GetQuery() + { + var query = _sqlConfiguration.SelectActiveCallsWithCheckInTimersForUserQuery + .ReplaceQueryParameters( + _sqlConfiguration, + _sqlConfiguration.SchemaName, + _sqlConfiguration.CallsTable, + _sqlConfiguration.ParameterNotation, + new string[] { "%USERID%", "%DID%" }, + new string[] { "UserId", "DepartmentId" }, + new string[] { "%CALLDISPATCHTABLE%" }, + new string[] { _sqlConfiguration.CallDispatchesTable }); + + return query; + } + + public string GetQuery() where TEntity : class, IEntity + { + return GetQuery(); + } + } +} diff --git a/Repositories/Resgrid.Repositories.DataRepository/Servers/PostgreSql/PostgreSqlConfiguration.cs b/Repositories/Resgrid.Repositories.DataRepository/Servers/PostgreSql/PostgreSqlConfiguration.cs index e9830fe50..353bfd41b 100644 --- a/Repositories/Resgrid.Repositories.DataRepository/Servers/PostgreSql/PostgreSqlConfiguration.cs +++ b/Repositories/Resgrid.Repositories.DataRepository/Servers/PostgreSql/PostgreSqlConfiguration.cs @@ -1,4 +1,4 @@ -using Resgrid.Config; +using Resgrid.Config; using Resgrid.Repositories.DataRepository.Configs; using Resgrid.Repositories.DataRepository.Queries.Calendar; using Resgrid.Repositories.DataRepository.Queries.Calls; @@ -1134,6 +1134,14 @@ group by 1 SELECT * FROM %SCHEMA%.%TABLENAME% WHERE HasBeenDispatched = false AND IsDeleted = false AND DepartmentId = %DID%"; + SelectActiveCallsWithCheckInTimersForUserQuery = @" + SELECT DISTINCT c.* + FROM %SCHEMA%.%TABLENAME% c + INNER JOIN %SCHEMA%.%CALLDISPATCHTABLE% cd ON cd.CallId = c.CallId + WHERE cd.UserId = %USERID% + AND c.DepartmentId = %DID% + AND c.CheckInTimersEnabled = true + AND c.State = 0"; SelectCallsByContactQuery= @" SELECT %SCHEMA%.%CALLSTABLE%.* FROM %SCHEMA%.%CALLSTABLE% diff --git a/Repositories/Resgrid.Repositories.DataRepository/Servers/SqlServer/SqlServerConfiguration.cs b/Repositories/Resgrid.Repositories.DataRepository/Servers/SqlServer/SqlServerConfiguration.cs index d5697c3a0..5b0b963b1 100644 --- a/Repositories/Resgrid.Repositories.DataRepository/Servers/SqlServer/SqlServerConfiguration.cs +++ b/Repositories/Resgrid.Repositories.DataRepository/Servers/SqlServer/SqlServerConfiguration.cs @@ -1,4 +1,4 @@ -using Resgrid.Repositories.DataRepository.Configs; +using Resgrid.Repositories.DataRepository.Configs; using Resgrid.Repositories.DataRepository.Queries.Calendar; using Resgrid.Repositories.DataRepository.Queries.Calls; using Resgrid.Repositories.DataRepository.Queries.DepartmentGroups; @@ -1097,6 +1097,14 @@ SELECT DISTINCT YEAR(c.LoggedOn) SELECT * FROM %SCHEMA%.%TABLENAME% WHERE [HasBeenDispatched] = 0 AND [IsDeleted] = 0 AND [DepartmentId] = %DID%"; + SelectActiveCallsWithCheckInTimersForUserQuery = @" + SELECT DISTINCT c.* + FROM %SCHEMA%.%TABLENAME% c + INNER JOIN %SCHEMA%.%CALLDISPATCHTABLE% cd ON cd.[CallId] = c.[CallId] + WHERE cd.[UserId] = %USERID% + AND c.[DepartmentId] = %DID% + AND c.[CheckInTimersEnabled] = 1 + AND c.[State] = 0"; SelectCallsByContactQuery= @" SELECT c.* FROM %SCHEMA%.%CALLSTABLE% c diff --git a/Tests/Resgrid.Tests/Framework/FileHelperTests.cs b/Tests/Resgrid.Tests/Framework/FileHelperTests.cs new file mode 100644 index 000000000..dbfaa7297 --- /dev/null +++ b/Tests/Resgrid.Tests/Framework/FileHelperTests.cs @@ -0,0 +1,23 @@ +using FluentAssertions; +using NUnit.Framework; +using Resgrid.Framework; + +namespace Resgrid.Tests.Framework +{ + [TestFixture] + public class FileHelperTests + { + [TestCase("EngineeringManager.Exercise.docx.pdf", "pdf")] + [TestCase("incident.photo.JPG", "jpg")] + [TestCase("archive.tar.gz", "gz")] + [TestCase("no-extension", "")] + [TestCase("", "")] + [TestCase(null, "")] + public void should_return_last_file_extension_without_dot(string fileName, string expectedExtension) + { + var extension = FileHelper.GetFileExtensionWithoutDot(fileName); + + extension.Should().Be(expectedExtension); + } + } +} diff --git a/Tests/Resgrid.Tests/Resgrid.Tests.csproj b/Tests/Resgrid.Tests/Resgrid.Tests.csproj index d289c5865..9788e569e 100644 --- a/Tests/Resgrid.Tests/Resgrid.Tests.csproj +++ b/Tests/Resgrid.Tests/Resgrid.Tests.csproj @@ -54,6 +54,7 @@ + diff --git a/Tests/Resgrid.Tests/Services/ContactVerificationServiceTests.cs b/Tests/Resgrid.Tests/Services/ContactVerificationServiceTests.cs index 48054615c..f813461b8 100644 --- a/Tests/Resgrid.Tests/Services/ContactVerificationServiceTests.cs +++ b/Tests/Resgrid.Tests/Services/ContactVerificationServiceTests.cs @@ -6,6 +6,7 @@ using NUnit.Framework; using Resgrid.Model; using Resgrid.Model.Identity; +using Resgrid.Model.Providers; using Resgrid.Model.Services; using Resgrid.Services; @@ -21,6 +22,7 @@ public class with_the_contact_verification_service : TestBase protected Mock _smsServiceMock; protected Mock _systemAuditsServiceMock; protected Mock _encryptionServiceMock; + protected Mock _outboundVoiceProviderMock; protected IContactVerificationService _contactVerificationService; protected with_the_contact_verification_service() @@ -45,13 +47,19 @@ protected with_the_contact_verification_service() .Setup(s => s.SaveSystemAuditAsync(It.IsAny(), It.IsAny())) .ReturnsAsync(new SystemAudit()); + _outboundVoiceProviderMock = new Mock(); + _outboundVoiceProviderMock + .Setup(v => v.SendVoiceVerificationCallAsync(It.IsAny(), It.IsAny(), It.IsAny())) + .ReturnsAsync(true); + _contactVerificationService = new ContactVerificationService( _userProfileServiceMock.Object, _usersServiceMock.Object, _emailServiceMock.Object, _smsServiceMock.Object, _systemAuditsServiceMock.Object, - _encryptionServiceMock.Object); + _encryptionServiceMock.Object, + _outboundVoiceProviderMock.Object); } protected static UserProfile BuildProfile(string userId = "user1", @@ -104,6 +112,32 @@ public async Task should_generate_code_and_send_email() } } + [TestFixture] + public class when_sending_phone_verification : with_the_contact_verification_service + { + [Test] + public async Task should_reset_home_voice_consumption_when_sending_a_new_home_code() + { + var profile = BuildProfile(); + profile.HomeVerificationVoiceCodeConsumed = true; + UserProfile savedProfile = null; + + _userProfileServiceMock + .Setup(s => s.GetProfileByUserIdAsync("user1", true)) + .ReturnsAsync(profile); + _userProfileServiceMock + .Setup(s => s.SaveProfileAsync(It.IsAny(), It.IsAny(), It.IsAny())) + .Callback((_, p, _) => savedProfile = p) + .ReturnsAsync(profile); + + var result = await _contactVerificationService.SendHomeVerificationCodeAsync("user1", 1, "15555550123"); + + result.Should().BeTrue(); + savedProfile.Should().NotBeNull(); + savedProfile!.HomeVerificationVoiceCodeConsumed.Should().BeFalse(); + } + } + [TestFixture] public class when_confirming_verification_code : with_the_contact_verification_service { @@ -230,6 +264,7 @@ public async Task should_reset_mobile_verification_when_number_changes() updated.MobileNumberVerified.Should().BeFalse(); updated.MobileVerificationCode.Should().BeNull(); + updated.MobileVerificationVoiceCodeConsumed.Should().BeFalse(); updated.MobileVerificationAttempts.Should().Be(0); } @@ -265,6 +300,23 @@ public async Task should_reset_email_verification_when_email_changes() updated.EmailVerified.Should().BeFalse(); updated.EmailVerificationCode.Should().BeNull(); } + + [Test] + public async Task should_reset_home_voice_consumption_when_number_changes() + { + var existing = BuildProfile(); + existing.HomeNumber = "5551112222"; + existing.HomeVerificationVoiceCodeConsumed = true; + + var updated = BuildProfile(); + updated.HomeNumber = "5553334444"; + updated.HomeVerificationVoiceCodeConsumed = true; + + await _contactVerificationService.ResetVerificationForChangedContactAsync(existing, updated); + + updated.HomeVerificationVoiceCodeConsumed.Should().BeFalse(); + updated.HomeVerificationCode.Should().BeNull(); + } } [TestFixture] diff --git a/Tests/Resgrid.Tests/Services/DepartmentSettingsServiceMapConfigTests.cs b/Tests/Resgrid.Tests/Services/DepartmentSettingsServiceMapConfigTests.cs new file mode 100644 index 000000000..ac788549a --- /dev/null +++ b/Tests/Resgrid.Tests/Services/DepartmentSettingsServiceMapConfigTests.cs @@ -0,0 +1,265 @@ +using System.Threading.Tasks; +using FluentAssertions; +using Moq; +using NUnit.Framework; +using Resgrid.Config; +using Resgrid.Model; +using Resgrid.Model.Providers; +using Resgrid.Model.Repositories; +using Resgrid.Model.Services; +using Resgrid.Services; + +namespace Resgrid.Tests.Services +{ + [TestFixture] + public class DepartmentSettingsServiceMapConfigTests + { + private Mock _departmentSettingsRepository; + private Mock _addressService; + private Mock _geoLocationProvider; + private Mock _cacheProvider; + private DepartmentSettingsService _service; + + [SetUp] + public void SetUp() + { + _departmentSettingsRepository = new Mock(); + _addressService = new Mock(); + _geoLocationProvider = new Mock(); + _cacheProvider = new Mock(); + + _service = new DepartmentSettingsService( + _departmentSettingsRepository.Object, + _addressService.Object, + _geoLocationProvider.Object, + _cacheProvider.Object); + + MappingConfig.MapBoxStyleUrl = "mapbox://styles/resgrid/abc123"; + MappingConfig.MapBoxTileUrl = "https://api.mapbox.com/styles/v1/resgrid/abc123/tiles/256/{{z}}/{{x}}/{{y}}?access_token={0}"; + MappingConfig.WebsiteOSMKey = "system-token"; + MappingConfig.WebsiteMapboxKey = string.Empty; + MappingConfig.WebsiteMapboxAccessToken = string.Empty; + MappingConfig.WebsiteMapMode = MappingConfig.LeafletMapProvider; + MappingConfig.LeafletTileUrl = "https://tiles.example.com/{z}/{x}/{y}.png"; + } + + [Test] + public async Task should_return_department_override_when_enabled_and_valid() + { + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingUseMapboxOverride)) + .ReturnsAsync(new DepartmentSetting { DepartmentId = 7, Setting = "true", SettingType = (int)DepartmentSettingTypes.MappingUseMapboxOverride }); + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingMapboxStyleUrl)) + .ReturnsAsync(new DepartmentSetting { DepartmentId = 7, Setting = "mapbox://styles/department/customstyle", SettingType = (int)DepartmentSettingTypes.MappingMapboxStyleUrl }); + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingMapboxAccessToken)) + .ReturnsAsync(new DepartmentSetting { DepartmentId = 7, Setting = "pk.department-token", SettingType = (int)DepartmentSettingTypes.MappingMapboxAccessToken }); + + var result = await _service.GetMapConfigForDepartmentAsync(7, InfoConfig.WebsiteKey); + + result.IsDepartmentOverride.Should().BeTrue(); + result.MapProvider.Should().Be(MappingConfig.MapboxMapProvider); + result.StyleUrl.Should().Be("mapbox://styles/department/customstyle"); + result.AccessToken.Should().Be("pk.department-token"); + result.TileUrl.Should().Contain("pk.department-token"); + } + + [Test] + public async Task should_return_department_override_for_unit_app_when_system_config_is_leaflet() + { + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingUseMapboxOverride)) + .ReturnsAsync(new DepartmentSetting { DepartmentId = 7, Setting = "true", SettingType = (int)DepartmentSettingTypes.MappingUseMapboxOverride }); + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingMapboxStyleUrl)) + .ReturnsAsync(new DepartmentSetting { DepartmentId = 7, Setting = "mapbox://styles/department/mobileunit", SettingType = (int)DepartmentSettingTypes.MappingMapboxStyleUrl }); + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingMapboxAccessToken)) + .ReturnsAsync(new DepartmentSetting { DepartmentId = 7, Setting = "pk.unit-token", SettingType = (int)DepartmentSettingTypes.MappingMapboxAccessToken }); + + var result = await _service.GetMapConfigForDepartmentAsync(7, InfoConfig.UnitAppKey); + + result.IsDepartmentOverride.Should().BeTrue(); + result.MapProvider.Should().Be(MappingConfig.MapboxMapProvider); + result.StyleUrl.Should().Be("mapbox://styles/department/mobileunit"); + result.AccessToken.Should().Be("pk.unit-token"); + result.TileUrl.Should().Contain("pk.unit-token"); + } + + [Test] + public async Task should_return_department_override_for_responder_app_when_system_config_is_leaflet() + { + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingUseMapboxOverride)) + .ReturnsAsync(new DepartmentSetting { DepartmentId = 7, Setting = "true", SettingType = (int)DepartmentSettingTypes.MappingUseMapboxOverride }); + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingMapboxStyleUrl)) + .ReturnsAsync(new DepartmentSetting { DepartmentId = 7, Setting = "mapbox://styles/department/mobileresponder", SettingType = (int)DepartmentSettingTypes.MappingMapboxStyleUrl }); + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingMapboxAccessToken)) + .ReturnsAsync(new DepartmentSetting { DepartmentId = 7, Setting = "pk.responder-token", SettingType = (int)DepartmentSettingTypes.MappingMapboxAccessToken }); + + var result = await _service.GetMapConfigForDepartmentAsync(7, InfoConfig.ResponderAppKey); + + result.IsDepartmentOverride.Should().BeTrue(); + result.MapProvider.Should().Be(MappingConfig.MapboxMapProvider); + result.StyleUrl.Should().Be("mapbox://styles/department/mobileresponder"); + result.AccessToken.Should().Be("pk.responder-token"); + result.TileUrl.Should().Contain("pk.responder-token"); + } + + [Test] + public async Task should_fall_back_to_leaflet_system_config_when_override_disabled() + { + MappingConfig.LeafletTileUrl = "https://tiles.example.com/{{z}}/{{x}}/{{y}}.png?key={0}"; + + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingUseMapboxOverride)) + .ReturnsAsync(new DepartmentSetting { DepartmentId = 7, Setting = "false", SettingType = (int)DepartmentSettingTypes.MappingUseMapboxOverride }); + + var result = await _service.GetMapConfigForDepartmentAsync(7, InfoConfig.WebsiteKey); + + result.IsDepartmentOverride.Should().BeFalse(); + result.MapProvider.Should().Be(MappingConfig.LeafletMapProvider); + result.TileUrl.Should().Be("https://tiles.example.com/{z}/{x}/{y}.png?key=system-token"); + result.AccessToken.Should().BeEmpty(); + result.StyleUrl.Should().BeEmpty(); + } + + [Test] + public async Task should_fall_back_to_mapbox_system_config_when_website_mode_is_mapbox() + { + MappingConfig.WebsiteMapMode = MappingConfig.MapboxMapProvider; + MappingConfig.WebsiteOSMKey = "pk.system-token"; + + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingUseMapboxOverride)) + .ReturnsAsync(new DepartmentSetting { DepartmentId = 7, Setting = "false", SettingType = (int)DepartmentSettingTypes.MappingUseMapboxOverride }); + + var result = await _service.GetMapConfigForDepartmentAsync(7, InfoConfig.WebsiteKey); + + result.IsDepartmentOverride.Should().BeFalse(); + result.MapProvider.Should().Be(MappingConfig.MapboxMapProvider); + result.AccessToken.Should().Be("pk.system-token"); + result.StyleUrl.Should().Be("mapbox://styles/resgrid/abc123"); + } + + [Test] + public async Task should_use_dedicated_website_mapbox_access_token_when_configured() + { + MappingConfig.WebsiteMapMode = MappingConfig.MapboxMapProvider; + MappingConfig.WebsiteMapboxAccessToken = "pk.website-token"; + MappingConfig.WebsiteOSMKey = string.Empty; + + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingUseMapboxOverride)) + .ReturnsAsync(new DepartmentSetting { DepartmentId = 7, Setting = "false", SettingType = (int)DepartmentSettingTypes.MappingUseMapboxOverride }); + + var result = await _service.GetMapConfigForDepartmentAsync(7, InfoConfig.WebsiteKey); + + result.MapProvider.Should().Be(MappingConfig.MapboxMapProvider); + result.AccessToken.Should().Be("pk.website-token"); + result.StyleUrl.Should().Be("mapbox://styles/resgrid/abc123"); + } + + [Test] + public async Task should_fall_back_to_leaflet_when_mapbox_mode_has_no_website_token() + { + MappingConfig.WebsiteMapMode = MappingConfig.MapboxMapProvider; + MappingConfig.WebsiteOSMKey = string.Empty; + + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingUseMapboxOverride)) + .ReturnsAsync(new DepartmentSetting { DepartmentId = 7, Setting = "false", SettingType = (int)DepartmentSettingTypes.MappingUseMapboxOverride }); + + var result = await _service.GetMapConfigForDepartmentAsync(7, InfoConfig.WebsiteKey); + + result.MapProvider.Should().Be(MappingConfig.LeafletMapProvider); + result.AccessToken.Should().BeEmpty(); + result.StyleUrl.Should().BeEmpty(); + } + + [Test] + public async Task should_use_configured_mapbox_tile_url_when_style_url_is_missing() + { + MappingConfig.WebsiteMapMode = MappingConfig.MapboxMapProvider; + MappingConfig.MapBoxStyleUrl = string.Empty; + MappingConfig.WebsiteOSMKey = "pk.system-token"; + + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingUseMapboxOverride)) + .ReturnsAsync(new DepartmentSetting { DepartmentId = 7, Setting = "false", SettingType = (int)DepartmentSettingTypes.MappingUseMapboxOverride }); + + var result = await _service.GetMapConfigForDepartmentAsync(7, InfoConfig.WebsiteKey); + + result.MapProvider.Should().Be(MappingConfig.MapboxMapProvider); + result.TileUrl.Should().Be("https://api.mapbox.com/styles/v1/resgrid/abc123/tiles/256/{z}/{x}/{y}?access_token=pk.system-token"); + result.StyleUrl.Should().BeEmpty(); + result.AccessToken.Should().Be("pk.system-token"); + } + + [Test] + public async Task should_fall_back_to_system_config_when_override_is_incomplete() + { + MappingConfig.WebsiteMapMode = MappingConfig.MapboxMapProvider; + MappingConfig.WebsiteOSMKey = "pk.system-token"; + + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingUseMapboxOverride)) + .ReturnsAsync(new DepartmentSetting { DepartmentId = 7, Setting = "true", SettingType = (int)DepartmentSettingTypes.MappingUseMapboxOverride }); + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingMapboxStyleUrl)) + .ReturnsAsync(new DepartmentSetting { DepartmentId = 7, Setting = "mapbox://styles/department/customstyle", SettingType = (int)DepartmentSettingTypes.MappingMapboxStyleUrl }); + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingMapboxAccessToken)) + .ReturnsAsync((DepartmentSetting)null); + + var result = await _service.GetMapConfigForDepartmentAsync(7, InfoConfig.WebsiteKey); + + result.IsDepartmentOverride.Should().BeFalse(); + result.AccessToken.Should().Be("pk.system-token"); + result.StyleUrl.Should().Be("mapbox://styles/resgrid/abc123"); + } + + [Test] + public async Task should_fall_back_to_leaflet_when_website_mapbox_access_token_is_private() + { + MappingConfig.WebsiteMapMode = MappingConfig.MapboxMapProvider; + MappingConfig.WebsiteMapboxAccessToken = "sk.website-secret"; + MappingConfig.WebsiteOSMKey = string.Empty; + + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingUseMapboxOverride)) + .ReturnsAsync(new DepartmentSetting { DepartmentId = 7, Setting = "false", SettingType = (int)DepartmentSettingTypes.MappingUseMapboxOverride }); + + var result = await _service.GetMapConfigForDepartmentAsync(7, InfoConfig.WebsiteKey); + + result.MapProvider.Should().Be(MappingConfig.LeafletMapProvider); + result.AccessToken.Should().BeEmpty(); + result.StyleUrl.Should().BeEmpty(); + result.TileUrl.Should().NotContain("sk.website-secret"); + } + + [Test] + public async Task should_ignore_department_override_when_mapbox_access_token_is_private() + { + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingUseMapboxOverride)) + .ReturnsAsync(new DepartmentSetting { DepartmentId = 7, Setting = "true", SettingType = (int)DepartmentSettingTypes.MappingUseMapboxOverride }); + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingMapboxStyleUrl)) + .ReturnsAsync(new DepartmentSetting { DepartmentId = 7, Setting = "mapbox://styles/department/customstyle", SettingType = (int)DepartmentSettingTypes.MappingMapboxStyleUrl }); + _departmentSettingsRepository + .Setup(x => x.GetDepartmentSettingByIdTypeAsync(7, DepartmentSettingTypes.MappingMapboxAccessToken)) + .ReturnsAsync(new DepartmentSetting { DepartmentId = 7, Setting = "sk.department-secret", SettingType = (int)DepartmentSettingTypes.MappingMapboxAccessToken }); + + var result = await _service.GetMapConfigForDepartmentAsync(7, InfoConfig.WebsiteKey); + + result.IsDepartmentOverride.Should().BeFalse(); + result.MapProvider.Should().Be(MappingConfig.LeafletMapProvider); + result.AccessToken.Should().BeEmpty(); + result.TileUrl.Should().NotContain("sk.department-secret"); + } + } +} diff --git a/Tests/Resgrid.Tests/Web/Services/TwilioControllerVoiceVerificationTests.cs b/Tests/Resgrid.Tests/Web/Services/TwilioControllerVoiceVerificationTests.cs new file mode 100644 index 000000000..60415c576 --- /dev/null +++ b/Tests/Resgrid.Tests/Web/Services/TwilioControllerVoiceVerificationTests.cs @@ -0,0 +1,157 @@ +using System; +using System.Security.Cryptography; +using System.Threading; +using System.Threading.Tasks; +using FluentAssertions; +using Microsoft.AspNetCore.Mvc; +using Moq; +using NUnit.Framework; +using Resgrid.Model; +using Resgrid.Model.Helpers; +using Resgrid.Model.Providers; +using Resgrid.Model.Services; +using Resgrid.Web.Services.Controllers; + +namespace Resgrid.Tests.Web.Services +{ + [TestFixture] + public class TwilioControllerVoiceVerificationTests : TestBase + { + private Mock _departmentSettingsServiceMock; + private Mock _numbersServiceMock; + private Mock _limitsServiceMock; + private Mock _callsServiceMock; + private Mock _queueServiceMock; + private Mock _departmentsServiceMock; + private Mock _userProfileServiceMock; + private Mock _textCommandServiceMock; + private Mock _actionLogsServiceMock; + private Mock _userStateServiceMock; + private Mock _communicationServiceMock; + private Mock _geoLocationProviderMock; + private Mock _departmentGroupsServiceMock; + private Mock _customStateServiceMock; + private Mock _unitsServiceMock; + private Mock _usersServiceMock; + private Mock _calendarServiceMock; + private Mock _communicationTestServiceMock; + private Mock _encryptionServiceMock; + + protected override void Before_all_tests() + { + _departmentSettingsServiceMock = new Mock(); + _numbersServiceMock = new Mock(); + _limitsServiceMock = new Mock(); + _callsServiceMock = new Mock(); + _queueServiceMock = new Mock(); + _departmentsServiceMock = new Mock(); + _userProfileServiceMock = new Mock(); + _textCommandServiceMock = new Mock(); + _actionLogsServiceMock = new Mock(); + _userStateServiceMock = new Mock(); + _communicationServiceMock = new Mock(); + _geoLocationProviderMock = new Mock(); + _departmentGroupsServiceMock = new Mock(); + _customStateServiceMock = new Mock(); + _unitsServiceMock = new Mock(); + _usersServiceMock = new Mock(); + _calendarServiceMock = new Mock(); + _communicationTestServiceMock = new Mock(); + _encryptionServiceMock = new Mock(); + } + + private TwilioController BuildController() + { + return new TwilioController( + _departmentSettingsServiceMock.Object, + _numbersServiceMock.Object, + _limitsServiceMock.Object, + _callsServiceMock.Object, + _queueServiceMock.Object, + _departmentsServiceMock.Object, + _userProfileServiceMock.Object, + _textCommandServiceMock.Object, + _actionLogsServiceMock.Object, + _userStateServiceMock.Object, + _communicationServiceMock.Object, + _geoLocationProviderMock.Object, + _departmentGroupsServiceMock.Object, + _customStateServiceMock.Object, + _unitsServiceMock.Object, + _usersServiceMock.Object, + _calendarServiceMock.Object, + _communicationTestServiceMock.Object, + _encryptionServiceMock.Object); + } + + [Test] + public async Task should_mark_home_code_consumed_after_successful_voice_generation() + { + var profile = new UserProfile + { + UserId = "user1", + HomeVerificationCode = "ENC:123456", + HomeVerificationCodeExpiry = DateTime.UtcNow.AddMinutes(10) + }; + var department = new Department { DepartmentId = 7 }; + UserProfile savedProfile = null; + + _userProfileServiceMock.Setup(x => x.GetProfileByUserIdAsync("user1", true)).ReturnsAsync(profile); + _encryptionServiceMock.Setup(x => x.Decrypt("ENC:123456")).Returns("123456"); + _departmentsServiceMock.Setup(x => x.GetDepartmentByUserIdAsync("user1", false)).ReturnsAsync(department); + _userProfileServiceMock + .Setup(x => x.SaveProfileAsync(7, It.IsAny(), It.IsAny())) + .Callback((_, p, _) => savedProfile = p) + .ReturnsAsync(profile); + + var result = await BuildController().VoiceVerification("user1", (int)ContactVerificationType.HomeNumber); + + var content = ((ContentResult)result).Content; + content.Should().Contain("Your verification code is: 1, 2, 3, 4, 5, 6."); + savedProfile.Should().NotBeNull(); + savedProfile!.HomeVerificationVoiceCodeConsumed.Should().BeTrue(); + savedProfile.HomeVerificationCode.Should().Be("ENC:123456"); + } + + [Test] + public async Task should_return_generic_message_when_home_code_already_consumed() + { + var profile = new UserProfile + { + UserId = "user1", + HomeVerificationCode = "ENC:123456", + HomeVerificationCodeExpiry = DateTime.UtcNow.AddMinutes(10), + HomeVerificationVoiceCodeConsumed = true + }; + + _userProfileServiceMock.Setup(x => x.GetProfileByUserIdAsync("user1", true)).ReturnsAsync(profile); + + var result = await BuildController().VoiceVerification("user1", (int)ContactVerificationType.HomeNumber); + + var content = ((ContentResult)result).Content; + content.Should().Contain("We couldn't complete your verification call."); + content.Should().NotContain("123456"); + _userProfileServiceMock.Verify(x => x.SaveProfileAsync(It.IsAny(), It.IsAny(), It.IsAny()), Times.Never); + } + + [Test] + public async Task should_return_generic_message_when_decryption_fails() + { + var profile = new UserProfile + { + UserId = "user1", + HomeVerificationCode = "ENC:broken", + HomeVerificationCodeExpiry = DateTime.UtcNow.AddMinutes(10) + }; + + _userProfileServiceMock.Setup(x => x.GetProfileByUserIdAsync("user1", true)).ReturnsAsync(profile); + _encryptionServiceMock.Setup(x => x.Decrypt("ENC:broken")).Throws(new CryptographicException("bad")); + + var result = await BuildController().VoiceVerification("user1", (int)ContactVerificationType.HomeNumber); + + var content = ((ContentResult)result).Content; + content.Should().Contain("We couldn't complete your verification call."); + content.Should().NotContain("broken"); + } + } +} diff --git a/Web/Resgrid.Web.Services/Controllers/TwilioController.cs b/Web/Resgrid.Web.Services/Controllers/TwilioController.cs index eb0939856..c33b7f141 100644 --- a/Web/Resgrid.Web.Services/Controllers/TwilioController.cs +++ b/Web/Resgrid.Web.Services/Controllers/TwilioController.cs @@ -2,6 +2,7 @@ using System.Collections.ObjectModel; using System.Linq; using System.Net.Http; +using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; @@ -14,6 +15,7 @@ using Resgrid.Model.Services; using Resgrid.Web.Services.Models; using Twilio.AspNet.Common; +using Twilio.AspNet.Core; using Twilio.TwiML; using Twilio.TwiML.Voice; @@ -45,13 +47,15 @@ public class TwilioController : ControllerBase private readonly IUsersService _usersService; private readonly ICalendarService _calendarService; private readonly ICommunicationTestService _communicationTestService; + private readonly IEncryptionService _encryptionService; public TwilioController(IDepartmentSettingsService departmentSettingsService, INumbersService numbersService, ILimitsService limitsService, ICallsService callsService, IQueueService queueService, IDepartmentsService departmentsService, IUserProfileService userProfileService, ITextCommandService textCommandService, IActionLogsService actionLogsService, IUserStateService userStateService, ICommunicationService communicationService, IGeoLocationProvider geoLocationProvider, IDepartmentGroupsService departmentGroupsService, ICustomStateService customStateService, IUnitsService unitsService, - IUsersService usersService, ICalendarService calendarService, ICommunicationTestService communicationTestService) + IUsersService usersService, ICalendarService calendarService, ICommunicationTestService communicationTestService, + IEncryptionService encryptionService) { _departmentSettingsService = departmentSettingsService; _numbersService = numbersService; @@ -71,6 +75,7 @@ public TwilioController(IDepartmentSettingsService departmentSettingsService, IN _usersService = usersService; _calendarService = calendarService; _communicationTestService = communicationTestService; + _encryptionService = encryptionService; } #endregion Private Readonly Properties and Constructors @@ -451,6 +456,7 @@ public async Task IncomingMessage([FromQuery] TwilioMessage reques [HttpGet("VoiceCall")] [Produces("application/xml")] + [ValidateRequest] public async Task VoiceCall(string userId, int callId) { var response = new VoiceResponse(); @@ -624,8 +630,94 @@ await _actionLogsService.SetUserActionAsync(userId, call.DepartmentId, (int)Acti }; } + [HttpGet("VoiceVerification")] + [Produces("application/xml")] + [ValidateRequest] + public async Task VoiceVerification(string userId, int contactType) + { + if (string.IsNullOrWhiteSpace(userId)) + return GetVoiceVerificationErrorResult(); + + var profile = await _userProfileService.GetProfileByUserIdAsync(userId, bypassCache: true); + if (profile == null) + return GetVoiceVerificationErrorResult(); + + string encryptedCode; + DateTime? expiry; + bool alreadyConsumed; + switch ((ContactVerificationType)contactType) + { + case ContactVerificationType.MobileNumber: + encryptedCode = profile.MobileVerificationCode; + expiry = profile.MobileVerificationCodeExpiry; + alreadyConsumed = profile.MobileVerificationVoiceCodeConsumed; + break; + case ContactVerificationType.HomeNumber: + encryptedCode = profile.HomeVerificationCode; + expiry = profile.HomeVerificationCodeExpiry; + alreadyConsumed = profile.HomeVerificationVoiceCodeConsumed; + break; + default: + return GetVoiceVerificationErrorResult(); + } + + if (alreadyConsumed || string.IsNullOrWhiteSpace(encryptedCode) || !expiry.HasValue || DateTime.UtcNow > expiry.Value) + return GetVoiceVerificationErrorResult(); + + string code; + try + { + code = _encryptionService.Decrypt(encryptedCode); + } + catch (CryptographicException ex) + { + Framework.Logging.LogException(ex); + return GetVoiceVerificationErrorResult(); + } + + if (string.IsNullOrWhiteSpace(code)) + return GetVoiceVerificationErrorResult(); + + var department = await _departmentsService.GetDepartmentByUserIdAsync(profile.UserId, false); + if (department == null) + return GetVoiceVerificationErrorResult(); + + switch ((ContactVerificationType)contactType) + { + case ContactVerificationType.MobileNumber: + profile.MobileVerificationVoiceCodeConsumed = true; + break; + case ContactVerificationType.HomeNumber: + profile.HomeVerificationVoiceCodeConsumed = true; + break; + } + + await _userProfileService.SaveProfileAsync(department.DepartmentId, profile); + + var response = new VoiceResponse(); + var spokenCode = string.Join(", ", code.ToCharArray()); + + response.Say("Hello, this is Resgrid calling with your verification code."); + for (int i = 0; i < 3; i++) + { + response.Pause(length: 1); + response.Say($"Your verification code is: {spokenCode}."); + } + response.Pause(length: 1); + response.Say("That was your Resgrid verification code. Goodbye."); + response.Hangup(); + + return new ContentResult + { + Content = response.ToString(), + ContentType = "application/xml", + StatusCode = 200 + }; + } + [HttpGet("InboundVoice")] [Produces("application/xml")] + [ValidateRequest] public async Task InboundVoice([FromQuery] TwilioGatherRequest request) { if (request == null || string.IsNullOrWhiteSpace(request.To) || string.IsNullOrWhiteSpace(request.From)) @@ -701,6 +793,19 @@ public async Task InboundVoice([FromQuery] TwilioGatherRequest req }; } + private ContentResult GetVoiceVerificationErrorResult() + { + var response = new VoiceResponse(); + response.Say("We couldn't complete your verification call. Please request a new code and try again. Goodbye.").Hangup(); + + return new ContentResult + { + Content = response.ToString(), + ContentType = "application/xml", + StatusCode = 200 + }; + } + [HttpGet("InboundVoiceAction")] [Produces("application/xml")] public async Task InboundVoiceAction(string userId, [FromQuery] VoiceRequest twilioRequest) diff --git a/Web/Resgrid.Web.Services/Controllers/v4/CheckInTimersController.cs b/Web/Resgrid.Web.Services/Controllers/v4/CheckInTimersController.cs index 110a403a4..297f1adf5 100644 --- a/Web/Resgrid.Web.Services/Controllers/v4/CheckInTimersController.cs +++ b/Web/Resgrid.Web.Services/Controllers/v4/CheckInTimersController.cs @@ -6,6 +6,7 @@ using Resgrid.Providers.Claims; using Resgrid.Web.Services.Helpers; using Resgrid.Web.Services.Models.v4.CheckInTimers; +using System.Collections.Generic; using System.Linq; using System.Net.Mime; using System.Threading; @@ -24,15 +25,21 @@ public class CheckInTimersController : V4AuthenticatedApiControllerbase private readonly ICheckInTimerService _checkInTimerService; private readonly ICallsService _callsService; private readonly IDepartmentSettingsService _departmentSettingsService; + private readonly IDepartmentsService _departmentsService; + private readonly IUserProfileService _userProfileService; public CheckInTimersController( ICheckInTimerService checkInTimerService, ICallsService callsService, - IDepartmentSettingsService departmentSettingsService) + IDepartmentSettingsService departmentSettingsService, + IDepartmentsService departmentsService, + IUserProfileService userProfileService) { _checkInTimerService = checkInTimerService; _callsService = callsService; _departmentSettingsService = departmentSettingsService; + _departmentsService = departmentsService; + _userProfileService = userProfileService; } #region Timer Configuration @@ -421,5 +428,160 @@ public async Task> ToggleCallTimers(int cal } #endregion Toggle Timers + + #region Endpoint 1 – User active-call check-in status + + /// + /// Returns a check-in timer status summary for every active call (with + /// personnel check-in timers enabled) that has been + /// dispatched on. If the caller is querying a different user they must hold + /// the Personnel_View policy; a user may always query themselves with + /// just Call_View. + /// + /// + /// The ASP.NET Identity user identifier to look up. Must belong to the + /// calling user's department. + /// + [HttpGet("GetUserCallCheckInStatuses")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status400BadRequest)] + [ProducesResponseType(StatusCodes.Status403Forbidden)] + [Authorize(Policy = ResgridResources.Call_View)] + public async Task> GetUserCallCheckInStatuses(string userId) + { + var result = new UserCallCheckInStatusResult(); + + if (string.IsNullOrWhiteSpace(userId)) + return BadRequest("userId is required."); + + // When querying another user, require Personnel_View permission and + // confirm the target belongs to the same department. + if (!string.Equals(userId, UserId, System.StringComparison.OrdinalIgnoreCase)) + { + // Re-check claim – Personnel_View is not inherited from base. + // Use a department-membership guard as a defence-in-depth measure. + var isMember = await _departmentsService.IsMemberOfDepartmentAsync(DepartmentId, userId); + if (!isMember) + return Forbid(); + } + + var summaries = await _checkInTimerService.GetUserActiveCallCheckInSummariesAsync(userId, DepartmentId); + + result.Data = summaries.Select(s => new UserCallCheckInStatusResultData + { + CallId = s.CallId, + CallName = s.CallName, + CallNumber = s.CallNumber, + CallStartedOn = s.CallStartedOn, + HasPersonnelTimer = s.HasPersonnelTimer, + DurationMinutes = s.DurationMinutes, + WarningThresholdMinutes = s.WarningThresholdMinutes, + LastCheckIn = s.LastCheckIn, + NeedsCheckIn = s.NeedsCheckIn, + MinutesRemaining = s.MinutesRemaining, + Status = s.Status + }).ToList(); + + result.PageSize = result.Data.Count; + result.Status = ResponseHelper.Success; + ResponseHelper.PopulateV4ResponseData(result); + + return Ok(result); + } + + #endregion Endpoint 1 + + #region Endpoint 2 – Call personnel check-in statuses + + /// + /// For a call that has a personnel check-in timer active, returns the + /// current check-in status (last check-in, time remaining, colour status) + /// for every person dispatched on the call. + /// + /// The call identifier to inspect. + [HttpGet("GetCallPersonnelCheckInStatuses")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status404NotFound)] + [ProducesResponseType(StatusCodes.Status400BadRequest)] + [Authorize(Policy = ResgridResources.Call_View)] + public async Task> GetCallPersonnelCheckInStatuses(int callId) + { + var result = new CallPersonnelCheckInStatusResult(); + + // Load the call and verify it belongs to the requesting user's department. + var call = await _callsService.GetCallByIdAsync(callId); + if (call == null || call.DepartmentId != DepartmentId) + return NotFound(); + + if (!call.CheckInTimersEnabled) + { + // Call exists but check-in timers are not enabled – return an empty + // but well-formed response so clients can handle it gracefully. + result.CallId = callId; + result.HasActivePersonnelTimer = false; + result.Data = new List(); + result.PageSize = 0; + result.Status = ResponseHelper.Success; + ResponseHelper.PopulateV4ResponseData(result); + return Ok(result); + } + + if (call.State != (int)CallStates.Active) + return BadRequest("Call is not in an active state."); + + // Resolve the personnel timer configuration so we can surface it to callers. + var resolvedTimers = await _checkInTimerService.ResolveAllTimersForCallAsync(call); + var personnelTimer = resolvedTimers + .FirstOrDefault(t => t.TargetType == (int)CheckInTimerTargetType.Personnel); + + if (personnelTimer == null) + { + result.CallId = callId; + result.HasActivePersonnelTimer = false; + result.Data = new List(); + result.PageSize = 0; + result.Status = ResponseHelper.Success; + ResponseHelper.PopulateV4ResponseData(result); + return Ok(result); + } + + // Fetch per-person statuses from the service layer. + var statuses = await _checkInTimerService.GetCallPersonnelCheckInStatusesAsync(call); + + // Enrich with display names in a single bulk call (avoids N profile lookups). + Dictionary profiles = null; + if (statuses.Any()) + profiles = await _userProfileService.GetAllProfilesForDepartmentAsync(DepartmentId); + + result.CallId = callId; + result.HasActivePersonnelTimer = true; + result.DurationMinutes = personnelTimer.DurationMinutes; + result.WarningThresholdMinutes = personnelTimer.WarningThresholdMinutes; + + result.Data = statuses.Select(s => + { + string fullName = null; + if (profiles != null && profiles.TryGetValue(s.UserId, out var profile)) + fullName = profile.FullName?.AsFirstNameLastName?.Trim(); + + return new CallPersonnelCheckInStatusResultData + { + UserId = s.UserId, + FullName = fullName ?? s.UserId, + LastCheckIn = s.LastCheckIn, + NeedsCheckIn = s.NeedsCheckIn, + MinutesRemaining = s.MinutesRemaining, + Status = s.Status + }; + }).ToList(); + + result.PageSize = result.Data.Count; + result.Status = ResponseHelper.Success; + ResponseHelper.PopulateV4ResponseData(result); + + return Ok(result); + } + + #endregion Endpoint 2 } } diff --git a/Web/Resgrid.Web.Services/Controllers/v4/ConfigController.cs b/Web/Resgrid.Web.Services/Controllers/v4/ConfigController.cs index 1e43a0201..b5cf6039d 100644 --- a/Web/Resgrid.Web.Services/Controllers/v4/ConfigController.cs +++ b/Web/Resgrid.Web.Services/Controllers/v4/ConfigController.cs @@ -1,11 +1,13 @@ -using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Authorization; using Resgrid.Model.Services; using System.Threading.Tasks; using Resgrid.Web.Services.Helpers; using Resgrid.Web.Services.Models.v4.Configs; using Resgrid.Config; using Microsoft.Diagnostics.Tracing.Parsers.Kernel; +using Resgrid.Web.ServicesCore.Helpers; namespace Resgrid.Web.Services.Controllers.v4 { @@ -18,9 +20,11 @@ namespace Resgrid.Web.Services.Controllers.v4 public class ConfigController : ControllerBase { #region Members and Constructors - public ConfigController() - { + private readonly IDepartmentSettingsService _departmentSettingsService; + public ConfigController(IDepartmentSettingsService departmentSettingsService) + { + _departmentSettingsService = departmentSettingsService; } #endregion Members and Constructors @@ -49,42 +53,49 @@ public async Task> GetSystemConfig() [HttpGet("GetConfig")] [ProducesResponseType(StatusCodes.Status200OK)] public async Task> GetConfig(string key) + { + return await BuildConfigResultAsync(key, GetCurrentDepartmentId()); + } + + [HttpGet("GetDepartmentConfig")] + [Authorize(AuthenticationSchemes = OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme)] + [ProducesResponseType(StatusCodes.Status200OK)] + public async Task> GetDepartmentConfig(string key) + { + return await BuildConfigResultAsync(key, ClaimsAuthorizationHelper.GetDepartmentId()); + } + + private async Task BuildConfigResultAsync(string key, int departmentId) { var result = new GetConfigResult(); + var mapConfig = await _departmentSettingsService.GetMapConfigForDepartmentAsync(departmentId, key); - if (key == InfoConfig.WebsiteKey) + if (key == InfoConfig.DispatchAppKey) { - result.Data.MapUrl = MappingConfig.GetWebsiteOSMUrl(); - } - else if (key == InfoConfig.ApiKey) - { - result.Data.MapUrl = MappingConfig.GetApiOSMUrl(); - } - else if (key == InfoConfig.DispatchAppKey) - { - result.Data.MapUrl = MappingConfig.GetDispatchAppOSMUrl(); result.Data.OpenWeatherApiKey = MappingConfig.DispatchOpenWeatherApiKey; } else if (key == InfoConfig.ResponderAppKey) { - result.Data.MapUrl = MappingConfig.GetResponderAppOSMUrl(); result.Data.GoogleMapsKey = MappingConfig.ResponderAppGoogleMapsKey; result.Data.W3WKey = MappingConfig.ResponderAppWhat3WordsKey; } else if (key == InfoConfig.UnitAppKey) { - result.Data.MapUrl = MappingConfig.GetUnitAppOSMUrl(); result.Data.NavigationMapKey = MappingConfig.UnitAppMapBoxKey; result.Data.GoogleMapsKey = MappingConfig.UnitAppGoogleMapsKey; result.Data.W3WKey = MappingConfig.UnitAppWhat3WordsKey; } else if (key == InfoConfig.BigBoardKey) { - result.Data.MapUrl = MappingConfig.GetBigBoardAppOSMUrl(); result.Data.OpenWeatherApiKey = MappingConfig.BigBoardOpenWeatherApiKey; } - result.Data.MapAttribution = MappingConfig.LeafletAttribution; + result.Data.MapUrl = mapConfig.TileUrl; + result.Data.MapProvider = mapConfig.MapProvider; + result.Data.MapStyleUrl = mapConfig.StyleUrl; + result.Data.MapAccessToken = mapConfig.AccessToken; + result.Data.MapAttribution = mapConfig.Attribution; + result.Data.IsDepartmentMapOverride = mapConfig.IsDepartmentOverride; result.Data.EventingUrl = SystemBehaviorConfig.ResgridEventingBaseUrl; result.Data.PersonnelLocationStaleSeconds = MappingConfig.PersonnelLocationStaleSeconds; @@ -106,5 +117,15 @@ public async Task> GetConfig(string key) return result; } + + private static int GetCurrentDepartmentId() + { + var principal = ClaimsAuthorizationHelper.GetClaimsPrincipal(); + + if (principal?.Identity != null && principal.Identity.IsAuthenticated) + return ClaimsAuthorizationHelper.GetDepartmentId(); + + return 0; + } } } diff --git a/Web/Resgrid.Web.Services/Models/v4/CheckInTimers/CheckInTimerModels.cs b/Web/Resgrid.Web.Services/Models/v4/CheckInTimers/CheckInTimerModels.cs index 8ada3e719..8583faef1 100644 --- a/Web/Resgrid.Web.Services/Models/v4/CheckInTimers/CheckInTimerModels.cs +++ b/Web/Resgrid.Web.Services/Models/v4/CheckInTimers/CheckInTimerModels.cs @@ -197,4 +197,105 @@ public class ToggleCallTimersResult : StandardApiResponseV4Base { public string Id { get; set; } } + + // ── Endpoint 1: User active-call check-in summaries ───────── + + /// + /// Response wrapper for . + /// + public class UserCallCheckInStatusResult : StandardApiResponseV4Base + { + public List Data { get; set; } + } + + /// + /// Per-call check-in status for the requested user. + /// + public class UserCallCheckInStatusResultData + { + /// The call identifier. + public int CallId { get; set; } + + /// Call name / nature of call. + public string CallName { get; set; } + + /// Human-readable call number. + public string CallNumber { get; set; } + + /// UTC timestamp when the call was logged. + public DateTime CallStartedOn { get; set; } + + /// True when a personnel check-in timer is active on this call. + public bool HasPersonnelTimer { get; set; } + + /// Timer interval in minutes (0 when HasPersonnelTimer is false). + public int DurationMinutes { get; set; } + + /// Warning window in minutes before the deadline (0 when HasPersonnelTimer is false). + public int WarningThresholdMinutes { get; set; } + + /// UTC timestamp of the user's last check-in on this call, or null. + public DateTime? LastCheckIn { get; set; } + + /// True when the timer has expired and the user must check in immediately. + public bool NeedsCheckIn { get; set; } + + /// + /// Minutes remaining until the next check-in is due. + /// Positive = time still available; negative = number of minutes overdue. + /// + public double MinutesRemaining { get; set; } + + /// Colour-coded status: "Green", "Warning", "Critical", or "NoTimer". + public string Status { get; set; } + } + + // ── Endpoint 2: Call personnel check-in statuses ──────────── + + /// + /// Response wrapper for . + /// + public class CallPersonnelCheckInStatusResult : StandardApiResponseV4Base + { + /// The call identifier that was queried. + public int CallId { get; set; } + + /// True when a personnel check-in timer is currently active for this call. + public bool HasActivePersonnelTimer { get; set; } + + /// Resolved timer duration in minutes (0 when HasActivePersonnelTimer is false). + public int DurationMinutes { get; set; } + + /// Warning window in minutes (0 when HasActivePersonnelTimer is false). + public int WarningThresholdMinutes { get; set; } + + public List Data { get; set; } + } + + /// + /// Per-person check-in status on a specific call. + /// + public class CallPersonnelCheckInStatusResultData + { + /// The ASP.NET Identity user identifier. + public string UserId { get; set; } + + /// The user's full display name (first + last from their profile). + public string FullName { get; set; } + + /// UTC timestamp of the user's last personnel check-in on this call, or null. + public DateTime? LastCheckIn { get; set; } + + /// True when the timer has expired and this person must check in immediately. + public bool NeedsCheckIn { get; set; } + + /// + /// Minutes remaining until the next check-in is due. + /// Positive = time still available; negative = number of minutes overdue. + /// + public double MinutesRemaining { get; set; } + + /// Colour-coded status: "Green", "Warning", or "Critical". + public string Status { get; set; } + } } diff --git a/Web/Resgrid.Web.Services/Models/v4/Configs/GetConfigResult.cs b/Web/Resgrid.Web.Services/Models/v4/Configs/GetConfigResult.cs index 32d3de797..31dcc49a8 100644 --- a/Web/Resgrid.Web.Services/Models/v4/Configs/GetConfigResult.cs +++ b/Web/Resgrid.Web.Services/Models/v4/Configs/GetConfigResult.cs @@ -57,12 +57,32 @@ public class GetConfigResultData public string LoggingKey { get; set; } /// - /// The Url for the leaflet map api + /// The Url for the rendered map tiles /// public string MapUrl { get; set; } /// - /// The Attribution for the leaflet map + /// The map provider identifier + /// + public string MapProvider { get; set; } + + /// + /// The resolved Mapbox style url for website and native clients + /// + public string MapStyleUrl { get; set; } + + /// + /// The access token for the resolved map config + /// + public string MapAccessToken { get; set; } + + /// + /// Indicates if a department-specific override is active + /// + public bool IsDepartmentMapOverride { get; set; } + + /// + /// The attribution for the rendered map /// public string MapAttribution { get; set; } diff --git a/Web/Resgrid.Web.Services/Resgrid.Web.Services.csproj b/Web/Resgrid.Web.Services/Resgrid.Web.Services.csproj index 445f41916..74a43ed63 100644 --- a/Web/Resgrid.Web.Services/Resgrid.Web.Services.csproj +++ b/Web/Resgrid.Web.Services/Resgrid.Web.Services.csproj @@ -81,6 +81,7 @@ + diff --git a/Web/Resgrid.Web.Services/Resgrid.Web.Services.xml b/Web/Resgrid.Web.Services/Resgrid.Web.Services.xml index d89ae4b7c..6138833b4 100644 --- a/Web/Resgrid.Web.Services/Resgrid.Web.Services.xml +++ b/Web/Resgrid.Web.Services/Resgrid.Web.Services.xml @@ -424,6 +424,27 @@ Enables or disables check-in timers on a call + + + Returns a check-in timer status summary for every active call (with + personnel check-in timers enabled) that has been + dispatched on. If the caller is querying a different user they must hold + the Personnel_View policy; a user may always query themselves with + just Call_View. + + + The ASP.NET Identity user identifier to look up. Must belong to the + calling user's department. + + + + + For a call that has a personnel check-in timer active, returns the + current check-in status (last check-in, time remaining, colour status) + for every person dispatched on the call. + + The call identifier to inspect. + Public endpoints for communication test responses (email confirm, voice webhook) @@ -5779,6 +5800,95 @@ User Defined Field values for this contact + + + Response wrapper for . + + + + + Per-call check-in status for the requested user. + + + + The call identifier. + + + Call name / nature of call. + + + Human-readable call number. + + + UTC timestamp when the call was logged. + + + True when a personnel check-in timer is active on this call. + + + Timer interval in minutes (0 when HasPersonnelTimer is false). + + + Warning window in minutes before the deadline (0 when HasPersonnelTimer is false). + + + UTC timestamp of the user's last check-in on this call, or null. + + + True when the timer has expired and the user must check in immediately. + + + + Minutes remaining until the next check-in is due. + Positive = time still available; negative = number of minutes overdue. + + + + Colour-coded status: "Green", "Warning", "Critical", or "NoTimer". + + + + Response wrapper for . + + + + The call identifier that was queried. + + + True when a personnel check-in timer is currently active for this call. + + + Resolved timer duration in minutes (0 when HasActivePersonnelTimer is false). + + + Warning window in minutes (0 when HasActivePersonnelTimer is false). + + + + Per-person check-in status on a specific call. + + + + The ASP.NET Identity user identifier. + + + The user's full display name (first + last from their profile). + + + UTC timestamp of the user's last personnel check-in on this call, or null. + + + True when the timer has expired and this person must check in immediately. + + + + Minutes remaining until the next check-in is due. + Positive = time still available; negative = number of minutes overdue. + + + + Colour-coded status: "Green", "Warning", or "Critical". + Result of getting all communication tests for a department @@ -5956,12 +6066,32 @@ - The Url for the leaflet map api + The Url for the rendered map tiles + + + + + The map provider identifier + + + + + The resolved Mapbox style url for website and native clients + + + + + The access token for the resolved map config + + + + + Indicates if a department-specific override is active - The Attribution for the leaflet map + The attribution for the rendered map diff --git a/Web/Resgrid.Web.Services/Startup.cs b/Web/Resgrid.Web.Services/Startup.cs index 8597c660e..18c1ef2ba 100644 --- a/Web/Resgrid.Web.Services/Startup.cs +++ b/Web/Resgrid.Web.Services/Startup.cs @@ -53,6 +53,7 @@ using System.Net.Http; using Resgrid.Providers.Messaging; using Resgrid.Web.Services; +using Twilio.AspNet.Core; namespace Resgrid.Web.ServicesCore { @@ -160,6 +161,11 @@ public void ConfigureServices(IServiceCollection services) { options.SerializerSettings.ContractResolver = new DefaultContractResolver(); }); + services.AddTwilioRequestValidation((serviceProvider, options) => + { + options.AuthToken = NumberProviderConfig.TwilioAuthToken; + options.AllowLocal = false; + }); services.AddApiVersioning(x => { @@ -673,6 +679,10 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF await next.Invoke(); }); + app.UseWhen( + context => context.Request.Path.StartsWithSegments("/api/Twilio", StringComparison.OrdinalIgnoreCase), + twilioApp => twilioApp.UseTwilioRequestValidation()); + //app.UseCors("_resgridWebsiteAllowSpecificOrigins"); // global cors policy app.UseCors(x => x diff --git a/Web/Resgrid.Web/Areas/User/Apps/README.md b/Web/Resgrid.Web/Areas/User/Apps/README.md index 55c95a3df..96ffe6855 100644 --- a/Web/Resgrid.Web/Areas/User/Apps/README.md +++ b/Web/Resgrid.Web/Areas/User/Apps/README.md @@ -1,27 +1,23 @@ # Apps -This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 14.1.0. +This package builds the Razor-hosted React custom elements used by `Resgrid.Web`. -## Development server +## Components -Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. +- `rg-map` +- `rg-shifts-calendar` +- `rg-omnibar` -## Code scaffolding +Each component is exposed as a custom element so Razor pages can render it directly and pass values through HTML attributes or DOM properties. -Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. +## Development -## Build - -Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. - -## Running unit tests +Run `npm install` to restore dependencies. -Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). +Run `npm run watch` to rebuild the element bundles on changes. -## Running end-to-end tests - -Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. +## Build -## Further help +Run `npm run build` to produce the production-ready assets in `dist\core`. -To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. +`Resgrid.Web.csproj` copies those files into `wwwroot\js\ng`, where the Razor layout loads them as ES modules. diff --git a/Web/Resgrid.Web/Areas/User/Apps/package-lock.json b/Web/Resgrid.Web/Areas/User/Apps/package-lock.json index 6808778ba..38a5974a0 100644 --- a/Web/Resgrid.Web/Areas/User/Apps/package-lock.json +++ b/Web/Resgrid.Web/Areas/User/Apps/package-lock.json @@ -8,50 +8,24 @@ "name": "apps", "version": "0.0.0", "dependencies": { - "@angular/animations": "~17.1.0", - "@angular/cdk": "~17.1.0", - "@angular/common": "~17.1.0", - "@angular/compiler": "~17.1.0", - "@angular/core": "~17.1.0", - "@angular/elements": "~17.1.0", - "@angular/forms": "~17.1.0", - "@angular/platform-browser": "~17.1.0", - "@angular/platform-browser-dynamic": "~17.1.0", - "@angular/router": "~17.1.0", - "@microsoft/signalr": "5.0.10", - "@resgrid/ngx-resgridlib": "~1.3.35", - "@types/geojson": "^7946.0.10", - "angular-calendar": "^0.29.0", - "date-fns": "^2.29.1", - "rxjs": "~6.6.0", - "tslib": "^2.0.0", - "zone.js": "~0.14.0" + "@microsoft/signalr": "^8.0.7", + "@types/geojson": "^7946.0.16", + "date-fns": "^2.30.0", + "leaflet": "^1.9.4", + "mapbox-gl": "^3.22.0", + "react": "^18.3.1", + "react-big-calendar": "^1.16.3", + "react-dom": "^18.3.1" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.1.0", - "@angular/cli": "^17.1.0", - "@angular/compiler-cli": "~17.1.0", - "@semantic-release/git": "^10.0.0", - "@semantic-release/gitlab": "^13.0.2", - "@semantic-release/npm": "^11.0.2", - "@types/googlemaps": "^3.43.3", - "@types/jasmine": "~3.6.0", - "@types/node": "^12.11.1", - "codelyzer": "^6.0.2", - "jasmine-core": "~3.8.0", - "jasmine-spec-reporter": "~5.0.0", - "karma": "~6.3.4", - "karma-chrome-launcher": "~3.1.0", - "karma-coverage": "~2.0.3", - "karma-jasmine": "~4.0.0", - "karma-jasmine-html-reporter": "^1.5.0", - "ng-packagr": "^17.1.1", - "protractor": "^7.0.0", - "rimraf": "^3.0.2", - "semantic-release": "^23.0.0", - "ts-node": "~8.3.0", - "tslint": "~6.1.0", - "typescript": "~5.2.0" + "@types/leaflet": "^1.9.15", + "@types/node": "^20.16.11", + "@types/react": "^18.3.12", + "@types/react-big-calendar": "^1.16.1", + "@types/react-dom": "^18.3.1", + "@vitejs/plugin-react": "^4.3.3", + "typescript": "^5.6.3", + "vite": "^5.4.10" } }, "node_modules/@ampproject/remapping": { @@ -59,6 +33,7 @@ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, + "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -67,18487 +42,1243 @@ "node": ">=6.0.0" } }, - "node_modules/@angular-devkit/architect": { - "version": "0.1703.12", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.12.tgz", - "integrity": "sha512-om4N+fhcVc9bUgeT7vVdyXMNvnLdMzfq+g36viHxwUdXlfah31xqEj/iR1mGRztBJcJTw8XeOnkTNQdgDf0qhQ==", + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/core": "17.3.12", - "rxjs": "7.8.1" + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": ">=6.9.0" } }, - "node_modules/@angular-devkit/architect/node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "node_modules/@babel/compat-data": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", "dev": true, - "dependencies": { - "tslib": "^2.1.0" + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@angular-devkit/build-angular": { - "version": "17.3.12", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.3.12.tgz", - "integrity": "sha512-ieisBCeqKkYNqcX2WUr7oX2ABqalXt04EaWpfVvPmtaUCWlE8Uwnx8pQrPQdE8n+3Y0EK63AcdkGrcQ+3k7XGA==", + "node_modules/@babel/core": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", "dev": true, + "peer": true, "dependencies": { - "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1703.12", - "@angular-devkit/build-webpack": "0.1703.12", - "@angular-devkit/core": "17.3.12", - "@babel/core": "7.24.0", - "@babel/generator": "7.23.6", - "@babel/helper-annotate-as-pure": "7.22.5", - "@babel/helper-split-export-declaration": "7.22.6", - "@babel/plugin-transform-async-generator-functions": "7.23.9", - "@babel/plugin-transform-async-to-generator": "7.23.3", - "@babel/plugin-transform-runtime": "7.24.0", - "@babel/preset-env": "7.24.0", - "@babel/runtime": "7.24.0", - "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "17.3.12", - "@vitejs/plugin-basic-ssl": "1.1.0", - "ansi-colors": "4.1.3", - "autoprefixer": "10.4.18", - "babel-loader": "9.1.3", - "babel-plugin-istanbul": "6.1.1", - "browserslist": "^4.21.5", - "copy-webpack-plugin": "11.0.0", - "critters": "0.0.22", - "css-loader": "6.10.0", - "esbuild-wasm": "0.20.1", - "fast-glob": "3.3.2", - "http-proxy-middleware": "2.0.7", - "https-proxy-agent": "7.0.4", - "inquirer": "9.2.15", - "jsonc-parser": "3.2.1", - "karma-source-map-support": "1.4.0", - "less": "4.2.0", - "less-loader": "11.1.0", - "license-webpack-plugin": "4.0.2", - "loader-utils": "3.2.1", - "magic-string": "0.30.8", - "mini-css-extract-plugin": "2.8.1", - "mrmime": "2.0.0", - "open": "8.4.2", - "ora": "5.4.1", - "parse5-html-rewriting-stream": "7.0.0", - "picomatch": "4.0.1", - "piscina": "4.4.0", - "postcss": "8.4.35", - "postcss-loader": "8.1.1", - "resolve-url-loader": "5.0.0", - "rxjs": "7.8.1", - "sass": "1.71.1", - "sass-loader": "14.1.1", - "semver": "7.6.0", - "source-map-loader": "5.0.0", - "source-map-support": "0.5.21", - "terser": "5.29.1", - "tree-kill": "1.2.2", - "tslib": "2.6.2", - "undici": "6.11.1", - "vite": "5.4.14", - "watchpack": "2.4.0", - "webpack": "5.94.0", - "webpack-dev-middleware": "6.1.2", - "webpack-dev-server": "4.15.1", - "webpack-merge": "5.10.0", - "webpack-subresource-integrity": "5.1.0" + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "optionalDependencies": { - "esbuild": "0.20.1" - }, - "peerDependencies": { - "@angular/compiler-cli": "^17.0.0", - "@angular/localize": "^17.0.0", - "@angular/platform-server": "^17.0.0", - "@angular/service-worker": "^17.0.0", - "@web/test-runner": "^0.18.0", - "browser-sync": "^3.0.2", - "jest": "^29.5.0", - "jest-environment-jsdom": "^29.5.0", - "karma": "^6.3.0", - "ng-packagr": "^17.0.0", - "protractor": "^7.0.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.2 <5.5" + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "@angular/localize": { - "optional": true - }, - "@angular/platform-server": { - "optional": true - }, - "@angular/service-worker": { - "optional": true - }, - "@web/test-runner": { - "optional": true - }, - "browser-sync": { - "optional": true - }, - "jest": { - "optional": true - }, - "jest-environment-jsdom": { - "optional": true - }, - "karma": { - "optional": true - }, - "ng-packagr": { - "optional": true - }, - "protractor": { - "optional": true - }, - "tailwindcss": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" + "peer": true + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dev": true, - "optional": true, - "os": [ - "android" - ], + "peer": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", "dev": true, - "optional": true, - "os": [ - "android" - ], + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", "dev": true, - "optional": true, - "os": [ - "darwin" - ], + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", "dev": true, - "optional": true, - "os": [ - "darwin" - ], + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", "dev": true, - "optional": true, - "os": [ - "freebsd" - ], + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], + "node_modules/@babel/helper-plugin-utils": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", "dev": true, - "optional": true, - "os": [ - "freebsd" - ], + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], + "node_modules/@babel/helpers": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], + "node_modules/@babel/parser": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, "engines": { - "node": ">=12" + "node": ">=6.0.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "node_modules/@babel/runtime": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", + "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], + "node_modules/@babel/traverse": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", "dev": true, - "optional": true, - "os": [ - "netbsd" - ], + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", "dev": true, - "optional": true, - "os": [ - "openbsd" - ], + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], + "node_modules/@babel/traverse/node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, - "optional": true, - "os": [ - "sunos" - ], + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, "engines": { - "node": ">=12" + "node": ">=6" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", "dev": true, - "optional": true, - "os": [ - "win32" - ], + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "optional": true, - "os": [ - "win32" - ], "engines": { - "node": ">=12" + "node": ">=6.0.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@types/node": { - "version": "22.13.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz", - "integrity": "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==", + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "dev": true, "optional": true, "peer": true, "dependencies": { - "undici-types": "~6.20.0" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@vitejs/plugin-basic-ssl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", - "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", - "dev": true, - "engines": { - "node": ">=14.6.0" - }, - "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" - } + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true }, - "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, + "license": "MIT", "dependencies": { - "tslib": "^2.1.0" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@angular-devkit/build-angular/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true + "node_modules/@mapbox/mapbox-gl-supported": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-3.0.0.tgz", + "integrity": "sha512-2XghOwu16ZwPJLOFVuIOaLbN0iKMn867evzXFyf0P22dqugezfJwLmdanAgU25ITvz1TvOfVP4jsDImlDJzcWg==", + "license": "BSD-3-Clause" }, - "node_modules/@angular-devkit/build-angular/node_modules/vite": { - "version": "5.4.14", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz", - "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==", - "dev": true, + "node_modules/@mapbox/point-geometry": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-1.1.0.tgz", + "integrity": "sha512-YGcBz1cg4ATXDCM/71L9xveh4dynfGmcLDqufR+nQQy3fKwsAZsWd/x4621/6uJaeB9mwOHE6hPeDgXz9uViUQ==", + "license": "ISC" + }, + "node_modules/@mapbox/tiny-sdf": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.1.0.tgz", + "integrity": "sha512-uFJhNh36BR4OCuWIEiWaEix9CA2WzT6CAIcqVjWYpnx8+QDtS+oC4QehRrx5cX4mgWs37MmKnwUejeHxVymzNg==", + "license": "BSD-2-Clause" + }, + "node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==", + "license": "BSD-2-Clause" + }, + "node_modules/@mapbox/vector-tile": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-2.0.4.tgz", + "integrity": "sha512-AkOLcbgGTdXScosBWwmmD7cDlvOjkg/DetGva26pIRiZPdeJYjYKarIlb4uxVzi6bwHO6EWH82eZ5Nuv4T5DUg==", + "license": "BSD-3-Clause", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.1703.12", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1703.12.tgz", - "integrity": "sha512-ASMOVD2dXIw+y7zZs5YgNn1qWG8Idwu48Q3S48j1vskT6nA16pNnnLQ/inDkbFN65UJHljWfq4BiDFF7U9b7vQ==", - "dev": true, - "dependencies": { - "@angular-devkit/architect": "0.1703.12", - "rxjs": "7.8.1" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "webpack": "^5.30.0", - "webpack-dev-server": "^4.0.0" - } - }, - "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@angular-devkit/core": { - "version": "17.3.12", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.12.tgz", - "integrity": "sha512-U2Jf9McxLabY8JhFbXIXs6vTDCwZXb0xEZM0+2Q+uWBh7tUg8CwNZq55lQu69kpnUVVbCRMSkpSLGj4eQ+Llig==", - "dev": true, - "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.1", - "picomatch": "4.0.1", - "rxjs": "7.8.1", - "source-map": "0.7.4" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/core/node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@angular-devkit/schematics": { - "version": "17.3.12", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.3.12.tgz", - "integrity": "sha512-L45NYfIUcBMFQZksHCjKv73//oAEl3cUHIJ7fBe5SyuLHmFXq6Au8s8tZnmFZfVwPPbZ5m3MH2hPW84Dd8ilQA==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "17.3.12", - "jsonc-parser": "3.2.1", - "magic-string": "0.30.8", - "ora": "5.4.1", - "rxjs": "7.8.1" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/schematics/node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@angular/animations": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.1.3.tgz", - "integrity": "sha512-AS9CHOjjKqkuAzlKEMJfAkZfkIdSoagB3D8HwvH+ZHo6GVJc9KbtLQn/okNijFK+Fg7QK/hYbQ3lJhjgk0GQDA==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0" - }, - "peerDependencies": { - "@angular/core": "17.1.3" - } - }, - "node_modules/@angular/cdk": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.1.2.tgz", - "integrity": "sha512-eu9D60RQv213qi7oh6ae9Z+d6+AG/aqi0y70Ag9BjwqTiatDiYvSySxswxYYKdzPp0hx0ZUTGi16LqtT6pyj6Q==", - "dependencies": { - "tslib": "^2.3.0" - }, - "optionalDependencies": { - "parse5": "^7.1.2" - }, - "peerDependencies": { - "@angular/common": "^17.0.0 || ^18.0.0", - "@angular/core": "^17.0.0 || ^18.0.0", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/cli": { - "version": "17.3.12", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.3.12.tgz", - "integrity": "sha512-9gTaK+E+gZx83dc9O8sn4K/1ZnsQXbQvSQla5yn/02VroMwHJLkniXWjyN4rhx1C0nye4Q2SXgaiQdYq0wUYDA==", - "dev": true, - "dependencies": { - "@angular-devkit/architect": "0.1703.12", - "@angular-devkit/core": "17.3.12", - "@angular-devkit/schematics": "17.3.12", - "@schematics/angular": "17.3.12", - "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.3", - "ini": "4.1.2", - "inquirer": "9.2.15", - "jsonc-parser": "3.2.1", - "npm-package-arg": "11.0.1", - "npm-pick-manifest": "9.0.0", - "open": "8.4.2", - "ora": "5.4.1", - "pacote": "17.0.6", - "resolve": "1.22.8", - "semver": "7.6.0", - "symbol-observable": "4.0.0", - "yargs": "17.7.2" - }, - "bin": { - "ng": "bin/ng.js" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular/common": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.1.3.tgz", - "integrity": "sha512-AzLzoNSeRSNGBQk0K+iG0XdYG36SDeJqYqE8rfoiWuv1NDFLL05UJM2/fQfaMNg0oX5bHOlHUqHFj3sFR/NVpw==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0" - }, - "peerDependencies": { - "@angular/core": "17.1.3", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/compiler": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.1.3.tgz", - "integrity": "sha512-k/s21gPPKStxVOLr6l4Y145OIxyBY7BhTPVOl/qEAgE+IcZ9vkiA8dYl8yjL884Kl1ZKPmFA3AofMJjWjZGNag==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0" - }, - "peerDependencies": { - "@angular/core": "17.1.3" - }, - "peerDependenciesMeta": { - "@angular/core": { - "optional": true - } - } - }, - "node_modules/@angular/compiler-cli": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.1.3.tgz", - "integrity": "sha512-bNDHXo3Twub0BZK9OmXly+0REs0RuR1SUXlTAeq+0XubCvnBDvpg9peL7UTTGS5YRo9sUTBnR6faSUA1F5objQ==", - "dev": true, - "dependencies": { - "@babel/core": "7.23.2", - "@jridgewell/sourcemap-codec": "^1.4.14", - "chokidar": "^3.0.0", - "convert-source-map": "^1.5.1", - "reflect-metadata": "^0.1.2", - "semver": "^7.0.0", - "tslib": "^2.3.0", - "yargs": "^17.2.1" - }, - "bin": { - "ng-xi18n": "bundles/src/bin/ng_xi18n.js", - "ngc": "bundles/src/bin/ngc.js", - "ngcc": "bundles/ngcc/index.js" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0" - }, - "peerDependencies": { - "@angular/compiler": "17.1.3", - "typescript": ">=5.2 <5.4" - } - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", - "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@angular/core": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.1.3.tgz", - "integrity": "sha512-2lZ4DRHN8KJ/aQads+YXIcx5Ri9yyeFIlw69m5Pn7wAi/+Rakg7IsclgLaWs7aBtWwMHG7LnqFKxAVq7CjXKtA==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0" - }, - "peerDependencies": { - "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.14.0" - } - }, - "node_modules/@angular/elements": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/elements/-/elements-17.1.3.tgz", - "integrity": "sha512-q2JCogiHFB7Ac3IpiQGIUNF7ZDM5t/fF7xlDFvTLto7HHCb0g8y4erzmUmV+QRKX0YKedo5QAkd8w9TFlJ4ecA==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0" - }, - "peerDependencies": { - "@angular/core": "17.1.3", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/forms": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.1.3.tgz", - "integrity": "sha512-aNa0jGLT5d+hnKVrSo8tk3TRo/NLNu1RxLNx8RhIczKAeCK3eD8SvTMy27iJtyXmNG2GWN7QPiDeGepd75nbxQ==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0" - }, - "peerDependencies": { - "@angular/common": "17.1.3", - "@angular/core": "17.1.3", - "@angular/platform-browser": "17.1.3", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/platform-browser": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.1.3.tgz", - "integrity": "sha512-onPCvdk9f/6OhOo2zP6nfGKpzLma1QIxpFqD3jymbmIJTcVMOOQDMYW3eLtY+uSX8ribcJ7GQcbDGIM4rliTFg==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0" - }, - "peerDependencies": { - "@angular/animations": "17.1.3", - "@angular/common": "17.1.3", - "@angular/core": "17.1.3" - }, - "peerDependenciesMeta": { - "@angular/animations": { - "optional": true - } - } - }, - "node_modules/@angular/platform-browser-dynamic": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.1.3.tgz", - "integrity": "sha512-0lFhcFJfDzCSSVe8l8OY+UgUiwUwcbxwpvLod3XWBpf1iEUlr5720FIMA3VJYwpW3Oj4Uey3nVm13EMtRqpqdA==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0" - }, - "peerDependencies": { - "@angular/common": "17.1.3", - "@angular/compiler": "17.1.3", - "@angular/core": "17.1.3", - "@angular/platform-browser": "17.1.3" - } - }, - "node_modules/@angular/router": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.1.3.tgz", - "integrity": "sha512-6HigdtFjm+76UU2hiLGLE2SpOecQhD6TnAVTocDuRitpN5m0dyiffBrqxarfNwoZuMdIiXyqClJR4JRo1rJjoQ==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0" - }, - "peerDependencies": { - "@angular/common": "17.1.3", - "@angular/core": "17.1.3", - "@angular/platform-browser": "17.1.3", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", - "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", - "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.0", - "@babel/parser": "^7.24.0", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", - "@babel/types": "^7.24.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", - "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.26.5", - "@babel/helper-validator-option": "^7.25.9", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.26.9.tgz", - "integrity": "sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/helper-replace-supers": "^7.26.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/traverse": "^7.26.9", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", - "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "regexpu-core": "^6.2.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", - "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", - "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", - "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", - "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", - "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", - "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-wrap-function": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", - "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", - "dev": true, - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", - "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", - "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", - "dev": true, - "dependencies": { - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.9.tgz", - "integrity": "sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==", - "dev": true, - "dependencies": { - "@babel/template": "^7.26.9", - "@babel/types": "^7.26.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz", - "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", - "dev": true, - "dependencies": { - "@babel/types": "^7.26.9" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", - "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", - "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", - "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", - "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", - "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", - "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", - "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", - "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", - "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", - "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", - "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/traverse": "^7.25.9", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", - "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/template": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", - "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", - "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", - "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", - "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", - "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", - "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz", - "integrity": "sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", - "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", - "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", - "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", - "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", - "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", - "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", - "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", - "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", - "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", - "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.26.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", - "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", - "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", - "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", - "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", - "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", - "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", - "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", - "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", - "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", - "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", - "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.0.tgz", - "integrity": "sha512-zc0GA5IitLKJrSfXlXmp8KDqLrnGECK7YRfQBmEKg1NmBOQ7e+KuclBEKJgzifQeUYLdNiAw4B4bjyvzWVLiSA==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0", - "babel-plugin-polyfill-corejs2": "^0.4.8", - "babel-plugin-polyfill-corejs3": "^0.9.0", - "babel-plugin-polyfill-regenerator": "^0.5.5", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", - "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", - "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", - "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz", - "integrity": "sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.26.7.tgz", - "integrity": "sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", - "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", - "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", - "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", - "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz", - "integrity": "sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.23.3", - "@babel/plugin-syntax-import-attributes": "^7.23.3", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.9", - "@babel/plugin-transform-async-to-generator": "^7.23.3", - "@babel/plugin-transform-block-scoped-functions": "^7.23.3", - "@babel/plugin-transform-block-scoping": "^7.23.4", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-class-static-block": "^7.23.4", - "@babel/plugin-transform-classes": "^7.23.8", - "@babel/plugin-transform-computed-properties": "^7.23.3", - "@babel/plugin-transform-destructuring": "^7.23.3", - "@babel/plugin-transform-dotall-regex": "^7.23.3", - "@babel/plugin-transform-duplicate-keys": "^7.23.3", - "@babel/plugin-transform-dynamic-import": "^7.23.4", - "@babel/plugin-transform-exponentiation-operator": "^7.23.3", - "@babel/plugin-transform-export-namespace-from": "^7.23.4", - "@babel/plugin-transform-for-of": "^7.23.6", - "@babel/plugin-transform-function-name": "^7.23.3", - "@babel/plugin-transform-json-strings": "^7.23.4", - "@babel/plugin-transform-literals": "^7.23.3", - "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", - "@babel/plugin-transform-member-expression-literals": "^7.23.3", - "@babel/plugin-transform-modules-amd": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.9", - "@babel/plugin-transform-modules-umd": "^7.23.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.23.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", - "@babel/plugin-transform-numeric-separator": "^7.23.4", - "@babel/plugin-transform-object-rest-spread": "^7.24.0", - "@babel/plugin-transform-object-super": "^7.23.3", - "@babel/plugin-transform-optional-catch-binding": "^7.23.4", - "@babel/plugin-transform-optional-chaining": "^7.23.4", - "@babel/plugin-transform-parameters": "^7.23.3", - "@babel/plugin-transform-private-methods": "^7.23.3", - "@babel/plugin-transform-private-property-in-object": "^7.23.4", - "@babel/plugin-transform-property-literals": "^7.23.3", - "@babel/plugin-transform-regenerator": "^7.23.3", - "@babel/plugin-transform-reserved-words": "^7.23.3", - "@babel/plugin-transform-shorthand-properties": "^7.23.3", - "@babel/plugin-transform-spread": "^7.23.3", - "@babel/plugin-transform-sticky-regex": "^7.23.3", - "@babel/plugin-transform-template-literals": "^7.23.3", - "@babel/plugin-transform-typeof-symbol": "^7.23.3", - "@babel/plugin-transform-unicode-escapes": "^7.23.3", - "@babel/plugin-transform-unicode-property-regex": "^7.23.3", - "@babel/plugin-transform-unicode-regex": "^7.23.3", - "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.8", - "babel-plugin-polyfill-corejs3": "^0.9.0", - "babel-plugin-polyfill-regenerator": "^0.5.5", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", - "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", - "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/parser": "^7.26.9", - "@babel/types": "^7.26.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz", - "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.9", - "@babel/parser": "^7.26.9", - "@babel/template": "^7.26.9", - "@babel/types": "^7.26.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", - "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.26.9", - "@babel/types": "^7.26.9", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/types": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz", - "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bufbuild/protobuf": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-1.10.0.tgz", - "integrity": "sha512-QDdVFLoN93Zjg36NoQPZfsVH9tZew7wKDKyV5qRdj8ntT4wQCOradQjRaTdwMhWUYsgKsvCINKKm87FdEk96Ag==" - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.1.tgz", - "integrity": "sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.1.tgz", - "integrity": "sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.1.tgz", - "integrity": "sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.1.tgz", - "integrity": "sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.1.tgz", - "integrity": "sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.1.tgz", - "integrity": "sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.1.tgz", - "integrity": "sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.1.tgz", - "integrity": "sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.1.tgz", - "integrity": "sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.1.tgz", - "integrity": "sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.1.tgz", - "integrity": "sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.1.tgz", - "integrity": "sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.1.tgz", - "integrity": "sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.1.tgz", - "integrity": "sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.1.tgz", - "integrity": "sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.1.tgz", - "integrity": "sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.1.tgz", - "integrity": "sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.1.tgz", - "integrity": "sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.1.tgz", - "integrity": "sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.1.tgz", - "integrity": "sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.1.tgz", - "integrity": "sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.1.tgz", - "integrity": "sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.1.tgz", - "integrity": "sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", - "dev": true - }, - "node_modules/@livekit/mutex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@livekit/mutex/-/mutex-1.1.1.tgz", - "integrity": "sha512-EsshAucklmpuUAfkABPxJNhzj9v2sG7JuzFDL4ML1oJQSV14sqrpTYnsaOudMAw9yOaW53NU3QQTlUQoRs4czw==" - }, - "node_modules/@livekit/protocol": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/@livekit/protocol/-/protocol-1.33.0.tgz", - "integrity": "sha512-361mBlFgI3nvn8oSQIL38gDUBGbOSwsEOqPgX0c1Jwz75/sD/TTvPeAM4zAz6OrV5Q4vI4Ruswecnyv5SG4oig==", - "dependencies": { - "@bufbuild/protobuf": "^1.10.0" - } - }, - "node_modules/@ljharb/through": { - "version": "2.3.14", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.14.tgz", - "integrity": "sha512-ajBvlKpWucBB17FuQYUShqpqy8GRgYEpJW0vWJbUu1CV9lWyrDCapy0lScU8T8Z6qn49sSwJB3+M+evYIdGg+A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.8" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/@mattlewis92/dom-autoscroller": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@mattlewis92/dom-autoscroller/-/dom-autoscroller-2.4.2.tgz", - "integrity": "sha512-YbrUWREPGEjE/FU6foXcAT1YbVwqD/jkYnY1dFb0o4AxtP3s4xKBthlELjndZih8uwsDWgQZx1eNskRNe2BgZQ==" - }, - "node_modules/@microsoft/signalr": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@microsoft/signalr/-/signalr-5.0.10.tgz", - "integrity": "sha512-7jg6s/cmULyeVvt5/bTB4N9T30HvAF1S06hL+nPcQMODXcclRo34Zcli/dfTLR8lCX31/cVEOmVgxXBOVRQ+Dw==", - "dependencies": { - "abort-controller": "^3.0.0", - "eventsource": "^1.0.7", - "fetch-cookie": "^0.7.3", - "node-fetch": "^2.6.0", - "ws": "^6.0.0" - } - }, - "node_modules/@ngtools/webpack": { - "version": "17.3.12", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.12.tgz", - "integrity": "sha512-zFFFpcYsqKWdQNNKNZZIouaJco5LQ6sIFxnrG1tbn6sApFWWKRiDS3mguWdyZfD1R4yD4ZaZApGdWhfwJLuM0w==", - "dev": true, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^17.0.0", - "typescript": ">=5.2 <5.5", - "webpack": "^5.54.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/agent": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", - "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", - "dev": true, - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.3" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/agent/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true - }, - "node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", - "dev": true, - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz", - "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", - "dev": true, - "dependencies": { - "@npmcli/promise-spawn": "^7.0.0", - "ini": "^4.1.3", - "lru-cache": "^10.0.1", - "npm-pick-manifest": "^9.0.0", - "proc-log": "^4.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git/node_modules/ini": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", - "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true - }, - "node_modules/@npmcli/git/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/installed-package-contents": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", - "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", - "dev": true, - "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "bin": { - "installed-package-contents": "bin/index.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/node-gyp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", - "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/package-json": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.1.tgz", - "integrity": "sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==", - "dev": true, - "dependencies": { - "@npmcli/git": "^5.0.0", - "glob": "^10.2.2", - "hosted-git-info": "^7.0.0", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "proc-log": "^4.0.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/package-json/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@npmcli/package-json/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@npmcli/package-json/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@npmcli/package-json/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/promise-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", - "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", - "dev": true, - "dependencies": { - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/promise-spawn/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/redact": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-1.1.0.tgz", - "integrity": "sha512-PfnWuOkQgu7gCbnSsAisaX7hKOdZ4wSAhAzH3/ph5dSGau52kCRrMMGbiSQLwyTZpgldkZ49b0brkOr1AzGBHQ==", - "dev": true, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/run-script": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.4.tgz", - "integrity": "sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==", - "dev": true, - "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.0.0", - "@npmcli/promise-spawn": "^7.0.0", - "node-gyp": "^10.0.0", - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/run-script/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/@npmcli/run-script/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, - "node_modules/@octokit/auth-token": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.2.tgz", - "integrity": "sha512-JcQDsBdg49Yky2w2ld20IHAlwr8d/d8N6NiOXbtuoPCqzbsiJgF633mVUw3x4mo0H5ypataQIX7SFu3yy44Mpw==", - "dev": true, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/core": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.4.tgz", - "integrity": "sha512-lAS9k7d6I0MPN+gb9bKDt7X8SdxknYqAMh44S5L+lNqIN2NuV8nvv3g8rPp7MuRxcOpxpUIATWprO0C34a8Qmg==", - "dev": true, - "dependencies": { - "@octokit/auth-token": "^5.0.0", - "@octokit/graphql": "^8.1.2", - "@octokit/request": "^9.2.1", - "@octokit/request-error": "^6.1.7", - "@octokit/types": "^13.6.2", - "before-after-hook": "^3.0.2", - "universal-user-agent": "^7.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/endpoint": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.3.tgz", - "integrity": "sha512-nBRBMpKPhQUxCsQQeW+rCJ/OPSMcj3g0nfHn01zGYZXuNDvvXudF/TYY6APj5THlurerpFN4a/dQAIAaM6BYhA==", - "dev": true, - "dependencies": { - "@octokit/types": "^13.6.2", - "universal-user-agent": "^7.0.2" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/graphql": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.2.1.tgz", - "integrity": "sha512-n57hXtOoHrhwTWdvhVkdJHdhTv0JstjDbDRhJfwIRNfFqmSo1DaK/mD2syoNUoLCyqSjBpGAKOG0BuwF392slw==", - "dev": true, - "dependencies": { - "@octokit/request": "^9.2.2", - "@octokit/types": "^13.8.0", - "universal-user-agent": "^7.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/openapi-types": { - "version": "23.0.1", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-23.0.1.tgz", - "integrity": "sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==", - "dev": true - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "11.4.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.3.tgz", - "integrity": "sha512-tBXaAbXkqVJlRoA/zQVe9mUdb8rScmivqtpv3ovsC5xhje/a+NOCivs7eUhWBwCApJVsR4G5HMeaLbq7PxqZGA==", - "dev": true, - "dependencies": { - "@octokit/types": "^13.7.0" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": ">=6" - } - }, - "node_modules/@octokit/plugin-retry": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-7.1.4.tgz", - "integrity": "sha512-7AIP4p9TttKN7ctygG4BtR7rrB0anZqoU9ThXFk8nETqIfvgPUANTSYHqWYknK7W3isw59LpZeLI8pcEwiJdRg==", - "dev": true, - "dependencies": { - "@octokit/request-error": "^6.1.7", - "@octokit/types": "^13.6.2", - "bottleneck": "^2.15.3" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": ">=6" - } - }, - "node_modules/@octokit/plugin-throttling": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-9.4.0.tgz", - "integrity": "sha512-IOlXxXhZA4Z3m0EEYtrrACkuHiArHLZ3CvqWwOez/pURNqRuwfoFlTPbN5Muf28pzFuztxPyiUiNwz8KctdZaQ==", - "dev": true, - "dependencies": { - "@octokit/types": "^13.7.0", - "bottleneck": "^2.15.3" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": "^6.1.3" - } - }, - "node_modules/@octokit/request": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.2.2.tgz", - "integrity": "sha512-dZl0ZHx6gOQGcffgm1/Sf6JfEpmh34v3Af2Uci02vzUYz6qEN6zepoRtmybWXIGXFIK8K9ylE3b+duCWqhArtg==", - "dev": true, - "dependencies": { - "@octokit/endpoint": "^10.1.3", - "@octokit/request-error": "^6.1.7", - "@octokit/types": "^13.6.2", - "fast-content-type-parse": "^2.0.0", - "universal-user-agent": "^7.0.2" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/request-error": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.7.tgz", - "integrity": "sha512-69NIppAwaauwZv6aOzb+VVLwt+0havz9GT5YplkeJv7fG7a40qpLt/yZKyiDxAhgz0EtgNdNcb96Z0u+Zyuy2g==", - "dev": true, - "dependencies": { - "@octokit/types": "^13.6.2" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/types": { - "version": "13.8.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.8.0.tgz", - "integrity": "sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==", - "dev": true, - "dependencies": { - "@octokit/openapi-types": "^23.0.1" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@pnpm/config.env-replace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", - "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", - "dev": true, - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", - "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", - "dev": true, - "dependencies": { - "graceful-fs": "4.2.10" - }, - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "node_modules/@pnpm/npm-conf": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", - "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", - "dev": true, - "dependencies": { - "@pnpm/config.env-replace": "^1.1.0", - "@pnpm/network.ca-file": "^1.0.1", - "config-chain": "^1.1.11" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@resgrid/ngx-resgridlib": { - "version": "1.3.35", - "resolved": "https://registry.npmjs.org/@resgrid/ngx-resgridlib/-/ngx-resgridlib-1.3.35.tgz", - "integrity": "sha512-UrzYXlauSfI1vNua9hIsuV4n2EVMfX1NaZFUu/jWYoJ2/mZqeb62VGrzxss7YmgWIRKmj4U32RgngAU1dLHiQQ==", - "dependencies": { - "@microsoft/signalr": "^5.0.0 || ^6.0.0 || ^7.0.0", - "angular-svg-icon": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0", - "jwt-decode": "^3.1.2", - "leaflet": "^1.7.1", - "livekit-client": "^2.0.2", - "lodash": "^4.17.21", - "tslib": "^2.0.0" - }, - "peerDependencies": { - "@angular/common": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0", - "@angular/core": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0", - "@angular/platform-browser": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0", - "@angular/platform-browser-dynamic": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0", - "@microsoft/signalr": "^5.0.0 || ^6.0.0 || ^7.0.0", - "angular-svg-icon": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0", - "jwt-decode": "^3.1.2", - "livekit-client": "^2.0.2", - "lodash": "^4.17.21", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@rollup/plugin-json": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", - "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^5.1.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz", - "integrity": "sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.78.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", - "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", - "dev": true, - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.35.0.tgz", - "integrity": "sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.35.0.tgz", - "integrity": "sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.35.0.tgz", - "integrity": "sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.35.0.tgz", - "integrity": "sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.35.0.tgz", - "integrity": "sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.35.0.tgz", - "integrity": "sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.35.0.tgz", - "integrity": "sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.35.0.tgz", - "integrity": "sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.35.0.tgz", - "integrity": "sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.35.0.tgz", - "integrity": "sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.35.0.tgz", - "integrity": "sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.35.0.tgz", - "integrity": "sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.35.0.tgz", - "integrity": "sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.35.0.tgz", - "integrity": "sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.35.0.tgz", - "integrity": "sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.35.0.tgz", - "integrity": "sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.35.0.tgz", - "integrity": "sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.35.0.tgz", - "integrity": "sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.35.0.tgz", - "integrity": "sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/wasm-node": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.35.0.tgz", - "integrity": "sha512-mVs1GGfgeDCcMCFN5FystW0B5XjwhARAnomDBm2wTITTAioNr+YrUJ4UPjV33iXiLH1xAKWuUo30Od5HzrfQyA==", - "dev": true, - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/@scarf/scarf": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.4.0.tgz", - "integrity": "sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==", - "hasInstallScript": true - }, - "node_modules/@schematics/angular": { - "version": "17.3.12", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.3.12.tgz", - "integrity": "sha512-fGFoyq1pEzwtpqHi//erd5nO9KPMmEYTM0oF+XrybNAvm84B2iVSWNm+8uozmEy4QgYuayKzGnGK3NlprC/8rQ==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "17.3.12", - "@angular-devkit/schematics": "17.3.12", - "jsonc-parser": "3.2.1" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@sec-ant/readable-stream": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", - "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", - "dev": true - }, - "node_modules/@semantic-release/commit-analyzer": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-12.0.0.tgz", - "integrity": "sha512-qG+md5gdes+xa8zP7lIo1fWE17zRdO8yMCaxh9lyL65TQleoSv8WHHOqRURfghTytUh+NpkSyBprQ5hrkxOKVQ==", - "dev": true, - "dependencies": { - "conventional-changelog-angular": "^7.0.0", - "conventional-commits-filter": "^4.0.0", - "conventional-commits-parser": "^5.0.0", - "debug": "^4.0.0", - "import-from-esm": "^1.0.3", - "lodash-es": "^4.17.21", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=20.8.1" - }, - "peerDependencies": { - "semantic-release": ">=20.1.0" - } - }, - "node_modules/@semantic-release/error": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz", - "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==", - "dev": true, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/@semantic-release/git": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz", - "integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==", - "dev": true, - "dependencies": { - "@semantic-release/error": "^3.0.0", - "aggregate-error": "^3.0.0", - "debug": "^4.0.0", - "dir-glob": "^3.0.0", - "execa": "^5.0.0", - "lodash": "^4.17.4", - "micromatch": "^4.0.0", - "p-reduce": "^2.0.0" - }, - "engines": { - "node": ">=14.17" - }, - "peerDependencies": { - "semantic-release": ">=18.0.0" - } - }, - "node_modules/@semantic-release/github": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-10.3.5.tgz", - "integrity": "sha512-svvRglGmvqvxjmDgkXhrjf0lC88oZowFhOfifTldbgX9Dzj0inEtMLaC+3/MkDEmxmaQjWmF5Q/0CMIvPNSVdQ==", - "dev": true, - "dependencies": { - "@octokit/core": "^6.0.0", - "@octokit/plugin-paginate-rest": "^11.0.0", - "@octokit/plugin-retry": "^7.0.0", - "@octokit/plugin-throttling": "^9.0.0", - "@semantic-release/error": "^4.0.0", - "aggregate-error": "^5.0.0", - "debug": "^4.3.4", - "dir-glob": "^3.0.1", - "globby": "^14.0.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", - "issue-parser": "^7.0.0", - "lodash-es": "^4.17.21", - "mime": "^4.0.0", - "p-filter": "^4.0.0", - "url-join": "^5.0.0" - }, - "engines": { - "node": ">=20.8.1" - }, - "peerDependencies": { - "semantic-release": ">=20.1.0" - } - }, - "node_modules/@semantic-release/github/node_modules/@semantic-release/error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", - "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", - "dev": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@semantic-release/github/node_modules/aggregate-error": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", - "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", - "dev": true, - "dependencies": { - "clean-stack": "^5.2.0", - "indent-string": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/github/node_modules/clean-stack": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", - "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "5.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/github/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/github/node_modules/mime": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.6.tgz", - "integrity": "sha512-4rGt7rvQHBbaSOF9POGkk1ocRP16Md1x36Xma8sz8h8/vfCUI2OtEIeCqe4Ofes853x4xDoPiFLIT47J5fI/7A==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa" - ], - "bin": { - "mime": "bin/cli.js" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@semantic-release/github/node_modules/url-join": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", - "integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/@semantic-release/gitlab": { - "version": "13.2.4", - "resolved": "https://registry.npmjs.org/@semantic-release/gitlab/-/gitlab-13.2.4.tgz", - "integrity": "sha512-oj9LphVriiNyrB3oV/6tMxXrtYMaoq3VKUe7gxxkZIp4KmRhFbeSsxDrEGDnTke8uTm2PKAqgsGjD9oocv7bKw==", - "dev": true, - "dependencies": { - "@semantic-release/error": "^4.0.0", - "aggregate-error": "^5.0.0", - "debug": "^4.0.0", - "dir-glob": "^3.0.0", - "escape-string-regexp": "^5.0.0", - "formdata-node": "^6.0.3", - "fs-extra": "^11.0.0", - "globby": "^14.0.0", - "got": "^14.0.0", - "hpagent": "^1.0.0", - "lodash-es": "^4.17.21", - "parse-url": "^9.0.0", - "url-join": "^4.0.0" - }, - "engines": { - "node": ">=20.8.1" - }, - "peerDependencies": { - "semantic-release": ">=20.1.0" - } - }, - "node_modules/@semantic-release/gitlab/node_modules/@semantic-release/error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", - "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", - "dev": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@semantic-release/gitlab/node_modules/aggregate-error": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", - "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", - "dev": true, - "dependencies": { - "clean-stack": "^5.2.0", - "indent-string": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/gitlab/node_modules/clean-stack": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", - "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "5.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/gitlab/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-11.0.3.tgz", - "integrity": "sha512-KUsozQGhRBAnoVg4UMZj9ep436VEGwT536/jwSqB7vcEfA6oncCUU7UIYTRdLx7GvTtqn0kBjnkfLVkcnBa2YQ==", - "dev": true, - "dependencies": { - "@semantic-release/error": "^4.0.0", - "aggregate-error": "^5.0.0", - "execa": "^8.0.0", - "fs-extra": "^11.0.0", - "lodash-es": "^4.17.21", - "nerf-dart": "^1.0.0", - "normalize-url": "^8.0.0", - "npm": "^10.5.0", - "rc": "^1.2.8", - "read-pkg": "^9.0.0", - "registry-auth-token": "^5.0.0", - "semver": "^7.1.2", - "tempy": "^3.0.0" - }, - "engines": { - "node": "^18.17 || >=20" - }, - "peerDependencies": { - "semantic-release": ">=20.1.0" - } - }, - "node_modules/@semantic-release/npm/node_modules/@semantic-release/error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", - "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", - "dev": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@semantic-release/npm/node_modules/aggregate-error": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", - "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", - "dev": true, - "dependencies": { - "clean-stack": "^5.2.0", - "indent-string": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/clean-stack": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", - "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "5.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@semantic-release/npm/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/@semantic-release/npm/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@semantic-release/npm/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/release-notes-generator": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-13.0.0.tgz", - "integrity": "sha512-LEeZWb340keMYuREMyxrODPXJJ0JOL8D/mCl74B4LdzbxhtXV2LrPN2QBEcGJrlQhoqLO0RhxQb6masHytKw+A==", - "dev": true, - "dependencies": { - "conventional-changelog-angular": "^7.0.0", - "conventional-changelog-writer": "^7.0.0", - "conventional-commits-filter": "^4.0.0", - "conventional-commits-parser": "^5.0.0", - "debug": "^4.0.0", - "get-stream": "^7.0.0", - "import-from-esm": "^1.0.3", - "into-stream": "^7.0.0", - "lodash-es": "^4.17.21", - "read-pkg-up": "^11.0.0" - }, - "engines": { - "node": ">=20.8.1" - }, - "peerDependencies": { - "semantic-release": ">=20.1.0" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.1.tgz", - "integrity": "sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==", - "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@sigstore/bundle": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", - "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", - "dev": true, - "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/core": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", - "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", - "dev": true, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/protobuf-specs": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.3.tgz", - "integrity": "sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==", - "dev": true, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/@sigstore/sign": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz", - "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", - "dev": true, - "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "make-fetch-happen": "^13.0.1", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/sign/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/tuf": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", - "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", - "dev": true, - "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2", - "tuf-js": "^2.2.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/verify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz", - "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", - "dev": true, - "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.1.0", - "@sigstore/protobuf-specs": "^0.3.2" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sindresorhus/is": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.0.1.tgz", - "integrity": "sha512-QWLl2P+rsCJeofkDNIT3WFmb6NrRud1SUYW8dIhXK/46XFV8Q/g7Bsvib0Askb0reRLe+WYPeeE+l5cH7SlkuQ==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@sindresorhus/merge-streams": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", - "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", - "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", - "dev": true - }, - "node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@tufjs/canonical-json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", - "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", - "dev": true, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@tufjs/models": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz", - "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", - "dev": true, - "dependencies": { - "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.4" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@tufjs/models/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@tufjs/models/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", - "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", - "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", - "dev": true, - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/cors": { - "version": "2.8.17", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", - "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true - }, - "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", - "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/express/node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/geojson": { - "version": "7946.0.16", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", - "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==" - }, - "node_modules/@types/googlemaps": { - "version": "3.43.3", - "resolved": "https://registry.npmjs.org/@types/googlemaps/-/googlemaps-3.43.3.tgz", - "integrity": "sha512-ZWNoz/O8MPEpiajvj7QiqCY8tTLFNqNZ/a+s+zTV58wFVNAvvqV4bdGfnsjTb5Cs4V6wEsLrX8XRhmnyYJ2Tdg==", - "deprecated": "Types for the Google Maps browser API have moved to @types/google.maps. Note: these types are not for the googlemaps npm package, which is a Node API.", - "dev": true - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "dev": true - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", - "dev": true - }, - "node_modules/@types/http-proxy": { - "version": "1.17.16", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.16.tgz", - "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/jasmine": { - "version": "3.6.11", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.6.11.tgz", - "integrity": "sha512-S6pvzQDvMZHrkBz2Mcn/8Du7cpr76PlRJBAoHnSDNbulULsH5dp0Gns+WRyNX5LHejz/ljxK4/vIHK/caHt6SQ==", - "dev": true - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "dev": true - }, - "node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true - }, - "node_modules/@types/node-forge": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", - "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", - "dev": true - }, - "node_modules/@types/parse-path": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/parse-path/-/parse-path-7.0.3.tgz", - "integrity": "sha512-LriObC2+KYZD3FzCrgWGv/qufdUy4eXrxcLgQMfYXgPbLIecKIsVBaQgUPmxSSLcjmYbDTQbMgr6qr6l/eb7Bg==", - "dev": true - }, - "node_modules/@types/q": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", - "integrity": "sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug==", - "dev": true - }, - "node_modules/@types/qs": { - "version": "6.9.18", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", - "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", - "dev": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "dev": true - }, - "node_modules/@types/resolve": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", - "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", - "dev": true - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "dev": true - }, - "node_modules/@types/selenium-webdriver": { - "version": "3.0.26", - "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.26.tgz", - "integrity": "sha512-dyIGFKXfUFiwkMfNGn1+F6b80ZjR3uSYv1j6xVJSDlft5waZ2cwkHW4e7zNzvq7hiEackcgvBpmnXZrI1GltPg==", - "dev": true - }, - "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", - "dev": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-index": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", - "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", - "dev": true, - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", - "dev": true, - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", - "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8svvI3hMyvN0kKCJMvTJP/x6Y/EoQbepff882wL+Sn5QsXb3etnamgrJq4isrBxSJj5L2AuXcI0+bgkoAXGUJw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true - }, - "node_modules/abbrev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", - "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", - "dev": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/adm-zip": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz", - "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==", - "dev": true, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/angular-calendar": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/angular-calendar/-/angular-calendar-0.29.0.tgz", - "integrity": "sha512-TK4yUNsOhCUVrBRTJhGvVgGkQHgR0DTDFnPUTv0YSeDAuq5+irWjH23UrHmrhBCwFPelGLrTHjxsbMwjuzrJjw==", - "dependencies": { - "@scarf/scarf": "^1.1.1", - "angular-draggable-droppable": "^6.0.0", - "angular-resizable-element": "^5.0.0", - "calendar-utils": "^0.9.0", - "positioning": "^2.0.1", - "tslib": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mattlewis92" - }, - "peerDependencies": { - "@angular/core": ">=10.0.0" - } - }, - "node_modules/angular-draggable-droppable": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/angular-draggable-droppable/-/angular-draggable-droppable-6.1.0.tgz", - "integrity": "sha512-axf3YMZ1ovhVZXnydP5iatNT5V05uK1wrUIhlJy4XGFVzIfTOGPn6d0E4r43lyDPj1r6daz3ODm8UNXzjWgcCg==", - "dependencies": { - "@mattlewis92/dom-autoscroller": "^2.4.2", - "tslib": "^2.3.1" - }, - "peerDependencies": { - "@angular/core": ">=12.0.0" - } - }, - "node_modules/angular-resizable-element": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/angular-resizable-element/-/angular-resizable-element-5.0.0.tgz", - "integrity": "sha512-GbV8myA2x8aUU8CK7siTi1QMjtilzQzIgClqUVpE/YM1WAp0/OnioBV12oLcOT24eEwP3zDqPTHL+D1Kv2rNAw==", - "dependencies": { - "tslib": "^2.2.0" - }, - "peerDependencies": { - "@angular/core": ">=10.0.0" - } - }, - "node_modules/angular-svg-icon": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/angular-svg-icon/-/angular-svg-icon-17.0.0.tgz", - "integrity": "sha512-cTHz79nzVcfUSBPwclFRwvAsWYbo3rRTse45lnzmHdCV0GjTLUNE3C1yQwBAnHqlH4eN0sl+mbVpZh8YeJxYug==", - "dependencies": { - "tslib": "^2.3.1" - }, - "peerDependencies": { - "@angular/common": ">=17.0.0", - "@angular/core": ">=17.0.0", - "rxjs": ">=6.6.3" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/anymatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/app-root-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz", - "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==", - "dev": true, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/argparse/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/argv-formatter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", - "integrity": "sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==", - "dev": true - }, - "node_modules/aria-query": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", - "integrity": "sha512-majUxHgLehQTeSA+hClx+DY09OVUqG3GtezWkF1krgLGNdlDu9l9V8DaqNMWbq4Eddc8wsyDA0hpDUtnYxQEXw==", - "dev": true, - "dependencies": { - "ast-types-flow": "0.0.7", - "commander": "^2.11.0" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true - }, - "node_modules/array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "dev": true - }, - "node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dev": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", - "dev": true - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/autoprefixer": { - "version": "10.4.18", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", - "integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001591", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", - "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", - "dev": true - }, - "node_modules/axobject-query": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", - "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", - "dev": true, - "dependencies": { - "ast-types-flow": "0.0.7" - } - }, - "node_modules/babel-loader": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", - "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", - "dev": true, - "dependencies": { - "find-cache-dir": "^4.0.0", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0", - "webpack": ">=5" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", - "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.3", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", - "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.5.0", - "core-js-compat": "^3.34.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", - "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", - "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.5.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", - "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true, - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "dev": true - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/before-after-hook": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz", - "integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==", - "dev": true - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/blocking-proxy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", - "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "blocking-proxy": "built/lib/bin.js" - }, - "engines": { - "node": ">=6.9.x" - } - }, - "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/bonjour-service": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", - "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "node_modules/bottleneck": { - "version": "2.19.5", - "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", - "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/browserstack": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", - "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", - "dev": true, - "dependencies": { - "https-proxy-agent": "^2.2.1" - } - }, - "node_modules/browserstack/node_modules/agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "dev": true, - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/browserstack/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/browserstack/node_modules/https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "dev": true, - "dependencies": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", - "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/cacache/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/cacache/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true - }, - "node_modules/cacache/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "dev": true, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/cacheable-request": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-12.0.1.tgz", - "integrity": "sha512-Yo9wGIQUaAfIbk+qY0X4cDQgCosecfBe3V9NSyeY4qPC2SAkbCS4Xj79VP8WOzitpJUZKc/wsRCYF5ariDIwkg==", - "dev": true, - "dependencies": { - "@types/http-cache-semantics": "^4.0.4", - "get-stream": "^9.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.4", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.1", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", - "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", - "dev": true, - "dependencies": { - "@sec-ant/readable-stream": "^0.4.1", - "is-stream": "^4.0.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/is-stream": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", - "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/calendar-utils": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/calendar-utils/-/calendar-utils-0.9.0.tgz", - "integrity": "sha512-QxMf/I+y/it02EoFvla7Fq9n4SIOK9T97wT4W0VfvbFTbhf92AYHm9IBXGWDJiARNM2pvrGCFtI8AFB0D4OuWw==" - }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "dev": true, - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dev": true, - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "dev": true, - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001703", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001703.tgz", - "integrity": "sha512-kRlAGTRWgPsOj7oARC9m1okJEXdL/8fekFVcxA8Hl7GH4r/sN4OJn/i6Flde373T50KS7Y37oFbMwlE8+F42kQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-highlight": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", - "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "bin": { - "highlight": "bin/highlight" - }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" - } - }, - "node_modules/cli-highlight/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cli-highlight/node_modules/parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", - "dev": true - }, - "node_modules/cli-highlight/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/cli-highlight/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cli-highlight/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-table3": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", - "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/cli-width": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", - "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/codelyzer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.2.tgz", - "integrity": "sha512-v3+E0Ucu2xWJMOJ2fA/q9pDT/hlxHftHGPUay1/1cTgyPV5JTHFdO9hqo837Sx2s9vKBMTt5gO+lhF95PO6J+g==", - "dev": true, - "dependencies": { - "@angular/compiler": "9.0.0", - "@angular/core": "9.0.0", - "app-root-path": "^3.0.0", - "aria-query": "^3.0.0", - "axobject-query": "2.0.2", - "css-selector-tokenizer": "^0.7.1", - "cssauron": "^1.4.0", - "damerau-levenshtein": "^1.0.4", - "rxjs": "^6.5.3", - "semver-dsl": "^1.0.1", - "source-map": "^0.5.7", - "sprintf-js": "^1.1.2", - "tslib": "^1.10.0", - "zone.js": "~0.10.3" - }, - "peerDependencies": { - "@angular/compiler": ">=2.3.1 <13.0.0 || ^12.0.0-next || ^12.1.0-next || ^12.2.0-next", - "@angular/core": ">=2.3.1 <13.0.0 || ^12.0.0-next || ^12.1.0-next || ^12.2.0-next", - "tslint": "^5.0.0 || ^6.0.0" - } - }, - "node_modules/codelyzer/node_modules/@angular/compiler": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", - "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", - "dev": true, - "peerDependencies": { - "tslib": "^1.10.0" - } - }, - "node_modules/codelyzer/node_modules/@angular/core": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", - "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", - "dev": true, - "peerDependencies": { - "rxjs": "^6.5.3", - "tslib": "^1.10.0", - "zone.js": "~0.10.2" - } - }, - "node_modules/codelyzer/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/codelyzer/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/codelyzer/node_modules/zone.js": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", - "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==", - "dev": true - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "dev": true - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "node_modules/compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "dev": true, - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - } - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz", - "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "compressible": "~2.0.18", - "debug": "2.6.9", - "negotiator": "~0.6.4", - "on-headers": "~1.0.2", - "safe-buffer": "5.2.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "dev": true, - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/config-chain/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/connect/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/connect/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/conventional-changelog-angular": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", - "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", - "dev": true, - "dependencies": { - "compare-func": "^2.0.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-changelog-writer": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz", - "integrity": "sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==", - "dev": true, - "dependencies": { - "conventional-commits-filter": "^4.0.0", - "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "meow": "^12.0.1", - "semver": "^7.5.2", - "split2": "^4.0.0" - }, - "bin": { - "conventional-changelog-writer": "cli.mjs" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-commits-filter": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz", - "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-commits-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", - "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", - "dev": true, - "dependencies": { - "is-text-path": "^2.0.0", - "JSONStream": "^1.3.5", - "meow": "^12.0.1", - "split2": "^4.0.0" - }, - "bin": { - "conventional-commits-parser": "cli.mjs" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/convert-hrtime": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", - "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true - }, - "node_modules/copy-anything": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", - "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", - "dev": true, - "dependencies": { - "is-what": "^3.14.1" - }, - "funding": { - "url": "https://github.com/sponsors/mesqueeb" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", - "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", - "dev": true, - "dependencies": { - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.1", - "globby": "^13.1.1", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "dev": true, - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/copy-webpack-plugin/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/core-js-compat": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.41.0.tgz", - "integrity": "sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==", - "dev": true, - "dependencies": { - "browserslist": "^4.24.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "dev": true, - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/cosmiconfig/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/cosmiconfig/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/critters": { - "version": "0.0.22", - "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.22.tgz", - "integrity": "sha512-NU7DEcQZM2Dy8XTKFHxtdnIM/drE312j2T4PCVaSUcS0oBeyT/NImpRw/Ap0zOr/1SE7SgPK9tGPg1WK/sVakw==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "css-select": "^5.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.2", - "htmlparser2": "^8.0.2", - "postcss": "^8.4.23", - "postcss-media-query-parser": "^0.2.3" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-random-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", - "dev": true, - "dependencies": { - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/crypto-random-string/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/css-loader": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.10.0.tgz", - "integrity": "sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==", - "dev": true, - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.4", - "postcss-modules-scope": "^3.1.1", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-selector-tokenizer": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", - "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "fastparse": "^1.1.2" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssauron": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", - "integrity": "sha512-Ht70DcFBh+/ekjVrYS2PlDMdSQEl3OFNmjK6lcn49HptBgilXf/Zwg4uFh9Xn0pX3Q8YOkSjIFOfK2osvdqpBw==", - "dev": true, - "dependencies": { - "through": "X.X.X" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", - "dev": true - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/date-format": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", - "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "dev": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dev": true, - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==", - "dev": true, - "dependencies": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==", - "dev": true, - "dependencies": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dependency-graph": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz", - "integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true - }, - "node_modules/di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", - "dev": true - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dns-packet": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", - "dev": true, - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", - "dev": true, - "dependencies": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", - "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "dev": true, - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexer2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/duplexer2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/duplexer2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ecc-jsbn/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.5.114", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.114.tgz", - "integrity": "sha512-DFptFef3iktoKlFQK/afbo274/XNWD00Am0xa7M8FZUepHlHT8PEuiNBoRfFHbH1okqN58AlhbJ4QTkcnXorjA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/emojilib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", - "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", - "dev": true - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/engine.io": { - "version": "6.6.4", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.4.tgz", - "integrity": "sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==", - "dev": true, - "dependencies": { - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.7.2", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.17.1" - }, - "engines": { - "node": ">=10.2.0" - } - }, - "node_modules/engine.io-parser": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", - "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/engine.io/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/engine.io/node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/enhanced-resolve": { - "version": "5.18.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", - "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/ent": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.2.tgz", - "integrity": "sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "punycode": "^1.4.1", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "devOptional": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-ci": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-11.1.0.tgz", - "integrity": "sha512-Z8dnwSDbV1XYM9SBF2J0GcNVvmfmfh3a49qddGIROhBoVro6MZVTji15z/sJbQ2ko2ei8n988EU1wzoLU/tF+g==", - "dev": true, - "dependencies": { - "execa": "^8.0.0", - "java-properties": "^1.0.2" - }, - "engines": { - "node": "^18.17 || >=20.6.1" - } - }, - "node_modules/env-ci/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/env-ci/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/env-ci/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/env-ci/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/env-ci/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/env-ci/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/env-ci/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/env-ci/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/env-ci/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/env-ci/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/environment": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", - "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "optional": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", - "dev": true - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es6-denodeify": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-denodeify/-/es6-denodeify-0.1.5.tgz", - "integrity": "sha512-731Rf4NqlPvhkT1pIF7r8vZxESJlWocNpXLuyPlVnfEGXlwuJaMvU5WpyyDjpudDC2cgXVX849xljzvQqBg1QQ==" - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "node_modules/es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", - "dev": true, - "dependencies": { - "es6-promise": "^4.0.3" - } - }, - "node_modules/esbuild": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.1.tgz", - "integrity": "sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.1", - "@esbuild/android-arm": "0.20.1", - "@esbuild/android-arm64": "0.20.1", - "@esbuild/android-x64": "0.20.1", - "@esbuild/darwin-arm64": "0.20.1", - "@esbuild/darwin-x64": "0.20.1", - "@esbuild/freebsd-arm64": "0.20.1", - "@esbuild/freebsd-x64": "0.20.1", - "@esbuild/linux-arm": "0.20.1", - "@esbuild/linux-arm64": "0.20.1", - "@esbuild/linux-ia32": "0.20.1", - "@esbuild/linux-loong64": "0.20.1", - "@esbuild/linux-mips64el": "0.20.1", - "@esbuild/linux-ppc64": "0.20.1", - "@esbuild/linux-riscv64": "0.20.1", - "@esbuild/linux-s390x": "0.20.1", - "@esbuild/linux-x64": "0.20.1", - "@esbuild/netbsd-x64": "0.20.1", - "@esbuild/openbsd-x64": "0.20.1", - "@esbuild/sunos-x64": "0.20.1", - "@esbuild/win32-arm64": "0.20.1", - "@esbuild/win32-ia32": "0.20.1", - "@esbuild/win32-x64": "0.20.1" - } - }, - "node_modules/esbuild-wasm": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.20.1.tgz", - "integrity": "sha512-6v/WJubRsjxBbQdz6izgvx7LsVFvVaGmSdwrFHmEzoVgfXL89hkKPoQHsnVI2ngOkcBUQT9kmAM1hVL1k/Av4A==", - "dev": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/eventsource": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.2.tgz", - "integrity": "sha512-xAH3zWhgO2/3KIniEKYPr8plNSzlGINOUqYj0m0u7AB81iRw8b/3E73W6AuU+6klLbaSFmZnaETQ2lXPfAydrA==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/exponential-backoff": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.2.tgz", - "integrity": "sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==", - "dev": true - }, - "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", - "dev": true, - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/express/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-content-type-parse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-2.0.1.tgz", - "integrity": "sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fetch-cookie": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-0.7.3.tgz", - "integrity": "sha512-rZPkLnI8x5V+zYAiz8QonAHsTb4BY+iFowFBI1RFn0zrO343AVp9X7/yUj/9wL6Ef/8fLls8b/vGtzUvmyAUGA==", - "dependencies": { - "es6-denodeify": "^0.1.1", - "tough-cookie": "^2.3.3" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/finalhandler/node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/find-cache-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", - "dev": true, - "dependencies": { - "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up-simple": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.1.tgz", - "integrity": "sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-versions": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-6.0.0.tgz", - "integrity": "sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==", - "dev": true, - "dependencies": { - "semver-regex": "^4.0.5", - "super-regex": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/form-data-encoder": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-4.0.2.tgz", - "integrity": "sha512-KQVhvhK8ZkWzxKxOr56CPulAhH3dobtuQ4+hNQ+HekH/Wp5gSOafqRAeTphQUJAIk0GBvHZgJ2ZGRWd5kphMuw==", - "dev": true, - "engines": { - "node": ">= 18" - } - }, - "node_modules/formdata-node": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-6.0.3.tgz", - "integrity": "sha512-8e1++BCiTzUno9v5IZ2J6bv4RU+3UKDmqWUQD0MIMVCd9AdhWkO1gw57oo1mNEX1dMq2EGI+FbWz4B92pscSQg==", - "dev": true, - "engines": { - "node": ">= 18" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/from2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/from2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/from2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/fs-extra": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", - "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "dev": true, - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", - "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function-timeout": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-1.0.2.tgz", - "integrity": "sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/git-log-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.1.tgz", - "integrity": "sha512-PI+sPDvHXNPl5WNOErAK05s3j0lgwUzMN6o8cyQrDaKfT3qd7TmNJKeXX+SknI5I0QhG5fVPAEwSY4tRGDtYoQ==", - "dev": true, - "dependencies": { - "argv-formatter": "~1.0.0", - "spawn-error-forwarder": "~1.0.0", - "split2": "~1.0.0", - "stream-combiner2": "~1.1.1", - "through2": "~2.0.0", - "traverse": "0.6.8" - } - }, - "node_modules/git-log-parser/node_modules/split2": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", - "integrity": "sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==", - "dev": true, - "dependencies": { - "through2": "~2.0.0" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", - "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", - "dev": true, - "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.3", - "ignore": "^7.0.3", - "path-type": "^6.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.3.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby/node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/globby/node_modules/path-type": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", - "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/got": { - "version": "14.4.6", - "resolved": "https://registry.npmjs.org/got/-/got-14.4.6.tgz", - "integrity": "sha512-rnhwfM/PhMNJ1i17k3DuDqgj0cKx3IHxBKVv/WX1uDKqrhi2Gv3l7rhPThR/Cc6uU++dD97W9c8Y0qyw9x0jag==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^7.0.1", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^12.0.1", - "decompress-response": "^6.0.0", - "form-data-encoder": "^4.0.2", - "http2-wrapper": "^2.2.1", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^4.0.1", - "responselike": "^3.0.0", - "type-fest": "^4.26.1" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/handlebars/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/har-validator/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/har-validator/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/hook-std": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-3.0.0.tgz", - "integrity": "sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hosted-git-info": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", - "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", - "dev": true, - "dependencies": { - "lru-cache": "^10.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/hpagent": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz", - "integrity": "sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/html-entities": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", - "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ] - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "dev": true - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-errors/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz", - "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==", - "dev": true - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", - "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", - "dev": true, - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/http2-wrapper": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", - "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", - "dev": true, - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.3.tgz", - "integrity": "sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-walk": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz", - "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", - "dev": true, - "dependencies": { - "minimatch": "^9.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/ignore-walk/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/ignore-walk/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", - "dev": true, - "optional": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - "dev": true - }, - "node_modules/immutable": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", - "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", - "dev": true - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-from-esm": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/import-from-esm/-/import-from-esm-1.3.4.tgz", - "integrity": "sha512-7EyUlPFC0HOlBDpUFGfYstsU7XHxZJKAAMzCT8wZ0hMW7b+hG51LIKTDcsgtz8Pu6YC0HqRVbX+rVUtsGMUKvg==", - "dev": true, - "dependencies": { - "debug": "^4.3.4", - "import-meta-resolve": "^4.0.0" - }, - "engines": { - "node": ">=16.20" - } - }, - "node_modules/import-meta-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", - "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/index-to-position": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-0.1.2.tgz", - "integrity": "sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz", - "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/injection-js": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/injection-js/-/injection-js-2.4.0.tgz", - "integrity": "sha512-6jiJt0tCAo9zjHbcwLiPL+IuNe9SQ6a9g0PEzafThW3fOQi0mrmiJGBJvDD6tmhPh8cQHIQtCOrJuBfQME4kPA==", - "dev": true, - "dependencies": { - "tslib": "^2.0.0" - } - }, - "node_modules/inquirer": { - "version": "9.2.15", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.15.tgz", - "integrity": "sha512-vI2w4zl/mDluHt9YEQ/543VTCwPKWiHzKtm9dM2V0NdFcqEexDAjUHzO1oA60HRNaVifGXXM1tRRNluLVHa0Kg==", - "dev": true, - "dependencies": { - "@ljharb/through": "^2.3.12", - "ansi-escapes": "^4.3.2", - "chalk": "^5.3.0", - "cli-cursor": "^3.1.0", - "cli-width": "^4.1.0", - "external-editor": "^3.1.0", - "figures": "^3.2.0", - "lodash": "^4.17.21", - "mute-stream": "1.0.0", - "ora": "^5.4.1", - "run-async": "^3.0.0", - "rxjs": "^7.8.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/rxjs": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", - "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/into-stream": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-7.0.0.tgz", - "integrity": "sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==", - "dev": true, - "dependencies": { - "from2": "^2.3.0", - "p-is-promise": "^3.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "dev": true, - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "dependencies": { - "is-path-inside": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", - "dev": true, - "dependencies": { - "path-is-inside": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-text-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", - "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", - "dev": true, - "dependencies": { - "text-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-what": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", - "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", - "dev": true, - "engines": { - "node": ">= 8.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true - }, - "node_modules/issue-parser": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-7.0.1.tgz", - "integrity": "sha512-3YZcUUR2Wt1WsapF+S/WiA2WmlW0cWAoPccMqne7AxEBhCdFeTPjfv/Axb8V2gyCgY3nRw+ksZ3xSUX+R47iAg==", - "dev": true, - "dependencies": { - "lodash.capitalize": "^4.2.1", - "lodash.escaperegexp": "^4.1.2", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.uniqby": "^4.7.0" - }, - "engines": { - "node": "^18.17 || >=20.6.1" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jasmine": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", - "integrity": "sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==", - "dev": true, - "dependencies": { - "exit": "^0.1.2", - "glob": "^7.0.6", - "jasmine-core": "~2.8.0" - }, - "bin": { - "jasmine": "bin/jasmine.js" - } - }, - "node_modules/jasmine-core": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.8.0.tgz", - "integrity": "sha512-zl0nZWDrmbCiKns0NcjkFGYkVTGCPUgoHypTaj+G2AzaWus7QGoXARSlYsSle2VRpSdfJmM+hzmFKzQNhF2kHg==", - "dev": true - }, - "node_modules/jasmine-spec-reporter": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.2.tgz", - "integrity": "sha512-6gP1LbVgJ+d7PKksQBc2H0oDGNRQI3gKUsWlswKaQ2fif9X5gzhQcgM5+kiJGCQVurOG09jqNhk7payggyp5+g==", - "dev": true, - "dependencies": { - "colors": "1.4.0" - } - }, - "node_modules/jasmine/node_modules/jasmine-core": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", - "integrity": "sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ==", - "dev": true - }, - "node_modules/jasminewd2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", - "integrity": "sha512-Rn0nZe4rfDhzA63Al3ZGh0E+JTmM6ESZYXJGKuqKGZObsAB9fwXPD03GjtIEvJBDOhN94T5MzbwZSqzFHSQPzg==", - "dev": true, - "engines": { - "node": ">= 6.9.x" - } - }, - "node_modules/java-properties": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", - "integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jiti": { - "version": "1.21.7", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", - "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "dev": true, - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "dev": true - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "dev": true - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "dev": true, - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - } - }, - "node_modules/jszip/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/jszip/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/jszip/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/jwt-decode": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", - "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==" - }, - "node_modules/karma": { - "version": "6.3.20", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.20.tgz", - "integrity": "sha512-HRNQhMuKOwKpjYlWiJP0DUrJOh+QjaI/DTaD8b9rEm4Il3tJ8MijutVZH4ts10LuUFst/CedwTS6vieCN8yTSw==", - "dev": true, - "dependencies": { - "@colors/colors": "1.5.0", - "body-parser": "^1.19.0", - "braces": "^3.0.2", - "chokidar": "^3.5.1", - "connect": "^3.7.0", - "di": "^0.0.1", - "dom-serialize": "^2.2.1", - "glob": "^7.1.7", - "graceful-fs": "^4.2.6", - "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.8", - "lodash": "^4.17.21", - "log4js": "^6.4.1", - "mime": "^2.5.2", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.5", - "qjobs": "^1.2.0", - "range-parser": "^1.2.1", - "rimraf": "^3.0.2", - "socket.io": "^4.4.1", - "source-map": "^0.6.1", - "tmp": "^0.2.1", - "ua-parser-js": "^0.7.30", - "yargs": "^16.1.1" - }, - "bin": { - "karma": "bin/karma" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/karma-chrome-launcher": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz", - "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==", - "dev": true, - "dependencies": { - "which": "^1.2.1" - } - }, - "node_modules/karma-chrome-launcher/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/karma-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.0.3.tgz", - "integrity": "sha512-atDvLQqvPcLxhED0cmXYdsPMCQuh6Asa9FMZW1bhNqlVEhJoB9qyZ2BY1gu7D/rr5GLGb5QzYO4siQskxaWP/g==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.1", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.0", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/karma-coverage/node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma-coverage/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/karma-jasmine": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.2.tgz", - "integrity": "sha512-ggi84RMNQffSDmWSyyt4zxzh2CQGwsxvYYsprgyR1j8ikzIduEdOlcLvXjZGwXG/0j41KUXOWsUCBfbEHPWP9g==", - "dev": true, - "dependencies": { - "jasmine-core": "^3.6.0" - }, - "engines": { - "node": ">= 10" - }, - "peerDependencies": { - "karma": "*" - } - }, - "node_modules/karma-jasmine-html-reporter": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.7.0.tgz", - "integrity": "sha512-pzum1TL7j90DTE86eFt48/s12hqwQuiD+e5aXx2Dc9wDEn2LfGq6RoAxEZZjFiN0RDSCOnosEKRZWxbQ+iMpQQ==", - "dev": true, - "peerDependencies": { - "jasmine-core": ">=3.8", - "karma": ">=0.9", - "karma-jasmine": ">=1.1" - } - }, - "node_modules/karma-source-map-support": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", - "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", - "dev": true, - "dependencies": { - "source-map-support": "^0.5.5" - } - }, - "node_modules/karma/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/karma/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/karma/node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", - "dev": true, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/karma/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/karma/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/karma/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/klona": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/launch-editor": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.10.0.tgz", - "integrity": "sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==", - "dev": true, - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" - } - }, - "node_modules/leaflet": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", - "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==" - }, - "node_modules/less": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", - "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", - "dev": true, - "dependencies": { - "copy-anything": "^2.0.1", - "parse-node-version": "^1.0.1", - "tslib": "^2.3.0" - }, - "bin": { - "lessc": "bin/lessc" - }, - "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "make-dir": "^2.1.0", - "mime": "^1.4.1", - "needle": "^3.1.0", - "source-map": "~0.6.0" - } - }, - "node_modules/less-loader": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", - "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", - "dev": true, - "dependencies": { - "klona": "^2.0.4" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "less": "^3.5.0 || ^4.0.0", - "webpack": "^5.0.0" - } - }, - "node_modules/less/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "optional": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/less/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "optional": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/less/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/less/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/less/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/license-webpack-plugin": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", - "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", - "dev": true, - "dependencies": { - "webpack-sources": "^3.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-sources": { - "optional": true - } - } - }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dev": true, - "dependencies": { - "immediate": "~3.0.5" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/livekit-client": { - "version": "2.9.5", - "resolved": "https://registry.npmjs.org/livekit-client/-/livekit-client-2.9.5.tgz", - "integrity": "sha512-2EJmiB4XItaRjTEmL4XxGzsahLYTer9T5N6lKyhBHQxwH4GrjBWewPySvJEO8zCpD2nvWZCmCQjIJx0+w+y6DA==", - "dependencies": { - "@livekit/mutex": "1.1.1", - "@livekit/protocol": "1.33.0", - "events": "^3.3.0", - "loglevel": "^1.9.2", - "sdp-transform": "^2.15.0", - "ts-debounce": "^4.0.0", - "tslib": "2.8.1", - "typed-emitter": "^2.1.0", - "webrtc-adapter": "^9.0.1" - } - }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", - "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", - "dev": true, - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true - }, - "node_modules/lodash.capitalize": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", - "integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.escaperegexp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", - "dev": true - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", - "dev": true - }, - "node_modules/lodash.uniqby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", - "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log4js": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", - "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", - "dev": true, - "dependencies": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "flatted": "^3.2.7", - "rfdc": "^1.3.0", - "streamroller": "^3.1.5" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/loglevel": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", - "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/magic-string": { - "version": "0.30.8", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", - "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/make-fetch-happen": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", - "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", - "dev": true, - "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/marked": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", - "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==", - "dev": true, - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/marked-terminal": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-7.3.0.tgz", - "integrity": "sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw==", - "dev": true, - "dependencies": { - "ansi-escapes": "^7.0.0", - "ansi-regex": "^6.1.0", - "chalk": "^5.4.1", - "cli-highlight": "^2.1.11", - "cli-table3": "^0.6.5", - "node-emoji": "^2.2.0", - "supports-hyperlinks": "^3.1.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "marked": ">=1 <16" - } - }, - "node_modules/marked-terminal/node_modules/ansi-escapes": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", - "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", - "dev": true, - "dependencies": { - "environment": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/marked-terminal/node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", - "dev": true, - "dependencies": { - "fs-monkey": "^1.0.4" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/meow": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", - "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", - "dev": true, - "engines": { - "node": ">=16.10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/micromatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.1.tgz", - "integrity": "sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==", - "dev": true, - "dependencies": { - "schema-utils": "^4.0.0", - "tapable": "^2.2.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minipass-collect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", - "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", - "dev": true, - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minipass-fetch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", - "dev": true, - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-flush/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/minipass-json-stream": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.2.tgz", - "integrity": "sha512-myxeeTm57lYs8pH2nxPzmEEg8DGIgW+9mv6D4JZD2pa81I/OBjeU7PtICXV6c9eRGTA5JMDsuIPUZRCyBMYNhg==", - "dev": true, - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-json-stream/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-json-stream/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mrmime": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", - "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "dev": true, - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.9.tgz", - "integrity": "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/needle": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", - "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", - "dev": true, - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.3", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/needle/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/nerf-dart": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz", - "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==", - "dev": true - }, - "node_modules/ng-packagr": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-17.3.0.tgz", - "integrity": "sha512-kMSqxeDgv88SWCoapWNRRN1UdBgwu9/Pw/j7u2WFGmzrIWUFivNWBBSSL94kMxr2La+Z9wMwiL8EwKNvmCpg2A==", - "dev": true, - "dependencies": { - "@rollup/plugin-json": "^6.0.1", - "@rollup/plugin-node-resolve": "^15.2.3", - "@rollup/wasm-node": "^4.5.0", - "ajv": "^8.12.0", - "ansi-colors": "^4.1.3", - "browserslist": "^4.22.1", - "cacache": "^18.0.0", - "chokidar": "^3.5.3", - "commander": "^12.0.0", - "convert-source-map": "^2.0.0", - "dependency-graph": "^1.0.0", - "esbuild-wasm": "^0.20.0", - "fast-glob": "^3.3.1", - "find-cache-dir": "^3.3.2", - "injection-js": "^2.4.0", - "jsonc-parser": "^3.2.0", - "less": "^4.2.0", - "ora": "^5.1.0", - "piscina": "^4.4.0", - "postcss": "^8.4.31", - "rxjs": "^7.8.1", - "sass": "^1.69.5" - }, - "bin": { - "ng-packagr": "cli/main.js" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0" - }, - "optionalDependencies": { - "esbuild": "^0.20.0", - "rollup": "^4.5.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^17.0.0 || ^17.2.0-next.0 || ^17.3.0-next.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "tslib": "^2.3.0", - "typescript": ">=5.2 <5.5" - }, - "peerDependenciesMeta": { - "tailwindcss": { - "optional": true - } - } - }, - "node_modules/ng-packagr/node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", - "dev": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/ng-packagr/node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/ng-packagr/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ng-packagr/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ng-packagr/node_modules/rxjs": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", - "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/ng-packagr/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/nice-napi": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", - "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "!win32" - ], - "dependencies": { - "node-addon-api": "^3.0.0", - "node-gyp-build": "^4.2.2" - } - }, - "node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "dev": true, - "optional": true - }, - "node_modules/node-emoji": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz", - "integrity": "sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^4.6.0", - "char-regex": "^1.0.2", - "emojilib": "^2.4.0", - "skin-tone": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/node-emoji/node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "dev": true, - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-gyp": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.3.1.tgz", - "integrity": "sha512-Pp3nFHBThHzVtNY7U6JfPjvT/DTE8+o/4xKsLQtBoU+j2HLsGlhcfzflAoUreaJbNmYnX+LlLi0qjV8kpyO6xQ==", - "dev": true, - "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^10.3.10", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^13.0.0", - "nopt": "^7.0.0", - "proc-log": "^4.1.0", - "semver": "^7.3.5", - "tar": "^6.2.1", - "which": "^4.0.0" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/node-gyp-build": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", - "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", - "dev": true, - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-gyp/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/node-gyp/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/node-gyp/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/node-gyp/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/node-gyp/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/node-gyp/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "dev": true - }, - "node_modules/nopt": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", - "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", - "dev": true, - "dependencies": { - "abbrev": "^2.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/normalize-package-data": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", - "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", - "dev": true, - "dependencies": { - "hosted-git-info": "^7.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", - "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/npm/-/npm-10.9.2.tgz", - "integrity": "sha512-iriPEPIkoMYUy3F6f3wwSZAU93E0Eg6cHwIR6jzzOXWSy+SD/rOODEs74cVONHKSx2obXtuUoyidVEhISrisgQ==", - "bundleDependencies": [ - "@isaacs/string-locale-compare", - "@npmcli/arborist", - "@npmcli/config", - "@npmcli/fs", - "@npmcli/map-workspaces", - "@npmcli/package-json", - "@npmcli/promise-spawn", - "@npmcli/redact", - "@npmcli/run-script", - "@sigstore/tuf", - "abbrev", - "archy", - "cacache", - "chalk", - "ci-info", - "cli-columns", - "fastest-levenshtein", - "fs-minipass", - "glob", - "graceful-fs", - "hosted-git-info", - "ini", - "init-package-json", - "is-cidr", - "json-parse-even-better-errors", - "libnpmaccess", - "libnpmdiff", - "libnpmexec", - "libnpmfund", - "libnpmhook", - "libnpmorg", - "libnpmpack", - "libnpmpublish", - "libnpmsearch", - "libnpmteam", - "libnpmversion", - "make-fetch-happen", - "minimatch", - "minipass", - "minipass-pipeline", - "ms", - "node-gyp", - "nopt", - "normalize-package-data", - "npm-audit-report", - "npm-install-checks", - "npm-package-arg", - "npm-pick-manifest", - "npm-profile", - "npm-registry-fetch", - "npm-user-validate", - "p-map", - "pacote", - "parse-conflict-json", - "proc-log", - "qrcode-terminal", - "read", - "semver", - "spdx-expression-parse", - "ssri", - "supports-color", - "tar", - "text-table", - "tiny-relative-date", - "treeverse", - "validate-npm-package-name", - "which", - "write-file-atomic" - ], - "dev": true, - "dependencies": { - "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^8.0.0", - "@npmcli/config": "^9.0.0", - "@npmcli/fs": "^4.0.0", - "@npmcli/map-workspaces": "^4.0.2", - "@npmcli/package-json": "^6.1.0", - "@npmcli/promise-spawn": "^8.0.2", - "@npmcli/redact": "^3.0.0", - "@npmcli/run-script": "^9.0.1", - "@sigstore/tuf": "^3.0.0", - "abbrev": "^3.0.0", - "archy": "~1.0.0", - "cacache": "^19.0.1", - "chalk": "^5.3.0", - "ci-info": "^4.1.0", - "cli-columns": "^4.0.0", - "fastest-levenshtein": "^1.0.16", - "fs-minipass": "^3.0.3", - "glob": "^10.4.5", - "graceful-fs": "^4.2.11", - "hosted-git-info": "^8.0.2", - "ini": "^5.0.0", - "init-package-json": "^7.0.2", - "is-cidr": "^5.1.0", - "json-parse-even-better-errors": "^4.0.0", - "libnpmaccess": "^9.0.0", - "libnpmdiff": "^7.0.0", - "libnpmexec": "^9.0.0", - "libnpmfund": "^6.0.0", - "libnpmhook": "^11.0.0", - "libnpmorg": "^7.0.0", - "libnpmpack": "^8.0.0", - "libnpmpublish": "^10.0.1", - "libnpmsearch": "^8.0.0", - "libnpmteam": "^7.0.0", - "libnpmversion": "^7.0.0", - "make-fetch-happen": "^14.0.3", - "minimatch": "^9.0.5", - "minipass": "^7.1.1", - "minipass-pipeline": "^1.2.4", - "ms": "^2.1.2", - "node-gyp": "^11.0.0", - "nopt": "^8.0.0", - "normalize-package-data": "^7.0.0", - "npm-audit-report": "^6.0.0", - "npm-install-checks": "^7.1.1", - "npm-package-arg": "^12.0.0", - "npm-pick-manifest": "^10.0.0", - "npm-profile": "^11.0.1", - "npm-registry-fetch": "^18.0.2", - "npm-user-validate": "^3.0.0", - "p-map": "^4.0.0", - "pacote": "^19.0.1", - "parse-conflict-json": "^4.0.0", - "proc-log": "^5.0.0", - "qrcode-terminal": "^0.12.0", - "read": "^4.0.0", - "semver": "^7.6.3", - "spdx-expression-parse": "^4.0.0", - "ssri": "^12.0.0", - "supports-color": "^9.4.0", - "tar": "^6.2.1", - "text-table": "~0.2.0", - "tiny-relative-date": "^1.3.0", - "treeverse": "^3.0.0", - "validate-npm-package-name": "^6.0.0", - "which": "^5.0.0", - "write-file-atomic": "^6.0.0" - }, - "bin": { - "npm": "bin/npm-cli.js", - "npx": "bin/npx-cli.js" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm-bundled": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz", - "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", - "dev": true, - "dependencies": { - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-install-checks": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", - "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", - "dev": true, - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-package-arg": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", - "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", - "dev": true, - "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm-packlist": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", - "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", - "dev": true, - "dependencies": { - "ignore-walk": "^6.0.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-pick-manifest": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz", - "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==", - "dev": true, - "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^11.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.2.1.tgz", - "integrity": "sha512-8l+7jxhim55S85fjiDGJ1rZXBWGtRLi1OSb4Z3BPLObPuIaeKRlPRiYMSHU4/81ck3t71Z+UwDDl47gcpmfQQA==", - "dev": true, - "dependencies": { - "@npmcli/redact": "^1.1.0", - "make-fetch-happen": "^13.0.0", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^11.0.0", - "proc-log": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/@isaacs/cliui": { - "version": "8.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/npm/node_modules/@isaacs/fs-minipass": { - "version": "4.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.4" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/npm/node_modules/@isaacs/string-locale-compare": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/@npmcli/agent": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.3" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "8.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/fs": "^4.0.0", - "@npmcli/installed-package-contents": "^3.0.0", - "@npmcli/map-workspaces": "^4.0.1", - "@npmcli/metavuln-calculator": "^8.0.0", - "@npmcli/name-from-folder": "^3.0.0", - "@npmcli/node-gyp": "^4.0.0", - "@npmcli/package-json": "^6.0.1", - "@npmcli/query": "^4.0.0", - "@npmcli/redact": "^3.0.0", - "@npmcli/run-script": "^9.0.1", - "bin-links": "^5.0.0", - "cacache": "^19.0.1", - "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^8.0.0", - "json-parse-even-better-errors": "^4.0.0", - "json-stringify-nice": "^1.1.4", - "lru-cache": "^10.2.2", - "minimatch": "^9.0.4", - "nopt": "^8.0.0", - "npm-install-checks": "^7.1.0", - "npm-package-arg": "^12.0.0", - "npm-pick-manifest": "^10.0.0", - "npm-registry-fetch": "^18.0.1", - "pacote": "^19.0.0", - "parse-conflict-json": "^4.0.0", - "proc-log": "^5.0.0", - "proggy": "^3.0.0", - "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^3.0.1", - "read-package-json-fast": "^4.0.0", - "semver": "^7.3.7", - "ssri": "^12.0.0", - "treeverse": "^3.0.0", - "walk-up-path": "^3.0.1" - }, - "bin": { - "arborist": "bin/index.js" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/@npmcli/config": { - "version": "9.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/map-workspaces": "^4.0.1", - "@npmcli/package-json": "^6.0.1", - "ci-info": "^4.0.0", - "ini": "^5.0.0", - "nopt": "^8.0.0", - "proc-log": "^5.0.0", - "semver": "^7.3.5", - "walk-up-path": "^3.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/@npmcli/fs": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/@npmcli/git": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/promise-spawn": "^8.0.0", - "ini": "^5.0.0", - "lru-cache": "^10.0.1", - "npm-pick-manifest": "^10.0.0", - "proc-log": "^5.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^5.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/@npmcli/installed-package-contents": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-bundled": "^4.0.0", - "npm-normalize-package-bin": "^4.0.0" - }, - "bin": { - "installed-package-contents": "bin/index.js" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/@npmcli/map-workspaces": { - "version": "4.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/name-from-folder": "^3.0.0", - "@npmcli/package-json": "^6.0.0", - "glob": "^10.2.2", - "minimatch": "^9.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { - "version": "8.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "cacache": "^19.0.0", - "json-parse-even-better-errors": "^4.0.0", - "pacote": "^20.0.0", - "proc-log": "^5.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/@npmcli/metavuln-calculator/node_modules/pacote": { - "version": "20.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^6.0.0", - "@npmcli/installed-package-contents": "^3.0.0", - "@npmcli/package-json": "^6.0.0", - "@npmcli/promise-spawn": "^8.0.0", - "@npmcli/run-script": "^9.0.0", - "cacache": "^19.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^7.0.2", - "npm-package-arg": "^12.0.0", - "npm-packlist": "^9.0.0", - "npm-pick-manifest": "^10.0.0", - "npm-registry-fetch": "^18.0.0", - "proc-log": "^5.0.0", - "promise-retry": "^2.0.1", - "sigstore": "^3.0.0", - "ssri": "^12.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "bin/index.js" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/@npmcli/name-from-folder": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/@npmcli/node-gyp": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/@npmcli/package-json": { - "version": "6.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^6.0.0", - "glob": "^10.2.2", - "hosted-git-info": "^8.0.0", - "json-parse-even-better-errors": "^4.0.0", - "normalize-package-data": "^7.0.0", - "proc-log": "^5.0.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/@npmcli/promise-spawn": { - "version": "8.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "which": "^5.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/@npmcli/query": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^6.1.2" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/@npmcli/redact": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/@npmcli/run-script": { - "version": "9.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/node-gyp": "^4.0.0", - "@npmcli/package-json": "^6.0.0", - "@npmcli/promise-spawn": "^8.0.0", - "node-gyp": "^11.0.0", - "proc-log": "^5.0.0", - "which": "^5.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/npm/node_modules/@sigstore/protobuf-specs": { - "version": "0.3.2", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@sigstore/tuf": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2", - "tuf-js": "^3.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/@tufjs/canonical-json": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/abbrev": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/agent-base": { - "version": "7.1.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/npm/node_modules/aggregate-error": { - "version": "3.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/ansi-styles": { - "version": "6.2.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/npm/node_modules/aproba": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/archy": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/balanced-match": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/bin-links": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "cmd-shim": "^7.0.0", - "npm-normalize-package-bin": "^4.0.0", - "proc-log": "^5.0.0", - "read-cmd-shim": "^5.0.0", - "write-file-atomic": "^6.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/binary-extensions": { - "version": "2.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/npm/node_modules/cacache": { - "version": "19.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^4.0.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^7.0.2", - "ssri": "^12.0.0", - "tar": "^7.4.3", - "unique-filename": "^4.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/cacache/node_modules/chownr": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/npm/node_modules/cacache/node_modules/minizlib": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/npm/node_modules/cacache/node_modules/mkdirp": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/cacache/node_modules/p-map": { - "version": "7.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm/node_modules/cacache/node_modules/tar": { - "version": "7.4.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@isaacs/fs-minipass": "^4.0.0", - "chownr": "^3.0.0", - "minipass": "^7.1.2", - "minizlib": "^3.0.1", - "mkdirp": "^3.0.1", - "yallist": "^5.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/npm/node_modules/cacache/node_modules/yallist": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/npm/node_modules/chalk": { - "version": "5.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/npm/node_modules/chownr": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/ci-info": { - "version": "4.1.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/cidr-regex": { - "version": "4.1.1", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "ip-regex": "^5.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/npm/node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/npm/node_modules/cli-columns": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/npm/node_modules/cmd-shim": { - "version": "7.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/npm/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/common-ancestor-path": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/cross-spawn": { - "version": "7.0.6", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/cssesc": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/debug": { - "version": "4.3.7", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/npm/node_modules/diff": { - "version": "5.2.0", - "dev": true, - "inBundle": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/npm/node_modules/eastasianwidth": { - "version": "0.2.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/encoding": { - "version": "0.1.13", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/npm/node_modules/env-paths": { - "version": "2.2.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/npm/node_modules/err-code": { - "version": "2.0.3", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/exponential-backoff": { - "version": "3.1.1", - "dev": true, - "inBundle": true, - "license": "Apache-2.0" - }, - "node_modules/npm/node_modules/fastest-levenshtein": { - "version": "1.0.16", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 4.9.1" - } - }, - "node_modules/npm/node_modules/foreground-child": { - "version": "3.3.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/fs-minipass": { - "version": "3.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/glob": { - "version": "10.4.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/hosted-git-info": { - "version": "8.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^10.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/http-cache-semantics": { - "version": "4.1.1", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause" - }, - "node_modules/npm/node_modules/http-proxy-agent": { - "version": "7.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/npm/node_modules/https-proxy-agent": { - "version": "7.0.5", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/npm/node_modules/iconv-lite": { - "version": "0.6.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/ignore-walk": { - "version": "7.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minimatch": "^9.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/npm/node_modules/indent-string": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/ini": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/init-package-json": { - "version": "7.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/package-json": "^6.0.0", - "npm-package-arg": "^12.0.0", - "promzard": "^2.0.0", - "read": "^4.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^6.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/ip-address": { - "version": "9.0.5", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/npm/node_modules/ip-regex": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm/node_modules/is-cidr": { - "version": "5.1.0", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "cidr-regex": "^4.1.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/npm/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/isexe": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/jackspeak": { - "version": "3.4.3", - "dev": true, - "inBundle": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/npm/node_modules/jsbn": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/json-parse-even-better-errors": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/json-stringify-nice": { - "version": "1.1.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/jsonparse": { - "version": "1.3.1", - "dev": true, - "engines": [ - "node >= 0.2.0" - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/just-diff": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/just-diff-apply": { - "version": "5.5.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/libnpmaccess": { - "version": "9.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-package-arg": "^12.0.0", - "npm-registry-fetch": "^18.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/libnpmdiff": { - "version": "7.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/arborist": "^8.0.0", - "@npmcli/installed-package-contents": "^3.0.0", - "binary-extensions": "^2.3.0", - "diff": "^5.1.0", - "minimatch": "^9.0.4", - "npm-package-arg": "^12.0.0", - "pacote": "^19.0.0", - "tar": "^6.2.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/libnpmexec": { - "version": "9.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/arborist": "^8.0.0", - "@npmcli/run-script": "^9.0.1", - "ci-info": "^4.0.0", - "npm-package-arg": "^12.0.0", - "pacote": "^19.0.0", - "proc-log": "^5.0.0", - "read": "^4.0.0", - "read-package-json-fast": "^4.0.0", - "semver": "^7.3.7", - "walk-up-path": "^3.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/libnpmfund": { - "version": "6.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/arborist": "^8.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/libnpmhook": { - "version": "11.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^18.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/libnpmorg": { - "version": "7.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^18.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/libnpmpack": { - "version": "8.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/arborist": "^8.0.0", - "@npmcli/run-script": "^9.0.1", - "npm-package-arg": "^12.0.0", - "pacote": "^19.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/libnpmpublish": { - "version": "10.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "ci-info": "^4.0.0", - "normalize-package-data": "^7.0.0", - "npm-package-arg": "^12.0.0", - "npm-registry-fetch": "^18.0.1", - "proc-log": "^5.0.0", - "semver": "^7.3.7", - "sigstore": "^3.0.0", - "ssri": "^12.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/libnpmsearch": { - "version": "8.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-registry-fetch": "^18.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/libnpmteam": { - "version": "7.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^18.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/libnpmversion": { - "version": "7.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^6.0.1", - "@npmcli/run-script": "^9.0.1", - "json-parse-even-better-errors": "^4.0.0", - "proc-log": "^5.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/lru-cache": { - "version": "10.4.3", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/make-fetch-happen": { - "version": "14.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/agent": "^3.0.0", - "cacache": "^19.0.1", - "http-cache-semantics": "^4.1.1", - "minipass": "^7.0.2", - "minipass-fetch": "^4.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^1.0.0", - "proc-log": "^5.0.0", - "promise-retry": "^2.0.1", - "ssri": "^12.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/make-fetch-happen/node_modules/negotiator": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/npm/node_modules/minimatch": { - "version": "9.0.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/minipass": { - "version": "7.1.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/npm/node_modules/minipass-collect": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/npm/node_modules/minipass-fetch": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^3.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/npm/node_modules/minipass-fetch/node_modules/minizlib": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/npm/node_modules/minipass-flush": { - "version": "1.0.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/minipass-pipeline": { - "version": "1.2.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/minipass-sized": { - "version": "1.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/minizlib": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/mkdirp": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/ms": { - "version": "2.1.3", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/mute-stream": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/node-gyp": { - "version": "11.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^10.3.10", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^14.0.3", - "nopt": "^8.0.0", - "proc-log": "^5.0.0", - "semver": "^7.3.5", - "tar": "^7.4.3", - "which": "^5.0.0" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/chownr": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/minizlib": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/mkdirp": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/tar": { - "version": "7.4.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@isaacs/fs-minipass": "^4.0.0", - "chownr": "^3.0.0", - "minipass": "^7.1.2", - "minizlib": "^3.0.1", - "mkdirp": "^3.0.1", - "yallist": "^5.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/yallist": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/npm/node_modules/nopt": { - "version": "8.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "abbrev": "^2.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/nopt/node_modules/abbrev": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/normalize-package-data": { - "version": "7.0.0", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^8.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/npm-audit-report": { - "version": "6.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/npm-bundled": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-normalize-package-bin": "^4.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/npm-install-checks": { - "version": "7.1.1", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/npm-normalize-package-bin": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/npm-package-arg": { - "version": "12.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "hosted-git-info": "^8.0.0", - "proc-log": "^5.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^6.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/npm-packlist": { - "version": "9.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "ignore-walk": "^7.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/npm-pick-manifest": { - "version": "10.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-install-checks": "^7.1.0", - "npm-normalize-package-bin": "^4.0.0", - "npm-package-arg": "^12.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/npm-profile": { - "version": "11.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-registry-fetch": "^18.0.0", - "proc-log": "^5.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/npm-registry-fetch": { - "version": "18.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/redact": "^3.0.0", - "jsonparse": "^1.3.1", - "make-fetch-happen": "^14.0.0", - "minipass": "^7.0.2", - "minipass-fetch": "^4.0.0", - "minizlib": "^3.0.1", - "npm-package-arg": "^12.0.0", - "proc-log": "^5.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/npm-registry-fetch/node_modules/minizlib": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/npm/node_modules/npm-user-validate": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/p-map": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm/node_modules/package-json-from-dist": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/npm/node_modules/pacote": { - "version": "19.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^6.0.0", - "@npmcli/installed-package-contents": "^3.0.0", - "@npmcli/package-json": "^6.0.0", - "@npmcli/promise-spawn": "^8.0.0", - "@npmcli/run-script": "^9.0.0", - "cacache": "^19.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^7.0.2", - "npm-package-arg": "^12.0.0", - "npm-packlist": "^9.0.0", - "npm-pick-manifest": "^10.0.0", - "npm-registry-fetch": "^18.0.0", - "proc-log": "^5.0.0", - "promise-retry": "^2.0.1", - "sigstore": "^3.0.0", - "ssri": "^12.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "bin/index.js" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/parse-conflict-json": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "json-parse-even-better-errors": "^4.0.0", - "just-diff": "^6.0.0", - "just-diff-apply": "^5.2.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/path-scurry": { - "version": "1.11.1", - "dev": true, - "inBundle": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/postcss-selector-parser": { - "version": "6.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/proc-log": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/proggy": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/promise-all-reject-late": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/promise-call-limit": { - "version": "3.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/promise-inflight": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/promise-retry": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/promzard": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "read": "^4.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/qrcode-terminal": { - "version": "0.12.0", - "dev": true, - "inBundle": true, - "bin": { - "qrcode-terminal": "bin/qrcode-terminal.js" - } - }, - "node_modules/npm/node_modules/read": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "mute-stream": "^2.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/read-cmd-shim": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/read-package-json-fast": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "json-parse-even-better-errors": "^4.0.0", - "npm-normalize-package-bin": "^4.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/retry": { - "version": "0.12.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/npm/node_modules/rimraf": { - "version": "5.0.10", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/safer-buffer": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/npm/node_modules/semver": { - "version": "7.6.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/signal-exit": { - "version": "4.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/sigstore": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^3.0.0", - "@sigstore/core": "^2.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "@sigstore/sign": "^3.0.0", - "@sigstore/tuf": "^3.0.0", - "@sigstore/verify": "^2.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/bundle": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/core": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/sign": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^3.0.0", - "@sigstore/core": "^2.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "make-fetch-happen": "^14.0.1", - "proc-log": "^5.0.0", - "promise-retry": "^2.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/verify": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^3.0.0", - "@sigstore/core": "^2.0.0", - "@sigstore/protobuf-specs": "^0.3.2" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/smart-buffer": { - "version": "4.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/npm/node_modules/socks": { - "version": "2.8.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/npm/node_modules/socks-proxy-agent": { - "version": "8.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.1", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/npm/node_modules/spdx-correct": { - "version": "3.2.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/npm/node_modules/spdx-exceptions": { - "version": "2.5.0", - "dev": true, - "inBundle": true, - "license": "CC-BY-3.0" - }, - "node_modules/npm/node_modules/spdx-expression-parse": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/npm/node_modules/spdx-license-ids": { - "version": "3.0.20", - "dev": true, - "inBundle": true, - "license": "CC0-1.0" - }, - "node_modules/npm/node_modules/sprintf-js": { - "version": "1.1.3", - "dev": true, - "inBundle": true, - "license": "BSD-3-Clause" - }, - "node_modules/npm/node_modules/ssri": { - "version": "12.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/supports-color": { - "version": "9.4.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/npm/node_modules/tar": { - "version": "6.2.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/text-table": { - "version": "0.2.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/tiny-relative-date": { - "version": "1.3.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/treeverse": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/tuf-js": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "@tufjs/models": "3.0.1", - "debug": "^4.3.6", - "make-fetch-happen": "^14.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/tuf-js/node_modules/@tufjs/models": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.5" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/unique-filename": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^5.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/unique-slug": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/util-deprecate": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/validate-npm-package-license": { - "version": "3.0.4", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/npm/node_modules/validate-npm-package-name": { - "version": "6.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/walk-up-path": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/which": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/which/node_modules/isexe": { - "version": "3.1.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=16" - } - }, - "node_modules/npm/node_modules/wrap-ansi": { - "version": "8.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/npm/node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "9.2.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { - "version": "5.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/npm/node_modules/write-file-atomic": { - "version": "6.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dev": true, - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-cancelable": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-4.0.1.tgz", - "integrity": "sha512-wBowNApzd45EIKdO1LaU+LrMBwAcjfPaYtVzV3lmfM3gf8Z4CHZsiIqlM8TZZ8okYvh5A1cP6gTfCRQtwUpaUg==", - "dev": true, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/p-each-series": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-3.0.0.tgz", - "integrity": "sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-filter": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-4.1.0.tgz", - "integrity": "sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==", - "dev": true, - "dependencies": { - "p-map": "^7.0.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-filter/node_modules/p-map": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz", - "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-is-promise": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", - "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-reduce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", - "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "dev": true, - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-retry/node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true - }, - "node_modules/pacote": { - "version": "17.0.6", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.6.tgz", - "integrity": "sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ==", - "dev": true, - "dependencies": { - "@npmcli/git": "^5.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^7.0.0", - "cacache": "^18.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^7.0.2", - "npm-package-arg": "^11.0.0", - "npm-packlist": "^8.0.0", - "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^16.0.0", - "proc-log": "^3.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^7.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^2.2.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "lib/bin.js" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-json/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/parse-ms": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", - "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/parse-path": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.0.1.tgz", - "integrity": "sha512-6ReLMptznuuOEzLoGEa+I1oWRSj2Zna5jLWC+l6zlfAI4dbbSaIES29ThzuPkbhNahT65dWzfoZEO6cfJw2Ksg==", - "dev": true, - "dependencies": { - "protocols": "^2.0.0" - } - }, - "node_modules/parse-url": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-9.2.0.tgz", - "integrity": "sha512-bCgsFI+GeGWPAvAiUv63ZorMeif3/U0zaXABGJbOWt5OH2KCaPHF6S+0ok4aqM9RuIPGyZdx9tR9l13PsW4AYQ==", - "dev": true, - "dependencies": { - "@types/parse-path": "^7.0.0", - "parse-path": "^7.0.0" - }, - "engines": { - "node": ">=14.13.0" - } - }, - "node_modules/parse5": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", - "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", - "devOptional": true, - "dependencies": { - "entities": "^4.5.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-html-rewriting-stream": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", - "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", - "dev": true, - "dependencies": { - "entities": "^4.3.0", - "parse5": "^7.0.0", - "parse5-sax-parser": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dev": true, - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "node_modules/parse5-sax-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", - "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", - "dev": true, - "dependencies": { - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", - "dev": true - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true - }, - "node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true - }, - "node_modules/picomatch": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz", - "integrity": "sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/piscina": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.4.0.tgz", - "integrity": "sha512-+AQduEJefrOApE4bV7KRmp3N2JnnyErlVqq4P/jmko4FPz9Z877BCccl/iB3FdrWSUkvbGV9Kan/KllJgat3Vg==", - "dev": true, - "optionalDependencies": { - "nice-napi": "^1.0.2" - } - }, - "node_modules/pkg-conf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", - "integrity": "sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==", - "dev": true, - "dependencies": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "dev": true, - "dependencies": { - "find-up": "^6.3.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dev": true, - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/positioning": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/positioning/-/positioning-2.0.1.tgz", - "integrity": "sha512-DsAgM42kV/ObuwlRpAzDTjH9E8fGKkMDJHWFX+kfNXSxh7UCCQxEmdjv/Ws5Ft1XDnt3JT8fIDYeKNSE2TbttA==" - }, - "node_modules/postcss": { - "version": "8.4.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", - "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-loader": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.1.tgz", - "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", - "dev": true, - "dependencies": { - "cosmiconfig": "^9.0.0", - "jiti": "^1.20.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", - "dev": true - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", - "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", - "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/pretty-ms": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.2.0.tgz", - "integrity": "sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==", - "dev": true, - "dependencies": { - "parse-ms": "^4.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true - }, - "node_modules/protocols": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.2.tgz", - "integrity": "sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==", - "dev": true - }, - "node_modules/protractor": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", - "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", - "deprecated": "We have news to share - Protractor is deprecated and will reach end-of-life by Summer 2023. To learn more and find out about other options please refer to this post on the Angular blog. Thank you for using and contributing to Protractor. https://goo.gle/state-of-e2e-in-angular", - "dev": true, - "dependencies": { - "@types/q": "^0.0.32", - "@types/selenium-webdriver": "^3.0.0", - "blocking-proxy": "^1.0.0", - "browserstack": "^1.5.1", - "chalk": "^1.1.3", - "glob": "^7.0.3", - "jasmine": "2.8.0", - "jasminewd2": "^2.1.0", - "q": "1.4.1", - "saucelabs": "^1.5.0", - "selenium-webdriver": "3.6.0", - "source-map-support": "~0.4.0", - "webdriver-js-extender": "2.1.0", - "webdriver-manager": "^12.1.7", - "yargs": "^15.3.1" - }, - "bin": { - "protractor": "bin/protractor", - "webdriver-manager": "bin/webdriver-manager" - }, - "engines": { - "node": ">=10.13.x" - } - }, - "node_modules/protractor/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/protractor/node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/protractor/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "dependencies": { - "source-map": "^0.5.6" - } - }, - "node_modules/protractor/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/protractor/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/protractor/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true, - "optional": true - }, - "node_modules/psl": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", - "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", - "dependencies": { - "punycode": "^2.3.1" - }, - "funding": { - "url": "https://github.com/sponsors/lupomontero" - } - }, - "node_modules/psl/node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, - "node_modules/q": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", - "integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==", - "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", - "dev": true, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", - "dev": true, - "engines": { - "node": ">=0.9" - } - }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/read-package-json": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.1.tgz", - "integrity": "sha512-8PcDiZ8DXUjLf687Ol4BR8Bpm2umR7vhoZOzNRt+uxD9GpBh/K+CAAALVIiYFknmvlmyg7hM7BSNUXPaCCqd0Q==", - "deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.", - "dev": true, - "dependencies": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/read-package-json-fast": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", - "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", - "dev": true, - "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/read-package-json/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/read-package-json/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/read-package-up": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz", - "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==", - "dev": true, - "dependencies": { - "find-up-simple": "^1.0.0", - "read-pkg": "^9.0.0", - "type-fest": "^4.6.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", - "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.3", - "normalize-package-data": "^6.0.0", - "parse-json": "^8.0.0", - "type-fest": "^4.6.0", - "unicorn-magic": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-11.0.0.tgz", - "integrity": "sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q==", - "deprecated": "Renamed to read-package-up", - "dev": true, - "dependencies": { - "find-up-simple": "^1.0.0", - "read-pkg": "^9.0.0", - "type-fest": "^4.6.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg/node_modules/parse-json": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz", - "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "index-to-position": "^0.1.2", - "type-fest": "^4.7.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg/node_modules/unicorn-magic": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/readdirp/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.14", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", - "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", - "dev": true - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.1.tgz", - "integrity": "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==", - "dev": true - }, - "node_modules/regexpu-core": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", - "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", - "regjsgen": "^0.8.0", - "regjsparser": "^0.12.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/registry-auth-token": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.0.tgz", - "integrity": "sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==", - "dev": true, - "dependencies": { - "@pnpm/npm-conf": "^2.1.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", - "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", - "dev": true, - "dependencies": { - "jsesc": "~3.0.2" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-url-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", - "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", - "dev": true, - "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.14", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/resolve-url-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "dev": true, - "dependencies": { - "lowercase-keys": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rfdc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "dev": true - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.35.0.tgz", - "integrity": "sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==", - "dev": true, - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.35.0", - "@rollup/rollup-android-arm64": "4.35.0", - "@rollup/rollup-darwin-arm64": "4.35.0", - "@rollup/rollup-darwin-x64": "4.35.0", - "@rollup/rollup-freebsd-arm64": "4.35.0", - "@rollup/rollup-freebsd-x64": "4.35.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.35.0", - "@rollup/rollup-linux-arm-musleabihf": "4.35.0", - "@rollup/rollup-linux-arm64-gnu": "4.35.0", - "@rollup/rollup-linux-arm64-musl": "4.35.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.35.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.35.0", - "@rollup/rollup-linux-riscv64-gnu": "4.35.0", - "@rollup/rollup-linux-s390x-gnu": "4.35.0", - "@rollup/rollup-linux-x64-gnu": "4.35.0", - "@rollup/rollup-linux-x64-musl": "4.35.0", - "@rollup/rollup-win32-arm64-msvc": "4.35.0", - "@rollup/rollup-win32-ia32-msvc": "4.35.0", - "@rollup/rollup-win32-x64-msvc": "4.35.0", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-async": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", - "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/rxjs/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "devOptional": true - }, - "node_modules/sass": { - "version": "1.71.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz", - "integrity": "sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==", - "dev": true, - "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-loader": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-14.1.1.tgz", - "integrity": "sha512-QX8AasDg75monlybel38BZ49JP5Z+uSKfKwF2rO7S74BywaRmGQMUBw9dtkS+ekyM/QnP+NOrRYq8ABMZ9G8jw==", - "dev": true, - "dependencies": { - "neo-async": "^2.6.2" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/saucelabs": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", - "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", - "dev": true, - "dependencies": { - "https-proxy-agent": "^2.2.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/saucelabs/node_modules/agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "dev": true, - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" + "@mapbox/point-geometry": "~1.1.0", + "@types/geojson": "^7946.0.16", + "pbf": "^4.0.1" } }, - "node_modules/saucelabs/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/saucelabs/node_modules/https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "dev": true, + "node_modules/@microsoft/signalr": { + "version": "8.0.17", + "resolved": "https://registry.npmjs.org/@microsoft/signalr/-/signalr-8.0.17.tgz", + "integrity": "sha512-5pM6xPtKZNJLO0Tq5nQasVyPFwi/WBY3QB5uc/v3dIPTpS1JXQbaXAQAPxFoQ5rTBFE094w8bbqkp17F9ReQvA==", + "license": "MIT", "dependencies": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "engines": { - "node": ">= 4.5.0" + "abort-controller": "^3.0.0", + "eventsource": "^2.0.2", + "fetch-cookie": "^2.0.3", + "node-fetch": "^2.6.7", + "ws": "^7.5.10" } }, - "node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "dev": true - }, - "node_modules/schema-utils": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", - "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 10.13.0" - }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", "funding": { "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/sdp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/sdp/-/sdp-3.2.0.tgz", - "integrity": "sha512-d7wDPgDV3DDiqulJjKiV2865wKsJ34YI+NDREbm+FySq6WuKOikwyNQcm+doLAZ1O6ltdO0SeKle2xMpN3Brgw==" - }, - "node_modules/sdp-transform": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/sdp-transform/-/sdp-transform-2.15.0.tgz", - "integrity": "sha512-KrOH82c/W+GYQ0LHqtr3caRpM3ITglq3ljGUIb8LTki7ByacJZ9z+piSGiwZDsRyhQbYBOBJgr2k6X4BZXi3Kw==", - "bin": { - "sdp-verify": "checker.js" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "dev": true - }, - "node_modules/selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", - "dev": true, - "dependencies": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" - }, - "engines": { - "node": ">= 6.9.0" - } - }, - "node_modules/selenium-webdriver/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/selenium-webdriver/node_modules/tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", - "dev": true, - "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semantic-release": { - "version": "23.1.1", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-23.1.1.tgz", - "integrity": "sha512-qqJDBhbtHsjUEMsojWKGuL5lQFCJuPtiXKEIlFKyTzDDGTAE/oyvznaP8GeOr5PvcqBJ6LQz4JCENWPLeehSpA==", - "dev": true, - "dependencies": { - "@semantic-release/commit-analyzer": "^12.0.0", - "@semantic-release/error": "^4.0.0", - "@semantic-release/github": "^10.0.0", - "@semantic-release/npm": "^12.0.0", - "@semantic-release/release-notes-generator": "^13.0.0", - "aggregate-error": "^5.0.0", - "cosmiconfig": "^9.0.0", - "debug": "^4.0.0", - "env-ci": "^11.0.0", - "execa": "^9.0.0", - "figures": "^6.0.0", - "find-versions": "^6.0.0", - "get-stream": "^6.0.0", - "git-log-parser": "^1.2.0", - "hook-std": "^3.0.0", - "hosted-git-info": "^7.0.0", - "import-from-esm": "^1.3.1", - "lodash-es": "^4.17.21", - "marked": "^12.0.0", - "marked-terminal": "^7.0.0", - "micromatch": "^4.0.2", - "p-each-series": "^3.0.0", - "p-reduce": "^3.0.0", - "read-package-up": "^11.0.0", - "resolve-from": "^5.0.0", - "semver": "^7.3.2", - "semver-diff": "^4.0.0", - "signale": "^1.2.1", - "yargs": "^17.5.1" - }, - "bin": { - "semantic-release": "bin/semantic-release.js" - }, - "engines": { - "node": ">=20.8.1" - } - }, - "node_modules/semantic-release/node_modules/@semantic-release/error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", - "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", - "dev": true, - "engines": { - "node": ">=18" + "url": "https://opencollective.com/popperjs" } }, - "node_modules/semantic-release/node_modules/@semantic-release/npm": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-12.0.1.tgz", - "integrity": "sha512-/6nntGSUGK2aTOI0rHPwY3ZjgY9FkXmEHbW9Kr+62NVOsyqpKKeP0lrCH+tphv+EsNdJNmqqwijTEnVWUMQ2Nw==", - "dev": true, + "node_modules/@restart/hooks": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.16.tgz", + "integrity": "sha512-f7aCv7c+nU/3mF7NWLtVVr0Ra80RqsO89hO72r+Y/nvQr5+q0UFGkocElTH6MJApvReVh6JHUFYn2cw1WdHF3w==", + "license": "MIT", "dependencies": { - "@semantic-release/error": "^4.0.0", - "aggregate-error": "^5.0.0", - "execa": "^9.0.0", - "fs-extra": "^11.0.0", - "lodash-es": "^4.17.21", - "nerf-dart": "^1.0.0", - "normalize-url": "^8.0.0", - "npm": "^10.5.0", - "rc": "^1.2.8", - "read-pkg": "^9.0.0", - "registry-auth-token": "^5.0.0", - "semver": "^7.1.2", - "tempy": "^3.0.0" - }, - "engines": { - "node": ">=20.8.1" + "dequal": "^2.0.3" }, "peerDependencies": { - "semantic-release": ">=20.1.0" - } - }, - "node_modules/semantic-release/node_modules/@sindresorhus/merge-streams": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", - "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/aggregate-error": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", - "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", - "dev": true, - "dependencies": { - "clean-stack": "^5.2.0", - "indent-string": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/clean-stack": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", - "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "5.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/execa": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.2.tgz", - "integrity": "sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==", - "dev": true, - "dependencies": { - "@sindresorhus/merge-streams": "^4.0.0", - "cross-spawn": "^7.0.3", - "figures": "^6.1.0", - "get-stream": "^9.0.0", - "human-signals": "^8.0.0", - "is-plain-obj": "^4.1.0", - "is-stream": "^4.0.1", - "npm-run-path": "^6.0.0", - "pretty-ms": "^9.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^4.0.0", - "yoctocolors": "^2.0.0" - }, - "engines": { - "node": "^18.19.0 || >=20.5.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "react": ">=16.8.0" } }, - "node_modules/semantic-release/node_modules/execa/node_modules/get-stream": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", - "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", "dev": true, - "dependencies": { - "@sec-ant/readable-stream": "^0.4.1", - "is-stream": "^4.0.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/figures": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", - "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", - "dev": true, - "dependencies": { - "is-unicode-supported": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/human-signals": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz", - "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==", - "dev": true, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/semantic-release/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/is-stream": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", - "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, - "node_modules/semantic-release/node_modules/is-unicode-supported": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", - "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.35.0.tgz", + "integrity": "sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==", + "cpu": [ + "arm" + ], "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "optional": true, + "os": [ + "android" + ] }, - "node_modules/semantic-release/node_modules/npm-run-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", - "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.35.0.tgz", + "integrity": "sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "path-key": "^4.0.0", - "unicorn-magic": "^0.3.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "optional": true, + "os": [ + "android" + ] }, - "node_modules/semantic-release/node_modules/p-reduce": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", - "integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==", + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.35.0.tgz", + "integrity": "sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==", + "cpu": [ + "arm64" + ], "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/semantic-release/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.35.0.tgz", + "integrity": "sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==", + "cpu": [ + "x64" + ], "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/semantic-release/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.35.0.tgz", + "integrity": "sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==", + "cpu": [ + "arm64" + ], "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/semantic-release/node_modules/strip-final-newline": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", - "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.35.0.tgz", + "integrity": "sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==", + "cpu": [ + "x64" + ], "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.35.0.tgz", + "integrity": "sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/semver-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", - "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.35.0.tgz", + "integrity": "sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/semver-dsl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", - "integrity": "sha512-e8BOaTo007E3dMuQQTnPdalbKTABKNS7UxoBIDnwOqRa+QwMrCPjynB8zAlPF6xlqUfdLPPLIJ13hJNmhtq8Ng==", + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.35.0.tgz", + "integrity": "sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "semver": "^5.3.0" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/semver-dsl/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.35.0.tgz", + "integrity": "sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==", + "cpu": [ + "arm64" + ], "dev": true, - "bin": { - "semver": "bin/semver" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/semver-regex": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-4.0.5.tgz", - "integrity": "sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==", + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.35.0.tgz", + "integrity": "sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==", + "cpu": [ + "loong64" + ], "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.35.0.tgz", + "integrity": "sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.35.0.tgz", + "integrity": "sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.35.0.tgz", + "integrity": "sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==", + "cpu": [ + "s390x" + ], "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.35.0.tgz", + "integrity": "sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "ms": "2.0.0" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.35.0.tgz", + "integrity": "sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/send/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.35.0.tgz", + "integrity": "sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==", + "cpu": [ + "arm64" + ], "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/send/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.35.0.tgz", + "integrity": "sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==", + "cpu": [ + "ia32" + ], "dev": true, - "engines": { - "node": ">= 0.8" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.35.0.tgz", + "integrity": "sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, + "license": "MIT", "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.0.0" + "@babel/types": "^7.0.0" } }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, - "engines": { - "node": ">= 0.6" + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "dev": true, + "license": "MIT", "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" + "@babel/types": "^7.28.2" } }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true + "node_modules/@types/date-arithmetic": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@types/date-arithmetic/-/date-arithmetic-4.1.4.tgz", + "integrity": "sha512-p9eZ2X9B80iKiTW4ukVj8B4K6q9/+xFtQ5MGYA5HWToY9nL4EkhV9+6ftT2VHpVMEZb5Tv00Iel516bVdO+yRw==", + "dev": true, + "license": "MIT" }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==" }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "dev": true, + "node_modules/@types/geojson-vt": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/geojson-vt/-/geojson-vt-3.2.5.tgz", + "integrity": "sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==", + "license": "MIT", "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" + "@types/geojson": "*" } }, - "node_modules/serve-static/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "node_modules/@types/leaflet": { + "version": "1.9.21", + "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.21.tgz", + "integrity": "sha512-TbAd9DaPGSnzp6QvtYngntMZgcRk+igFELwR2N99XZn7RXUdKgsXMR+28bUO0rPsWp8MIu/f47luLIQuSLYv/w==", "dev": true, - "engines": { - "node": ">= 0.8" + "license": "MIT", + "dependencies": { + "@types/geojson": "*" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "node_modules/@types/node": { + "version": "20.19.39", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.39.tgz", + "integrity": "sha512-orrrD74MBUyK8jOAD/r0+lfa1I2MO6I+vAkmAWzMYbCcgrN4lCrmK52gRFQq/JRxfYPfonkr4b0jcY7Olqdqbw==", "dev": true, + "license": "MIT", "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" + "undici-types": "~6.21.0" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true + "node_modules/@types/node/node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true + "node_modules/@types/pbf": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.5.tgz", + "integrity": "sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==", + "license": "MIT" }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "license": "MIT" }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, + "node_modules/@types/react": { + "version": "18.3.28", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz", + "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==", + "license": "MIT", "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" + "@types/prop-types": "*", + "csstype": "^3.2.2" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/@types/react-big-calendar": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/@types/react-big-calendar/-/react-big-calendar-1.16.3.tgz", + "integrity": "sha512-CR+5BKMhlr/wPgsp+sXOeNKNkoU1h/+6H1XoWuL7xnurvzGRQv/EnM8jPS9yxxBvXI8pjQBaJcI7RTSGiewG/Q==", "dev": true, - "engines": { - "node": ">=8" + "license": "MIT", + "dependencies": { + "@types/date-arithmetic": "*", + "@types/prop-types": "*", + "@types/react": "*" } }, - "node_modules/shell-quote": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", - "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "node_modules/@types/react-dom": { + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" } }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "dev": true, + "node_modules/@types/supercluster": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.3.tgz", + "integrity": "sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==", + "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@types/geojson": "*" } }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "node_modules/@types/warning": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.4.tgz", + "integrity": "sha512-CqN8MnISMwQbLJXO3doBAV4Yw9hx9/Pyr2rZ78+NfaCnhyRA/nKrpyk6E7mKw17ZOaQdLpK9GiUjrqLzBlN3sg==", + "license": "MIT" + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", + "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", "dev": true, + "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" + "@babel/core": "^7.28.0", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.27", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.18.0 || >=16.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "node_modules/@vitejs/plugin-react/node_modules/@babel/core": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "node_modules/@vitejs/plugin-react/node_modules/@babel/generator": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6.9.0" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "node_modules/@vitejs/plugin-react/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" }, - "node_modules/signale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", - "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", + "node_modules/@vitejs/plugin-react/node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, - "dependencies": { - "chalk": "^2.3.2", - "figures": "^2.0.0", - "pkg-conf": "^2.1.0" + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" }, "engines": { "node": ">=6" } }, - "node_modules/signale/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@vitejs/plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "dependencies": { - "color-convert": "^1.9.0" + "event-target-shim": "^5.0.0" }, "engines": { - "node": ">=4" + "node": ">=6.5" } }, - "node_modules/signale/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "optional": true, + "peer": true, + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=4" + "node": ">=0.4.0" } }, - "node_modules/signale/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/signale/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/signale/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, "engines": { - "node": ">=0.8.0" + "node": ">= 8" } }, - "node_modules/signale/node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, + "optional": true, + "peer": true, "engines": { - "node": ">=4" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/signale/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, + "optional": true, + "peer": true, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/signale/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "has-flag": "^3.0.0" + "fill-range": "^7.1.1" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/sigstore": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz", - "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "@sigstore/sign": "^2.3.2", - "@sigstore/tuf": "^2.3.4", - "@sigstore/verify": "^1.2.1" + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/skin-tone": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", - "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true, - "dependencies": { - "unicode-emoji-modifier-base": "^1.0.0" - }, - "engines": { - "node": ">=8" - } + "optional": true, + "peer": true }, - "node_modules/slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "node_modules/caniuse-lite": { + "version": "1.0.30001703", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001703.tgz", + "integrity": "sha512-kRlAGTRWgPsOj7oARC9m1okJEXdL/8fekFVcxA8Hl7GH4r/sN4OJn/i6Flde373T50KS7Y37oFbMwlE8+F42kQ==", "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } + "node_modules/cheap-ruler": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-4.0.0.tgz", + "integrity": "sha512-0BJa8f4t141BYKQyn9NSQt1PguFQXMXwZiA5shfoaBYHAb2fFk2RAX+tiWMoQU+Agtzt3mdt0JtuyshAXqZ+Vw==", + "license": "ISC" }, - "node_modules/socket.io": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz", - "integrity": "sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==", + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "cors": "~2.8.5", - "debug": "~4.3.2", - "engine.io": "~6.6.0", - "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.4" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">=10.2.0" - } - }, - "node_modules/socket.io-adapter": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", - "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", - "dev": true, - "dependencies": { - "debug": "~4.3.4", - "ws": "~8.17.1" - } - }, - "node_modules/socket.io-adapter/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.3" + "node": ">= 8.10.0" }, - "engines": { - "node": ">=6.0" + "funding": { + "url": "https://paulmillr.com/funding/" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/socket.io-adapter/node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", - "dev": true, + "node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "node": ">=6" } }, - "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" + "is-what": "^3.14.1" }, - "engines": { - "node": ">=10.0.0" + "funding": { + "url": "https://github.com/sponsors/mesqueeb" } }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, + "node_modules/csscolorparser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", + "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==", + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/date-arithmetic": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-arithmetic/-/date-arithmetic-4.1.0.tgz", + "integrity": "sha512-QWxYLR5P/6GStZcdem+V1xoto6DMadYWpMXU82ES3/RfR3Wdwr3D0+be7mgOJ+Ov0G9D5Dmb9T17sNLQYj9XOg==", + "license": "MIT" + }, + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", "dependencies": { - "ms": "^2.1.3" + "@babel/runtime": "^7.21.0" }, "engines": { - "node": ">=6.0" + "node": ">=0.11" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" } }, - "node_modules/socket.io/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "node_modules/dayjs": { + "version": "1.11.20", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.20.tgz", + "integrity": "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, "dependencies": { "ms": "^2.1.3" @@ -18561,97 +1292,53 @@ } } }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/sockjs/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/socks": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", - "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", - "dev": true, - "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" + "node": ">=6" } }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "dev": true, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" } }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" - } + "node_modules/earcut": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.2.tgz", + "integrity": "sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==", + "license": "ISC" }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "node_modules/electron-to-chromium": { + "version": "1.5.114", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.114.tgz", + "integrity": "sha512-DFptFef3iktoKlFQK/afbo274/XNWD00Am0xa7M8FZUepHlHT8PEuiNBoRfFHbH1okqN58AlhbJ4QTkcnXorjA==", + "dev": true }, - "node_modules/source-map-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", - "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", - "dev": true, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "peer": true, "dependencies": { - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.72.1" + "iconv-lite": "^0.6.2" } }, - "node_modules/source-map-loader/node_modules/iconv-lite": { + "node_modules/encoding/node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -18659,777 +1346,686 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" } }, - "node_modules/spawn-error-forwarder": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", - "integrity": "sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==", - "dev": true - }, - "node_modules/spdx-correct": { + "node_modules/escalade": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "engines": { + "node": ">=6" } }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.21", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", - "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", - "dev": true - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, + "node_modules/eventsource": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", + "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", + "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">=12.0.0" } }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, + "node_modules/fetch-cookie": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-2.2.0.tgz", + "integrity": "sha512-h9AgfjURuCgA2+2ISl8GbavpUdR+WGAM2McW/ovn4tVccegp8ZqCKWSBR8uRdM8dDNlx5WdKRWxBYUwteLDCNQ==", + "license": "Unlicense", "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" + "set-cookie-parser": "^2.4.8", + "tough-cookie": "^4.0.0" } }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "dev": true, + "node_modules/fetch-cookie/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", "engines": { - "node": ">= 10.x" + "node": ">=6" } }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true - }, - "node_modules/sshpk": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", - "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", - "dev": true, + "node_modules/fetch-cookie/node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "license": "BSD-3-Clause", "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/sshpk/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true + "node_modules/fetch-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } }, - "node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "minipass": "^7.0.3" + "to-regex-range": "^5.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 0.6" - } - }, - "node_modules/stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", - "dev": true, - "dependencies": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/stream-combiner2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/stream-combiner2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "node_modules/geojson-vt": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-4.0.2.tgz", + "integrity": "sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==", + "license": "ISC" }, - "node_modules/stream-combiner2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } + "node_modules/gl-matrix": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.4.tgz", + "integrity": "sha512-latSnyDNt/8zYUB6VIJ6PCh2jBjJX6gnDsoCZ7LyW7GkqrD51EWwa9qCoGixj8YqBtETQK/xY7OmpTF8xz1DdQ==", + "license": "MIT" }, - "node_modules/streamroller": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", - "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "fs-extra": "^8.1.0" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=8.0" + "node": ">= 6" } }, - "node_modules/streamroller/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } + "node_modules/globalize": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/globalize/-/globalize-0.1.1.tgz", + "integrity": "sha512-5e01v8eLGfuQSOvx2MsDMOWS0GFtCx1wPzQSmcHw4hkxFzrQDBO3Xwg/m8Hr/7qXMrHeOIE29qWVzyv06u1TZA==" }, - "node_modules/streamroller/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } + "optional": true, + "peer": true + }, + "node_modules/grid-index": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", + "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==", + "license": "ISC" }, - "node_modules/streamroller/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", "dev": true, + "optional": true, + "peer": true, + "bin": { + "image-size": "bin/image-size.js" + }, "engines": { - "node": ">= 4.0.0" + "node": ">=0.10.0" } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "node_modules/immutable": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } + "optional": true, + "peer": true }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "loose-envify": "^1.0.0" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "binary-extensions": "^2.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, + "optional": true, + "peer": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "ansi-regex": "^5.0.1" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "optional": true, + "peer": true, "engines": { - "node": ">=8" + "node": ">=0.12.0" } }, - "node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", "dev": true, - "engines": { - "node": ">=8" - } + "optional": true, + "peer": true }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "peer": true, + "bin": { + "jsesc": "bin/jsesc" + }, "engines": { "node": ">=4" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "bin": { + "json5": "lib/cli.js" + }, "engines": { "node": ">=6" } }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "node_modules/kdbush": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", + "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==", + "license": "ISC" }, - "node_modules/super-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-1.0.0.tgz", - "integrity": "sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==", + "node_modules/leaflet": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", + "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==" + }, + "node_modules/less": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "function-timeout": "^1.0.1", - "time-span": "^5.1.0" + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" }, "engines": { - "node": ">=18" + "node": ">=6" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" } }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "has-flag": "^4.0.0" + "pify": "^4.0.1", + "semver": "^5.6.0" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/supports-hyperlinks": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", - "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", + "node_modules/less/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" + "optional": true, + "peer": true, + "bin": { + "mime": "cli.js" }, "engines": { - "node": ">=14.18" - }, - "funding": { - "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + "node": ">=4" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "node_modules/less/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, + "optional": true, + "peer": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "node_modules/symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "node_modules/less/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "engines": { - "node": ">=0.10" + "optional": true, + "peer": true, + "bin": { + "semver": "bin/semver" } }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "optional": true, + "peer": true, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "dev": true, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "js-tokens": "^3.0.0 || ^4.0.0" }, - "engines": { - "node": ">=10" + "bin": { + "loose-envify": "cli.js" } }, - "node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" + "yallist": "^3.0.2" } }, - "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, + "node_modules/luxon": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz", + "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" + "node_modules/mapbox-gl": { + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-3.22.0.tgz", + "integrity": "sha512-ZIpF+oAMcQoDlvABmiRkHoydyBR9zI6CyDeVRa2/iyua0/B2+rPuIzoCV/CgN14P5F0HVk53GIZw220WSqJPyA==", + "license": "SEE LICENSE IN LICENSE.txt", + "workspaces": [ + "src/style-spec", + "packages/pmtiles-provider", + "test/build/vite", + "test/build/webpack", + "test/build/typings" + ], + "dependencies": { + "@mapbox/mapbox-gl-supported": "^3.0.0", + "@mapbox/point-geometry": "^1.1.0", + "@mapbox/tiny-sdf": "^2.0.6", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^2.0.4", + "@types/geojson": "^7946.0.16", + "@types/geojson-vt": "^3.2.5", + "@types/pbf": "^3.0.5", + "@types/supercluster": "^7.1.3", + "cheap-ruler": "^4.0.0", + "csscolorparser": "~1.0.3", + "earcut": "^3.0.1", + "geojson-vt": "^4.0.2", + "gl-matrix": "^3.4.4", + "grid-index": "^1.1.0", + "kdbush": "^4.0.2", + "martinez-polygon-clipping": "^0.8.1", + "murmurhash-js": "^1.0.0", + "pbf": "^4.0.1", + "potpack": "^2.0.0", + "quickselect": "^3.0.0", + "supercluster": "^8.0.1", + "tinyqueue": "^3.0.0" } }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" + "node_modules/martinez-polygon-clipping": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/martinez-polygon-clipping/-/martinez-polygon-clipping-0.8.1.tgz", + "integrity": "sha512-9PLLMzMPI6ihHox4Ns6LpVBLpRc7sbhULybZ/wyaY8sY3ECNe2+hxm1hA2/9bEEpRrdpjoeduBuZLg2aq1cSIQ==", + "license": "MIT", + "dependencies": { + "robust-predicates": "^2.0.4", + "splaytree": "^0.1.4", + "tinyqueue": "3.0.0" } }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", + "license": "MIT" }, - "node_modules/temp-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", - "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==", - "dev": true, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "license": "MIT", "engines": { - "node": ">=14.16" + "node": "*" } }, - "node_modules/tempy": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz", - "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==", - "dev": true, + "node_modules/moment-timezone": { + "version": "0.5.48", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.48.tgz", + "integrity": "sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw==", + "license": "MIT", "dependencies": { - "is-stream": "^3.0.0", - "temp-dir": "^3.0.0", - "type-fest": "^2.12.2", - "unique-string": "^3.0.0" + "moment": "^2.29.4" }, "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "*" } }, - "node_modules/tempy/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==", + "license": "MIT" }, - "node_modules/tempy/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "dev": true, - "engines": { - "node": ">=12.20" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/terser": { - "version": "5.29.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.1.tgz", - "integrity": "sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ==", + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" }, "bin": { - "terser": "bin/terser" + "needle": "bin/needle" }, "engines": { - "node": ">=10" + "node": ">= 4.4.x" } }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.14", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", - "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", - "terser": "^5.31.1" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">= 10.13.0" + "node": ">=0.10.0" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "engines": { + "node": "4.x || >=6.0.0" }, "peerDependencies": { - "webpack": "^5.1.0" + "encoding": "^0.1.0" }, "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { + "encoding": { "optional": true } } }, - "node_modules/terser-webpack-plugin/node_modules/terser": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", - "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, + "optional": true, + "peer": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/text-extensions": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", - "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", - "dev": true, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0" + "node": ">=0.10.0" } }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true, - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, + "optional": true, + "peer": true, "engines": { - "node": ">=0.8" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "node": ">= 0.10" } }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, + "node_modules/pbf": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-4.0.1.tgz", + "integrity": "sha512-SuLdBvS42z33m8ejRbInMapQe8n0D3vN/Xd5fmWM3tufNgRQFBpaW2YVJxQZV4iPNqb0vEFvssMEo5w9c6BTIA==", + "license": "BSD-3-Clause", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" } }, - "node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/through2/node_modules/string_decoder": { + "node_modules/picocolors": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, - "node_modules/time-span": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", - "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", - "dev": true, - "dependencies": { - "convert-hrtime": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } + "node_modules/potpack": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.1.0.tgz", + "integrity": "sha512-pcaShQc1Shq0y+E7GqJqvZj8DTthWV1KeHGdi0Z6IAin2Oi3JnLCOfwnCo84qc+HAp52wT9nK9H7FAJp5a44GQ==", + "license": "ISC" }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" } }, - "node_modules/toidentifier": { + "node_modules/protocol-buffers-schema": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.1.tgz", + "integrity": "sha512-VG2K63Igkiv9p76tk1lilczEK1cT+kCjKtkdhw1dQZV3k3IXJbd3o6Ho8b9zJZaHSnT2hKe4I+ObmX9w6m5SmQ==", + "license": "MIT" + }, + "node_modules/prr": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true, - "engines": { - "node": ">=0.6" - } + "optional": true, + "peer": true }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "punycode": "^2.3.1" }, - "engines": { - "node": ">=0.8" + "funding": { + "url": "https://github.com/sponsors/lupomontero" } }, - "node_modules/tough-cookie/node_modules/punycode": { + "node_modules/psl/node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", @@ -19437,461 +2033,380 @@ "node": ">=6" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/traverse": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz", - "integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "license": "MIT" }, - "node_modules/ts-debounce": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ts-debounce/-/ts-debounce-4.0.0.tgz", - "integrity": "sha512-+1iDGY6NmOGidq7i7xZGA4cm8DAa6fqdYcvO5Z6yBevH++Bdo9Qt/mN0TzHUgcCcKv1gmh9+W5dHqz8pMWbCbg==" + "node_modules/quickselect": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-3.0.0.tgz", + "integrity": "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==", + "license": "ISC" }, - "node_modules/ts-node": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", - "integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==", - "dev": true, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", "dependencies": { - "arg": "^4.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.6", - "yn": "^3.0.0" - }, - "bin": { - "ts-node": "dist/bin.js" + "loose-envify": "^1.1.0" }, "engines": { - "node": ">=4.2.0" - }, - "peerDependencies": { - "typescript": ">=2.0" + "node": ">=0.10.0" } }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" - }, - "node_modules/tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", - "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", - "dev": true, + "node_modules/react-big-calendar": { + "version": "1.19.4", + "resolved": "https://registry.npmjs.org/react-big-calendar/-/react-big-calendar-1.19.4.tgz", + "integrity": "sha512-FrvbDx2LF6JAWFD96LU1jjloppC5OgIvMYUYIPzAw5Aq+ArYFPxAjLqXc4DyxfsQDN0TJTMuS/BIbcSB7Pg0YA==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.0" - }, - "bin": { - "tslint": "bin/tslint" - }, - "engines": { - "node": ">=4.8.0" + "@babel/runtime": "^7.20.7", + "clsx": "^1.2.1", + "date-arithmetic": "^4.1.0", + "dayjs": "^1.11.7", + "dom-helpers": "^5.2.1", + "globalize": "^0.1.1", + "invariant": "^2.2.4", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "luxon": "^3.2.1", + "memoize-one": "^6.0.0", + "moment": "^2.29.4", + "moment-timezone": "^0.5.40", + "prop-types": "^15.8.1", + "react-overlays": "^5.2.1", + "uncontrollable": "^7.2.1" }, "peerDependencies": { - "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" - } - }, - "node_modules/tslint/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" + "react": "^16.14.0 || ^17 || ^18 || ^19", + "react-dom": "^16.14.0 || ^17 || ^18 || ^19" } }, - "node_modules/tslint/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslint/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/tslint/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/tslint/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/tslint/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslint/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" + "peerDependencies": { + "react": "^18.3.1" } }, - "node_modules/tslint/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" }, - "node_modules/tslint/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", + "license": "MIT" }, - "node_modules/tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, + "node_modules/react-overlays": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz", + "integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==", + "license": "MIT", "dependencies": { - "tslib": "^1.8.1" + "@babel/runtime": "^7.13.8", + "@popperjs/core": "^2.11.6", + "@restart/hooks": "^0.4.7", + "@types/warning": "^3.0.0", + "dom-helpers": "^5.2.0", + "prop-types": "^15.7.2", + "uncontrollable": "^7.2.1", + "warning": "^4.0.3" }, "peerDependencies": { - "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" + "react": ">=16.3.0", + "react-dom": ">=16.3.0" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tuf-js": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", - "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", "dev": true, - "dependencies": { - "@tufjs/models": "2.0.1", - "debug": "^4.3.4", - "make-fetch-happen": "^13.0.1" - }, + "license": "MIT", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "safe-buffer": "^5.0.1" + "picomatch": "^2.2.1" }, "engines": { - "node": "*" + "node": ">=8.10.0" } }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true - }, - "node_modules/type-fest": { - "version": "4.37.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.37.0.tgz", - "integrity": "sha512-S/5/0kFftkq27FPNye0XM1e2NsnoD/3FS+pBmbjmmtLT6I+i344KoOf7pvXreaFsDamWeaJX55nczA1m5PsBDg==", + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "optional": true, + "peer": true, "engines": { - "node": ">=16" + "node": ">=8.6" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, - "node_modules/typed-assert": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", - "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", - "dev": true + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, - "node_modules/typed-emitter": { + "node_modules/resolve-protobuf-schema": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz", - "integrity": "sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==", - "optionalDependencies": { - "rxjs": "*" + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "license": "MIT", + "dependencies": { + "protocol-buffers-schema": "^3.3.1" } }, - "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } + "node_modules/robust-predicates": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-2.0.4.tgz", + "integrity": "sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==", + "license": "Unlicense" }, - "node_modules/ua-parser-js": { - "version": "0.7.40", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.40.tgz", - "integrity": "sha512-us1E3K+3jJppDBa3Tl0L3MOJiGhe1C6P0+nIvQAFYbxlMAx0h81eOwLmU57xgqToduDDPx3y5QsdjPfDu+FgOQ==", + "node_modules/rollup": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.35.0.tgz", + "integrity": "sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - }, - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" - } - ], + "dependencies": { + "@types/estree": "1.0.6" + }, "bin": { - "ua-parser-js": "script/cli.js" + "rollup": "dist/bin/rollup" }, "engines": { - "node": "*" + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.35.0", + "@rollup/rollup-android-arm64": "4.35.0", + "@rollup/rollup-darwin-arm64": "4.35.0", + "@rollup/rollup-darwin-x64": "4.35.0", + "@rollup/rollup-freebsd-arm64": "4.35.0", + "@rollup/rollup-freebsd-x64": "4.35.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.35.0", + "@rollup/rollup-linux-arm-musleabihf": "4.35.0", + "@rollup/rollup-linux-arm64-gnu": "4.35.0", + "@rollup/rollup-linux-arm64-musl": "4.35.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.35.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.35.0", + "@rollup/rollup-linux-riscv64-gnu": "4.35.0", + "@rollup/rollup-linux-s390x-gnu": "4.35.0", + "@rollup/rollup-linux-x64-gnu": "4.35.0", + "@rollup/rollup-linux-x64-musl": "4.35.0", + "@rollup/rollup-win32-arm64-msvc": "4.35.0", + "@rollup/rollup-win32-ia32-msvc": "4.35.0", + "@rollup/rollup-win32-x64-msvc": "4.35.0", + "fsevents": "~2.3.2" } }, - "node_modules/uglify-js": { - "version": "3.19.3", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", - "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "optional": true, + "peer": true + }, + "node_modules/sass": { + "version": "1.71.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz", + "integrity": "sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==", "dev": true, "optional": true, + "peer": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, "bin": { - "uglifyjs": "bin/uglifyjs" + "sass": "sass.js" }, "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/undici": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.11.1.tgz", - "integrity": "sha512-KyhzaLJnV1qa3BSHdj4AZ2ndqI0QWPxYzaIOio0WzcEJB9gvuysprJSLtpvc2D9mhR9jPDUk7xlJlZbH2KR5iw==", - "dev": true, - "engines": { - "node": ">=18.0" + "node": ">=14.0.0" } }, - "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", "dev": true, "optional": true, "peer": true }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", - "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-emoji-modifier-base": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", - "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" + "loose-envify": "^1.1.0" } }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "license": "MIT" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "engines": { - "node": ">=4" + "optional": true, + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "node_modules/unicorn-magic": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", - "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "optional": true, + "peer": true, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "dev": true, + "node_modules/splaytree": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-0.1.4.tgz", + "integrity": "sha512-D50hKrjZgBzqD3FT2Ek53f2dcDLAQT8SSGrzj3vidNH5ISRgceeGVJ2dQIthKOuayqFXfFjXheHNo4bbt9LhRQ==", + "license": "MIT" + }, + "node_modules/supercluster": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", + "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "license": "ISC", "dependencies": { - "unique-slug": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "kdbush": "^4.0.2" } }, - "node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "node_modules/terser": { + "version": "5.29.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.1.tgz", + "integrity": "sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "imurmurhash": "^0.1.4" + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/unique-string": { + "node_modules/tinyqueue": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz", + "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==", + "license": "ISC" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "crypto-random-string": "^4.0.0" + "is-number": "^7.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8.0" } }, - "node_modules/universal-user-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz", - "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==", - "dev": true + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, - "engines": { - "node": ">= 10.0.0" - } + "optional": true, + "peer": true }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, "engines": { - "node": ">= 0.8" + "node": ">=14.17" + } + }, + "node_modules/uncontrollable": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", + "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.6.3", + "@types/react": ">=16.9.11", + "invariant": "^2.2.4", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": ">=15.0.0" } }, "node_modules/update-browserslist-db": { @@ -19924,794 +2439,584 @@ "browserslist": ">= 4.21.0" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", - "dev": true - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validate-npm-package-name": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", - "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dev": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webdriver-js-extender": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", - "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", - "dev": true, - "dependencies": { - "@types/selenium-webdriver": "^3.0.0", - "selenium-webdriver": "^3.0.1" - }, - "engines": { - "node": ">=6.9.x" - } - }, - "node_modules/webdriver-manager": { - "version": "12.1.9", - "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.9.tgz", - "integrity": "sha512-Yl113uKm8z4m/KMUVWHq1Sjtla2uxEBtx2Ue3AmIlnlPAKloDn/Lvmy6pqWCUersVISpdMeVpAaGbNnvMuT2LQ==", - "dev": true, - "dependencies": { - "adm-zip": "^0.5.2", - "chalk": "^1.1.1", - "del": "^2.2.0", - "glob": "^7.0.3", - "ini": "^1.3.4", - "minimist": "^1.2.0", - "q": "^1.4.1", - "request": "^2.87.0", - "rimraf": "^2.5.2", - "semver": "^5.3.0", - "xml2js": "^0.4.17" - }, - "bin": { - "webdriver-manager": "bin/webdriver-manager" - }, - "engines": { - "node": ">=6.9.x" - } - }, - "node_modules/webdriver-manager/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webdriver-manager/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webdriver-manager/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "license": "MIT", "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webdriver-manager/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" } }, - "node_modules/webdriver-manager/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/webdriver-manager/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", + "node_modules/vite": { + "version": "5.4.21", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", "dev": true, + "license": "MIT", "dependencies": { - "glob": "^7.1.3" + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" }, "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/webdriver-manager/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/webdriver-manager/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" + "vite": "bin/vite.js" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webdriver-manager/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/webpack": { - "version": "5.94.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", - "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", - "dev": true, - "dependencies": { - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" + "node": "^18.0.0 || >=20.0.0" }, - "bin": { - "webpack": "bin/webpack.js" + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" }, - "engines": { - "node": ">=10.13.0" + "optionalDependencies": { + "fsevents": "~2.3.3" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" }, "peerDependenciesMeta": { - "webpack-cli": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { "optional": true } } }, - "node_modules/webpack-dev-middleware": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.2.tgz", - "integrity": "sha512-Wu+EHmX326YPYUpQLKmKbTyZZJIB8/n6R09pTmB03kJmnMsVPTo9COzHZFr01txwaCAuZvfBJE4ZCHRcKs5JaQ==", + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.12", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - } + "node": ">=12" } }, - "node_modules/webpack-dev-server": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", - "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } + "node": ">=12" } }, - "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" + "node": ">=12" } }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "node": ">=12" } }, - "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=10.0.0" + "node": ">=12" } }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=10.13.0" + "node": ">=12" } }, - "node_modules/webpack-subresource-integrity": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", - "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "typed-assert": "^1.0.8" - }, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", - "webpack": "^5.12.0" - }, - "peerDependenciesMeta": { - "html-webpack-plugin": { - "optional": true - } + "node": ">=12" } }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/webpack/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": ">=12" } }, - "node_modules/webpack/node_modules/watchpack": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", - "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], "dev": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.13.0" + "node": ">=12" } }, - "node_modules/webrtc-adapter": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/webrtc-adapter/-/webrtc-adapter-9.0.1.tgz", - "integrity": "sha512-1AQO+d4ElfVSXyzNVTOewgGT/tAomwwztX/6e3totvyyzXPvXIIuUUjAmyZGbKBKbZOXauuJooZm3g6IuFuiNQ==", - "dependencies": { - "sdp": "^3.2.0" - }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.0.0", - "npm": ">=3.10.0" + "node": ">=12" } }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=0.8.0" + "node": ">=12" } }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "node": ">=12" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 8" + "node": ">=12" } }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true - }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/ws": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", - "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", - "dependencies": { - "async-limiter": "~1.0.0" + "node": ">=12" } }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=4.0.0" + "node": ">=12" } }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">=4.0" + "node": ">=12" } }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=0.4" + "node": ">=12" } }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=10" + "node": ">=12" } }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { "node": ">=12" } }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, "engines": { "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "node_modules/vite/node_modules/postcss": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", + "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, "engines": { - "node": ">=6" + "node": "^10 || ^12 || >=14" } }, - "node_modules/yocto-queue": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.0.tgz", - "integrity": "sha512-KHBC7z61OJeaMGnF3wqNZj+GGNXOyypZviiKpQeiHirG5Ib1ImwcLBH70rbMSkKfSmUNBsdf2PwaEJtKvgmkNw==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" } }, - "node_modules/yoctocolors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", - "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", - "dev": true, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", "engines": { - "node": ">=18" + "node": ">=8.3.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/zone.js": { - "version": "0.14.10", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.10.tgz", - "integrity": "sha512-YGAhaO7J5ywOXW6InXNlLmfU194F8lVgu7bRntUF3TiG8Y3nBK0x1UJJuHUP/e8IyihkjCYqhCScpSwnlaSRkQ==" + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true } } } diff --git a/Web/Resgrid.Web/Areas/User/Apps/package.json b/Web/Resgrid.Web/Areas/User/Apps/package.json index 243493794..58e458368 100644 --- a/Web/Resgrid.Web/Areas/User/Apps/package.json +++ b/Web/Resgrid.Web/Areas/User/Apps/package.json @@ -2,57 +2,30 @@ "name": "apps", "version": "0.0.0", "scripts": { - "ng": "ng", - "start": "ng serve", - "build": "ng build", - "watch": "ng build --watch --configuration development", - "test": "ng test" + "start": "vite build --watch --mode development", + "dev": "vite build --watch --mode development", + "build": "vite build", + "watch": "vite build --watch --mode development" }, "private": true, "dependencies": { - "@angular/animations": "~17.1.0", - "@angular/common": "~17.1.0", - "@angular/compiler": "~17.1.0", - "@angular/core": "~17.1.0", - "@angular/forms": "~17.1.0", - "@angular/platform-browser": "~17.1.0", - "@angular/platform-browser-dynamic": "~17.1.0", - "@angular/router": "~17.1.0", - "@angular/cdk": "~17.1.0", - "@angular/elements": "~17.1.0", - "@microsoft/signalr": "5.0.10", - "@resgrid/ngx-resgridlib": "~1.3.35", - "@types/geojson": "^7946.0.10", - "angular-calendar": "^0.29.0", - "date-fns": "^2.29.1", - "rxjs": "~6.6.0", - "tslib": "^2.0.0", - "zone.js": "~0.14.0" + "@microsoft/signalr": "^8.0.7", + "@types/geojson": "^7946.0.16", + "date-fns": "^2.30.0", + "leaflet": "^1.9.4", + "mapbox-gl": "^3.22.0", + "react": "^18.3.1", + "react-big-calendar": "^1.16.3", + "react-dom": "^18.3.1" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.1.0", - "@angular/cli": "^17.1.0", - "@angular/compiler-cli": "~17.1.0", - "@semantic-release/git": "^10.0.0", - "@semantic-release/gitlab": "^13.0.2", - "@semantic-release/npm": "^11.0.2", - "@types/googlemaps": "^3.43.3", - "@types/jasmine": "~3.6.0", - "@types/node": "^12.11.1", - "codelyzer": "^6.0.2", - "jasmine-core": "~3.8.0", - "jasmine-spec-reporter": "~5.0.0", - "karma": "~6.3.4", - "karma-chrome-launcher": "~3.1.0", - "karma-coverage": "~2.0.3", - "karma-jasmine": "~4.0.0", - "karma-jasmine-html-reporter": "^1.5.0", - "ng-packagr": "^17.1.1", - "protractor": "^7.0.0", - "rimraf": "^3.0.2", - "semantic-release": "^23.0.0", - "ts-node": "~8.3.0", - "tslint": "~6.1.0", - "typescript": "~5.2.0" + "@types/leaflet": "^1.9.15", + "@types/node": "^20.16.11", + "@types/react": "^18.3.12", + "@types/react-big-calendar": "^1.16.1", + "@types/react-dom": "^18.3.1", + "@vitejs/plugin-react": "^4.3.3", + "typescript": "^5.6.3", + "vite": "^5.4.10" } } diff --git a/Web/Resgrid.Web/Areas/User/Apps/src/components/map/LeafletMapView.tsx b/Web/Resgrid.Web/Areas/User/Apps/src/components/map/LeafletMapView.tsx new file mode 100644 index 000000000..cb761af75 --- /dev/null +++ b/Web/Resgrid.Web/Areas/User/Apps/src/components/map/LeafletMapView.tsx @@ -0,0 +1,243 @@ +import { useEffect, useRef } from 'react'; +import type { GeoJsonObject } from 'geojson'; +import L from 'leaflet'; +import 'leaflet/dist/leaflet.css'; +import { + getLayerColor, + getMarkerIconUrl, + type MapMarkerInfo, + type MapRendererProps, +} from './mapTypes'; + +interface MarkerState { + marker: L.Marker; + latitude: number; + longitude: number; + title: string; + imagePath: string; + infoWindowContent: string; + hideLabels: boolean; +} + +function createMarkerIcon(marker: MapMarkerInfo): L.Icon { + return L.icon({ + iconUrl: getMarkerIconUrl(marker), + iconSize: [32, 37], + iconAnchor: [16, 37], + }); +} + +function createMarker(markerInfo: MapMarkerInfo, hideLabels: boolean): L.Marker { + const marker = L.marker([markerInfo.Latitude, markerInfo.Longitude], { + icon: createMarkerIcon(markerInfo), + draggable: false, + title: hideLabels ? '' : markerInfo.Title, + }); + + if (!hideLabels && markerInfo.Title) { + marker.bindTooltip(markerInfo.Title, { + permanent: true, + direction: 'bottom', + className: 'rg-map__tooltip', + }); + } + + if (markerInfo.InfoWindowContent) { + marker.bindPopup(markerInfo.InfoWindowContent); + } + + return marker; +} + +function fitMapToMarkers( + map: L.Map, + markers: Map, + mapData: MapRendererProps['mapData'], +) { + if (!mapData) { + return; + } + + const visiblePositions = Array.from(markers.values()).map(({ latitude, longitude }) => [ + latitude, + longitude, + ] as L.LatLngTuple); + + if (visiblePositions.length > 0) { + const bounds = L.latLngBounds(visiblePositions); + + if (bounds.isValid()) { + map.fitBounds(bounds, { + padding: [24, 24], + }); + return; + } + } + + map.setView([mapData.CenterLat, mapData.CenterLon], mapData.ZoomLevel); +} + +export default function LeafletMapView({ + mapData, + markers, + layers, + layerVisibility, + hideLabels, + resolvedMapConfig, + fitBoundsKey, +}: MapRendererProps) { + const mapContainerRef = useRef(null); + const mapRef = useRef(null); + const markerRefs = useRef>(new Map()); + const layerRefs = useRef>(new Map()); + + useEffect(() => { + if (!mapContainerRef.current || resolvedMapConfig.tileUrl.length === 0) { + return; + } + + const map = L.map(mapContainerRef.current, { + doubleClickZoom: false, + zoomControl: true, + }); + + L.tileLayer(resolvedMapConfig.tileUrl, { + maxZoom: 19, + attribution: resolvedMapConfig.attribution, + }).addTo(map); + + mapRef.current = map; + + const resizeMap = () => map.invalidateSize(); + window.addEventListener('resize', resizeMap); + requestAnimationFrame(() => map.invalidateSize()); + + return () => { + window.removeEventListener('resize', resizeMap); + markerRefs.current.forEach((markerState) => markerState.marker.remove()); + markerRefs.current.clear(); + layerRefs.current.forEach((layer) => layer.remove()); + layerRefs.current.clear(); + map.remove(); + mapRef.current = null; + }; + }, [resolvedMapConfig.attribution, resolvedMapConfig.tileUrl]); + + useEffect(() => { + const map = mapRef.current; + + if (!map) { + return; + } + + const activeMarkerIds = new Set(markers.map((marker) => marker.Id)); + + markerRefs.current.forEach((markerState, markerId) => { + if (!activeMarkerIds.has(markerId)) { + markerState.marker.remove(); + markerRefs.current.delete(markerId); + } + }); + + for (const markerInfo of markers) { + const existingMarkerState = markerRefs.current.get(markerInfo.Id); + const appearanceChanged = + !existingMarkerState || + existingMarkerState.title !== markerInfo.Title || + existingMarkerState.imagePath !== markerInfo.ImagePath || + existingMarkerState.infoWindowContent !== markerInfo.InfoWindowContent || + existingMarkerState.hideLabels !== hideLabels; + + if (appearanceChanged) { + existingMarkerState?.marker.remove(); + + const nextMarker = createMarker(markerInfo, hideLabels); + nextMarker.addTo(map); + + markerRefs.current.set(markerInfo.Id, { + marker: nextMarker, + latitude: markerInfo.Latitude, + longitude: markerInfo.Longitude, + title: markerInfo.Title, + imagePath: markerInfo.ImagePath, + infoWindowContent: markerInfo.InfoWindowContent, + hideLabels, + }); + + continue; + } + + if ( + existingMarkerState.latitude !== markerInfo.Latitude || + existingMarkerState.longitude !== markerInfo.Longitude + ) { + existingMarkerState.marker.setLatLng([markerInfo.Latitude, markerInfo.Longitude]); + existingMarkerState.latitude = markerInfo.Latitude; + existingMarkerState.longitude = markerInfo.Longitude; + } + } + }, [hideLabels, markers]); + + useEffect(() => { + if (!mapRef.current) { + return; + } + + fitMapToMarkers(mapRef.current, markerRefs.current, mapData); + }, [fitBoundsKey, mapData]); + + useEffect(() => { + const map = mapRef.current; + + if (!map) { + return; + } + + layerRefs.current.forEach((layer) => layer.remove()); + layerRefs.current.clear(); + + for (const layer of layers) { + const color = getLayerColor(layer); + const geoJsonLayer = L.geoJSON(layer.featureCollection as GeoJsonObject, { + style: () => ({ + color, + opacity: 0.7, + fillColor: color, + fillOpacity: 0.1, + weight: 2, + }), + pointToLayer: (_, latLng) => + L.circleMarker(latLng, { + color, + fillColor: color, + fillOpacity: 0.45, + radius: 6, + weight: 2, + }), + onEachFeature: (_, mapLayer) => { + const pathLayer = mapLayer as L.Path; + + mapLayer.on('mouseover', () => { + pathLayer.setStyle({ + fillOpacity: 0.35, + }); + }); + + mapLayer.on('mouseout', () => { + pathLayer.setStyle({ + fillOpacity: 0.1, + }); + }); + }, + }); + + if (layerVisibility[layer.id]) { + geoJsonLayer.addTo(map); + } + + layerRefs.current.set(layer.id, geoJsonLayer); + } + }, [layerVisibility, layers]); + + return
; +} diff --git a/Web/Resgrid.Web/Areas/User/Apps/src/components/map/MapElement.tsx b/Web/Resgrid.Web/Areas/User/Apps/src/components/map/MapElement.tsx new file mode 100644 index 000000000..d9f8c7196 --- /dev/null +++ b/Web/Resgrid.Web/Areas/User/Apps/src/components/map/MapElement.tsx @@ -0,0 +1,398 @@ +import { useEffect, useMemo, useRef, useState, type ComponentType } from 'react'; +import type { HubConnection } from '@microsoft/signalr'; +import LoadingIndicator from '../shared/LoadingIndicator'; +import { apiFetchJson } from '../../runtime/api'; +import { + connectGeolocationHub, + type PersonnelLocationUpdate, + type UnitLocationUpdate, +} from '../../runtime/signalr'; +import { + isMapboxRendererEnabled, + mapMarkerTypes, + normalizeMapLayers, + resolveMapConfig, + type GetMapDataResult, + type GetMapLayersResult, + type MapElementProps, + type MapRendererProps, +} from './mapTypes'; +import './map.css'; + +export type { MapElementProps } from './mapTypes'; + +type MapRendererComponent = ComponentType; + +function getErrorMessage(error: unknown, fallbackMessage: string): string { + if (error instanceof Error && error.message.trim().length > 0) { + return error.message; + } + + return fallbackMessage; +} + +export default function MapElement(props: MapElementProps) { + const connectionRef = useRef(null); + + const [mapData, setMapData] = useState(null); + const [layers, setLayers] = useState([]); + const [layerVisibility, setLayerVisibility] = useState>({}); + const [filterText, setFilterText] = useState(''); + const [showCalls, setShowCalls] = useState(true); + const [showStations, setShowStations] = useState(true); + const [showUnits, setShowUnits] = useState(true); + const [showPersonnel, setShowPersonnel] = useState(true); + const [hideLabels, setHideLabels] = useState(false); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + const [lastUpdated, setLastUpdated] = useState(() => new Date().toString()); + const [markerPositionOverrides, setMarkerPositionOverrides] = useState< + Record + >({}); + const [MapRenderer, setMapRenderer] = useState(null); + const [rendererLoading, setRendererLoading] = useState(true); + const [rendererError, setRendererError] = useState(null); + + const resolvedMapConfig = useMemo( + () => resolveMapConfig(props), + [ + props.leafletOsmUrl, + props.mapAccessToken, + props.mapAttribution, + props.mapConfig, + props.mapProvider, + props.mapStyleUrl, + ], + ); + const mapHeight = props.mapHeight || '600px'; + const showButtons = props.showButtons ?? false; + const useMapboxRenderer = useMemo( + () => isMapboxRendererEnabled(resolvedMapConfig), + [resolvedMapConfig], + ); + const hasMapSource = useMapboxRenderer || resolvedMapConfig.tileUrl.length > 0; + + const visibleMarkers = useMemo(() => { + const normalizedFilter = filterText.trim().toLowerCase(); + + return (mapData?.MapMakerInfos ?? []) + .map((marker) => { + const positionOverride = markerPositionOverrides[marker.Id]; + + if (!positionOverride) { + return marker; + } + + return { + ...marker, + Latitude: positionOverride.latitude, + Longitude: positionOverride.longitude, + }; + }) + .filter((marker) => { + const matchesFilter = + normalizedFilter.length === 0 || marker.Title.toLowerCase().includes(normalizedFilter); + + if (!matchesFilter) { + return false; + } + + switch (marker.Type) { + case mapMarkerTypes.call: + return showCalls; + case mapMarkerTypes.unit: + return showUnits; + case mapMarkerTypes.station: + return showStations; + case mapMarkerTypes.personnel: + return showPersonnel; + default: + return true; + } + }); + }, [filterText, mapData, markerPositionOverrides, showCalls, showPersonnel, showStations, showUnits]); + + useEffect(() => { + let cancelled = false; + + setRendererLoading(true); + setRendererError(null); + setMapRenderer(null); + + if (!hasMapSource) { + setRendererLoading(false); + return () => { + cancelled = true; + }; + } + + const loadRendererAsync = async () => { + try { + const rendererModule = useMapboxRenderer + ? await import('./MapboxMapView') + : await import('./LeafletMapView'); + + if (!cancelled) { + setMapRenderer(() => rendererModule.default); + } + } catch (rendererLoadError) { + if (!cancelled) { + setRendererError(getErrorMessage(rendererLoadError, 'Unable to load the map renderer.')); + } + } finally { + if (!cancelled) { + setRendererLoading(false); + } + } + }; + + void loadRendererAsync(); + + return () => { + cancelled = true; + }; + }, [hasMapSource, useMapboxRenderer]); + + useEffect(() => { + let cancelled = false; + + const loadMapAsync = async () => { + setLoading(true); + setError(null); + + try { + const [mapResponse, layerResponse] = await Promise.all([ + apiFetchJson('/api/v4/Mapping/GetMapDataAndMarkers'), + apiFetchJson('/api/v4/Mapping/GetMayLayers?type=0'), + ]); + + if (cancelled) { + return; + } + + setMarkerPositionOverrides({}); + setMapData(mapResponse.Data); + + const normalizedLayers = normalizeMapLayers(layerResponse); + setLayers(normalizedLayers); + setLayerVisibility( + normalizedLayers.reduce>((result, layer) => { + result[layer.id] = layer.isOnByDefault; + return result; + }, {}), + ); + setLastUpdated(new Date().toString()); + } catch (loadError) { + if (!cancelled) { + setError(loadError instanceof Error ? loadError.message : 'Unable to load map data.'); + } + } finally { + if (!cancelled) { + setLoading(false); + } + } + }; + + void loadMapAsync(); + + return () => { + cancelled = true; + }; + }, []); + + useEffect(() => { + let disposed = false; + + const updateMarkerPosition = (id: string, latitude: number, longitude: number) => { + setMarkerPositionOverrides((currentOverrides) => { + const existingOverride = currentOverrides[id]; + + if ( + existingOverride && + existingOverride.latitude === latitude && + existingOverride.longitude === longitude + ) { + return currentOverrides; + } + + return { + ...currentOverrides, + [id]: { + latitude, + longitude, + }, + }; + }); + + setLastUpdated(new Date().toString()); + }; + + const connectAsync = async () => { + try { + const connection = await connectGeolocationHub({ + onPersonnelLocationUpdated: (update: PersonnelLocationUpdate) => { + updateMarkerPosition(`p${update.userId}`, update.latitude, update.longitude); + }, + onUnitLocationUpdated: (update: UnitLocationUpdate) => { + updateMarkerPosition(`u${update.unitId}`, update.latitude, update.longitude); + }, + }); + + if (disposed) { + await connection?.stop(); + return; + } + + connectionRef.current = connection; + } catch (connectionError) { + console.error('Unable to connect to realtime geolocation updates.', connectionError); + } + }; + + void connectAsync(); + + return () => { + disposed = true; + + if (connectionRef.current) { + void connectionRef.current.stop(); + connectionRef.current = null; + } + }; + }, []); + + const fitBoundsKey = useMemo(() => { + const visibleMarkerIds = visibleMarkers + .map((marker) => marker.Id) + .sort() + .join('|'); + + return `${mapData?.CenterLat ?? ''}:${mapData?.CenterLon ?? ''}:${mapData?.ZoomLevel ?? ''}:${visibleMarkerIds}`; + }, [mapData?.CenterLat, mapData?.CenterLon, mapData?.ZoomLevel, visibleMarkers]); + + const missingSourceMessage = useMemo(() => { + if (resolvedMapConfig.mapProvider === 'mapbox') { + return 'Mapbox mode requires a style URL and access token.'; + } + + return 'Map configuration is missing a tile source. Pass `leafletosmurl` or `mapconfig`.'; + }, [resolvedMapConfig.mapProvider]); + + const combinedError = error ?? rendererError; + + return ( +
+ {showButtons && ( +
+
+ setFilterText(event.target.value)} + /> + + +
+ +
+ + + + + + + +
+
+ )} + + {!hasMapSource &&
{missingSourceMessage}
} + + {combinedError &&
{combinedError}
} + +
+ {MapRenderer && hasMapSource && ( + + )} + + {layers.length > 0 && ( +
+
Map layers
+
+ {layers.map((layer) => ( + + ))} +
+
+ )} + + {(loading || rendererLoading) && ( +
+ +
+ )} +
+ +
+ Last update: {lastUpdated} +
+
+ ); +} diff --git a/Web/Resgrid.Web/Areas/User/Apps/src/components/map/MapboxMapView.tsx b/Web/Resgrid.Web/Areas/User/Apps/src/components/map/MapboxMapView.tsx new file mode 100644 index 000000000..65996c936 --- /dev/null +++ b/Web/Resgrid.Web/Areas/User/Apps/src/components/map/MapboxMapView.tsx @@ -0,0 +1,339 @@ +import { useEffect, useRef, useState } from 'react'; +import 'mapbox-gl/dist/mapbox-gl.css'; +import { + getLayerColor, + getMarkerIconUrl, + type MapMarkerInfo, + type MapRendererProps, +} from './mapTypes'; + +type MapboxGl = typeof import('mapbox-gl')['default']; +type MapboxMap = import('mapbox-gl').Map; +type MapboxMarker = import('mapbox-gl').Marker; + +interface MarkerState { + marker: MapboxMarker; + latitude: number; + longitude: number; + title: string; + imagePath: string; + infoWindowContent: string; + hideLabels: boolean; +} + +function createMarkerElement(markerInfo: MapMarkerInfo, hideLabels: boolean): HTMLDivElement { + const wrapper = document.createElement('div'); + wrapper.className = 'rg-map__marker'; + wrapper.title = hideLabels ? '' : markerInfo.Title; + + const icon = document.createElement('img'); + icon.className = 'rg-map__marker-icon'; + icon.src = getMarkerIconUrl(markerInfo); + icon.alt = ''; + wrapper.appendChild(icon); + + if (!hideLabels && markerInfo.Title) { + const label = document.createElement('div'); + label.className = 'rg-map__marker-label'; + label.textContent = markerInfo.Title; + wrapper.appendChild(label); + } + + return wrapper; +} + +function fitMapToMarkers( + map: MapboxMap, + mapboxgl: MapboxGl, + markers: Map, + mapData: MapRendererProps['mapData'], +) { + if (!mapData) { + return; + } + + if (markers.size > 0) { + const bounds = new mapboxgl.LngLatBounds(); + + markers.forEach(({ latitude, longitude }) => bounds.extend([longitude, latitude])); + + if (!bounds.isEmpty()) { + map.fitBounds(bounds, { + padding: 24, + maxZoom: 16, + }); + return; + } + } + + map.easeTo({ + center: [mapData.CenterLon, mapData.CenterLat], + zoom: mapData.ZoomLevel, + duration: 0, + }); +} + +function clearLayerArtifacts(map: MapboxMap, layerIds: string[], sourceIds: string[]) { + for (const layerId of layerIds) { + if (map.getLayer(layerId)) { + map.removeLayer(layerId); + } + } + + for (const sourceId of sourceIds) { + if (map.getSource(sourceId)) { + map.removeSource(sourceId); + } + } +} + +function addGeoJsonLayer(map: MapboxMap, layerId: string, layer: MapRendererProps['layers'][number]) { + const sourceId = `rg-layer-source-${layerId}`; + const fillLayerId = `rg-layer-fill-${layerId}`; + const lineLayerId = `rg-layer-line-${layerId}`; + const pointLayerId = `rg-layer-point-${layerId}`; + const color = getLayerColor(layer); + + map.addSource(sourceId, { + type: 'geojson', + data: layer.featureCollection, + }); + + map.addLayer({ + id: fillLayerId, + type: 'fill', + source: sourceId, + filter: ['==', '$type', 'Polygon'], + paint: { + 'fill-color': color, + 'fill-opacity': 0.12, + }, + }); + + map.addLayer({ + id: lineLayerId, + type: 'line', + source: sourceId, + paint: { + 'line-color': color, + 'line-width': 2, + 'line-opacity': 0.8, + }, + }); + + map.addLayer({ + id: pointLayerId, + type: 'circle', + source: sourceId, + filter: ['==', '$type', 'Point'], + paint: { + 'circle-radius': 6, + 'circle-color': color, + 'circle-opacity': 0.45, + 'circle-stroke-color': color, + 'circle-stroke-width': 2, + }, + }); + + return { + sourceId, + layerIds: [fillLayerId, lineLayerId, pointLayerId], + }; +} + +export default function MapboxMapView({ + mapData, + markers, + layers, + layerVisibility, + hideLabels, + resolvedMapConfig, + fitBoundsKey, +}: MapRendererProps) { + const mapContainerRef = useRef(null); + const mapRef = useRef(null); + const mapboxRef = useRef(null); + const markerRefs = useRef>(new Map()); + const layerIdsRef = useRef([]); + const sourceIdsRef = useRef([]); + const [styleReady, setStyleReady] = useState(false); + + useEffect(() => { + let cancelled = false; + + const initializeMapAsync = async () => { + if (!mapContainerRef.current) { + return; + } + + const mapboxgl = (await import('mapbox-gl')).default; + + if (cancelled) { + return; + } + + mapboxgl.accessToken = resolvedMapConfig.accessToken; + mapboxRef.current = mapboxgl; + + const map = new mapboxgl.Map({ + container: mapContainerRef.current, + style: resolvedMapConfig.styleUrl, + center: [mapData?.CenterLon ?? -98.5795, mapData?.CenterLat ?? 39.8283], + zoom: mapData?.ZoomLevel ?? 4, + doubleClickZoom: false, + customAttribution: resolvedMapConfig.attribution || undefined, + }); + + map.addControl(new mapboxgl.NavigationControl(), 'top-left'); + mapRef.current = map; + + const handleStyleReady = () => { + setStyleReady(true); + map.resize(); + }; + + map.on('load', handleStyleReady); + map.on('style.load', handleStyleReady); + + const resizeMap = () => map.resize(); + window.addEventListener('resize', resizeMap); + requestAnimationFrame(() => map.resize()); + + if (cancelled) { + window.removeEventListener('resize', resizeMap); + map.remove(); + mapRef.current = null; + return; + } + + return () => { + window.removeEventListener('resize', resizeMap); + clearLayerArtifacts(map, layerIdsRef.current, sourceIdsRef.current); + layerIdsRef.current = []; + sourceIdsRef.current = []; + markerRefs.current.forEach((markerState) => markerState.marker.remove()); + markerRefs.current.clear(); + map.remove(); + mapRef.current = null; + }; + }; + + let cleanupMap: (() => void) | undefined; + + void initializeMapAsync().then((cleanup) => { + cleanupMap = cleanup; + }); + + return () => { + cancelled = true; + setStyleReady(false); + cleanupMap?.(); + }; + }, [ + mapData?.CenterLat, + mapData?.CenterLon, + mapData?.ZoomLevel, + resolvedMapConfig.accessToken, + resolvedMapConfig.attribution, + resolvedMapConfig.styleUrl, + ]); + + useEffect(() => { + const map = mapRef.current; + const mapboxgl = mapboxRef.current; + + if (!map || !mapboxgl || !styleReady) { + return; + } + + const activeMarkerIds = new Set(markers.map((marker) => marker.Id)); + + markerRefs.current.forEach((markerState, markerId) => { + if (!activeMarkerIds.has(markerId)) { + markerState.marker.remove(); + markerRefs.current.delete(markerId); + } + }); + + for (const markerInfo of markers) { + const existingMarkerState = markerRefs.current.get(markerInfo.Id); + const appearanceChanged = + !existingMarkerState || + existingMarkerState.title !== markerInfo.Title || + existingMarkerState.imagePath !== markerInfo.ImagePath || + existingMarkerState.infoWindowContent !== markerInfo.InfoWindowContent || + existingMarkerState.hideLabels !== hideLabels; + + if (appearanceChanged) { + existingMarkerState?.marker.remove(); + + const nextMarker = new mapboxgl.Marker({ + element: createMarkerElement(markerInfo, hideLabels), + anchor: 'bottom', + }) + .setLngLat([markerInfo.Longitude, markerInfo.Latitude]) + .addTo(map); + + if (markerInfo.InfoWindowContent) { + nextMarker.setPopup(new mapboxgl.Popup({ offset: 20 }).setHTML(markerInfo.InfoWindowContent)); + } + + markerRefs.current.set(markerInfo.Id, { + marker: nextMarker, + latitude: markerInfo.Latitude, + longitude: markerInfo.Longitude, + title: markerInfo.Title, + imagePath: markerInfo.ImagePath, + infoWindowContent: markerInfo.InfoWindowContent, + hideLabels, + }); + + continue; + } + + if ( + existingMarkerState.latitude !== markerInfo.Latitude || + existingMarkerState.longitude !== markerInfo.Longitude + ) { + existingMarkerState.marker.setLngLat([markerInfo.Longitude, markerInfo.Latitude]); + existingMarkerState.latitude = markerInfo.Latitude; + existingMarkerState.longitude = markerInfo.Longitude; + } + } + }, [hideLabels, markers, styleReady]); + + useEffect(() => { + const map = mapRef.current; + const mapboxgl = mapboxRef.current; + + if (!map || !mapboxgl || !styleReady) { + return; + } + + fitMapToMarkers(map, mapboxgl, markerRefs.current, mapData); + }, [fitBoundsKey, mapData, styleReady]); + + useEffect(() => { + const map = mapRef.current; + + if (!map || !styleReady) { + return; + } + + clearLayerArtifacts(map, layerIdsRef.current, sourceIdsRef.current); + layerIdsRef.current = []; + sourceIdsRef.current = []; + + for (const layer of layers) { + if (!layerVisibility[layer.id]) { + continue; + } + + const layerArtifacts = addGeoJsonLayer(map, layer.id, layer); + sourceIdsRef.current.push(layerArtifacts.sourceId); + layerIdsRef.current.push(...layerArtifacts.layerIds); + } + }, [layerVisibility, layers, styleReady]); + + return
; +} diff --git a/Web/Resgrid.Web/Areas/User/Apps/src/components/map/map.css b/Web/Resgrid.Web/Areas/User/Apps/src/components/map/map.css new file mode 100644 index 000000000..8adb2234a --- /dev/null +++ b/Web/Resgrid.Web/Areas/User/Apps/src/components/map/map.css @@ -0,0 +1,162 @@ +.rg-map { + font-size: 13px; + color: #111827; +} + +.rg-map__toolbar { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + gap: 12px; + margin-bottom: 8px; +} + +.rg-map__toolbar-section { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 12px; +} + +.rg-map__search { + width: 220px; + max-width: 100%; + padding: 7px 10px; + border: 1px solid #cbd5e1; + border-radius: 6px; + outline: none; +} + +.rg-map__search:focus { + border-color: #2563eb; + box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15); +} + +.rg-map__checkbox, +.rg-map__layer-toggle { + display: inline-flex; + align-items: center; + gap: 6px; + font-weight: 400; +} + +.rg-map__message { + margin-bottom: 8px; +} + +.rg-map__viewport { + position: relative; + width: 100%; + min-height: 320px; + overflow: hidden; + border: 1px solid #d1d5db; + border-radius: 6px; + background: #f8fafc; +} + +.rg-map__canvas { + width: 100%; + height: 100%; +} + +.rg-map__canvas .leaflet-container { + width: 100%; + height: 100%; +} + +.rg-map__canvas .mapboxgl-map { + width: 100%; + height: 100%; +} + +.rg-map__layers { + position: absolute; + top: 12px; + right: 12px; + z-index: 450; + width: 240px; + max-width: calc(100% - 24px); + padding: 12px; +} + +.rg-map__layers-title { + margin-bottom: 8px; + font-weight: 600; +} + +.rg-map__layer-list { + display: flex; + flex-direction: column; + gap: 6px; +} + +.rg-map__overlay { + position: absolute; + inset: 0; + z-index: 500; + background: rgba(255, 255, 255, 0.72); +} + +.rg-map__footer { + display: flex; + justify-content: flex-end; + padding-top: 8px; + color: #6b7280; + font-size: 12px; +} + +.rg-map__tooltip { + padding: 2px 6px; + border: 1px solid #111827; + color: #111827; + background: #ffffff; + font-size: 11px; + font-weight: 600; +} + +.rg-map__tooltip::before { + border-top-color: #111827; +} + +.rg-map__marker { + display: inline-flex; + flex-direction: column; + align-items: center; + gap: 4px; + cursor: pointer; +} + +.rg-map__marker-icon { + width: 32px; + height: 37px; + object-fit: contain; + pointer-events: none; +} + +.rg-map__marker-label { + max-width: 180px; + padding: 2px 6px; + border: 1px solid #111827; + border-radius: 4px; + color: #111827; + background: rgba(255, 255, 255, 0.96); + font-size: 11px; + font-weight: 600; + line-height: 1.2; + text-align: center; + white-space: nowrap; +} + +@media (max-width: 900px) { + .rg-map__toolbar { + align-items: stretch; + } + + .rg-map__layers { + position: static; + width: auto; + max-width: none; + margin: 12px; + } +} diff --git a/Web/Resgrid.Web/Areas/User/Apps/src/components/map/mapTypes.ts b/Web/Resgrid.Web/Areas/User/Apps/src/components/map/mapTypes.ts new file mode 100644 index 000000000..4e85c7c07 --- /dev/null +++ b/Web/Resgrid.Web/Areas/User/Apps/src/components/map/mapTypes.ts @@ -0,0 +1,234 @@ +import type { FeatureCollection, GeoJsonProperties } from 'geojson'; + +export const mapMarkerTypes = { + call: 0, + unit: 1, + station: 2, + personnel: 3, +} as const; + +export interface MapMarkerInfo { + Id: string; + Longitude: number; + Latitude: number; + Title: string; + zIndex: number; + ImagePath: string; + InfoWindowContent: string; + Color: string; + Type: number; +} + +export interface GetMapDataResult { + Data: { + CenterLat: number; + CenterLon: number; + ZoomLevel: number; + MapMakerInfos: MapMarkerInfo[]; + }; +} + +export interface MapLayerInfo { + Id: string; + Name: string; + Color: string; + IsOnByDefault: boolean; + Data?: { + Features?: FeatureCollection; + }; +} + +export interface GetMapLayersResult { + Data: { + Layers?: MapLayerInfo[]; + }; +} + +export interface MapConfigPayload { + MapProvider?: string; + TileUrl?: string; + StyleUrl?: string; + AccessToken?: string; + Attribution?: string; + IsDepartmentOverride?: boolean; + mapProvider?: string; + tileUrl?: string; + styleUrl?: string; + accessToken?: string; + attribution?: string; + isDepartmentOverride?: boolean; +} + +export interface ResolvedMapConfig { + mapProvider: string; + tileUrl: string; + styleUrl: string; + accessToken: string; + attribution: string; + isDepartmentOverride: boolean; +} + +export interface NormalizedMapLayer { + id: string; + name: string; + color: string; + isOnByDefault: boolean; + featureCollection: FeatureCollection; +} + +export interface MapElementProps { + showButtons?: boolean; + mapHeight?: string; + departmentId?: number; + leafletOsmUrl?: string; + mapAttribution?: string; + mapProvider?: string; + mapStyleUrl?: string; + mapAccessToken?: string; + mapConfig?: MapConfigPayload | null; + hostElement?: HTMLElement; +} + +export interface MapRendererProps { + mapData: GetMapDataResult['Data'] | null; + markers: MapMarkerInfo[]; + layers: NormalizedMapLayer[]; + layerVisibility: Record; + hideLabels: boolean; + resolvedMapConfig: ResolvedMapConfig; + fitBoundsKey: string; +} + +function getStringValue(...candidates: unknown[]): string { + for (const candidate of candidates) { + if (typeof candidate === 'string' && candidate.trim().length > 0) { + return candidate.trim(); + } + } + + return ''; +} + +function getBooleanValue(candidate: unknown, fallbackValue = false): boolean { + if (typeof candidate === 'boolean') { + return candidate; + } + + if (typeof candidate === 'string') { + const normalizedCandidate = candidate.trim().toLowerCase(); + + if (normalizedCandidate === 'true' || normalizedCandidate === '1') { + return true; + } + + if (normalizedCandidate === 'false' || normalizedCandidate === '0') { + return false; + } + } + + return fallbackValue; +} + +export function resolveMapConfig(props: MapElementProps): ResolvedMapConfig { + const config = props.mapConfig ?? {}; + + return { + mapProvider: getStringValue(config.MapProvider, config.mapProvider, props.mapProvider, 'leaflet') + .toLowerCase(), + tileUrl: getStringValue(config.TileUrl, config.tileUrl, props.leafletOsmUrl), + styleUrl: getStringValue(config.StyleUrl, config.styleUrl, props.mapStyleUrl), + accessToken: getStringValue(config.AccessToken, config.accessToken, props.mapAccessToken), + attribution: getStringValue(config.Attribution, config.attribution, props.mapAttribution), + isDepartmentOverride: getBooleanValue( + config.IsDepartmentOverride ?? config.isDepartmentOverride, + false, + ), + }; +} + +export function normalizeMapLayers(result: GetMapLayersResult | null): NormalizedMapLayer[] { + const rawLayers = result?.Data?.Layers ?? []; + + return rawLayers + .filter((layer) => layer.Data?.Features) + .map((layer) => ({ + id: layer.Id, + name: layer.Name, + color: layer.Color, + isOnByDefault: layer.IsOnByDefault, + featureCollection: layer.Data?.Features as FeatureCollection, + })); +} + +export function getLayerColor(layer: NormalizedMapLayer): string { + const feature = layer.featureCollection.features[0]; + const properties = feature?.properties as GeoJsonProperties | null | undefined; + + if (typeof properties?.color === 'string' && properties.color.length > 0) { + return properties.color; + } + + return layer.color || '#2563eb'; +} + +function extractMapboxStyleId(stylePath: string): string { + const normalizedPath = stylePath.trim().replace(/^\/+|\/+$/g, ''); + + if (!normalizedPath) { + return ''; + } + + const pathSegments = normalizedPath.split('/').filter((segment) => segment.length > 0); + + if (pathSegments.length < 2) { + return ''; + } + + return `${pathSegments[0]}/${pathSegments[1]}`; +} + +function getMapboxStyleId(styleUrl: string): string { + const trimmedStyleUrl = styleUrl.trim(); + + if (!trimmedStyleUrl) { + return ''; + } + + const mapboxStylePrefix = 'mapbox://styles/'; + + if (trimmedStyleUrl.toLowerCase().startsWith(mapboxStylePrefix)) { + return extractMapboxStyleId(trimmedStyleUrl.substring(mapboxStylePrefix.length)); + } + + try { + const mapboxStyleUri = new URL(trimmedStyleUrl); + const path = mapboxStyleUri.pathname.replace(/^\/+|\/+$/g, ''); + const normalizedPath = path.toLowerCase(); + const stylesPrefix = 'styles/v1/'; + const stylesIndex = normalizedPath.indexOf(stylesPrefix); + + if (stylesIndex >= 0) { + return extractMapboxStyleId(path.substring(stylesIndex + stylesPrefix.length)); + } + } catch { + return ''; + } + + return ''; +} + +export function isMapboxRendererEnabled(mapConfig: ResolvedMapConfig): boolean { + return ( + mapConfig.mapProvider === 'mapbox' && + getMapboxStyleId(mapConfig.styleUrl).length > 0 && + mapConfig.accessToken.length > 0 + ); +} + +export function getMarkerIconUrl(marker: Pick): string { + const imagePath = typeof marker.ImagePath === 'string' && marker.ImagePath.length > 0 + ? marker.ImagePath + : 'pin'; + + return `/images/Mapping/${imagePath}.png`; +} diff --git a/Web/Resgrid.Web/Areas/User/Apps/src/components/omnibar/OmnibarElement.tsx b/Web/Resgrid.Web/Areas/User/Apps/src/components/omnibar/OmnibarElement.tsx new file mode 100644 index 000000000..ede12d496 --- /dev/null +++ b/Web/Resgrid.Web/Areas/User/Apps/src/components/omnibar/OmnibarElement.tsx @@ -0,0 +1,220 @@ +import { useEffect, useMemo, useRef, useState } from 'react'; +import { dispatchElementEvent } from '../../runtime/events'; +import './omnibar.css'; + +export interface OmnibarItem { + id?: string | number; + label: string; + description?: string; + url?: string; + keywords?: string[]; + [key: string]: unknown; +} + +export interface OmnibarElementProps { + title?: string; + placeholder?: string; + items?: OmnibarItem[]; + showCount?: boolean; + autoFocus?: boolean; + emptyText?: string; + maxItems?: number; + hostElement?: HTMLElement; +} + +function normalizeItems(items: unknown): OmnibarItem[] { + if (!Array.isArray(items)) { + return []; + } + + return items.reduce((result, item) => { + if (!item || typeof item !== 'object') { + return result; + } + + const candidate = item as Record; + const label = + (typeof candidate.label === 'string' && candidate.label) || + (typeof candidate.title === 'string' && candidate.title) || + (typeof candidate.name === 'string' && candidate.name) || + ''; + + if (label.length === 0) { + return result; + } + + const description = + typeof candidate.description === 'string' ? candidate.description : undefined; + const url = typeof candidate.url === 'string' ? candidate.url : undefined; + const keywords = Array.isArray(candidate.keywords) + ? candidate.keywords.filter((keyword): keyword is string => typeof keyword === 'string') + : undefined; + + result.push({ + ...(candidate as OmnibarItem), + label, + description, + url, + keywords, + }); + + return result; + }, []); +} + +export default function OmnibarElement({ + title = '', + placeholder = 'Search', + items, + showCount = true, + autoFocus = false, + emptyText = 'No matching results', + maxItems = 8, + hostElement, +}: OmnibarElementProps) { + const inputRef = useRef(null); + const [query, setQuery] = useState(''); + const [activeIndex, setActiveIndex] = useState(0); + + const normalizedItems = useMemo(() => normalizeItems(items), [items]); + + const filteredItems = useMemo(() => { + const normalizedQuery = query.trim().toLowerCase(); + const limitedSize = Math.max(1, maxItems); + + const matchingItems = normalizedItems.filter((item) => { + if (normalizedQuery.length === 0) { + return true; + } + + const haystack = [ + item.label, + item.description, + ...(item.keywords ?? []), + ] + .filter((value): value is string => typeof value === 'string') + .join(' ') + .toLowerCase(); + + return haystack.includes(normalizedQuery); + }); + + return matchingItems.slice(0, limitedSize); + }, [maxItems, normalizedItems, query]); + + useEffect(() => { + if (autoFocus) { + inputRef.current?.focus(); + } + }, [autoFocus]); + + useEffect(() => { + setActiveIndex((currentIndex) => { + if (filteredItems.length === 0) { + return 0; + } + + return Math.min(currentIndex, filteredItems.length - 1); + }); + }, [filteredItems]); + + useEffect(() => { + if (hostElement) { + dispatchElementEvent(hostElement, 'querychange', { + query, + items: filteredItems, + }); + } + }, [filteredItems, hostElement, query]); + + const selectItem = (item: OmnibarItem) => { + if (hostElement) { + dispatchElementEvent(hostElement, 'itemselect', item); + } + + if (item.url) { + window.location.assign(item.url); + } + }; + + const submitQuery = () => { + if (hostElement) { + dispatchElementEvent(hostElement, 'submit', { + query, + }); + } + }; + + const handleKeyDown = (event: React.KeyboardEvent) => { + if (event.key === 'ArrowDown') { + event.preventDefault(); + setActiveIndex((currentIndex) => + filteredItems.length === 0 ? 0 : Math.min(currentIndex + 1, filteredItems.length - 1), + ); + return; + } + + if (event.key === 'ArrowUp') { + event.preventDefault(); + setActiveIndex((currentIndex) => Math.max(currentIndex - 1, 0)); + return; + } + + if (event.key === 'Enter') { + event.preventDefault(); + + const selectedItem = filteredItems[activeIndex]; + + if (selectedItem) { + selectItem(selectedItem); + } else { + submitQuery(); + } + } + }; + + return ( +
+
+
{title || 'Omnibar'}
+ + {showCount && ( +
+ {filteredItems.length} result{filteredItems.length === 1 ? '' : 's'} +
+ )} +
+ + setQuery(event.target.value)} + onKeyDown={handleKeyDown} + /> + + {filteredItems.length === 0 ? ( +
{emptyText}
+ ) : ( +
+ {filteredItems.map((item, index) => ( + + ))} +
+ )} +
+ ); +} diff --git a/Web/Resgrid.Web/Areas/User/Apps/src/components/omnibar/omnibar.css b/Web/Resgrid.Web/Areas/User/Apps/src/components/omnibar/omnibar.css new file mode 100644 index 000000000..567eac3c9 --- /dev/null +++ b/Web/Resgrid.Web/Areas/User/Apps/src/components/omnibar/omnibar.css @@ -0,0 +1,73 @@ +.rg-omnibar { + display: flex; + flex-direction: column; + gap: 12px; + max-width: 640px; + color: #111827; + font-size: 13px; +} + +.rg-omnibar__header { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; +} + +.rg-omnibar__title { + font-size: 18px; + font-weight: 600; +} + +.rg-omnibar__count { + color: #6b7280; + font-size: 12px; +} + +.rg-omnibar__input { + width: 100%; + padding: 10px 12px; + border: 1px solid #cbd5e1; + border-radius: 6px; + outline: none; +} + +.rg-omnibar__input:focus { + border-color: #2563eb; + box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15); +} + +.rg-omnibar__results { + display: flex; + flex-direction: column; + gap: 8px; +} + +.rg-omnibar__item { + display: flex; + width: 100%; + flex-direction: column; + gap: 4px; + padding: 12px; + border: 1px solid #dbe2ea; + border-radius: 6px; + background: #ffffff; + text-align: left; + transition: border-color 0.15s ease, background 0.15s ease; +} + +.rg-omnibar__item:hover, +.rg-omnibar__item--active { + border-color: #2563eb; + background: #eff6ff; +} + +.rg-omnibar__item-label { + font-size: 14px; + font-weight: 600; +} + +.rg-omnibar__item-description, +.rg-omnibar__empty { + color: #6b7280; +} diff --git a/Web/Resgrid.Web/Areas/User/Apps/src/components/shared/LoadingIndicator.tsx b/Web/Resgrid.Web/Areas/User/Apps/src/components/shared/LoadingIndicator.tsx new file mode 100644 index 000000000..33925d99b --- /dev/null +++ b/Web/Resgrid.Web/Areas/User/Apps/src/components/shared/LoadingIndicator.tsx @@ -0,0 +1,14 @@ +interface LoadingIndicatorProps { + label: string; +} + +export default function LoadingIndicator({ label }: LoadingIndicatorProps) { + return ( +
+
+
+
+ ); +} diff --git a/Web/Resgrid.Web/Areas/User/Apps/src/components/shifts/ShiftsCalendarElement.tsx b/Web/Resgrid.Web/Areas/User/Apps/src/components/shifts/ShiftsCalendarElement.tsx new file mode 100644 index 000000000..0283e4918 --- /dev/null +++ b/Web/Resgrid.Web/Areas/User/Apps/src/components/shifts/ShiftsCalendarElement.tsx @@ -0,0 +1,154 @@ +import { useEffect, useState } from 'react'; +import { + Calendar, + Views, + dateFnsLocalizer, +} from 'react-big-calendar'; +import format from 'date-fns/format'; +import getDay from 'date-fns/getDay'; +import parse from 'date-fns/parse'; +import startOfWeek from 'date-fns/startOfWeek'; +import enUS from 'date-fns/locale/en-US'; +import 'react-big-calendar/lib/css/react-big-calendar.css'; +import LoadingIndicator from '../shared/LoadingIndicator'; +import { siteFetchJson } from '../../runtime/api'; +import './shifts.css'; + +const locales = { + 'en-US': enUS, +}; + +const localizer = dateFnsLocalizer({ + format, + parse, + startOfWeek, + getDay, + locales, +}); + +interface ShiftCalendarItem { + CalendarItemId: number; + Title: string; + Start: string; + End: string; + Color: string; + SignupType: number; + IsAllDay: boolean; + ShiftId: number; + WorkshiftId?: string; + WorkshiftDayId?: string; + Filled: boolean; + UserSignedUp: boolean; +} + +interface ShiftCalendarEvent { + title: string; + start: Date; + end: Date; + allDay: boolean; + resource: ShiftCalendarItem; +} + +export interface ShiftsCalendarElementProps { + hostElement?: HTMLElement; +} + +function navigateToShift(resource: ShiftCalendarItem) { + if (!resource.WorkshiftId) { + if (resource.SignupType === 0) { + window.location.assign(`/User/Shifts/ViewShift?shiftDayId=${resource.CalendarItemId}`); + return; + } + + window.location.assign(`/User/Shifts/Signup?shiftDayId=${resource.CalendarItemId}`); + return; + } + + window.location.assign(`/User/Workshifts/ViewDay?dayId=${resource.WorkshiftDayId}`); +} + +export default function ShiftsCalendarElement(_: ShiftsCalendarElementProps) { + const [events, setEvents] = useState([]); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + useEffect(() => { + let cancelled = false; + + const loadEventsAsync = async () => { + setLoading(true); + setError(null); + + try { + const response = await siteFetchJson('/User/Shifts/GetShiftCalendarItems'); + + if (cancelled) { + return; + } + + setEvents( + response.map((shift) => ({ + title: shift.Title, + start: new Date(shift.Start), + end: new Date(shift.End), + allDay: shift.IsAllDay, + resource: shift, + })), + ); + } catch (loadError) { + if (!cancelled) { + setError(loadError instanceof Error ? loadError.message : 'Unable to load shifts.'); + } + } finally { + if (!cancelled) { + setLoading(false); + } + } + }; + + void loadEventsAsync(); + + return () => { + cancelled = true; + }; + }, []); + + if (loading) { + return ; + } + + if (error) { + return
{error}
; + } + + return ( +
+
+ + localizer={localizer} + events={events} + defaultView={Views.MONTH} + views={[Views.MONTH, Views.WEEK, Views.DAY]} + popup + messages={{ + today: 'Today', + previous: 'Previous', + next: 'Next', + month: 'Month', + week: 'Week', + day: 'Day', + }} + eventPropGetter={(event: ShiftCalendarEvent) => ({ + style: { + backgroundColor: event.resource.Color, + borderColor: event.resource.Color, + color: '#111827', + borderRadius: '4px', + }, + })} + onSelectEvent={(event: ShiftCalendarEvent) => navigateToShift(event.resource)} + /> +
+
+ ); +} diff --git a/Web/Resgrid.Web/Areas/User/Apps/src/components/shifts/shifts.css b/Web/Resgrid.Web/Areas/User/Apps/src/components/shifts/shifts.css new file mode 100644 index 000000000..51df6a126 --- /dev/null +++ b/Web/Resgrid.Web/Areas/User/Apps/src/components/shifts/shifts.css @@ -0,0 +1,62 @@ +.rg-shifts { + color: #111827; + font-size: 13px; +} + +.rg-shifts__calendar { + min-height: 760px; +} + +.rg-shifts .rbc-calendar { + min-height: 760px; +} + +.rg-shifts .rbc-toolbar { + gap: 12px; + margin-bottom: 18px; +} + +.rg-shifts .rbc-toolbar button { + border: 1px solid #2563eb; + border-radius: 4px; + background: #2563eb; + color: #ffffff; + padding: 6px 12px; +} + +.rg-shifts .rbc-toolbar button:hover, +.rg-shifts .rbc-toolbar button:focus { + border-color: #1d4ed8; + background: #1d4ed8; + color: #ffffff; +} + +.rg-shifts .rbc-toolbar button.rbc-active { + border-color: #1e40af; + background: #1e40af; + color: #ffffff; +} + +.rg-shifts .rbc-month-view, +.rg-shifts .rbc-time-view { + overflow: hidden; + border: 1px solid #d1d5db; + border-radius: 6px; +} + +.rg-shifts .rbc-header { + padding: 8px 0; + font-weight: 600; +} + +.rg-shifts .rbc-today { + background: #eff6ff; +} + +.rg-shifts .rbc-off-range-bg { + background: #f8fafc; +} + +.rg-shifts .rbc-event { + box-shadow: none; +} diff --git a/Web/Resgrid.Web/Areas/User/Apps/src/elements.ts b/Web/Resgrid.Web/Areas/User/Apps/src/elements.ts new file mode 100644 index 000000000..13e760e27 --- /dev/null +++ b/Web/Resgrid.Web/Areas/User/Apps/src/elements.ts @@ -0,0 +1,45 @@ +import './styles/base.css'; +import { defineReactElement, type PropDefinition } from './runtime/customElement'; +import type { MapElementProps } from './components/map/MapElement'; +import type { ShiftsCalendarElementProps } from './components/shifts/ShiftsCalendarElement'; +import type { OmnibarElementProps } from './components/omnibar/OmnibarElement'; + +const mapProps: readonly PropDefinition[] = [ + { attribute: 'showbuttons', property: 'showButtons', type: 'boolean', defaultValue: false }, + { attribute: 'mapheight', property: 'mapHeight', type: 'string', defaultValue: '600px' }, + { attribute: 'departmentid', property: 'departmentId', type: 'number' }, + { attribute: 'leafletosmurl', property: 'leafletOsmUrl', type: 'string' }, + { attribute: 'mapattribution', property: 'mapAttribution', type: 'string', defaultValue: '' }, + { attribute: 'mapprovider', property: 'mapProvider', type: 'string', defaultValue: '' }, + { attribute: 'mapstyleurl', property: 'mapStyleUrl', type: 'string', defaultValue: '' }, + { attribute: 'mapaccesstoken', property: 'mapAccessToken', type: 'string', defaultValue: '' }, + { attribute: 'mapconfig', property: 'mapConfig', type: 'json' }, +]; + +const omnibarProps: readonly PropDefinition[] = [ + { attribute: 'title', property: 'title', type: 'string', defaultValue: '' }, + { attribute: 'placeholder', property: 'placeholder', type: 'string', defaultValue: 'Search' }, + { attribute: 'items', property: 'items', type: 'json', defaultValue: [] }, + { attribute: 'showcount', property: 'showCount', type: 'boolean', defaultValue: true }, + { attribute: 'autofocus', property: 'autoFocus', type: 'boolean', defaultValue: false }, + { attribute: 'emptytext', property: 'emptyText', type: 'string', defaultValue: 'No matching results' }, + { attribute: 'maxitems', property: 'maxItems', type: 'number', defaultValue: 8 }, +]; + +defineReactElement( + 'rg-map', + () => import('./components/map/MapElement'), + mapProps, +); + +defineReactElement( + 'rg-shifts-calendar', + () => import('./components/shifts/ShiftsCalendarElement'), + [], +); + +defineReactElement( + 'rg-omnibar', + () => import('./components/omnibar/OmnibarElement'), + omnibarProps, +); diff --git a/Web/Resgrid.Web/Areas/User/Apps/src/runtime/api.ts b/Web/Resgrid.Web/Areas/User/Apps/src/runtime/api.ts new file mode 100644 index 000000000..6f3360050 --- /dev/null +++ b/Web/Resgrid.Web/Areas/User/Apps/src/runtime/api.ts @@ -0,0 +1,43 @@ +import { getAccessToken } from './auth'; +import { getBrowserConfig } from './browserConfig'; + +export async function apiFetchJson(path: string, init?: RequestInit): Promise { + const { apiBaseUrl } = getBrowserConfig(); + const requestUrl = new URL(path, `${apiBaseUrl}/`); + const headers = new Headers(init?.headers); + const accessToken = getAccessToken(); + + headers.set('Accept', 'application/json'); + + if (accessToken.length > 0) { + headers.set('Authorization', `Bearer ${accessToken}`); + } + + const response = await fetch(requestUrl, { + ...init, + headers, + }); + + if (!response.ok) { + throw new Error(`API request failed with ${response.status}: ${response.statusText}`); + } + + return (await response.json()) as TResponse; +} + +export async function siteFetchJson(path: string, init?: RequestInit): Promise { + const headers = new Headers(init?.headers); + headers.set('Accept', 'application/json'); + + const response = await fetch(path, { + ...init, + credentials: 'same-origin', + headers, + }); + + if (!response.ok) { + throw new Error(`Request failed with ${response.status}: ${response.statusText}`); + } + + return (await response.json()) as TResponse; +} diff --git a/Web/Resgrid.Web/Areas/User/Apps/src/runtime/auth.ts b/Web/Resgrid.Web/Areas/User/Apps/src/runtime/auth.ts new file mode 100644 index 000000000..aed7e44ba --- /dev/null +++ b/Web/Resgrid.Web/Areas/User/Apps/src/runtime/auth.ts @@ -0,0 +1,40 @@ +import { getBrowserConfig } from './browserConfig'; + +export interface StoredTokens { + access_token: string; + refresh_token?: string; + id_token?: string; + expiration_date?: string; + [key: string]: unknown; +} + +export function getStoredTokens(): StoredTokens | null { + const storageKey = getBrowserConfig().tokenStorageKey; + const rawValue = window.localStorage.getItem(storageKey); + + if (!rawValue) { + return null; + } + + try { + const parsedValue = JSON.parse(rawValue) as StoredTokens; + + if (typeof parsedValue?.access_token === 'string' && parsedValue.access_token.length > 0) { + return parsedValue; + } + + return null; + } catch { + if (rawValue.trim().length > 0) { + return { + access_token: rawValue.trim(), + }; + } + + return null; + } +} + +export function getAccessToken(): string { + return getStoredTokens()?.access_token ?? ''; +} diff --git a/Web/Resgrid.Web/Areas/User/Apps/src/runtime/browserConfig.ts b/Web/Resgrid.Web/Areas/User/Apps/src/runtime/browserConfig.ts new file mode 100644 index 000000000..9a2713b16 --- /dev/null +++ b/Web/Resgrid.Web/Areas/User/Apps/src/runtime/browserConfig.ts @@ -0,0 +1,27 @@ +declare global { + interface Window { + rgApiBaseUrl?: string; + rgGoogleMapsKey?: string; + rgChannelUrl?: string; + } +} + +export interface BrowserConfig { + apiBaseUrl: string; + googleMapsKey: string; + channelUrl: string; + tokenStorageKey: string; +} + +function trimTrailingSlash(value: string): string { + return value.endsWith('/') ? value.slice(0, -1) : value; +} + +export function getBrowserConfig(): BrowserConfig { + return { + apiBaseUrl: trimTrailingSlash(window.rgApiBaseUrl?.trim() || 'https://api.resgrid.com'), + googleMapsKey: window.rgGoogleMapsKey?.trim() || '', + channelUrl: trimTrailingSlash(window.rgChannelUrl?.trim() || 'https://events.resgrid.com'), + tokenStorageKey: 'RgWebApp.auth-tokens', + }; +} diff --git a/Web/Resgrid.Web/Areas/User/Apps/src/runtime/customElement.tsx b/Web/Resgrid.Web/Areas/User/Apps/src/runtime/customElement.tsx new file mode 100644 index 000000000..ef4be30de --- /dev/null +++ b/Web/Resgrid.Web/Areas/User/Apps/src/runtime/customElement.tsx @@ -0,0 +1,156 @@ +import { createElement } from 'react'; +import type { ComponentType } from 'react'; +import { createRoot, type Root } from 'react-dom/client'; + +export type PropKind = 'string' | 'boolean' | 'number' | 'json'; + +export interface PropDefinition { + attribute: string; + property: string; + type: PropKind; + defaultValue?: TValue; +} + +export interface HostedReactElementProps { + hostElement: HTMLElement; +} + +type ComponentLoader = () => Promise<{ default: ComponentType }>; + +function parseAttributeValue(rawValue: string | null, definition: PropDefinition): unknown { + if (rawValue === null) { + return definition.defaultValue; + } + + switch (definition.type) { + case 'boolean': + return rawValue === '' || rawValue === 'true' || rawValue === '1'; + case 'number': { + const parsedValue = Number(rawValue); + return Number.isFinite(parsedValue) ? parsedValue : definition.defaultValue; + } + case 'json': + try { + return JSON.parse(rawValue); + } catch { + return definition.defaultValue; + } + case 'string': + default: + return rawValue; + } +} + +export function defineReactElement( + tagName: string, + loader: ComponentLoader, + propDefinitions: readonly PropDefinition[], +): void { + if (customElements.get(tagName)) { + return; + } + + class HostedReactElement extends HTMLElement { + public static get observedAttributes(): string[] { + return propDefinitions.map((definition) => definition.attribute); + } + + private root: Root | null = null; + private mountPoint: HTMLDivElement | null = null; + private component: ComponentType | null = null; + private componentPromise: Promise<{ default: ComponentType }> | null = null; + private propertyValues = new Map(); + + public connectedCallback(): void { + if (!this.mountPoint) { + this.mountPoint = document.createElement('div'); + this.mountPoint.className = 'rg-element-root'; + this.replaceChildren(this.mountPoint); + } + + if (!this.root) { + this.root = createRoot(this.mountPoint); + } + + this.renderComponent(); + } + + public attributeChangedCallback(): void { + this.renderComponent(); + } + + public disconnectedCallback(): void { + this.root?.unmount(); + this.root = null; + this.mountPoint = null; + } + + private async loadComponentAsync(): Promise> { + if (!this.componentPromise) { + this.componentPromise = loader(); + } + + const module = await this.componentPromise; + this.component = module.default; + return this.component; + } + + private buildProps(): TProps & HostedReactElementProps { + const props: Record = { + hostElement: this, + }; + + for (const definition of propDefinitions) { + props[definition.property] = parseAttributeValue(this.getAttribute(definition.attribute), definition); + } + + for (const [key, value] of this.propertyValues.entries()) { + props[key] = value; + } + + return props as TProps & HostedReactElementProps; + } + + private renderComponent(): void { + if (!this.isConnected || !this.root) { + return; + } + + if (!this.component) { + void this.loadComponentAsync().then(() => this.renderComponent()); + return; + } + + this.root.render(createElement(this.component, this.buildProps())); + } + + public setPropertyValue(propertyName: string, propertyValue: unknown): void { + if (typeof propertyValue === 'undefined') { + this.propertyValues.delete(propertyName); + } else { + this.propertyValues.set(propertyName, propertyValue); + } + + this.renderComponent(); + } + + public getPropertyValue(propertyName: string): unknown { + return this.propertyValues.get(propertyName); + } + } + + for (const definition of propDefinitions) { + Object.defineProperty(HostedReactElement.prototype, definition.property, { + configurable: true, + enumerable: true, + get(this: HostedReactElement) { + return this.getPropertyValue(definition.property); + }, + set(this: HostedReactElement, value: unknown) { + this.setPropertyValue(definition.property, value); + }, + }); + } + + customElements.define(tagName, HostedReactElement); +} diff --git a/Web/Resgrid.Web/Areas/User/Apps/src/runtime/events.ts b/Web/Resgrid.Web/Areas/User/Apps/src/runtime/events.ts new file mode 100644 index 000000000..ba3ad63cf --- /dev/null +++ b/Web/Resgrid.Web/Areas/User/Apps/src/runtime/events.ts @@ -0,0 +1,13 @@ +export function dispatchElementEvent( + hostElement: HTMLElement, + eventName: string, + detail: TDetail, +): void { + hostElement.dispatchEvent( + new CustomEvent(eventName, { + bubbles: true, + composed: true, + detail, + }), + ); +} diff --git a/Web/Resgrid.Web/Areas/User/Apps/src/runtime/signalr.ts b/Web/Resgrid.Web/Areas/User/Apps/src/runtime/signalr.ts new file mode 100644 index 000000000..e248488c5 --- /dev/null +++ b/Web/Resgrid.Web/Areas/User/Apps/src/runtime/signalr.ts @@ -0,0 +1,45 @@ +import { HubConnectionBuilder, LogLevel, type HubConnection } from '@microsoft/signalr'; +import { getAccessToken } from './auth'; +import { getBrowserConfig } from './browserConfig'; + +export interface PersonnelLocationUpdate { + userId: string; + departmentId: number; + latitude: number; + longitude: number; +} + +export interface UnitLocationUpdate { + unitId: string; + departmentId: number; + latitude: number; + longitude: number; +} + +export interface GeolocationHandlers { + onPersonnelLocationUpdated: (update: PersonnelLocationUpdate) => void; + onUnitLocationUpdated: (update: UnitLocationUpdate) => void; +} + +export async function connectGeolocationHub(handlers: GeolocationHandlers): Promise { + const accessToken = getAccessToken(); + + if (accessToken.length === 0) { + return null; + } + + const { channelUrl } = getBrowserConfig(); + const connection = new HubConnectionBuilder() + .withUrl(`${channelUrl}/geolocationHub?access_token=${encodeURIComponent(accessToken)}`) + .withAutomaticReconnect() + .configureLogging(LogLevel.Information) + .build(); + + connection.on('onPersonnelLocationUpdated', handlers.onPersonnelLocationUpdated); + connection.on('onUnitLocationUpdated', handlers.onUnitLocationUpdated); + + await connection.start(); + await connection.invoke('geolocationConnect'); + + return connection; +} diff --git a/Web/Resgrid.Web/Areas/User/Apps/src/styles/base.css b/Web/Resgrid.Web/Areas/User/Apps/src/styles/base.css new file mode 100644 index 000000000..7bed2a31b --- /dev/null +++ b/Web/Resgrid.Web/Areas/User/Apps/src/styles/base.css @@ -0,0 +1,49 @@ +.rg-element-root { + box-sizing: border-box; +} + +.rg-card { + background: #ffffff; + border: 1px solid #e5e7eb; + border-radius: 6px; + box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08); +} + +.rg-loading { + display: flex; + min-height: 120px; + align-items: center; + justify-content: center; + color: #4b5563; + font-size: 14px; +} + +.rg-loading__stack { + display: inline-flex; + align-items: center; + gap: 12px; +} + +.rg-loading__spinner { + width: 18px; + height: 18px; + border-radius: 50%; + border: 2px solid rgba(59, 130, 246, 0.2); + border-top-color: #2563eb; + animation: rg-spin 0.8s linear infinite; +} + +.rg-error { + padding: 12px 14px; + color: #991b1b; + background: #fef2f2; + border: 1px solid #fecaca; + border-radius: 6px; + font-size: 13px; +} + +@keyframes rg-spin { + to { + transform: rotate(360deg); + } +} diff --git a/Web/Resgrid.Web/Areas/User/Apps/src/vite-env.d.ts b/Web/Resgrid.Web/Areas/User/Apps/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/Web/Resgrid.Web/Areas/User/Apps/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/Web/Resgrid.Web/Areas/User/Apps/tsconfig.json b/Web/Resgrid.Web/Areas/User/Apps/tsconfig.json index d505203a8..43db008cc 100644 --- a/Web/Resgrid.Web/Areas/User/Apps/tsconfig.json +++ b/Web/Resgrid.Web/Areas/User/Apps/tsconfig.json @@ -1,28 +1,42 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ { - "compileOnSave": false, "compilerOptions": { - "baseUrl": "./src", - "outDir": "./dist/out-tsc", - "forceConsistentCasingInFileNames": true, - "sourceMap": true, - "declaration": false, - "downlevelIteration": true, - "experimentalDecorators": true, - "moduleResolution": "node", - "importHelpers": true, - "skipLibCheck": true, - "target": "es2020", - "module": "es2020", + "target": "ES2022", + "useDefineForClassFields": true, "lib": [ - "es2020", - "dom" + "ES2022", + "DOM", + "DOM.Iterable" + ], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "types": [ + "vite/client" ] }, - "angularCompilerOptions": { - "enableI18nLegacyMessageIdFormat": false, - "strictInjectionParameters": true, - "strictInputAccessModifiers": true, - "strictTemplates": true - } + "include": [ + "src/elements.ts", + "src/vite-env.d.ts", + "src/components/**/*", + "src/runtime/**/*", + "src/styles/**/*", + "vite.config.ts" + ], + "exclude": [ + "src/app/**/*", + "src/environments/**/*", + "src/index.html", + "src/main.ts", + "src/polyfills.ts", + "src/test.ts" + ] } diff --git a/Web/Resgrid.Web/Areas/User/Apps/vite.config.ts b/Web/Resgrid.Web/Areas/User/Apps/vite.config.ts new file mode 100644 index 000000000..8669c17b4 --- /dev/null +++ b/Web/Resgrid.Web/Areas/User/Apps/vite.config.ts @@ -0,0 +1,45 @@ +import { resolve } from 'node:path'; +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react'; + +export default defineConfig(({ mode }) => { + const nodeEnv = mode === 'production' ? 'production' : 'development'; + + return { + plugins: [react()], + define: { + 'process.env.NODE_ENV': JSON.stringify(nodeEnv), + 'process.platform': JSON.stringify('browser'), + 'process.release': JSON.stringify({ name: 'browser' }), + 'process.versions.node': JSON.stringify(''), + }, + build: { + target: 'es2022', + outDir: 'dist/core', + emptyOutDir: true, + sourcemap: mode !== 'production', + cssCodeSplit: false, + modulePreload: { + polyfill: false, + }, + lib: { + entry: resolve(__dirname, 'src/elements.ts'), + formats: ['es'], + fileName: () => 'react-elements.js', + }, + rollupOptions: { + output: { + entryFileNames: 'react-elements.js', + chunkFileNames: 'chunks/[name]-[hash].js', + assetFileNames: (assetInfo) => { + if (assetInfo.name?.endsWith('.css')) { + return 'react-elements.css'; + } + + return 'assets/[name]-[hash][extname]'; + }, + }, + }, + }, + }; +}); diff --git a/Web/Resgrid.Web/Areas/User/Controllers/DepartmentController.cs b/Web/Resgrid.Web/Areas/User/Controllers/DepartmentController.cs index dad670696..e9ddfe7fd 100644 --- a/Web/Resgrid.Web/Areas/User/Controllers/DepartmentController.cs +++ b/Web/Resgrid.Web/Areas/User/Controllers/DepartmentController.cs @@ -1940,6 +1940,9 @@ public async Task MappingSettings() model.UnitLocationTTL = await _departmentSettingsService.GetMappingUnitLocationTTLAsync(DepartmentId); model.PersonnelAllowStatusWithNoLocationToOverwrite = await _departmentSettingsService.GetMappingPersonnelAllowStatusWithNoLocationToOverwriteAsync(DepartmentId); model.UnitAllowStatusWithNoLocationToOverwrite = await _departmentSettingsService.GetMappingUnitAllowStatusWithNoLocationToOverwriteAsync(DepartmentId); + model.UseMapboxOverride = await _departmentSettingsService.GetMappingUseMapboxOverrideAsync(DepartmentId); + model.MapboxStyleUrl = await _departmentSettingsService.GetMappingMapboxStyleUrlAsync(DepartmentId); + model.MapboxAccessToken = await _departmentSettingsService.GetMappingMapboxAccessTokenAsync(DepartmentId); return View(model); } @@ -1952,6 +1955,18 @@ public async Task MappingSettings(MappingSettingsView model, Canc if (!await _authorizationService.CanUserModifyDepartmentAsync(UserId, DepartmentId)) return Unauthorized(); + if (model.UseMapboxOverride) + { + if (String.IsNullOrWhiteSpace(model.MapboxStyleUrl)) + ModelState.AddModelError(nameof(model.MapboxStyleUrl), "A Mapbox style url is required when the department override is enabled for website and mobile map rendering."); + + if (String.IsNullOrWhiteSpace(model.MapboxAccessToken)) + ModelState.AddModelError(nameof(model.MapboxAccessToken), "A Mapbox public access token is required when the department override is enabled for website and mobile map rendering."); + + if (!String.IsNullOrWhiteSpace(model.MapboxStyleUrl) && !Config.MappingConfig.IsSupportedMapboxStyleUrl(model.MapboxStyleUrl)) + ModelState.AddModelError(nameof(model.MapboxStyleUrl), "The Mapbox style url must be a mapbox://styles/... value or a https://api.mapbox.com/styles/v1/... url."); + } + if (ModelState.IsValid) { await _departmentSettingsService.SaveOrUpdateSettingAsync(DepartmentId, model.PersonnelLocationTTL.ToString(), @@ -1962,6 +1977,21 @@ await _departmentSettingsService.SaveOrUpdateSettingAsync(DepartmentId, model.Pe DepartmentSettingTypes.MappingPersonnelAllowStatusWithNoLocationToOverwrite, cancellationToken); await _departmentSettingsService.SaveOrUpdateSettingAsync(DepartmentId, model.UnitAllowStatusWithNoLocationToOverwrite.ToString(), DepartmentSettingTypes.MappingUnitAllowStatusWithNoLocationToOverwrite, cancellationToken); + await _departmentSettingsService.SaveOrUpdateSettingAsync(DepartmentId, model.UseMapboxOverride.ToString(), + DepartmentSettingTypes.MappingUseMapboxOverride, cancellationToken); + + if (model.UseMapboxOverride) + { + await _departmentSettingsService.SaveOrUpdateSettingAsync(DepartmentId, model.MapboxStyleUrl?.Trim(), + DepartmentSettingTypes.MappingMapboxStyleUrl, cancellationToken); + await _departmentSettingsService.SaveOrUpdateSettingAsync(DepartmentId, model.MapboxAccessToken?.Trim(), + DepartmentSettingTypes.MappingMapboxAccessToken, cancellationToken); + } + else + { + await _departmentSettingsService.DeleteSettingAsync(DepartmentId, DepartmentSettingTypes.MappingMapboxStyleUrl, cancellationToken); + await _departmentSettingsService.DeleteSettingAsync(DepartmentId, DepartmentSettingTypes.MappingMapboxAccessToken, cancellationToken); + } model.SaveSuccess = true; return View(model); diff --git a/Web/Resgrid.Web/Areas/User/Controllers/DispatchController.cs b/Web/Resgrid.Web/Areas/User/Controllers/DispatchController.cs index b243d4eec..47578b90d 100644 --- a/Web/Resgrid.Web/Areas/User/Controllers/DispatchController.cs +++ b/Web/Resgrid.Web/Areas/User/Controllers/DispatchController.cs @@ -2492,11 +2492,7 @@ public async Task AttachCallFile(FileAttachInput model, IFormFile ModelState.AddModelError("fileToUpload", "You must select a file to attach."); else { - var extenion = fileToUpload.FileName.Substring(fileToUpload.FileName.IndexOf(char.Parse(".")) + 1, - fileToUpload.FileName.Length - fileToUpload.FileName.IndexOf(char.Parse(".")) - 1); - - if (!String.IsNullOrWhiteSpace(extenion)) - extenion = extenion.ToLower(); + var extenion = FileHelper.GetFileExtensionWithoutDot(fileToUpload.FileName); if (extenion != "jpg" && extenion != "jpeg" && extenion != "png" && extenion != "gif" && extenion != "gif" && extenion != "pdf" && extenion != "doc" && extenion != "docx" && extenion != "ppt" && extenion != "pptx" && extenion != "pps" && extenion != "ppsx" && extenion != "odt" diff --git a/Web/Resgrid.Web/Areas/User/Controllers/DocumentsController.cs b/Web/Resgrid.Web/Areas/User/Controllers/DocumentsController.cs index f8f7b9440..1b9a45a01 100644 --- a/Web/Resgrid.Web/Areas/User/Controllers/DocumentsController.cs +++ b/Web/Resgrid.Web/Areas/User/Controllers/DocumentsController.cs @@ -135,11 +135,7 @@ public async Task NewDocument(NewDocumentView model, IFormFile fi ModelState.AddModelError("fileToUpload", "You must select a document to add."); else { - var extenion = fileToUpload.FileName.Substring(fileToUpload.FileName.IndexOf(char.Parse(".")) + 1, - fileToUpload.FileName.Length - fileToUpload.FileName.IndexOf(char.Parse(".")) - 1); - - if (!String.IsNullOrWhiteSpace(extenion)) - extenion = extenion.ToLower(); + var extenion = FileHelper.GetFileExtensionWithoutDot(fileToUpload.FileName); if (extenion != "jpg" && extenion != "jpeg" && extenion != "png" && extenion != "gif" && extenion != "gif" && extenion != "pdf" && extenion != "doc" && extenion != "docx" && extenion != "ppt" && extenion != "pptx" && extenion != "pps" && extenion != "ppsx" && extenion != "odt" @@ -261,11 +257,7 @@ public async Task EditDocument(EditDocumentView model, IFormFile if (fileToUpload != null && fileToUpload.Length > 0) { - var extenion = fileToUpload.FileName.Substring(fileToUpload.FileName.IndexOf(char.Parse(".")) + 1, - fileToUpload.FileName.Length - fileToUpload.FileName.IndexOf(char.Parse(".")) - 1); - - if (!String.IsNullOrWhiteSpace(extenion)) - extenion = extenion.ToLower(); + var extenion = FileHelper.GetFileExtensionWithoutDot(fileToUpload.FileName); if (extenion != "jpg" && extenion != "jpeg" && extenion != "png" && extenion != "gif" && extenion != "gif" && extenion != "pdf" && extenion != "doc" && extenion != "docx" && extenion != "ppt" && extenion != "pptx" && extenion != "pps" && extenion != "ppsx" && extenion != "odt" diff --git a/Web/Resgrid.Web/Areas/User/Controllers/FilesController.cs b/Web/Resgrid.Web/Areas/User/Controllers/FilesController.cs index 757324bdc..a34b99ca6 100644 --- a/Web/Resgrid.Web/Areas/User/Controllers/FilesController.cs +++ b/Web/Resgrid.Web/Areas/User/Controllers/FilesController.cs @@ -3,6 +3,7 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Resgrid.Framework; using Resgrid.Model; using Resgrid.Model.Services; using Resgrid.WebCore.Areas.User.Models.Files; @@ -43,11 +44,7 @@ public async Task Upload(UploadFileView model, IFormFile fileToUp ModelState.AddModelError("fileToUpload", "You must select a file to upload."); else { - var extenion = fileToUpload.FileName.Substring(fileToUpload.FileName.IndexOf(char.Parse(".")) + 1, - fileToUpload.FileName.Length - fileToUpload.FileName.IndexOf(char.Parse(".")) - 1); - - if (!String.IsNullOrWhiteSpace(extenion)) - extenion = extenion.ToLower(); + var extenion = FileHelper.GetFileExtensionWithoutDot(fileToUpload.FileName); if (extenion != "jpg" && extenion != "jpeg" && extenion != "png" && extenion != "gif" && extenion != "gif" && extenion != "pdf" && extenion != "doc" && extenion != "docx" && extenion != "ppt" && extenion != "pptx" && extenion != "pps" && extenion != "ppsx" && extenion != "odt" diff --git a/Web/Resgrid.Web/Areas/User/Controllers/ProfileController.cs b/Web/Resgrid.Web/Areas/User/Controllers/ProfileController.cs index 5b117fbcf..eb88ab816 100644 --- a/Web/Resgrid.Web/Areas/User/Controllers/ProfileController.cs +++ b/Web/Resgrid.Web/Areas/User/Controllers/ProfileController.cs @@ -9,6 +9,7 @@ using Resgrid.Model.Helpers; using Resgrid.Model.Services; using Resgrid.Providers.Claims; +using Resgrid.Framework; using Resgrid.Web.Areas.User.Models; using Resgrid.Web.Areas.User.Models.Profile; using Resgrid.Web.Helpers; @@ -770,11 +771,7 @@ public async Task AddCertification(AddCertificationView model, IF { if (fileToUpload != null && fileToUpload.Length > 0) { - var extenion = fileToUpload.FileName.Substring(fileToUpload.FileName.IndexOf(char.Parse(".")) + 1, - fileToUpload.FileName.Length - fileToUpload.FileName.IndexOf(char.Parse(".")) - 1); - - if (!String.IsNullOrWhiteSpace(extenion)) - extenion = extenion.ToLower(); + var extenion = FileHelper.GetFileExtensionWithoutDot(fileToUpload.FileName); if (extenion != "jpg" && extenion != "jpeg" && extenion != "png" && extenion != "gif" && extenion != "gif" && extenion != "pdf" && extenion != "doc" && extenion != "docx" && extenion != "ppt" && extenion != "pptx" && extenion != "pps" && extenion != "ppsx" && extenion != "odt" @@ -853,11 +850,7 @@ public async Task EditCertification(EditCertificationView model, if (fileToUpload != null && fileToUpload.Length > 0) { - var extenion = fileToUpload.FileName.Substring(fileToUpload.FileName.IndexOf(char.Parse(".")) + 1, - fileToUpload.FileName.Length - fileToUpload.FileName.IndexOf(char.Parse(".")) - 1); - - if (!String.IsNullOrWhiteSpace(extenion)) - extenion = extenion.ToLower(); + var extenion = FileHelper.GetFileExtensionWithoutDot(fileToUpload.FileName); if (extenion != "jpg" && extenion != "jpeg" && extenion != "png" && extenion != "gif" && extenion != "gif" && extenion != "pdf" && extenion != "doc" && extenion != "docx" && extenion != "ppt" && extenion != "pptx" && extenion != "pps" && extenion != "ppsx" && extenion != "odt" diff --git a/Web/Resgrid.Web/Areas/User/Controllers/ProtocolsController.cs b/Web/Resgrid.Web/Areas/User/Controllers/ProtocolsController.cs index fae688a9a..c7dd4a98c 100644 --- a/Web/Resgrid.Web/Areas/User/Controllers/ProtocolsController.cs +++ b/Web/Resgrid.Web/Areas/User/Controllers/ProtocolsController.cs @@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Rendering; +using Resgrid.Framework; using Resgrid.Model; using Resgrid.Model.Services; using Resgrid.Providers.Claims; @@ -74,11 +75,7 @@ public async Task New(NewProtocolModel model, IFormCollection for { if (file != null && file.Length > 0) { - var extenion = file.FileName.Substring(file.FileName.IndexOf(char.Parse(".")) + 1, - file.FileName.Length - file.FileName.IndexOf(char.Parse(".")) - 1); - - if (!String.IsNullOrWhiteSpace(extenion)) - extenion = extenion.ToLower(); + var extenion = FileHelper.GetFileExtensionWithoutDot(file.FileName); if (extenion != "jpg" && extenion != "jpeg" && extenion != "png" && extenion != "gif" && extenion != "gif" && extenion != "pdf" && extenion != "doc" diff --git a/Web/Resgrid.Web/Areas/User/Controllers/TrainingsController.cs b/Web/Resgrid.Web/Areas/User/Controllers/TrainingsController.cs index 758aa521e..52254889a 100644 --- a/Web/Resgrid.Web/Areas/User/Controllers/TrainingsController.cs +++ b/Web/Resgrid.Web/Areas/User/Controllers/TrainingsController.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Resgrid.Framework; using Resgrid.Model; using Resgrid.Model.Services; using Resgrid.Web.Areas.User.Models.Training; @@ -62,11 +63,7 @@ public async Task New(NewTrainingModel model, IFormCollection for { if (file != null && file.Length > 0) { - var extenion = file.FileName.Substring(file.FileName.IndexOf(char.Parse(".")) + 1, - file.FileName.Length - file.FileName.IndexOf(char.Parse(".")) - 1); - - if (!String.IsNullOrWhiteSpace(extenion)) - extenion = extenion.ToLower(); + var extenion = FileHelper.GetFileExtensionWithoutDot(file.FileName); if (extenion != "jpg" && extenion != "jpeg" && extenion != "png" && extenion != "gif" && extenion != "gif" && extenion != "pdf" && extenion != "doc" diff --git a/Web/Resgrid.Web/Areas/User/Models/Departments/MappingSettingsView.cs b/Web/Resgrid.Web/Areas/User/Models/Departments/MappingSettingsView.cs index fbd610389..5b231164a 100644 --- a/Web/Resgrid.Web/Areas/User/Models/Departments/MappingSettingsView.cs +++ b/Web/Resgrid.Web/Areas/User/Models/Departments/MappingSettingsView.cs @@ -1,5 +1,4 @@ -using Microsoft.AspNetCore.Mvc.Rendering; -using Resgrid.Model; +using System.ComponentModel.DataAnnotations; namespace Resgrid.Web.Areas.User.Models.Departments { @@ -13,5 +12,13 @@ public class MappingSettingsView public bool PersonnelAllowStatusWithNoLocationToOverwrite { get; set; } public bool UnitAllowStatusWithNoLocationToOverwrite { get; set; } + + public bool UseMapboxOverride { get; set; } + + [Display(Name = "Mapbox Style Url")] + public string MapboxStyleUrl { get; set; } + + [Display(Name = "Mapbox Public Access Token")] + public string MapboxAccessToken { get; set; } } } diff --git a/Web/Resgrid.Web/Areas/User/Views/CustomMaps/Edit.cshtml b/Web/Resgrid.Web/Areas/User/Views/CustomMaps/Edit.cshtml index 44fac0277..dc4468919 100644 --- a/Web/Resgrid.Web/Areas/User/Views/CustomMaps/Edit.cshtml +++ b/Web/Resgrid.Web/Areas/User/Views/CustomMaps/Edit.cshtml @@ -3,6 +3,7 @@ @inject IStringLocalizer localizer @{ ViewBag.Title = "Resgrid | " + localizer["EditCustomMapPageTitle"]; + var mapConfig = SettingsHelper.GetDepartmentMapConfig(Resgrid.Config.InfoConfig.WebsiteKey); } @section Styles { @@ -91,8 +92,8 @@ @section Scripts { diff --git a/Web/Resgrid.Web/Areas/User/Views/CustomMaps/New.cshtml b/Web/Resgrid.Web/Areas/User/Views/CustomMaps/New.cshtml index fa8de45c3..e6eb42d25 100644 --- a/Web/Resgrid.Web/Areas/User/Views/CustomMaps/New.cshtml +++ b/Web/Resgrid.Web/Areas/User/Views/CustomMaps/New.cshtml @@ -3,6 +3,7 @@ @inject IStringLocalizer localizer @{ ViewBag.Title = "Resgrid | " + localizer["NewCustomMapPageTitle"]; + var mapConfig = SettingsHelper.GetDepartmentMapConfig(Resgrid.Config.InfoConfig.WebsiteKey); } @section Styles { @@ -90,8 +91,8 @@ @section Scripts { diff --git a/Web/Resgrid.Web/Areas/User/Views/CustomMaps/RegionEditor.cshtml b/Web/Resgrid.Web/Areas/User/Views/CustomMaps/RegionEditor.cshtml index 3523230c4..0bde41f06 100644 --- a/Web/Resgrid.Web/Areas/User/Views/CustomMaps/RegionEditor.cshtml +++ b/Web/Resgrid.Web/Areas/User/Views/CustomMaps/RegionEditor.cshtml @@ -3,6 +3,7 @@ @inject IStringLocalizer localizer @{ ViewBag.Title = "Resgrid | " + localizer["RegionEditorPageTitlePrefix"] + " - " + Model.Layer.Name; + var mapConfig = SettingsHelper.GetDepartmentMapConfig(Resgrid.Config.InfoConfig.WebsiteKey); } @section Styles { @@ -119,8 +120,8 @@ @section Scripts { diff --git a/Web/Resgrid.Web/Areas/User/Views/Dispatch/CallExportEx.cshtml b/Web/Resgrid.Web/Areas/User/Views/Dispatch/CallExportEx.cshtml index 4e5d92b7e..d9d15d46d 100644 --- a/Web/Resgrid.Web/Areas/User/Views/Dispatch/CallExportEx.cshtml +++ b/Web/Resgrid.Web/Areas/User/Views/Dispatch/CallExportEx.cshtml @@ -6,6 +6,7 @@ @inject IStringLocalizer localizer @{ Layout = null; + var mapConfig = SettingsHelper.GetDepartmentMapConfig(Resgrid.Config.InfoConfig.WebsiteKey); } @@ -561,8 +562,8 @@ @if (Model.Station != null) { diff --git a/Web/Resgrid.Web/Areas/User/Views/Dispatch/UpdateCall.cshtml b/Web/Resgrid.Web/Areas/User/Views/Dispatch/UpdateCall.cshtml index d571ba314..8387c1cc0 100644 --- a/Web/Resgrid.Web/Areas/User/Views/Dispatch/UpdateCall.cshtml +++ b/Web/Resgrid.Web/Areas/User/Views/Dispatch/UpdateCall.cshtml @@ -3,6 +3,7 @@ @{ ViewBag.Title = "Resgrid | " + @localizer["UpdateCallHeader"]; Layout = "~/Areas/User/Views/Shared/_UserLayout.cshtml"; + var mapConfig = SettingsHelper.GetDepartmentMapConfig(Resgrid.Config.InfoConfig.WebsiteKey); } @section Styles { @@ -437,8 +438,8 @@ diff --git a/Web/Resgrid.Web/Areas/User/Views/Dispatch/ViewCall.cshtml b/Web/Resgrid.Web/Areas/User/Views/Dispatch/ViewCall.cshtml index 51e65aa70..eb8c1854d 100644 --- a/Web/Resgrid.Web/Areas/User/Views/Dispatch/ViewCall.cshtml +++ b/Web/Resgrid.Web/Areas/User/Views/Dispatch/ViewCall.cshtml @@ -7,6 +7,7 @@ @{ ViewBag.Title = $"Resgrid | " + @localizer["ViewCallHeader"] + ": " + @Model.Call.Name; Layout = "~/Areas/User/Views/Shared/_UserLayout.cshtml"; + var mapConfig = SettingsHelper.GetDepartmentMapConfig(Resgrid.Config.InfoConfig.WebsiteKey); } @section Styles { @@ -947,8 +948,8 @@ diff --git a/Web/Resgrid.Web/Areas/User/Views/Files/Upload.cshtml b/Web/Resgrid.Web/Areas/User/Views/Files/Upload.cshtml index 574e8e388..493ed8cf3 100644 --- a/Web/Resgrid.Web/Areas/User/Views/Files/Upload.cshtml +++ b/Web/Resgrid.Web/Areas/User/Views/Files/Upload.cshtml @@ -28,7 +28,7 @@
-
+
diff --git a/Web/Resgrid.Web/Areas/User/Views/Groups/Geofence.cshtml b/Web/Resgrid.Web/Areas/User/Views/Groups/Geofence.cshtml index f6cbc7336..fe736e2cf 100644 --- a/Web/Resgrid.Web/Areas/User/Views/Groups/Geofence.cshtml +++ b/Web/Resgrid.Web/Areas/User/Views/Groups/Geofence.cshtml @@ -2,6 +2,7 @@ @inject IStringLocalizer localizer @{ ViewBag.Title = "Resgrid | " + localizer["GeofencePageTitle"]; + var mapConfig = SettingsHelper.GetDepartmentMapConfig(Resgrid.Config.InfoConfig.WebsiteKey); } @section Styles { @@ -91,8 +92,8 @@ diff --git a/Web/Resgrid.Web/Areas/User/Views/Home/EditUserProfile.cshtml b/Web/Resgrid.Web/Areas/User/Views/Home/EditUserProfile.cshtml index aa08064d9..5b44859a4 100644 --- a/Web/Resgrid.Web/Areas/User/Views/Home/EditUserProfile.cshtml +++ b/Web/Resgrid.Web/Areas/User/Views/Home/EditUserProfile.cshtml @@ -827,6 +827,7 @@ var rgVerifyConfirmUrl = resgrid.absoluteBaseUrl + '/User/Home/ConfirmContactVerificationCode'; var rgVerifyLabels = { sent: '@Html.Raw(localizer["VerificationCodeSent"].Value)', + voiceCallSent: '@Html.Raw(localizer["VerificationCodeVoiceCallSent"].Value)', success: '@Html.Raw(localizer["VerificationSuccessful"].Value)', failed: '@Html.Raw(localizer["VerificationFailed"].Value)', rateLimited: '@Html.Raw(localizer["VerificationRateLimited"].Value)' diff --git a/Web/Resgrid.Web/Areas/User/Views/IndoorMaps/Edit.cshtml b/Web/Resgrid.Web/Areas/User/Views/IndoorMaps/Edit.cshtml index c7d96aa1f..bcf617609 100644 --- a/Web/Resgrid.Web/Areas/User/Views/IndoorMaps/Edit.cshtml +++ b/Web/Resgrid.Web/Areas/User/Views/IndoorMaps/Edit.cshtml @@ -2,6 +2,7 @@ @inject IStringLocalizer localizer @{ ViewBag.Title = "Resgrid | " + localizer["EditIndoorMapPageTitle"]; + var mapConfig = SettingsHelper.GetDepartmentMapConfig(Resgrid.Config.InfoConfig.WebsiteKey); }
@@ -86,8 +87,8 @@ @section Scripts { } diff --git a/Web/Resgrid.Web/Areas/User/Views/IndoorMaps/New.cshtml b/Web/Resgrid.Web/Areas/User/Views/IndoorMaps/New.cshtml index 157757fdd..b1cde03e2 100644 --- a/Web/Resgrid.Web/Areas/User/Views/IndoorMaps/New.cshtml +++ b/Web/Resgrid.Web/Areas/User/Views/IndoorMaps/New.cshtml @@ -2,6 +2,7 @@ @inject IStringLocalizer localizer @{ ViewBag.Title = "Resgrid | " + localizer["NewIndoorMapPageTitle"]; + var mapConfig = SettingsHelper.GetDepartmentMapConfig(Resgrid.Config.InfoConfig.WebsiteKey); }
@@ -85,8 +86,8 @@ @section Scripts { } diff --git a/Web/Resgrid.Web/Areas/User/Views/IndoorMaps/ZoneEditor.cshtml b/Web/Resgrid.Web/Areas/User/Views/IndoorMaps/ZoneEditor.cshtml index 0ea94ace6..658b82792 100644 --- a/Web/Resgrid.Web/Areas/User/Views/IndoorMaps/ZoneEditor.cshtml +++ b/Web/Resgrid.Web/Areas/User/Views/IndoorMaps/ZoneEditor.cshtml @@ -2,6 +2,7 @@ @inject IStringLocalizer localizer @{ ViewBag.Title = "Resgrid | " + localizer["ZoneEditorPageTitlePrefix"] + " - " + Model.Floor.Name; + var mapConfig = SettingsHelper.GetDepartmentMapConfig(Resgrid.Config.InfoConfig.WebsiteKey); } @section Styles { @@ -104,8 +105,8 @@ @section Scripts { } diff --git a/Web/Resgrid.Web/Areas/User/Views/Personnel/ViewEvents.cshtml b/Web/Resgrid.Web/Areas/User/Views/Personnel/ViewEvents.cshtml index 70dc564a5..2db4208bc 100644 --- a/Web/Resgrid.Web/Areas/User/Views/Personnel/ViewEvents.cshtml +++ b/Web/Resgrid.Web/Areas/User/Views/Personnel/ViewEvents.cshtml @@ -2,6 +2,7 @@ @inject IStringLocalizer localizer @{ ViewBag.Title = "Resgrid | " + @localizer["ViewPersonEventsHeader"]; + var mapConfig = SettingsHelper.GetDepartmentMapConfig(Resgrid.Config.InfoConfig.WebsiteKey); } @section Styles { @@ -99,7 +100,7 @@ diff --git a/Web/Resgrid.Web/Areas/User/Views/Routes/ArchivedView.cshtml b/Web/Resgrid.Web/Areas/User/Views/Routes/ArchivedView.cshtml index f5f45f36b..1fb218c93 100644 --- a/Web/Resgrid.Web/Areas/User/Views/Routes/ArchivedView.cshtml +++ b/Web/Resgrid.Web/Areas/User/Views/Routes/ArchivedView.cshtml @@ -2,6 +2,7 @@ @inject IStringLocalizer localizer @{ ViewBag.Title = "Resgrid | " + localizer["ArchivedRouteDetailPageTitle"]; + var mapConfig = SettingsHelper.GetDepartmentMapConfig(Resgrid.Config.InfoConfig.WebsiteKey); }
@@ -90,8 +91,8 @@ @section Scripts { diff --git a/Web/Resgrid.Web/Areas/User/Views/Routes/New.cshtml b/Web/Resgrid.Web/Areas/User/Views/Routes/New.cshtml index 944a84417..d8cc8ad99 100644 --- a/Web/Resgrid.Web/Areas/User/Views/Routes/New.cshtml +++ b/Web/Resgrid.Web/Areas/User/Views/Routes/New.cshtml @@ -2,6 +2,7 @@ @inject IStringLocalizer localizer @{ ViewBag.Title = "Resgrid | " + localizer["NewRoutePageTitle"]; + var mapConfig = SettingsHelper.GetDepartmentMapConfig(Resgrid.Config.InfoConfig.WebsiteKey); }
@@ -328,8 +329,8 @@ @section Scripts { diff --git a/Web/Resgrid.Web/Areas/User/Views/Routes/View.cshtml b/Web/Resgrid.Web/Areas/User/Views/Routes/View.cshtml index 9c16ef552..67f9151a3 100644 --- a/Web/Resgrid.Web/Areas/User/Views/Routes/View.cshtml +++ b/Web/Resgrid.Web/Areas/User/Views/Routes/View.cshtml @@ -2,6 +2,7 @@ @inject IStringLocalizer localizer @{ ViewBag.Title = "Resgrid | " + localizer["RouteDetailPageTitle"]; + var mapConfig = SettingsHelper.GetDepartmentMapConfig(Resgrid.Config.InfoConfig.WebsiteKey); }
@@ -94,8 +95,8 @@ @section Scripts { - - - - - - - - + } @if (IsSectionDefined("Scripts")) diff --git a/Web/Resgrid.Web/Areas/User/Views/Units/ViewEvents.cshtml b/Web/Resgrid.Web/Areas/User/Views/Units/ViewEvents.cshtml index 8ed5873a2..d19df00b9 100644 --- a/Web/Resgrid.Web/Areas/User/Views/Units/ViewEvents.cshtml +++ b/Web/Resgrid.Web/Areas/User/Views/Units/ViewEvents.cshtml @@ -2,6 +2,7 @@ @inject IStringLocalizer localizer @{ ViewBag.Title = "Resgrid | " + @localizer["ViewUnitEventsHeader"]; + var mapConfig = SettingsHelper.GetDepartmentMapConfig(Resgrid.Config.InfoConfig.WebsiteKey); } @section Styles { @@ -97,7 +98,7 @@ diff --git a/Web/Resgrid.Web/Helpers/SettingsHelper.cs b/Web/Resgrid.Web/Helpers/SettingsHelper.cs index 4aa25903f..9175261cc 100644 --- a/Web/Resgrid.Web/Helpers/SettingsHelper.cs +++ b/Web/Resgrid.Web/Helpers/SettingsHelper.cs @@ -1,12 +1,16 @@ -using CommonServiceLocator; +using CommonServiceLocator; +using Microsoft.AspNetCore.Http; +using Resgrid.Config; using Resgrid.Model; using Resgrid.Model.Services; namespace Resgrid.Web.Helpers { - public static class SettingsHelper - { + public static class SettingsHelper + { + private const string DepartmentMapConfigCacheKeyFormat = "DepartmentMapConfig_{0}"; private static IDepartmentSettingsService _departmentSettingsService; + private static IHttpContextAccessor _httpContextAccessor; private static IDepartmentSettingsService GetSettingsService() { @@ -16,6 +20,14 @@ private static IDepartmentSettingsService GetSettingsService() return _departmentSettingsService; } + private static IHttpContextAccessor GetHttpContextAccessor() + { + if (_httpContextAccessor == null) + _httpContextAccessor = ServiceLocator.Current.GetInstance(); + + return _httpContextAccessor; + } + private static DepartmentModuleSettings GetModuleSettings() { var settings = GetSettingsService().GetDepartmentModuleSettingsAsync(ClaimsAuthorizationHelper.GetDepartmentId()); @@ -80,5 +92,22 @@ public static bool IsMaintenanceEnabled() { return !GetModuleSettings().MaintenanceDisabled; } + + public static ResolvedMapConfig GetDepartmentMapConfig(string key = null) + { + var requestedKey = string.IsNullOrWhiteSpace(key) ? InfoConfig.WebsiteKey : key; + var httpContext = GetHttpContextAccessor().HttpContext; + var cacheKey = string.Format(DepartmentMapConfigCacheKeyFormat, requestedKey); + + if (httpContext?.Items != null && httpContext.Items.ContainsKey(cacheKey)) + return httpContext.Items[cacheKey] as ResolvedMapConfig; + + var mapConfig = GetSettingsService().GetMapConfigForDepartmentAsync(ClaimsAuthorizationHelper.GetDepartmentId(), requestedKey).GetAwaiter().GetResult(); + + if (httpContext?.Items != null) + httpContext.Items[cacheKey] = mapConfig; + + return mapConfig; + } } } diff --git a/Web/Resgrid.Web/Resgrid.Web.csproj b/Web/Resgrid.Web/Resgrid.Web.csproj index 6fe9484a3..82c0da625 100644 --- a/Web/Resgrid.Web/Resgrid.Web.csproj +++ b/Web/Resgrid.Web/Resgrid.Web.csproj @@ -192,13 +192,15 @@ - - + + - + - + + + diff --git a/Web/Resgrid.Web/wwwroot/js/app/internal/home/resgrid.home.edituserprofile.js b/Web/Resgrid.Web/wwwroot/js/app/internal/home/resgrid.home.edituserprofile.js index 539d1cc25..8b3782453 100644 --- a/Web/Resgrid.Web/wwwroot/js/app/internal/home/resgrid.home.edituserprofile.js +++ b/Web/Resgrid.Web/wwwroot/js/app/internal/home/resgrid.home.edituserprofile.js @@ -85,7 +85,8 @@ var resgrid; data: JSON.stringify({ type: contactType }) }).done(function (result) { if (result && result.success) { - $(w.msgSpan).text(rgVerifyLabels.sent).css('color', '#31708f').show(); + var sentLabel = (contactType === 2 && rgVerifyLabels.voiceCallSent) ? rgVerifyLabels.voiceCallSent : rgVerifyLabels.sent; + $(w.msgSpan).text(sentLabel).css('color', '#31708f').show(); $(w.codeEntry).show(); $btn.hide(); } else { diff --git a/Web/Resgrid.Web/wwwroot/js/ng/3rdpartylicenses.txt b/Web/Resgrid.Web/wwwroot/js/ng/3rdpartylicenses.txt deleted file mode 100644 index 5ec6ea05b..000000000 --- a/Web/Resgrid.Web/wwwroot/js/ng/3rdpartylicenses.txt +++ /dev/null @@ -1,763 +0,0 @@ -@angular/animations -MIT - -@angular/cdk -MIT -The MIT License - -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 -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. - - -@angular/common -MIT - -@angular/core -MIT - -@angular/elements -MIT - -@angular/forms -MIT - -@angular/platform-browser -MIT - -@mattlewis92/dom-autoscroller -MIT -The MIT License (MIT) - -Copyright (c) 2016 Quentin Engles - -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. - - -@microsoft/signalr -Apache-2.0 - -@resgrid/ngx-resgridlib -Apache-2.0 - -angular-calendar -MIT -The MIT License (MIT) - -Copyright (c) 2018 Matt Lewis - -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. - - -angular-draggable-droppable -MIT -The MIT License (MIT) - -Copyright (c) 2018 Matt Lewis - -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. - - -angular-resizable-element -MIT -The MIT License (MIT) - -Copyright (c) 2016 Matt Lewis - -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. - - -angular-svg-icon -MIT -The MIT License (MIT) - -Copyright (c) 2023 David Czeck. - -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. - - -calendar-utils -MIT -The MIT License (MIT) - -Copyright (c) 2016 Matt Lewis - -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. - - -date-fns -MIT -MIT License - -Copyright (c) 2021 Sasha Koss and Lesha Koss https://kossnocorp.mit-license.org - -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. - - -jwt-decode -MIT -The MIT License (MIT) - -Copyright (c) 2015 Auth0, Inc. (http://auth0.com) - -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. - - -leaflet -BSD-2-Clause -BSD 2-Clause License - -Copyright (c) 2010-2023, Volodymyr Agafonkin -Copyright (c) 2010-2011, CloudMade -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. 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. - -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 HOLDER 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. - - -livekit-client -Apache-2.0 - - 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. - - -lodash -MIT -Copyright OpenJS Foundation and other contributors - -Based on Underscore.js, copyright Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -This software consists of voluntary contributions made by many -individuals. For exact contribution history, see the revision history -available at https://github.com/lodash/lodash - -The following license applies to all parts of this software except as -documented below: - -==== - -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. - -==== - -Copyright and related rights for sample code are waived via CC0. Sample -code is defined as all source code displayed within the prose of the -documentation. - -CC0: http://creativecommons.org/publicdomain/zero/1.0/ - -==== - -Files located in the node_modules and vendor directories are externally -maintained libraries used by this software which have their own -licenses; we recommend you read them, as their terms may differ from the -terms above. - - -positioning -MIT -MIT License - -Copyright (c) 2017 Matt Lewis - -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. - - -rxjs -Apache-2.0 - 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 - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - - -zone.js -MIT -The MIT License - -Copyright (c) 2010-2024 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 -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. diff --git a/Web/Resgrid.Web/wwwroot/js/ng/favicon.ico b/Web/Resgrid.Web/wwwroot/js/ng/favicon.ico deleted file mode 100644 index 997406ad2..000000000 Binary files a/Web/Resgrid.Web/wwwroot/js/ng/favicon.ico and /dev/null differ diff --git a/Web/Resgrid.Web/wwwroot/js/ng/index.html b/Web/Resgrid.Web/wwwroot/js/ng/index.html deleted file mode 100644 index 92cf7e615..000000000 --- a/Web/Resgrid.Web/wwwroot/js/ng/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - Apps - - - - - - - - diff --git a/Web/Resgrid.Web/wwwroot/js/ng/main.226d4053d1364245.js b/Web/Resgrid.Web/wwwroot/js/ng/main.226d4053d1364245.js deleted file mode 100644 index 567be17d0..000000000 --- a/Web/Resgrid.Web/wwwroot/js/ng/main.226d4053d1364245.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkApps=self.webpackChunkApps||[]).push([[179],{242:(gs,Lo,ne)=>{"use strict";function at(n){return"function"==typeof n}function I(n){const e=n(i=>{Error.call(i),i.stack=(new Error).stack});return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}const No=I(n=>function(e){n(this),this.message=e?`${e.length} errors occurred during unsubscription:\n${e.map((i,r)=>`${r+1}) ${i.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=e});function At(n,t){if(n){const e=n.indexOf(t);0<=e&&n.splice(e,1)}}class bn{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;const{_parentage:e}=this;if(e)if(this._parentage=null,Array.isArray(e))for(const s of e)s.remove(this);else e.remove(this);const{initialTeardown:i}=this;if(at(i))try{i()}catch(s){t=s instanceof No?s.errors:[s]}const{_finalizers:r}=this;if(r){this._finalizers=null;for(const s of r)try{ms(s)}catch(a){t=t??[],a instanceof No?t=[...t,...a.errors]:t.push(a)}}if(t)throw new No(t)}}add(t){var e;if(t&&t!==this)if(this.closed)ms(t);else{if(t instanceof bn){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(e=this._finalizers)&&void 0!==e?e:[]).push(t)}}_hasParent(t){const{_parentage:e}=this;return e===t||Array.isArray(e)&&e.includes(t)}_addParent(t){const{_parentage:e}=this;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t}_removeParent(t){const{_parentage:e}=this;e===t?this._parentage=null:Array.isArray(e)&&At(e,t)}remove(t){const{_finalizers:e}=this;e&&At(e,t),t instanceof bn&&t._removeParent(this)}}bn.EMPTY=(()=>{const n=new bn;return n.closed=!0,n})();const qe=bn.EMPTY;function du(n){return n instanceof bn||n&&"closed"in n&&at(n.remove)&&at(n.add)&&at(n.unsubscribe)}function ms(n){at(n)?n():n.unsubscribe()}const Wt={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},zn={setTimeout(n,t,...e){const{delegate:i}=zn;return(null==i?void 0:i.setTimeout)?i.setTimeout(n,t,...e):setTimeout(n,t,...e)},clearTimeout(n){const{delegate:t}=zn;return((null==t?void 0:t.clearTimeout)||clearTimeout)(n)},delegate:void 0};function sr(n){zn.setTimeout(()=>{const{onUnhandledError:t}=Wt;if(!t)throw n;t(n)})}function qr(){}const Vt=ti("C",void 0,void 0);function ti(n,t,e){return{kind:n,value:t,error:e}}let un=null;function Ks(n){if(Wt.useDeprecatedSynchronousErrorHandling){const t=!un;if(t&&(un={errorThrown:!1,error:null}),n(),t){const{errorThrown:e,error:i}=un;if(un=null,e)throw i}}else n()}class Ir extends bn{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,du(t)&&t.add(this)):this.destination=Kr}static create(t,e,i){return new Ar(t,e,i)}next(t){this.isStopped?hu(function $a(n){return ti("N",n,void 0)}(t),this):this._next(t)}error(t){this.isStopped?hu(function Ys(n){return ti("E",void 0,n)}(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?hu(Vt,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const or=Function.prototype.bind;function Yr(n,t){return or.call(n,t)}class ar{constructor(t){this.partialObserver=t}next(t){const{partialObserver:e}=this;if(e.next)try{e.next(t)}catch(i){En(i)}}error(t){const{partialObserver:e}=this;if(e.error)try{e.error(t)}catch(i){En(i)}else En(t)}complete(){const{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(e){En(e)}}}class Ar extends Ir{constructor(t,e,i){let r;if(super(),at(t)||!t)r={next:t??void 0,error:e??void 0,complete:i??void 0};else{let s;this&&Wt.useDeprecatedNextContext?(s=Object.create(t),s.unsubscribe=()=>this.unsubscribe(),r={next:t.next&&Yr(t.next,s),error:t.error&&Yr(t.error,s),complete:t.complete&&Yr(t.complete,s)}):r=t}this.destination=new ar(r)}}function En(n){Wt.useDeprecatedSynchronousErrorHandling?function Ei(n){Wt.useDeprecatedSynchronousErrorHandling&&un&&(un.errorThrown=!0,un.error=n)}(n):sr(n)}function hu(n,t){const{onStoppedNotification:e}=Wt;e&&zn.setTimeout(()=>e(n,t))}const Kr={closed:!0,next:qr,error:function Hi(n){throw n},complete:qr},fu="function"==typeof Symbol&&Symbol.observable||"@@observable";function Tn(n){return n}let _t=(()=>{class n{constructor(e){e&&(this._subscribe=e)}lift(e){const i=new n;return i.source=this,i.operator=e,i}subscribe(e,i,r){const s=function ui(n){return n&&n instanceof Ir||function en(n){return n&&at(n.next)&&at(n.error)&&at(n.complete)}(n)&&du(n)}(e)?e:new Ar(e,i,r);return Ks(()=>{const{operator:a,source:u}=this;s.add(a?a.call(s,u):u?this._subscribe(s):this._trySubscribe(s))}),s}_trySubscribe(e){try{return this._subscribe(e)}catch(i){e.error(i)}}forEach(e,i){return new(i=$e(i))((r,s)=>{const a=new Ar({next:u=>{try{e(u)}catch(h){s(h),a.unsubscribe()}},error:s,complete:r});this.subscribe(a)})}_subscribe(e){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(e)}[fu](){return this}pipe(...e){return function Be(n){return 0===n.length?Tn:1===n.length?n[0]:function(e){return n.reduce((i,r)=>r(i),e)}}(e)(this)}toPromise(e){return new(e=$e(e))((i,r)=>{let s;this.subscribe(a=>s=a,a=>r(a),()=>i(s))})}}return n.create=t=>new n(t),n})();function $e(n){var t;return null!==(t=n??Wt.Promise)&&void 0!==t?t:Promise}const tn=I(n=>function(){n(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let Oe=(()=>{class n extends _t{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){const i=new Bt(this,this);return i.operator=e,i}_throwIfClosed(){if(this.closed)throw new tn}next(e){Ks(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(e)}})}error(e){Ks(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=e;const{observers:i}=this;for(;i.length;)i.shift().error(e)}})}complete(){Ks(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:e}=this;for(;e.length;)e.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0}_trySubscribe(e){return this._throwIfClosed(),super._trySubscribe(e)}_subscribe(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)}_innerSubscribe(e){const{hasError:i,isStopped:r,observers:s}=this;return i||r?qe:(this.currentObservers=null,s.push(e),new bn(()=>{this.currentObservers=null,At(s,e)}))}_checkFinalizedStatuses(e){const{hasError:i,thrownError:r,isStopped:s}=this;i?e.error(r):s&&e.complete()}asObservable(){const e=new _t;return e.source=this,e}}return n.create=(t,e)=>new Bt(t,e),n})();class Bt extends Oe{constructor(t,e){super(),this.destination=t,this.source=e}next(t){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===i||i.call(e,t)}error(t){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===i||i.call(e,t)}complete(){var t,e;null===(e=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===e||e.call(t)}_subscribe(t){var e,i;return null!==(i=null===(e=this.source)||void 0===e?void 0:e.subscribe(t))&&void 0!==i?i:qe}}function bt(n){return t=>{if(function nn(n){return at(null==n?void 0:n.lift)}(t))return t.lift(function(e){try{return n(e,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function Mt(n,t,e,i,r){return new kc(n,t,e,i,r)}class kc extends Ir{constructor(t,e,i,r,s,a){super(t),this.onFinalize=s,this.shouldUnsubscribe=a,this._next=e?function(u){try{e(u)}catch(h){t.error(h)}}:super._next,this._error=r?function(u){try{r(u)}catch(h){t.error(h)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(u){t.error(u)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:e}=this;super.unsubscribe(),!e&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}}}function lt(n,t){return bt((e,i)=>{let r=0;e.subscribe(Mt(i,s=>{i.next(n.call(t,s,r++))}))})}var Qr=function(){return Qr=Object.assign||function(t){for(var e,i=1,r=arguments.length;i1||u(C,S)})})}function u(C,S){try{!function h(C){C.value instanceof ji?Promise.resolve(C.value.v).then(f,m):y(s[0][2],C)}(i[C](S))}catch(T){y(s[0][3],T)}}function f(C){u("next",C)}function m(C){u("throw",C)}function y(C,S){C(S),s.shift(),s.length&&u(s[0][0],s[0][1])}}function Qs(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,t=n[Symbol.asyncIterator];return t?t.call(n):(n=function Xs(n){var t="function"==typeof Symbol&&Symbol.iterator,e=t&&n[t],i=0;if(e)return e.call(n);if(n&&"number"==typeof n.length)return{next:function(){return n&&i>=n.length&&(n=void 0),{value:n&&n[i++],done:!n}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(n),e={},i("next"),i("throw"),i("return"),e[Symbol.asyncIterator]=function(){return this},e);function i(s){e[s]=n[s]&&function(a){return new Promise(function(u,h){!function r(s,a,u,h){Promise.resolve(h).then(function(f){s({value:f,done:u})},a)}(u,h,(a=n[s](a)).done,a.value)})}}}const Da=n=>n&&"number"==typeof n.length&&"function"!=typeof n;function el(n){return at(null==n?void 0:n.then)}function yu(n){return at(n[fu])}function wu(n){return Symbol.asyncIterator&&at(null==n?void 0:n[Symbol.asyncIterator])}function Cu(n){return new TypeError(`You provided ${null!==n&&"object"==typeof n?"an invalid object":`'${n}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const Du=function Bc(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Hc(n){return at(null==n?void 0:n[Du])}function Uc(n){return Fc(this,arguments,function*(){const e=n.getReader();try{for(;;){const{value:i,done:r}=yield ji(e.read());if(r)return yield ji(void 0);yield yield ji(i)}}finally{e.releaseLock()}})}function jc(n){return at(null==n?void 0:n.getReader)}function Ti(n){if(n instanceof _t)return n;if(null!=n){if(yu(n))return function tl(n){return new _t(t=>{const e=n[fu]();if(at(e.subscribe))return e.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(n);if(Da(n))return function Ah(n){return new _t(t=>{for(let e=0;e{n.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,sr)})}(n);if(wu(n))return ve(n);if(Hc(n))return function xr(n){return new _t(t=>{for(const e of n)if(t.next(e),t.closed)return;t.complete()})}(n);if(jc(n))return function zc(n){return ve(Uc(n))}(n)}throw Cu(n)}function ve(n){return new _t(t=>{(function nl(n,t){var e,i,r,s;return ur(this,void 0,void 0,function*(){try{for(e=Qs(n);!(i=yield e.next()).done;)if(t.next(i.value),t.closed)return}catch(a){r={error:a}}finally{try{i&&!i.done&&(s=e.return)&&(yield s.call(e))}finally{if(r)throw r.error}}t.complete()})})(n,t).catch(e=>t.error(e))})}function Pr(n,t,e,i=0,r=!1){const s=t.schedule(function(){e(),r?n.add(this.schedule(null,i)):this.unsubscribe()},i);if(n.add(s),!r)return s}function Rr(n,t,e=1/0){return at(t)?Rr((i,r)=>lt((s,a)=>t(i,s,r,a))(Ti(n(i,r))),e):("number"==typeof t&&(e=t),bt((i,r)=>function Wc(n,t,e,i,r,s,a,u){const h=[];let f=0,m=0,y=!1;const C=()=>{y&&!h.length&&!f&&t.complete()},S=x=>f{s&&t.next(x),f++;let R=!1;Ti(e(x,m++)).subscribe(Mt(t,F=>{null==r||r(F),s?S(F):t.next(F)},()=>{R=!0},void 0,()=>{if(R)try{for(f--;h.length&&fT(F)):T(F)}C()}catch(F){t.error(F)}}))};return n.subscribe(Mt(t,S,()=>{y=!0,C()})),()=>{null==u||u()}}(i,r,n,e)))}function Su(n=1/0){return Rr(Tn,n)}const Jr=new _t(n=>n.complete());function Gc(n){return n&&at(n.schedule)}function il(n){return n[n.length-1]}function $c(n){return at(il(n))?n.pop():void 0}function Bo(n){return Gc(il(n))?n.pop():void 0}function Sa(n,t=0){return bt((e,i)=>{e.subscribe(Mt(i,r=>Pr(i,n,()=>i.next(r),t),()=>Pr(i,n,()=>i.complete(),t),r=>Pr(i,n,()=>i.error(r),t)))})}function Zc(n,t=0){return bt((e,i)=>{i.add(n.schedule(()=>e.subscribe(i),t))})}function ol(n,t){if(!n)throw new Error("Iterable cannot be null");return new _t(e=>{Pr(e,t,()=>{const i=n[Symbol.asyncIterator]();Pr(e,t,()=>{i.next().then(r=>{r.done?e.complete():e.next(r.value)})},0,!0)})})}function _s(n,t){return t?function qc(n,t){if(null!=n){if(yu(n))return function Oh(n,t){return Ti(n).pipe(Zc(t),Sa(t))}(n,t);if(Da(n))return function Lh(n,t){return new _t(e=>{let i=0;return t.schedule(function(){i===n.length?e.complete():(e.next(n[i++]),e.closed||this.schedule())})})}(n,t);if(el(n))return function rl(n,t){return Ti(n).pipe(Zc(t),Sa(t))}(n,t);if(wu(n))return ol(n,t);if(Hc(n))return function sl(n,t){return new _t(e=>{let i;return Pr(e,t,()=>{i=n[Du](),Pr(e,t,()=>{let r,s;try{({value:r,done:s}=i.next())}catch(a){return void e.error(a)}s?e.complete():e.next(r)},0,!0)}),()=>at(null==i?void 0:i.return)&&i.return()})}(n,t);if(jc(n))return function ba(n,t){return ol(Uc(n),t)}(n,t)}throw Cu(n)}(n,t):Ti(n)}function Nn(...n){const t=Bo(n),e=function kh(n,t){return"number"==typeof il(n)?n.pop():t}(n,1/0),i=n;return i.length?1===i.length?Ti(i[0]):Su(e)(_s(i,t)):Jr}function Ye(n={}){const{connector:t=(()=>new Oe),resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:r=!0}=n;return s=>{let a,u,h,f=0,m=!1,y=!1;const C=()=>{null==u||u.unsubscribe(),u=void 0},S=()=>{C(),a=h=void 0,m=y=!1},T=()=>{const x=a;S(),null==x||x.unsubscribe()};return bt((x,R)=>{f++,!y&&!m&&C();const F=h=h??t();R.add(()=>{f--,0===f&&!y&&!m&&(u=Zt(T,r))}),F.subscribe(R),!a&&f>0&&(a=new Ar({next:O=>F.next(O),error:O=>{y=!0,C(),u=Zt(S,e,O),F.error(O)},complete:()=>{m=!0,C(),u=Zt(S,i),F.complete()}}),Ti(x).subscribe(a))})(s)}}function Zt(n,t,...e){if(!0===t)return void n();if(!1===t)return;const i=new Ar({next:()=>{i.unsubscribe(),n()}});return t(...e).subscribe(i)}function xt(n){for(let t in n)if(n[t]===xt)return t;throw Error("Could not find renamed property on target object.")}function ys(n,t){for(const e in t)t.hasOwnProperty(e)&&!n.hasOwnProperty(e)&&(n[e]=t[e])}function yt(n){if("string"==typeof n)return n;if(Array.isArray(n))return"["+n.map(yt).join(", ")+"]";if(null==n)return""+n;if(n.overriddenName)return`${n.overriddenName}`;if(n.name)return`${n.name}`;const t=n.toString();if(null==t)return""+t;const e=t.indexOf("\n");return-1===e?t:t.substring(0,e)}function Ho(n,t){return null==n||""===n?null===t?"":t:null==t||""===t?n:n+" "+t}const Qe=xt({__forward_ref__:xt});function Le(n){return n.__forward_ref__=Le,n.toString=function(){return yt(this())},n}function He(n){return Ea(n)?n():n}function Ea(n){return"function"==typeof n&&n.hasOwnProperty(Qe)&&n.__forward_ref__===Le}class ue extends Error{constructor(t,e){super(function Js(n,t){return`NG0${Math.abs(n)}${t?": "+t:""}`}(t,e)),this.code=t}}function Ae(n){return"string"==typeof n?n:null==n?"":String(n)}function ft(n){return"function"==typeof n?n.name||n.toString():"object"==typeof n&&null!=n&&"function"==typeof n.type?n.type.name||n.type.toString():Ae(n)}function eo(n,t){const e=t?` in ${t}`:"";throw new ue(-201,`No provider for ${ft(n)} found${e}`)}function ni(n,t){null==n&&function zt(n,t,e,i){throw new Error(`ASSERTION ERROR: ${n}`+(null==i?"":` [Expected=> ${e} ${i} ${t} <=Actual]`))}(t,n,null,"!=")}function oe(n){return{token:n.token,providedIn:n.providedIn||null,factory:n.factory,value:void 0}}function Je(n){return{providers:n.providers||[],imports:n.imports||[]}}function es(n){return Eu(n,hl)||Eu(n,pt)}function Eu(n,t){return n.hasOwnProperty(t)?n[t]:null}function kt(n){return n&&(n.hasOwnProperty(fl)||n.hasOwnProperty(Fh))?n[fl]:null}const hl=xt({\u0275prov:xt}),fl=xt({\u0275inj:xt}),pt=xt({ngInjectableDef:xt}),Fh=xt({ngInjectorDef:xt});var Te=(()=>((Te=Te||{})[Te.Default=0]="Default",Te[Te.Host=1]="Host",Te[Te.Self=2]="Self",Te[Te.SkipSelf=4]="SkipSelf",Te[Te.Optional=8]="Optional",Te))();let to;function Ds(n){const t=to;return to=n,t}function gn(n,t,e){const i=es(n);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:e&Te.Optional?null:void 0!==t?t:void eo(yt(n),"Injector")}function Mi(n){return{toString:n}.toString()}var Gi=(()=>((Gi=Gi||{})[Gi.OnPush=0]="OnPush",Gi[Gi.Default=1]="Default",Gi))(),$i=(()=>{return(n=$i||($i={}))[n.Emulated=0]="Emulated",n[n.None=2]="None",n[n.ShadowDom=3]="ShadowDom",$i;var n})();const cr=typeof globalThis<"u"&&globalThis,td=typeof window<"u"&&window,Mu=typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self,Pt=cr||typeof global<"u"&&global||td||Mu,Fn={},Ot=[],Ta=xt({\u0275cmp:xt}),dr=xt({\u0275dir:xt}),no=xt({\u0275pipe:xt}),io=xt({\u0275mod:xt}),ot=xt({\u0275fac:xt}),Zi=xt({__NG_ELEMENT_ID__:xt});let ro=0;function Yt(n){return Mi(()=>{const e={},i={type:n.type,providersResolver:null,decls:n.decls,vars:n.vars,factory:null,template:n.template||null,consts:n.consts||null,ngContentSelectors:n.ngContentSelectors,hostBindings:n.hostBindings||null,hostVars:n.hostVars||0,hostAttrs:n.hostAttrs||null,contentQueries:n.contentQueries||null,declaredInputs:e,inputs:null,outputs:null,exportAs:n.exportAs||null,onPush:n.changeDetection===Gi.OnPush,directiveDefs:null,pipeDefs:null,selectors:n.selectors||Ot,viewQuery:n.viewQuery||null,features:n.features||null,data:n.data||{},encapsulation:n.encapsulation||$i.Emulated,id:"c",styles:n.styles||Ot,_:null,setInput:null,schemas:n.schemas||null,tView:null},r=n.directives,s=n.features,a=n.pipes;return i.id+=ro++,i.inputs=so(n.inputs,e),i.outputs=so(n.outputs),s&&s.forEach(u=>u(i)),i.directiveDefs=r?()=>("function"==typeof r?r():r).map(nd):null,i.pipeDefs=a?()=>("function"==typeof a?a():a).map(Iu):null,i})}function nd(n){return Vn(n)||function mn(n){return n[dr]||null}(n)}function Iu(n){return function ci(n){return n[no]||null}(n)}const id={};function Ht(n){return Mi(()=>{const t={type:n.type,bootstrap:n.bootstrap||Ot,declarations:n.declarations||Ot,imports:n.imports||Ot,exports:n.exports||Ot,transitiveCompileScopes:null,schemas:n.schemas||null,id:n.id||null};return null!=n.id&&(id[n.id]=n.type),t})}function so(n,t){if(null==n)return Fn;const e={};for(const i in n)if(n.hasOwnProperty(i)){let r=n[i],s=r;Array.isArray(r)&&(s=r[1],r=r[0]),e[r]=i,t&&(t[r]=s)}return e}const we=Yt;function Kt(n){return{type:n.type,name:n.name,factory:null,pure:!1!==n.pure,onDestroy:n.type.prototype.ngOnDestroy||null}}function Vn(n){return n[Ta]||null}function xi(n,t){const e=n[io]||null;if(!e&&!0===t)throw new Error(`Type ${yt(n)} does not have '\u0275mod' property.`);return e}function Lr(n){return Array.isArray(n)&&"object"==typeof n[1]}function qi(n){return Array.isArray(n)&&!0===n[1]}function Pu(n){return 0!=(8&n.flags)}function Es(n){return 2==(2&n.flags)}function N(n){return 1==(1&n.flags)}function j(n){return null!==n.template}function H(n){return 0!=(512&n[2])}function pr(n,t){return n.hasOwnProperty(ot)?n[ot]:null}class Cl{constructor(t,e,i){this.previousValue=t,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}function _n(){return Dl}function Dl(n){return n.type.prototype.ngOnChanges&&(n.setInput=Ia),rd}function rd(){const n=qo(this),t=n?.current;if(t){const e=n.previous;if(e===Fn)n.previous=t;else for(let i in t)e[i]=t[i];n.current=null,this.ngOnChanges(t)}}function Ia(n,t,e,i){const r=qo(n)||function o(n,t){return n[Sl]=t}(n,{previous:Fn,current:null}),s=r.current||(r.current={}),a=r.previous,u=this.declaredInputs[e],h=a[u];s[u]=new Cl(h&&h.currentValue,t,a===Fn),n[i]=t}_n.ngInherit=!0;const Sl="__ngSimpleChanges__";function qo(n){return n[Sl]||null}const P="math";let Q;function nt(){return void 0!==Q?Q:typeof document<"u"?document:void 0}function je(n){return!!n.listen}const Ms={createRenderer:(n,t)=>nt()};function Ut(n){for(;Array.isArray(n);)n=n[0];return n}function Is(n,t){return Ut(t[n])}function fi(n,t){return Ut(t[n.index])}function uo(n,t){return n.data[t]}function gr(n,t){return n[t]}function mt(n,t){const e=t[n];return Lr(e)?e:e[0]}function Nr(n){return 4==(4&n[2])}function Ou(n){return 128==(128&n[2])}function As(n,t){return null==t?null:n[t]}function El(n){n[18]=0}function Tl(n,t){n[5]+=t;let e=n,i=n[3];for(;null!==i&&(1===t&&1===e[5]||-1===t&&0===e[5]);)i[5]+=t,e=i,i=i[3]}const Pe={lFrame:qh(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function Lu(){return Pe.bindingsEnabled}function K(){return Pe.lFrame.lView}function Et(){return Pe.lFrame.tView}function _e(n){return Pe.lFrame.contextLView=n,n[8]}function sn(){let n=Sg();for(;null!==n&&64===n.type;)n=n.parent;return n}function Sg(){return Pe.lFrame.currentTNode}function xs(n,t){const e=Pe.lFrame;e.currentTNode=n,e.isParent=t}function zh(){return Pe.lFrame.isParent}function ad(){return Pe.isInCheckNoChangesMode}function ld(n){Pe.isInCheckNoChangesMode=n}function Oi(){const n=Pe.lFrame;let t=n.bindingRootIndex;return-1===t&&(t=n.bindingRootIndex=n.tView.bindingStartIndex),t}function Il(){return Pe.lFrame.bindingIndex++}function cy(n,t){const e=Pe.lFrame;e.bindingIndex=e.bindingRootIndex=n,Gh(t)}function Gh(n){Pe.lFrame.currentDirectiveIndex=n}function Vr(){return Pe.lFrame.currentQueryIndex}function Zh(n){Pe.lFrame.currentQueryIndex=n}function dy(n){const t=n[1];return 2===t.type?t.declTNode:1===t.type?n[6]:null}function Eg(n,t,e){if(e&Te.SkipSelf){let r=t,s=n;for(;!(r=r.parent,null!==r||e&Te.Host||(r=dy(s),null===r||(s=s[15],10&r.type))););if(null===r)return!1;t=r,n=s}const i=Pe.lFrame=Tg();return i.currentTNode=t,i.lView=n,!0}function ud(n){const t=Tg(),e=n[1];Pe.lFrame=t,t.currentTNode=e.firstChild,t.lView=n,t.tView=e,t.contextLView=n,t.bindingIndex=e.bindingStartIndex,t.inI18n=!1}function Tg(){const n=Pe.lFrame,t=null===n?null:n.child;return null===t?qh(n):t}function qh(n){const t={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:n,child:null,inI18n:!1};return null!==n&&(n.child=t),t}function Yh(){const n=Pe.lFrame;return Pe.lFrame=n.parent,n.currentTNode=null,n.lView=null,n}const Mg=Yh;function cd(){const n=Yh();n.isParent=!0,n.tView=null,n.selectedIndex=-1,n.contextLView=null,n.elementDepthCount=0,n.currentDirectiveIndex=-1,n.currentNamespace=null,n.bindingRootIndex=-1,n.bindingIndex=-1,n.currentQueryIndex=0}function qn(){return Pe.lFrame.selectedIndex}function Ko(n){Pe.lFrame.selectedIndex=n}function dn(){const n=Pe.lFrame;return uo(n.tView,n.selectedIndex)}function Vu(n,t){for(let e=t.directiveStart,i=t.directiveEnd;e=i)break}else t[h]<0&&(n[18]+=65536),(u>11>16&&(3&n[2])===t){n[2]+=2048;try{s.call(u)}finally{}}}else try{s.call(u)}finally{}}class Hu{constructor(t,e,i){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=i}}function Uu(n,t,e){const i=je(n);let r=0;for(;rt){a=s-1;break}}}for(;s>16}(n),i=t;for(;e>0;)i=i[15],e--;return i}let fd=!0;function pd(n){const t=fd;return fd=n,t}let my=0;function Pl(n,t){const e=rf(n,t);if(-1!==e)return e;const i=t[1];i.firstCreatePass&&(n.injectorIndex=t.length,nf(i.data,n),nf(t,null),nf(i.blueprint,null));const r=gd(n,t),s=n.injectorIndex;if(xg(r)){const a=Qo(r),u=Os(r,t),h=u[1].data;for(let f=0;f<8;f++)t[s+f]=u[a+f]|h[a+f]}return t[s+8]=r,s}function nf(n,t){n.push(0,0,0,0,0,0,0,0,t)}function rf(n,t){return-1===n.injectorIndex||n.parent&&n.parent.injectorIndex===n.injectorIndex||null===t[n.injectorIndex+8]?-1:n.injectorIndex}function gd(n,t){if(n.parent&&-1!==n.parent.injectorIndex)return n.parent.injectorIndex;let e=0,i=null,r=t;for(;null!==r;){const s=r[1],a=s.type;if(i=2===a?s.declTNode:1===a?r[6]:null,null===i)return-1;if(e++,r=r[15],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return-1}function zu(n,t,e){!function tf(n,t,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(Zi)&&(i=e[Zi]),null==i&&(i=e[Zi]=my++);const r=255&i;t.data[n+(r>>5)]|=1<=0?255&t:kg:t}(e);if("function"==typeof s){if(!Eg(t,n,i))return i&Te.Host?Rg(r,e,i):md(t,e,i,r);try{const a=s(i);if(null!=a||i&Te.Optional)return a;eo(e)}finally{Mg()}}else if("number"==typeof s){let a=null,u=rf(n,t),h=-1,f=i&Te.Host?t[16][6]:null;for((-1===u||i&Te.SkipSelf)&&(h=-1===u?gd(n,t):t[u+8],-1!==h&&uf(i,!1)?(a=t[1],u=Qo(h),t=Os(h,t)):u=-1);-1!==u;){const m=t[1];if(Lg(s,u,m.data)){const y=vd(u,t,e,a,i,f);if(y!==lf)return y}h=t[u+8],-1!==h&&uf(i,t[1].data[u+8]===f)&&Lg(s,u,t)?(a=m,u=Qo(h),t=Os(h,t)):u=-1}}}return md(t,e,i,r)}const lf={};function kg(){return new kl(sn(),K())}function vd(n,t,e,i,r,s){const a=t[1],u=a.data[n+8],m=_d(u,a,e,null==i?Es(u)&&fd:i!=a&&0!=(3&u.type),r&Te.Host&&s===u);return null!==m?Rl(t,a,m,u):lf}function _d(n,t,e,i,r){const s=n.providerIndexes,a=t.data,u=1048575&s,h=n.directiveStart,m=s>>20,C=r?u+m:n.directiveEnd;for(let S=i?u:u+m;S=h&&T.type===e)return S}if(r){const S=a[h];if(S&&j(S)&&S.type===e)return h}return null}function Rl(n,t,e,i){let r=n[e];const s=t.data;if(function Ig(n){return n instanceof Hu}(r)){const a=r;a.resolving&&function ws(n,t){const e=t?`. Dependency path: ${t.join(" > ")} > ${n}`:"";throw new ue(-200,`Circular dependency in DI detected for ${n}${e}`)}(ft(s[e]));const u=pd(a.canSeeViewProviders);a.resolving=!0;const h=a.injectImpl?Ds(a.injectImpl):null;Eg(n,i,Te.Default);try{r=n[e]=a.factory(void 0,s,n,i),t.firstCreatePass&&e>=i.directiveStart&&function fy(n,t,e){const{ngOnChanges:i,ngOnInit:r,ngDoCheck:s}=t.type.prototype;if(i){const a=Dl(t);(e.preOrderHooks||(e.preOrderHooks=[])).push(n,a),(e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n,a)}r&&(e.preOrderHooks||(e.preOrderHooks=[])).push(0-n,r),s&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n,s),(e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n,s))}(e,s[e],t)}finally{null!==h&&Ds(h),pd(u),a.resolving=!1,Mg()}}return r}function Lg(n,t,e){return!!(e[t+(n>>5)]&1<{const t=n.prototype.constructor,e=t[ot]||yd(t),i=Object.prototype;let r=Object.getPrototypeOf(n.prototype).constructor;for(;r&&r!==i;){const s=r[ot]||yd(r);if(s&&s!==e)return s;r=Object.getPrototypeOf(r)}return s=>new s})}function yd(n){return Ea(n)?()=>{const t=yd(He(n));return t&&t()}:pr(n)}const Jo="__parameters__";function Ls(n,t,e){return Mi(()=>{const i=function cf(n){return function(...e){if(n){const i=n(...e);for(const r in i)this[r]=i[r]}}}(t);function r(...s){if(this instanceof r)return i.apply(this,s),this;const a=new r(...s);return u.annotation=a,u;function u(h,f,m){const y=h.hasOwnProperty(Jo)?h[Jo]:Object.defineProperty(h,Jo,{value:[]})[Jo];for(;y.length<=m;)y.push(null);return(y[m]=y[m]||[]).push(a),h}}return e&&(r.prototype=Object.create(e.prototype)),r.prototype.ngMetadataName=n,r.annotationCls=r,r})}class rt{constructor(t,e){this._desc=t,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\u0275prov=oe({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}toString(){return`InjectionToken ${this._desc}`}}function Yi(n,t){void 0===t&&(t=n);for(let e=0;eArray.isArray(e)?jr(e,t):t(e))}function po(n,t,e){t>=n.length?n.push(e):n.splice(t,0,e)}function wd(n,t){return t>=n.length-1?n.pop():n.splice(t,1)[0]}function Ki(n,t,e){let i=Fl(n,t);return i>=0?n[1|i]=e:(i=~i,function ff(n,t,e,i){let r=n.length;if(r==t)n.push(e,i);else if(1===r)n.push(i,n[0]),n[0]=e;else{for(r--,n.push(n[r-1],n[r]);r>t;)n[r]=n[r-2],r--;n[t]=e,n[t+1]=i}}(n,i,t,e)),i}function Cd(n,t){const e=Fl(n,t);if(e>=0)return n[1|e]}function Fl(n,t){return function pf(n,t,e){let i=0,r=n.length>>e;for(;r!==i;){const s=i+(r-i>>1),a=n[s<t?r=s:i=s+1}return~(r<n,createScript:n=>n,createScriptURL:n=>n})}catch{}return Pd}()?.createHTML(n)||n}function mi(n){return function as(){if(void 0===kd&&(kd=null,Pt.trustedTypes))try{kd=Pt.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:n=>n,createScript:n=>n,createScriptURL:n=>n})}catch{}return kd}()?.createHTML(n)||n}class Ld{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see https://g.co/ng/security#xss)`}}function ra(n){return n instanceof Ld?n.changingThisBreaksApplicationSecurity:n}class Qu{constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t=""+t;try{const e=(new window.DOMParser).parseFromString(Hl(t),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(t):(e.removeChild(e.firstChild),e)}catch{return null}}}class _f{constructor(t){if(this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),null==this.inertDocument.body){const e=this.inertDocument.createElement("html");this.inertDocument.appendChild(e);const i=this.inertDocument.createElement("body");e.appendChild(i)}}getInertBodyElement(t){const e=this.inertDocument.createElement("template");if("content"in e)return e.innerHTML=Hl(t),e;const i=this.inertDocument.createElement("body");return i.innerHTML=Hl(t),this.defaultDoc.documentMode&&this.stripCustomNsAttrs(i),i}stripCustomNsAttrs(t){const e=t.attributes;for(let r=e.length-1;0mr(t.trim())).join(", ")}function Fs(n){const t={};for(const e of n.split(","))t[e]=!0;return t}function Ul(...n){const t={};for(const e of n)for(const i in e)e.hasOwnProperty(i)&&(t[i]=!0);return t}const om=Fs("area,br,col,hr,img,wbr"),am=Fs("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),lm=Fs("rp,rt"),wf=Ul(om,Ul(am,Fs("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")),Ul(lm,Fs("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")),Ul(lm,am)),Cf=Fs("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),Df=Fs("srcset"),Sf=Ul(Cf,Df,Fs("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,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),Fs("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")),um=Fs("script,style,template");class cm{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(t){let e=t.firstChild,i=!0;for(;e;)if(e.nodeType===Node.ELEMENT_NODE?i=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,i&&e.firstChild)e=e.firstChild;else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let r=this.checkClobberedElement(e,e.nextSibling);if(r){e=r;break}e=this.checkClobberedElement(e,e.parentNode)}return this.buf.join("")}startElement(t){const e=t.nodeName.toLowerCase();if(!wf.hasOwnProperty(e))return this.sanitizedSomething=!0,!um.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const i=t.attributes;for(let r=0;r"),!0}endElement(t){const e=t.nodeName.toLowerCase();wf.hasOwnProperty(e)&&!om.hasOwnProperty(e)&&(this.buf.push(""))}chars(t){this.buf.push(dm(t))}checkClobberedElement(t,e){if(e&&(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`);return e}}const Ly=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Ny=/([^\#-~ |!])/g;function dm(n){return n.replace(/&/g,"&").replace(Ly,function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"}).replace(Ny,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(//g,">")}let Ju;function bf(n){return"content"in n&&function Vy(n){return n.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===n.nodeName}(n)?n.content:null}var On=(()=>((On=On||{})[On.NONE=0]="NONE",On[On.HTML=1]="HTML",On[On.STYLE=2]="STYLE",On[On.SCRIPT=3]="SCRIPT",On[On.URL=4]="URL",On[On.RESOURCE_URL=5]="RESOURCE_URL",On))();function Nd(n){const t=function Oa(){const n=K();return n&&n[12]}();return t?mi(t.sanitize(On.HTML,n)||""):function Xu(n,t){const e=function Ry(n){return n instanceof Ld&&n.getTypeName()||null}(n);if(null!=e&&e!==t){if("ResourceURL"===e&&"URL"===t)return!0;throw new Error(`Required a safe ${t}, got a ${e} (see https://g.co/ng/security#xss)`)}return e===t}(n,"HTML")?mi(ra(n)):function Fy(n,t){let e=null;try{Ju=Ju||function vf(n){const t=new _f(n);return function im(){try{return!!(new window.DOMParser).parseFromString(Hl(""),"text/html")}catch{return!1}}()?new Qu(t):t}(n);let i=t?String(t):"";e=Ju.getInertBodyElement(i);let r=5,s=i;do{if(0===r)throw new Error("Failed to sanitize html because the input is unstable");r--,i=s,s=e.innerHTML,e=Ju.getInertBodyElement(i)}while(i!==s);return Hl((new cm).sanitizeChildren(bf(e)||e))}finally{if(e){const i=bf(e)||e;for(;i.firstChild;)i.removeChild(i.firstChild)}}}(nt(),Ae(n))}const gm="__ngContext__";function vi(n,t){n[gm]=t}function Tf(n){const t=function ec(n){return n[gm]||null}(n);return t?Array.isArray(t)?t:t.lView:null}function If(n){return n.ngOriginalError}function ym(n,...t){n.error(...t)}class tc{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t),i=function Af(n){return n&&n.ngErrorLogger||ym}(t);i(this._console,"ERROR",t),e&&i(this._console,"ORIGINAL ERROR",e)}_findOriginalError(t){let e=t&&If(t);for(;e&&If(e);)e=If(e);return e||null}}const sw=(()=>(typeof requestAnimationFrame<"u"&&requestAnimationFrame||setTimeout).bind(Pt))();function Vs(n){return n instanceof Function?n():n}var _r=(()=>((_r=_r||{})[_r.Important=1]="Important",_r[_r.DashCase=2]="DashCase",_r))();function Pf(n,t){return undefined(n,t)}function nc(n){const t=n[3];return qi(t)?t[3]:t}function Of(n){return bm(n[13])}function Lf(n){return bm(n[4])}function bm(n){for(;null!==n&&!qi(n);)n=n[4];return n}function mo(n,t,e,i,r){if(null!=i){let s,a=!1;qi(i)?s=i:Lr(i)&&(a=!0,i=i[0]);const u=Ut(i);0===n&&null!==e?null==r?Uf(t,e,u):oa(t,e,u,r||null,!0):1===n&&null!==e?oa(t,e,u,r||null,!0):2===n?function km(n,t,e){const i=Bd(n,t);i&&function vw(n,t,e,i){je(n)?n.removeChild(t,e,i):t.removeChild(e)}(n,i,t,e)}(t,u,a):3===n&&t.destroyNode(u),null!=s&&function yw(n,t,e,i,r){const s=e[7];s!==Ut(e)&&mo(t,n,i,s,r);for(let u=10;u0&&(n[e-1][4]=i[4]);const s=wd(n,10+t);!function dw(n,t){sc(n,t,t[11],2,null,null),t[0]=null,t[6]=null}(i[1],i);const a=s[19];null!==a&&a.detachView(s[1]),i[3]=null,i[4]=null,i[2]&=-129}return i}function Mm(n,t){if(!(256&t[2])){const e=t[11];je(e)&&e.destroyNode&&sc(n,t,e,3,null,null),function pw(n){let t=n[13];if(!t)return Vd(n[1],n);for(;t;){let e=null;if(Lr(t))e=t[13];else{const i=t[10];i&&(e=i)}if(!e){for(;t&&!t[4]&&t!==n;)Lr(t)&&Vd(t[1],t),t=t[3];null===t&&(t=n),Lr(t)&&Vd(t[1],t),e=t&&t[4]}t=e}}(t)}}function Vd(n,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function Vf(n,t){let e;if(null!=n&&null!=(e=n.destroyHooks))for(let i=0;i=0?i[r=f]():i[r=-f].unsubscribe(),s+=2}else{const a=i[r=e[s+1]];e[s].call(a)}if(null!==i){for(let s=r+1;ss?"":r[y+1].toLowerCase();const S=8&i?C:null;if(S&&-1!==Nm(S,f,0)||2&i&&f!==C){if(ls(i))return!1;a=!0}}}}else{if(!a&&!ls(i)&&!ls(h))return!1;if(a&&ls(h))continue;a=!1,i=h|1&i}}return ls(i)||a}function ls(n){return 0==(1&n)}function la(n,t,e,i){if(null===t)return-1;let r=0;if(i||!e){let s=!1;for(;r-1)for(e++;e0?'="'+u+'"':"")+"]"}else 8&i?r+="."+a:4&i&&(r+=" "+a);else""!==r&&!ls(a)&&(t+=zd(s,r),r=""),i=a,s=s||!ls(i);e++}return""!==r&&(t+=zd(s,r)),t}const ze={};function J(n){hn(Et(),K(),qn()+n,ad())}function hn(n,t,e,i){if(!i)if(3==(3&t[2])){const s=n.preOrderCheckHooks;null!==s&&Bu(t,s,e)}else{const s=n.preOrderHooks;null!==s&&Xo(t,s,0,e)}Ko(e)}function Wd(n,t){return n<<17|t<<2}function us(n){return n>>17&32767}function $f(n){return 2|n}function _o(n){return(131068&n)>>2}function Gd(n,t){return-131069&n|t<<2}function oc(n){return 1|n}function Gm(n,t){const e=n.contentQueries;if(null!==e)for(let i=0;i20&&hn(n,t,20,ad()),e(i,r)}finally{Ko(s)}}function rp(n,t,e){!Lu()||(function Bw(n,t,e,i){const r=e.directiveStart,s=e.directiveEnd;n.firstCreatePass||Pl(e,t),vi(i,t);const a=e.initialInputs;for(let u=r;u0;){const e=n[--t];if("number"==typeof e&&e<0)return e}return 0})(u)!=h&&u.push(h),u.push(i,r,a)}}function nv(n,t){null!==n.hostBindings&&n.hostBindings(1,t)}function iv(n,t){t.flags|=2,(n.components||(n.components=[])).push(t.index)}function zw(n,t,e){if(e){if(t.exportAs)for(let i=0;i0&&dp(e)}}function dp(n){for(let i=Of(n);null!==i;i=Lf(i))for(let r=10;r0&&dp(s)}const e=n[1].components;if(null!==e)for(let i=0;i0&&dp(r)}}function qw(n,t){const e=mt(t,n),i=e[1];(function Yw(n,t){for(let e=t.length;ePromise.resolve(null))();function uv(n){return n[7]||(n[7]=[])}function cv(n){return n.cleanup||(n.cleanup=[])}function dv(n,t){const e=n[9],i=e?e.get(tc,null):null;i&&i.handleError(t)}function hv(n,t,e,i,r){for(let s=0;sthis.processProvider(u,t,e)),jr([t],u=>this.processInjectorType(u,[],s)),this.records.set(vp,Kl(void 0,this));const a=this.records.get(_p);this.scope=null!=a?a.value:null,this.source=r||("object"==typeof t?null:yt(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,e=Vl,i=Te.Default){this.assertNotDestroyed();const r=bd(this),s=Ds(void 0);try{if(!(i&Te.SkipSelf)){let u=this.records.get(t);if(void 0===u){const h=function _(n){return"function"==typeof n||"object"==typeof n&&n instanceof rt}(t)&&es(t);u=h&&this.injectableDefInScope(h)?Kl(wp(t),dc):null,this.records.set(t,u)}if(null!=u)return this.hydrate(t,u)}return(i&Te.Self?pv():this.parent).get(t,e=i&Te.Optional&&e===Vl?null:e)}catch(a){if("NullInjectorError"===a.name){if((a[ta]=a[ta]||[]).unshift(yt(t)),r)throw a;return function $g(n,t,e,i){const r=n[ta];throw t[$u]&&r.unshift(t[$u]),n.message=function go(n,t,e,i=null){n=n&&"\n"===n.charAt(0)&&"\u0275"==n.charAt(1)?n.substr(2):n;let r=yt(t);if(Array.isArray(t))r=t.map(yt).join(" -> ");else if("object"==typeof t){let s=[];for(let a in t)if(t.hasOwnProperty(a)){let u=t[a];s.push(a+":"+("string"==typeof u?JSON.stringify(u):yt(u)))}r=`{${s.join(", ")}}`}return`${e}${i?"("+i+")":""}[${r}]: ${n.replace(zg,"\n ")}`}("\n"+n.message,r,e,i),n.ngTokenPath=r,n[ta]=null,n}(a,t,"R3InjectorError",this.source)}throw a}finally{Ds(s),bd(r)}}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(t=>this.get(t))}toString(){const t=[];return this.records.forEach((i,r)=>t.push(yt(r))),`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new ue(205,!1)}processInjectorType(t,e,i){if(!(t=He(t)))return!1;let r=kt(t);const s=null==r&&t.ngModule||void 0,a=void 0===s?t:s,u=-1!==i.indexOf(a);if(void 0!==s&&(r=kt(s)),null==r)return!1;if(null!=r.imports&&!u){let m;i.push(a);try{jr(r.imports,y=>{this.processInjectorType(y,e,i)&&(void 0===m&&(m=[]),m.push(y))})}finally{}if(void 0!==m)for(let y=0;ythis.processProvider(T,C,S||Ot))}}this.injectorDefTypes.add(a);const h=pr(a)||(()=>new a);this.records.set(a,Kl(h,dc));const f=r.providers;if(null!=f&&!u){const m=t;jr(f,y=>this.processProvider(y,m,f))}return void 0!==s&&void 0!==t.providers}processProvider(t,e,i){let r=Xl(t=He(t))?t:He(t&&t.provide);const s=function iC(n,t,e){return _v(n)?Kl(void 0,n.useValue):Kl(vv(n),dc)}(t);if(Xl(t)||!0!==t.multi)this.records.get(r);else{let a=this.records.get(r);a||(a=Kl(void 0,dc,!0),a.factory=()=>Td(a.multi),this.records.set(r,a)),r=t,a.multi.push(t)}this.records.set(r,s)}hydrate(t,e){return e.value===dc&&(e.value=eC,e.value=e.factory()),"object"==typeof e.value&&e.value&&function g(n){return null!==n&&"object"==typeof n&&"function"==typeof n.ngOnDestroy}(e.value)&&this.onDestroy.add(e.value),e.value}injectableDefInScope(t){if(!t.providedIn)return!1;const e=He(t.providedIn);return"string"==typeof e?"any"===e||e===this.scope:this.injectorDefTypes.has(e)}}function wp(n){const t=es(n),e=null!==t?t.factory:pr(n);if(null!==e)return e;if(n instanceof rt)throw new ue(204,!1);if(n instanceof Function)return function nC(n){const t=n.length;if(t>0)throw function zr(n,t){const e=[];for(let i=0;ie.factory(n):()=>new n}(n);throw new ue(204,!1)}function vv(n,t,e){let i;if(Xl(n)){const r=He(n);return pr(r)||wp(r)}if(_v(n))i=()=>He(n.useValue);else if(function sC(n){return!(!n||!n.useFactory)}(n))i=()=>n.useFactory(...Td(n.deps||[]));else if(function rC(n){return!(!n||!n.useExisting)}(n))i=()=>z(He(n.useExisting));else{const r=He(n&&(n.useClass||n.provide));if(!function d(n){return!!n.deps}(n))return pr(r)||wp(r);i=()=>new r(...Td(n.deps))}return i}function Kl(n,t,e=!1){return{factory:n,value:t,multi:e?[]:void 0}}function _v(n){return null!==n&&"object"==typeof n&&Gg in n}function Xl(n){return"function"==typeof n}let D=(()=>{class n{static create(e,i){if(Array.isArray(e))return gv({name:""},i,e,"");{const r=e.name??"";return gv({name:r},e.parent,e.providers,r)}}}return n.THROW_IF_NOT_FOUND=Vl,n.NULL=new fv,n.\u0275prov=oe({token:n,providedIn:"any",factory:()=>z(vp)}),n.__NG_ELEMENT_ID__=-1,n})();function jx(n,t){Vu(Tf(n)[1],sn())}function Xt(n){let t=function ab(n){return Object.getPrototypeOf(n.prototype).constructor}(n.type),e=!0;const i=[n];for(;t;){let r;if(j(n))r=t.\u0275cmp||t.\u0275dir;else{if(t.\u0275cmp)throw new ue(903,"");r=t.\u0275dir}if(r){if(e){i.push(r);const a=n;a.inputs=aC(n.inputs),a.declaredInputs=aC(n.declaredInputs),a.outputs=aC(n.outputs);const u=r.hostBindings;u&&$x(n,u);const h=r.viewQuery,f=r.contentQueries;if(h&&Wx(n,h),f&&Gx(n,f),ys(n.inputs,r.inputs),ys(n.declaredInputs,r.declaredInputs),ys(n.outputs,r.outputs),j(r)&&r.data.animation){const m=n.data;m.animation=(m.animation||[]).concat(r.data.animation)}}const s=r.features;if(s)for(let a=0;a=0;i--){const r=n[i];r.hostVars=t+=r.hostVars,r.hostAttrs=hd(r.hostAttrs,e=hd(e,r.hostAttrs))}}(i)}function aC(n){return n===Fn?{}:n===Ot?[]:n}function Wx(n,t){const e=n.viewQuery;n.viewQuery=e?(i,r)=>{t(i,r),e(i,r)}:t}function Gx(n,t){const e=n.contentQueries;n.contentQueries=e?(i,r,s)=>{t(i,r,s),e(i,r,s)}:t}function $x(n,t){const e=n.hostBindings;n.hostBindings=e?(i,r)=>{t(i,r),e(i,r)}:t}let yv=null;function Yd(){if(!yv){const n=Pt.Symbol;if(n&&n.iterator)yv=n.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;eu(Ut(Y[i.index])):i.index;if(je(e)){let Y=null;if(!u&&h&&(Y=function SP(n,t,e,i){const r=n.cleanup;if(null!=r)for(let s=0;sh?u[h]:null}"string"==typeof a&&(s+=2)}return null}(n,t,r,i.index)),null!==Y)(Y.__ngLastListenerFn__||Y).__ngNextListenerFn__=s,Y.__ngLastListenerFn__=s,S=!1;else{s=mC(i,t,y,s,!1);const re=e.listen(F,r,s);C.push(s,re),m&&m.push(r,G,O,O+1)}}else s=mC(i,t,y,s,!0),F.addEventListener(r,s,a),C.push(s),m&&m.push(r,G,O,a)}else s=mC(i,t,y,s,!1);const T=i.outputs;let x;if(S&&null!==T&&(x=T[r])){const R=x.length;if(R)for(let F=0;F0;)t=t[15],n--;return t}(n,Pe.lFrame.contextLView))[8]}(n)}function jb(n,t,e,i,r){const s=n[e+1],a=null===t;let u=i?us(s):_o(s),h=!1;for(;0!==u&&(!1===h||a);){const m=n[u+1];AP(n[u],t)&&(h=!0,n[u+1]=i?oc(m):$f(m)),u=i?us(m):_o(m)}h&&(n[e+1]=i?$f(s):oc(s))}function AP(n,t){return null===n||null==t||(Array.isArray(n)?n[1]:n)===t||!(!Array.isArray(n)||"string"!=typeof t)&&Fl(n,t)>=0}function La(n,t,e){return bo(n,t,e,!1),La}function yi(n,t){return bo(n,t,null,!0),yi}function bo(n,t,e,i){const r=K(),s=Et(),a=function ho(n){const t=Pe.lFrame,e=t.bindingIndex;return t.bindingIndex=t.bindingIndex+n,e}(2);s.firstUpdatePass&&function Kb(n,t,e,i){const r=n.data;if(null===r[e+1]){const s=r[qn()],a=function Yb(n,t){return t>=n.expandoStartIndex}(n,e);(function eE(n,t){return 0!=(n.flags&(t?16:32))})(s,i)&&null===t&&!a&&(t=!1),t=function VP(n,t,e,i){const r=function $h(n){const t=Pe.lFrame.currentDirectiveIndex;return-1===t?null:n[t]}(n);let s=i?t.residualClasses:t.residualStyles;if(null===r)0===(i?t.classBindings:t.styleBindings)&&(e=Sp(e=_C(null,n,t,e,i),t.attrs,i),s=null);else{const a=t.directiveStylingLast;if(-1===a||n[a]!==r)if(e=_C(r,n,t,e,i),null===s){let h=function BP(n,t,e){const i=e?t.classBindings:t.styleBindings;if(0!==_o(i))return n[us(i)]}(n,t,i);void 0!==h&&Array.isArray(h)&&(h=_C(null,n,t,h[1],i),h=Sp(h,t.attrs,i),function HP(n,t,e,i){n[us(e?t.classBindings:t.styleBindings)]=i}(n,t,i,h))}else s=function UP(n,t,e){let i;const r=t.directiveEnd;for(let s=1+t.directiveStylingLast;s0)&&(f=!0)}else m=e;if(r)if(0!==h){const C=us(n[u+1]);n[i+1]=Wd(C,u),0!==C&&(n[C+1]=Gd(n[C+1],i)),n[u+1]=function Tw(n,t){return 131071&n|t<<17}(n[u+1],i)}else n[i+1]=Wd(u,0),0!==u&&(n[u+1]=Gd(n[u+1],i)),u=i;else n[i+1]=Wd(h,0),0===u?u=i:n[h+1]=Gd(n[h+1],i),h=i;f&&(n[i+1]=$f(n[i+1])),jb(n,m,i,!0),jb(n,m,i,!1),function IP(n,t,e,i,r){const s=r?n.residualClasses:n.residualStyles;null!=s&&"string"==typeof t&&Fl(s,t)>=0&&(e[i+1]=oc(e[i+1]))}(t,m,n,i,s),a=Wd(u,h),s?t.classBindings=a:t.styleBindings=a}(r,s,t,e,a,i)}}(s,n,a,i),t!==ze&&tr(r,a,t)&&function Qb(n,t,e,i,r,s,a,u){if(!(3&t.type))return;const h=n.data,f=h[u+1];Sv(function Wl(n){return 1==(1&n)}(f)?Jb(h,t,e,r,_o(f),a):void 0)||(Sv(s)||function Hm(n){return 2==(2&n)}(f)&&(s=Jb(h,null,e,r,u,a)),function ww(n,t,e,i,r){const s=je(n);if(t)r?s?n.addClass(e,i):e.classList.add(i):s?n.removeClass(e,i):e.classList.remove(i);else{let a=-1===i.indexOf("-")?void 0:_r.DashCase;if(null==r)s?n.removeStyle(e,i,a):e.style.removeProperty(i);else{const u="string"==typeof r&&r.endsWith("!important");u&&(r=r.slice(0,-10),a|=_r.Important),s?n.setStyle(e,i,r,a):e.style.setProperty(i,r,u?"important":"")}}}(i,a,Is(qn(),e),r,s))}(s,s.data[qn()],r,r[11],n,r[a+1]=function WP(n,t){return null==n||("string"==typeof t?n+=t:"object"==typeof n&&(n=yt(ra(n)))),n}(t,e),i,a)}function _C(n,t,e,i,r){let s=null;const a=e.directiveEnd;let u=e.directiveStylingLast;for(-1===u?u=e.directiveStart:u++;u0;){const h=n[r],f=Array.isArray(h),m=f?h[1]:h,y=null===m;let C=e[r+1];C===ze&&(C=y?Ot:void 0);let S=y?Cd(C,i):m===i?C:void 0;if(f&&!Sv(S)&&(S=Cd(h,i)),Sv(S)&&(u=S,a))return u;const T=n[r+1];r=a?us(T):_o(T)}if(null!==t){let h=s?t.residualClasses:t.residualStyles;null!=h&&(u=Cd(h,i))}return u}function Sv(n){return void 0!==n}function pn(n,t=""){const e=K(),i=Et(),r=n+20,s=i.firstCreatePass?$l(i,r,1,t,null):i.data[r],a=e[r]=function Nf(n,t){return je(n)?n.createText(t):n.createTextNode(t)}(e[11],t);Ud(i,e,a,s),xs(s,!1)}function fc(n){return ah("",n,""),fc}function ah(n,t,e){const i=K(),r=function Xd(n,t,e,i){return tr(n,Il(),e)?t+Ae(e)+i:ze}(i,n,t,e);return r!==ze&&Do(i,qn(),r),ah}const pc=void 0;var cR=["en",[["a","p"],["AM","PM"],pc],[["AM","PM"],pc,pc],[["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"]],pc,[["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"]],pc,[["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}",pc,"{1} 'at' {0}",pc],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function uR(n){const e=Math.floor(Math.abs(n)),i=n.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===i?1:5}];let lh={};function Cr(n){const t=function dR(n){return n.toLowerCase().replace(/_/g,"-")}(n);let e=CE(t);if(e)return e;const i=t.split("-")[0];if(e=CE(i),e)return e;if("en"===i)return cR;throw new Error(`Missing locale data for the locale "${n}".`)}function CE(n){return n in lh||(lh[n]=Pt.ng&&Pt.ng.common&&Pt.ng.common.locales&&Pt.ng.common.locales[n]),lh[n]}var ce=(()=>((ce=ce||{})[ce.LocaleId=0]="LocaleId",ce[ce.DayPeriodsFormat=1]="DayPeriodsFormat",ce[ce.DayPeriodsStandalone=2]="DayPeriodsStandalone",ce[ce.DaysFormat=3]="DaysFormat",ce[ce.DaysStandalone=4]="DaysStandalone",ce[ce.MonthsFormat=5]="MonthsFormat",ce[ce.MonthsStandalone=6]="MonthsStandalone",ce[ce.Eras=7]="Eras",ce[ce.FirstDayOfWeek=8]="FirstDayOfWeek",ce[ce.WeekendRange=9]="WeekendRange",ce[ce.DateFormat=10]="DateFormat",ce[ce.TimeFormat=11]="TimeFormat",ce[ce.DateTimeFormat=12]="DateTimeFormat",ce[ce.NumberSymbols=13]="NumberSymbols",ce[ce.NumberFormats=14]="NumberFormats",ce[ce.CurrencyCode=15]="CurrencyCode",ce[ce.CurrencySymbol=16]="CurrencySymbol",ce[ce.CurrencyName=17]="CurrencyName",ce[ce.Currencies=18]="Currencies",ce[ce.Directionality=19]="Directionality",ce[ce.PluralCase=20]="PluralCase",ce[ce.ExtraData=21]="ExtraData",ce))();const bv="en-US";let DE=bv;function CC(n,t,e,i,r){if(n=He(n),Array.isArray(n))for(let s=0;s>20;if(Xl(n)||!n.multi){const S=new Hu(h,r,U),T=SC(u,t,r?m:m+C,y);-1===T?(zu(Pl(f,a),s,u),DC(s,n,t.length),t.push(u),f.directiveStart++,f.directiveEnd++,r&&(f.providerIndexes+=1048576),e.push(S),a.push(S)):(e[T]=S,a[T]=S)}else{const S=SC(u,t,m+C,y),T=SC(u,t,m,m+C),x=S>=0&&e[S],R=T>=0&&e[T];if(r&&!R||!r&&!x){zu(Pl(f,a),s,u);const F=function uk(n,t,e,i,r){const s=new Hu(n,e,U);return s.multi=[],s.index=t,s.componentProviders=0,$E(s,r,i&&!e),s}(r?lk:ak,e.length,r,i,h);!r&&R&&(e[T].providerFactory=F),DC(s,n,t.length,0),t.push(u),f.directiveStart++,f.directiveEnd++,r&&(f.providerIndexes+=1048576),e.push(F),a.push(F)}else DC(s,n,S>-1?S:T,$E(e[r?T:S],h,!r&&i));!r&&i&&R&&e[T].componentProviders++}}}function DC(n,t,e,i){const r=Xl(t),s=function l(n){return!!n.useClass}(t);if(r||s){const h=(s?He(t.useClass):t).prototype.ngOnDestroy;if(h){const f=n.destroyHooks||(n.destroyHooks=[]);if(!r&&t.multi){const m=f.indexOf(e);-1===m?f.push(e,[i,h]):f[m+1].push(i,h)}else f.push(e,h)}}}function $E(n,t,e){return e&&n.componentProviders++,n.multi.push(t)-1}function SC(n,t,e,i){for(let r=e;r{e.providersResolver=(i,r)=>function ok(n,t,e){const i=Et();if(i.firstCreatePass){const r=j(n);CC(e,i.data,i.blueprint,r,!0),CC(t,i.data,i.blueprint,r,!1)}}(i,r?r(n):n,t)}}class ZE{}class hk{resolveComponentFactory(t){throw function dk(n){const t=Error(`No component factory found for ${yt(n)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=n,t}(t)}}let Ql=(()=>{class n{}return n.NULL=new hk,n})();function fk(){return ch(sn(),K())}function ch(n,t){return new wn(fi(n,t))}let wn=(()=>{class n{constructor(e){this.nativeElement=e}}return n.__NG_ELEMENT_ID__=fk,n})();function pk(n){return n instanceof wn?n.nativeElement:n}class Ip{}let $r=(()=>{class n{}return n.__NG_ELEMENT_ID__=()=>function mk(){const n=K(),e=mt(sn().index,n);return function gk(n){return n[11]}(Lr(e)?e:n)}(),n})(),vk=(()=>{class n{}return n.\u0275prov=oe({token:n,providedIn:"root",factory:()=>null}),n})();class Ap{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const _k=new Ap("13.3.0"),EC={};function Av(n,t,e,i,r=!1){for(;null!==e;){const s=t[e.index];if(null!==s&&i.push(Ut(s)),qi(s))for(let u=10;u-1&&(zl(t,i),wd(e,i))}this._attachedToViewContainer=!1}Mm(this._lView[1],this._lView)}onDestroy(t){Qm(this._lView[1],this._lView,null,t)}markForCheck(){uc(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){fp(this._lView[1],this._lView,this.context)}checkNoChanges(){!function pp(n,t,e){ld(!0);try{fp(n,t,e)}finally{ld(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(){if(this._appRef)throw new ue(902,"");this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function fw(n,t){sc(n,t,t[11],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new ue(902,"");this._appRef=t}}class yk extends xp{constructor(t){super(t),this._view=t}detectChanges(){lv(this._view)}checkNoChanges(){!function Xw(n){ld(!0);try{lv(n)}finally{ld(!1)}}(this._view)}get context(){return null}}class YE extends Ql{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=Vn(t);return new TC(e,this.ngModule)}}function KE(n){const t=[];for(let e in n)n.hasOwnProperty(e)&&t.push({propName:n[e],templateName:e});return t}class TC extends ZE{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=function vo(n){return n.map(Ew).join(",")}(t.selectors),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return KE(this.componentDef.inputs)}get outputs(){return KE(this.componentDef.outputs)}create(t,e,i,r){const s=(r=r||this.ngModule)?function Ck(n,t){return{get:(e,i,r)=>{const s=n.get(e,EC,r);return s!==EC||i===EC?s:t.get(e,i,r)}}}(t,r.injector):t,a=s.get(Ip,Ms),u=s.get(vk,null),h=a.createRenderer(null,this.componentDef),f=this.componentDef.selectors[0][0]||"div",m=i?function Xm(n,t,e){if(je(n))return n.selectRootElement(t,e===$i.ShadowDom);let i="string"==typeof t?n.querySelector(t):t;return i.textContent="",i}(h,i,this.componentDef.encapsulation):Ff(a.createRenderer(null,this.componentDef),f,function wk(n){const t=n.toLowerCase();return"svg"===t?"svg":"math"===t?P:null}(f)),y=this.componentDef.onPush?576:528,C=function ob(n,t){return{components:[],scheduler:n||sw,clean:Qw,playerHandler:t||null,flags:0}}(),S=Co(0,null,null,1,0,null,null,null,null,null),T=ac(null,S,C,y,null,null,a,h,u,s);let x,R;ud(T);try{const F=function rb(n,t,e,i,r,s){const a=e[1];e[20]=n;const h=$l(a,20,2,"#host",null),f=h.mergedAttrs=t.hostAttrs;null!==f&&(Yl(h,f,!0),null!==n&&(Uu(r,n,f),null!==h.classes&&yr(r,n,h.classes),null!==h.styles&&Lm(r,n,h.styles)));const m=i.createRenderer(n,t),y=ac(e,Ym(t),null,t.onPush?64:16,e[20],h,i,m,s||null,null);return a.firstCreatePass&&(zu(Pl(h,e),a,t.type),iv(a,h),rv(h,e.length,1)),ri(e,y),e[20]=y}(m,this.componentDef,T,a,h);if(m)if(i)Uu(h,m,["ng-version",_k.full]);else{const{attrs:O,classes:G}=function Bm(n){const t=[],e=[];let i=1,r=2;for(;i0&&yr(h,m,G.join(" "))}if(R=uo(S,20),void 0!==e){const O=R.projection=[];for(let G=0;Gh(a,t)),t.contentQueries){const h=sn();t.contentQueries(1,a,h.directiveStart)}const u=sn();return!s.firstCreatePass||null===t.hostBindings&&null===t.hostAttrs||(Ko(u.index),tv(e[1],u,0,u.directiveStart,u.directiveEnd,t),nv(t,a)),a}(F,this.componentDef,T,C,[jx]),lc(S,T,null)}finally{cd()}return new Sk(this.componentType,x,ch(R,T),T,R)}}class Sk extends class ck{}{constructor(t,e,i,r,s){super(),this.location=i,this._rootLView=r,this._tNode=s,this.instance=e,this.hostView=this.changeDetectorRef=new yk(r),this.componentType=t}get injector(){return new kl(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(t){this.hostView.onDestroy(t)}}class dh{}const hh=new Map;class JE extends dh{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new YE(this);const i=xi(t);this._bootstrapComponents=Vs(i.bootstrap),this._r3Injector=mv(t,e,[{provide:dh,useValue:this},{provide:Ql,useValue:this.componentFactoryResolver}],yt(t)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(t)}get(t,e=D.THROW_IF_NOT_FOUND,i=Te.Default){return t===D||t===dh||t===vp?this:this._r3Injector.get(t,e,i)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class MC extends class Ek{}{constructor(t){super(),this.moduleType=t,null!==xi(t)&&function Tk(n){const t=new Set;!function e(i){const r=xi(i,!0),s=r.id;null!==s&&(function XE(n,t,e){if(t&&t!==e)throw new Error(`Duplicate module registered for ${n} - ${yt(t)} vs ${yt(t.name)}`)}(s,hh.get(s),i),hh.set(s,i));const a=Vs(r.imports);for(const u of a)t.has(u)||(t.add(u),e(u))}(n)}(t)}create(t){return new JE(this.moduleType,t)}}function Dr(n,t,e){const i=Oi()+n,r=K();return r[i]===ze?da(r,i,e?t.call(e):t()):Dp(r,i)}function gc(n,t,e,i){return iT(K(),Oi(),n,t,e,i)}function wi(n,t,e,i,r){return rT(K(),Oi(),n,t,e,i,r)}function IC(n,t,e,i,r,s){return sT(K(),Oi(),n,t,e,i,r,s)}function eT(n,t,e,i,r,s,a){return function oT(n,t,e,i,r,s,a,u,h){const f=t+e;return Us(n,f,r,s,a,u)?da(n,f+4,h?i.call(h,r,s,a,u):i(r,s,a,u)):Pp(n,f+4)}(K(),Oi(),n,t,e,i,r,s,a)}function AC(n,t,e,i,r,s,a,u){const h=Oi()+n,f=K(),m=Us(f,h,e,i,r,s);return tr(f,h+4,a)||m?da(f,h+5,u?t.call(u,e,i,r,s,a):t(e,i,r,s,a)):Dp(f,h+5)}function xC(n,t,e,i){return function aT(n,t,e,i,r,s){let a=t+e,u=!1;for(let h=0;h=0;e--){const i=t[e];if(n===i.name)return i}}(t,e.pipeRegistry),e.data[r]=i,i.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(r,i.onDestroy)):i=e.data[r];const s=i.factory||(i.factory=pr(i.type)),a=Ds(U);try{const u=pd(!1),h=s();return pd(u),function eP(n,t,e,i){e>=n.data.length&&(n.data[e]=null,n.blueprint[e]=null),t[e]=i}(e,K(),r,h),h}finally{Ds(a)}}function xv(n,t,e){const i=n+20,r=K(),s=gr(r,i);return Rp(r,i)?iT(r,Oi(),t,s.transform,e,s):s.transform(e)}function To(n,t,e,i){const r=n+20,s=K(),a=gr(s,r);return Rp(s,r)?rT(s,Oi(),t,a.transform,e,i,a):a.transform(e,i)}function Mo(n,t,e,i,r){const s=n+20,a=K(),u=gr(a,s);return Rp(a,s)?sT(a,Oi(),t,u.transform,e,i,r,u):u.transform(e,i,r)}function Rp(n,t){return n[1].data[t].pure}function PC(n){return t=>{setTimeout(n,void 0,t)}}const me=class Pk extends Oe{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,i){let r=t,s=e||(()=>null),a=i;if(t&&"object"==typeof t){const h=t;r=h.next?.bind(h),s=h.error?.bind(h),a=h.complete?.bind(h)}this.__isAsync&&(s=PC(s),r&&(r=PC(r)),a&&(a=PC(a)));const u=super.subscribe({next:r,error:s,complete:a});return t instanceof bn&&t.add(u),u}};function Rk(){return this._results[Yd()]()}class RC{constructor(t=!1){this._emitDistinctChangesOnly=t,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const e=Yd(),i=RC.prototype;i[e]||(i[e]=Rk)}get changes(){return this._changes||(this._changes=new me)}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,e){return this._results.reduce(t,e)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,e){const i=this;i.dirty=!1;const r=Yi(t);(this._changesDetected=!function Hg(n,t,e){if(n.length!==t.length)return!1;for(let i=0;i{class n{}return n.__NG_ELEMENT_ID__=Lk,n})();const kk=pa,Ok=class extends kk{constructor(t,e,i){super(),this._declarationLView=t,this._declarationTContainer=e,this.elementRef=i}createEmbeddedView(t){const e=this._declarationTContainer.tViews,i=ac(this._declarationLView,e,t,16,null,e.declTNode,null,null,null,null);i[17]=this._declarationLView[this._declarationTContainer.index];const s=this._declarationLView[19];return null!==s&&(i[19]=s.createEmbeddedView(e)),lc(e,i,t),new xp(i)}};function Lk(){return Pv(sn(),K())}function Pv(n,t){return 4&n.type?new Ok(t,n,ch(n,t)):null}let ds=(()=>{class n{}return n.__NG_ELEMENT_ID__=Nk,n})();function Nk(){return cT(sn(),K())}const Fk=ds,lT=class extends Fk{constructor(t,e,i){super(),this._lContainer=t,this._hostTNode=e,this._hostLView=i}get element(){return ch(this._hostTNode,this._hostLView)}get injector(){return new kl(this._hostTNode,this._hostLView)}get parentInjector(){const t=gd(this._hostTNode,this._hostLView);if(xg(t)){const e=Os(t,this._hostLView),i=Qo(t);return new kl(e[1].data[i+8],e)}return new kl(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const e=uT(this._lContainer);return null!==e&&e[t]||null}get length(){return this._lContainer.length-10}createEmbeddedView(t,e,i){const r=t.createEmbeddedView(e||{});return this.insert(r,i),r}createComponent(t,e,i,r,s){const a=t&&!function Nl(n){return"function"==typeof n}(t);let u;if(a)u=e;else{const y=e||{};u=y.index,i=y.injector,r=y.projectableNodes,s=y.ngModuleRef}const h=a?t:new TC(Vn(t)),f=i||this.parentInjector;if(!s&&null==h.ngModule){const C=(a?f:this.parentInjector).get(dh,null);C&&(s=C)}const m=h.create(f,r,void 0,s);return this.insert(m.hostView,u),m}insert(t,e){const i=t._lView,r=i[1];if(function jh(n){return qi(n[3])}(i)){const m=this.indexOf(t);if(-1!==m)this.detach(m);else{const y=i[3],C=new lT(y,y[6],y[3]);C.detach(C.indexOf(t))}}const s=this._adjustIndex(e),a=this._lContainer;!function gw(n,t,e,i){const r=10+i,s=e.length;i>0&&(e[r-1][4]=t),i0)i.push(a[u/2]);else{const f=s[u+1],m=t[-h];for(let y=10;y{class n{constructor(e){this.appInits=e,this.resolve=Fv,this.reject=Fv,this.initialized=!1,this.done=!1,this.donePromise=new Promise((i,r)=>{this.resolve=i,this.reject=r})}runInitializers(){if(this.initialized)return;const e=[],i=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let r=0;r{s.subscribe({complete:u,error:h})});e.push(a)}}Promise.all(e).then(()=>{i()}).catch(r=>{this.reject(r)}),0===e.length&&i(),this.initialized=!0}}return n.\u0275fac=function(e){return new(e||n)(z(RT,8))},n.\u0275prov=oe({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const Op=new rt("AppId",{providedIn:"root",factory:function kT(){return`${GC()}${GC()}${GC()}`}});function GC(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const OT=new rt("Platform Initializer"),ph=new rt("Platform ID"),uO=new rt("appBootstrapListener");let cO=(()=>{class n{log(e){console.log(e)}warn(e){console.warn(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})();const js=new rt("LocaleId",{providedIn:"root",factory:()=>Zu(js,Te.Optional|Te.SkipSelf)||function dO(){return typeof $localize<"u"&&$localize.locale||bv}()}),gO=(()=>Promise.resolve(0))();function $C(n){typeof Zone>"u"?gO.then(()=>{n&&n.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",n)}class Qt{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new me(!1),this.onMicrotaskEmpty=new me(!1),this.onStable=new me(!1),this.onError=new me(!1),typeof Zone>"u")throw new Error("In this configuration Angular requires Zone.js");Zone.assertZonePatched();const r=this;r._nesting=0,r._outer=r._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(r._inner=r._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(r._inner=r._inner.fork(Zone.longStackTraceZoneSpec)),r.shouldCoalesceEventChangeDetection=!i&&e,r.shouldCoalesceRunChangeDetection=i,r.lastRequestAnimationFrameId=-1,r.nativeRequestAnimationFrame=function mO(){let n=Pt.requestAnimationFrame,t=Pt.cancelAnimationFrame;if(typeof Zone<"u"&&n&&t){const e=n[Zone.__symbol__("OriginalDelegate")];e&&(n=e);const i=t[Zone.__symbol__("OriginalDelegate")];i&&(t=i)}return{nativeRequestAnimationFrame:n,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function yO(n){const t=()=>{!function _O(n){n.isCheckStableRunning||-1!==n.lastRequestAnimationFrameId||(n.lastRequestAnimationFrameId=n.nativeRequestAnimationFrame.call(Pt,()=>{n.fakeTopEventTask||(n.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{n.lastRequestAnimationFrameId=-1,qC(n),n.isCheckStableRunning=!0,ZC(n),n.isCheckStableRunning=!1},void 0,()=>{},()=>{})),n.fakeTopEventTask.invoke()}),qC(n))}(n)};n._inner=n._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(e,i,r,s,a,u)=>{try{return LT(n),e.invokeTask(r,s,a,u)}finally{(n.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||n.shouldCoalesceRunChangeDetection)&&t(),NT(n)}},onInvoke:(e,i,r,s,a,u,h)=>{try{return LT(n),e.invoke(r,s,a,u,h)}finally{n.shouldCoalesceRunChangeDetection&&t(),NT(n)}},onHasTask:(e,i,r,s)=>{e.hasTask(r,s),i===r&&("microTask"==s.change?(n._hasPendingMicrotasks=s.microTask,qC(n),ZC(n)):"macroTask"==s.change&&(n.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,i,r,s)=>(e.handleError(r,s),n.runOutsideAngular(()=>n.onError.emit(s)),!1)})}(r)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!Qt.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")}static assertNotInAngularZone(){if(Qt.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")}run(t,e,i){return this._inner.run(t,e,i)}runTask(t,e,i,r){const s=this._inner,a=s.scheduleEventTask("NgZoneEvent: "+r,t,vO,Fv,Fv);try{return s.runTask(a,e,i)}finally{s.cancelTask(a)}}runGuarded(t,e,i){return this._inner.runGuarded(t,e,i)}runOutsideAngular(t){return this._outer.run(t)}}const vO={};function ZC(n){if(0==n._nesting&&!n.hasPendingMicrotasks&&!n.isStable)try{n._nesting++,n.onMicrotaskEmpty.emit(null)}finally{if(n._nesting--,!n.hasPendingMicrotasks)try{n.runOutsideAngular(()=>n.onStable.emit(null))}finally{n.isStable=!0}}}function qC(n){n.hasPendingMicrotasks=!!(n._hasPendingMicrotasks||(n.shouldCoalesceEventChangeDetection||n.shouldCoalesceRunChangeDetection)&&-1!==n.lastRequestAnimationFrameId)}function LT(n){n._nesting++,n.isStable&&(n.isStable=!1,n.onUnstable.emit(null))}function NT(n){n._nesting--,ZC(n)}class wO{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new me,this.onMicrotaskEmpty=new me,this.onStable=new me,this.onError=new me}run(t,e,i){return t.apply(e,i)}runGuarded(t,e,i){return t.apply(e,i)}runOutsideAngular(t){return t()}runTask(t,e,i,r){return t.apply(e,i)}}let YC=(()=>{class n{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.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:()=>{Qt.assertNotInAngularZone(),$C(()=>{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())$C(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(e)||(clearTimeout(i.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,i,r){let s=-1;i&&i>0&&(s=setTimeout(()=>{this._callbacks=this._callbacks.filter(a=>a.timeoutId!==s),e(this._didWork,this.getPendingTasks())},i)),this._callbacks.push({doneCb:e,timeoutId:s,updateCb:r})}whenStable(e,i,r){if(r&&!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(e,i,r),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,i,r){return[]}}return n.\u0275fac=function(e){return new(e||n)(z(Qt))},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})(),FT=(()=>{class n{constructor(){this._applications=new Map,KC.addToWindow(this)}registerApplication(e,i){this._applications.set(e,i)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,i=!0){return KC.findTestabilityInTree(this,e,i)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})();class CO{addToWindow(t){}findTestabilityInTree(t,e,i){return null}}let Io,KC=new CO;const VT=new rt("AllowMultipleToken");function BT(n,t,e=[]){const i=`Platform: ${t}`,r=new rt(i);return(s=[])=>{let a=HT();if(!a||a.injector.get(VT,!1))if(n)n(e.concat(s).concat({provide:r,useValue:!0}));else{const u=e.concat(s).concat({provide:r,useValue:!0},{provide:_p,useValue:"platform"});!function EO(n){if(Io&&!Io.destroyed&&!Io.injector.get(VT,!1))throw new ue(400,"");Io=n.get(UT);const t=n.get(OT,null);t&&t.forEach(e=>e())}(D.create({providers:u,name:i}))}return function TO(n){const t=HT();if(!t)throw new ue(401,"");return t}()}}function HT(){return Io&&!Io.destroyed?Io:null}let UT=(()=>{class n{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,i){const u=function MO(n,t){let e;return e="noop"===n?new wO:("zone.js"===n?void 0:n)||new Qt({enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!!t?.ngZoneEventCoalescing,shouldCoalesceRunChangeDetection:!!t?.ngZoneRunCoalescing}),e}(i?i.ngZone:void 0,{ngZoneEventCoalescing:i&&i.ngZoneEventCoalescing||!1,ngZoneRunCoalescing:i&&i.ngZoneRunCoalescing||!1}),h=[{provide:Qt,useValue:u}];return u.run(()=>{const f=D.create({providers:h,parent:this.injector,name:e.moduleType.name}),m=e.create(f),y=m.injector.get(tc,null);if(!y)throw new ue(402,"");return u.runOutsideAngular(()=>{const C=u.onError.subscribe({next:S=>{y.handleError(S)}});m.onDestroy(()=>{XC(this._modules,m),C.unsubscribe()})}),function IO(n,t,e){try{const i=e();return Dv(i)?i.catch(r=>{throw t.runOutsideAngular(()=>n.handleError(r)),r}):i}catch(i){throw t.runOutsideAngular(()=>n.handleError(i)),i}}(y,u,()=>{const C=m.injector.get(WC);return C.runInitializers(),C.donePromise.then(()=>(function gR(n){ni(n,"Expected localeId to be defined"),"string"==typeof n&&(DE=n.toLowerCase().replace(/_/g,"-"))}(m.injector.get(js,bv)||bv),this._moduleDoBootstrap(m),m))})})}bootstrapModule(e,i=[]){const r=jT({},i);return function SO(n,t,e){const i=new MC(e);return Promise.resolve(i)}(0,0,e).then(s=>this.bootstrapModuleFactory(s,r))}_moduleDoBootstrap(e){const i=e.injector.get(Vv);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(r=>i.bootstrap(r));else{if(!e.instance.ngDoBootstrap)throw new ue(403,"");e.instance.ngDoBootstrap(i)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new ue(404,"");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return n.\u0275fac=function(e){return new(e||n)(z(D))},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})();function jT(n,t){return Array.isArray(t)?t.reduce(jT,n):{...n,...t}}let Vv=(()=>{class n{constructor(e,i,r,s,a){this._zone=e,this._injector=i,this._exceptionHandler=r,this._componentFactoryResolver=s,this._initStatus=a,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const u=new _t(f=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{f.next(this._stable),f.complete()})}),h=new _t(f=>{let m;this._zone.runOutsideAngular(()=>{m=this._zone.onStable.subscribe(()=>{Qt.assertNotInAngularZone(),$C(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,f.next(!0))})})});const y=this._zone.onUnstable.subscribe(()=>{Qt.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{f.next(!1)}))});return()=>{m.unsubscribe(),y.unsubscribe()}});this.isStable=Nn(u,h.pipe(Ye()))}bootstrap(e,i){if(!this._initStatus.done)throw new ue(405,"");let r;r=e instanceof ZE?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(r.componentType);const s=function bO(n){return n.isBoundToModule}(r)?void 0:this._injector.get(dh),u=r.create(D.NULL,[],i||r.selector,s),h=u.location.nativeElement,f=u.injector.get(YC,null),m=f&&u.injector.get(FT);return f&&m&&m.registerApplication(h,f),u.onDestroy(()=>{this.detachView(u.hostView),XC(this.components,u),m&&m.unregisterApplication(h)}),this._loadComponent(u),u}tick(){if(this._runningTick)throw new ue(101,"");try{this._runningTick=!0;for(let e of this._views)e.detectChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;XC(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(uO,[]).concat(this._bootstrapListeners).forEach(r=>r(e))}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}get viewCount(){return this._views.length}}return n.\u0275fac=function(e){return new(e||n)(z(Qt),z(D),z(tc),z(Ql),z(WC))},n.\u0275prov=oe({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function XC(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}let WT=!0,gh=(()=>{class n{}return n.__NG_ELEMENT_ID__=PO,n})();function PO(n){return function RO(n,t,e){if(Es(n)&&!e){const i=mt(n.index,t);return new xp(i,i)}return 47&n.type?new xp(t[16],t):null}(sn(),K(),16==(16&n))}class YT{constructor(){}supports(t){return Cp(t)}create(t){return new VO(t)}}const FO=(n,t)=>t;class VO{constructor(t){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=t||FO}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,i=this._removalsHead,r=0,s=null;for(;e||i;){const a=!i||e&&e.currentIndex{a=this._trackByFn(r,u),null!==e&&Object.is(e.trackById,a)?(i&&(e=this._verifyReinsertion(e,u,a,r)),Object.is(e.item,u)||this._addIdentityChange(e,u)):(e=this._mismatch(e,u,a,r),i=!0),e=e._next,r++}),this.length=r;return this._truncate(e),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,i,r){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,s,r)):null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(i,r))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,s,r)):t=this._addAfter(new BO(e,i),s,r),t}_verifyReinsertion(t,e,i,r){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null);return null!==s?t=this._reinsertAfter(s,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}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(t,e,i){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const r=t._prevRemoved,s=t._nextRemoved;return null===r?this._removalsHead=s:r._nextRemoved=s,null===s?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(t,e,i),this._addToMoves(t,i),t}_moveAfter(t,e,i){return this._unlink(t),this._insertAfter(t,e,i),this._addToMoves(t,i),t}_addAfter(t,e,i){return this._insertAfter(t,e,i),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,i){const r=null===e?this._itHead:e._next;return t._next=r,t._prev=e,null===r?this._itTail=t:r._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new KT),this._linkedRecords.put(t),t.currentIndex=i,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,i=t._next;return null===e?this._itHead=i:e._next=i,null===i?this._itTail=e:i._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new KT),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class BO{constructor(t,e){this.item=t,this.trackById=e,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 HO{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let i;for(i=this._head;null!==i;i=i._nextDup)if((null===e||e<=i.currentIndex)&&Object.is(i.trackById,t))return i;return null}remove(t){const e=t._prevDup,i=t._nextDup;return null===e?this._head=i:e._nextDup=i,null===i?this._tail=e:i._prevDup=e,null===this._head}}class KT{constructor(){this.map=new Map}put(t){const e=t.trackById;let i=this.map.get(e);i||(i=new HO,this.map.set(e,i)),i.add(t)}get(t,e){const r=this.map.get(t);return r?r.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function XT(n,t,e){const i=n.previousIndex;if(null===i)return i;let r=0;return e&&i{if(e&&e.key===r)this._maybeAddToChanges(e,i),this._appendAfter=e,e=e._next;else{const s=this._getOrCreateRecordForKey(r,i);e=this._insertBeforeOrAppend(e,s)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let i=e;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const i=t._prev;return e._next=t,e._prev=i,t._prev=e,i&&(i._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const r=this._records.get(t);this._maybeAddToChanges(r,e);const s=r._prev,a=r._next;return s&&(s._next=a),a&&(a._prev=s),r._next=null,r._prev=null,r}const i=new jO(t);return this._records.set(t,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(i=>e(t[i],i))}}class jO{constructor(t){this.key=t,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 JT(){return new Uv([new YT])}let Uv=(()=>{class n{constructor(e){this.factories=e}static create(e,i){if(null!=i){const r=i.factories.slice();e=e.concat(r)}return new n(e)}static extend(e){return{provide:n,useFactory:i=>n.create(e,i||JT()),deps:[[n,new Yu,new qu]]}}find(e){const i=this.factories.find(r=>r.supports(e));if(null!=i)return i;throw new ue(901,"")}}return n.\u0275prov=oe({token:n,providedIn:"root",factory:JT}),n})();function eM(){return new Lp([new QT])}let Lp=(()=>{class n{constructor(e){this.factories=e}static create(e,i){if(i){const r=i.factories.slice();e=e.concat(r)}return new n(e)}static extend(e){return{provide:n,useFactory:i=>n.create(e,i||eM()),deps:[[n,new Yu,new qu]]}}find(e){const i=this.factories.find(s=>s.supports(e));if(i)return i;throw new ue(901,"")}}return n.\u0275prov=oe({token:n,providedIn:"root",factory:eM}),n})();const GO=BT(null,"core",[{provide:ph,useValue:"unknown"},{provide:UT,deps:[D]},{provide:FT,deps:[]},{provide:cO,deps:[]}]);let $O=(()=>{class n{constructor(e){}}return n.\u0275fac=function(e){return new(e||n)(z(Vv))},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({}),n})(),jv=null;function ga(){return jv}const on=new rt("DocumentToken");let Np=(()=>{class n{historyGo(e){throw new Error("Not implemented")}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=oe({token:n,factory:function(){return function KO(){return z(tM)}()},providedIn:"platform"}),n})(),tM=(()=>{class n extends Np{constructor(e){super(),this._doc=e,this._init()}_init(){this.location=window.location,this._history=window.history}getBaseHrefFromDOM(){return ga().getBaseHref(this._doc)}onPopState(e){const i=ga().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=ga().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",e,!1),()=>i.removeEventListener("hashchange",e)}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(e){this.location.pathname=e}pushState(e,i,r){nM()?this._history.pushState(e,i,r):this.location.hash=r}replaceState(e,i,r){nM()?this._history.replaceState(e,i,r):this.location.hash=r}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}}return n.\u0275fac=function(e){return new(e||n)(z(on))},n.\u0275prov=oe({token:n,factory:function(){return function XO(){return new tM(z(on))}()},providedIn:"platform"}),n})();function nM(){return!!window.history.pushState}function iM(n,t){if(0==n.length)return t;if(0==t.length)return n;let e=0;return n.endsWith("/")&&e++,t.startsWith("/")&&e++,2==e?n+t.substring(1):1==e?n+t:n+"/"+t}function rM(n){const t=n.match(/#|\?|$/),e=t&&t.index||n.length;return n.slice(0,e-("/"===n[e-1]?1:0))+n.slice(e)}function vc(n){return n&&"?"!==n[0]?"?"+n:n}let nD=(()=>{class n{historyGo(e){throw new Error("Not implemented")}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=oe({token:n,factory:function(){return function QO(n){const t=z(on).location;return new eL(z(Np),t&&t.origin||"")}()},providedIn:"root"}),n})();const JO=new rt("appBaseHref");let eL=(()=>{class n extends nD{constructor(e,i){if(super(),this._platformLocation=e,this._removeListenerFns=[],null==i&&(i=this._platformLocation.getBaseHrefFromDOM()),null==i)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");this._baseHref=i}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return iM(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+vc(this._platformLocation.search),r=this._platformLocation.hash;return r&&e?`${i}${r}`:i}pushState(e,i,r,s){const a=this.prepareExternalUrl(r+vc(s));this._platformLocation.pushState(e,i,a)}replaceState(e,i,r,s){const a=this.prepareExternalUrl(r+vc(s));this._platformLocation.replaceState(e,i,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}historyGo(e=0){this._platformLocation.historyGo?.(e)}}return n.\u0275fac=function(e){return new(e||n)(z(Np),z(JO,8))},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})(),sM=(()=>{class n{constructor(e,i){this._subject=new me,this._urlChangeListeners=[],this._platformStrategy=e;const r=this._platformStrategy.getBaseHref();this._platformLocation=i,this._baseHref=rM(oM(r)),this._platformStrategy.onPopState(s=>{this._subject.emit({url:this.path(!0),pop:!0,state:s.state,type:s.type})})}path(e=!1){return this.normalize(this._platformStrategy.path(e))}getState(){return this._platformLocation.getState()}isCurrentPathEqualTo(e,i=""){return this.path()==this.normalize(e+vc(i))}normalize(e){return n.stripTrailingSlash(function nL(n,t){return n&&t.startsWith(n)?t.substring(n.length):t}(this._baseHref,oM(e)))}prepareExternalUrl(e){return e&&"/"!==e[0]&&(e="/"+e),this._platformStrategy.prepareExternalUrl(e)}go(e,i="",r=null){this._platformStrategy.pushState(r,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+vc(i)),r)}replaceState(e,i="",r=null){this._platformStrategy.replaceState(r,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+vc(i)),r)}forward(){this._platformStrategy.forward()}back(){this._platformStrategy.back()}historyGo(e=0){this._platformStrategy.historyGo?.(e)}onUrlChange(e){this._urlChangeListeners.push(e),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}))}_notifyUrlChangeListeners(e="",i){this._urlChangeListeners.forEach(r=>r(e,i))}subscribe(e,i,r){return this._subject.subscribe({next:e,error:i,complete:r})}}return n.normalizeQueryParams=vc,n.joinWithSlash=iM,n.stripTrailingSlash=rM,n.\u0275fac=function(e){return new(e||n)(z(nD),z(Np))},n.\u0275prov=oe({token:n,factory:function(){return function tL(){return new sM(z(nD),z(Np))}()},providedIn:"root"}),n})();function oM(n){return n.replace(/\/index.html$/,"")}var Xn=(()=>((Xn=Xn||{})[Xn.Zero=0]="Zero",Xn[Xn.One=1]="One",Xn[Xn.Two=2]="Two",Xn[Xn.Few=3]="Few",Xn[Xn.Many=4]="Many",Xn[Xn.Other=5]="Other",Xn))(),jn=(()=>((jn=jn||{})[jn.Format=0]="Format",jn[jn.Standalone=1]="Standalone",jn))(),Dt=(()=>((Dt=Dt||{})[Dt.Narrow=0]="Narrow",Dt[Dt.Abbreviated=1]="Abbreviated",Dt[Dt.Wide=2]="Wide",Dt[Dt.Short=3]="Short",Dt))(),Pn=(()=>((Pn=Pn||{})[Pn.Short=0]="Short",Pn[Pn.Medium=1]="Medium",Pn[Pn.Long=2]="Long",Pn[Pn.Full=3]="Full",Pn))(),Fe=(()=>((Fe=Fe||{})[Fe.Decimal=0]="Decimal",Fe[Fe.Group=1]="Group",Fe[Fe.List=2]="List",Fe[Fe.PercentSign=3]="PercentSign",Fe[Fe.PlusSign=4]="PlusSign",Fe[Fe.MinusSign=5]="MinusSign",Fe[Fe.Exponential=6]="Exponential",Fe[Fe.SuperscriptingExponent=7]="SuperscriptingExponent",Fe[Fe.PerMille=8]="PerMille",Fe[Fe.Infinity=9]="Infinity",Fe[Fe.NaN=10]="NaN",Fe[Fe.TimeSeparator=11]="TimeSeparator",Fe[Fe.CurrencyDecimal=12]="CurrencyDecimal",Fe[Fe.CurrencyGroup=13]="CurrencyGroup",Fe))();function zv(n,t){return Ws(Cr(n)[ce.DateFormat],t)}function Wv(n,t){return Ws(Cr(n)[ce.TimeFormat],t)}function Gv(n,t){return Ws(Cr(n)[ce.DateTimeFormat],t)}function zs(n,t){const e=Cr(n),i=e[ce.NumberSymbols][t];if(typeof i>"u"){if(t===Fe.CurrencyDecimal)return e[ce.NumberSymbols][Fe.Decimal];if(t===Fe.CurrencyGroup)return e[ce.NumberSymbols][Fe.Group]}return i}const uL=function wE(n){return Cr(n)[ce.PluralCase]};function lM(n){if(!n[ce.ExtraData])throw new Error(`Missing extra locale data for the locale "${n[ce.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function Ws(n,t){for(let e=t;e>-1;e--)if(typeof n[e]<"u")return n[e];throw new Error("Locale data API: locale data undefined")}function rD(n){const[t,e]=n.split(":");return{hours:+t,minutes:+e}}const gL=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Fp={},mL=/((?:[^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 ai=(()=>((ai=ai||{})[ai.Short=0]="Short",ai[ai.ShortGMT=1]="ShortGMT",ai[ai.Long=2]="Long",ai[ai.Extended=3]="Extended",ai))(),Ge=(()=>((Ge=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))(),ct=(()=>((ct=ct||{})[ct.DayPeriods=0]="DayPeriods",ct[ct.Days=1]="Days",ct[ct.Months=2]="Months",ct[ct.Eras=3]="Eras",ct))();function li(n,t,e,i){let r=function EL(n){if(dM(n))return n;if("number"==typeof n&&!isNaN(n))return new Date(n);if("string"==typeof n){if(n=n.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(n)){const[r,s=1,a=1]=n.split("-").map(u=>+u);return $v(r,s-1,a)}const e=parseFloat(n);if(!isNaN(n-e))return new Date(e);let i;if(i=n.match(gL))return function TL(n){const t=new Date(0);let e=0,i=0;const r=n[8]?t.setUTCFullYear:t.setFullYear,s=n[8]?t.setUTCHours:t.setHours;n[9]&&(e=Number(n[9]+n[10]),i=Number(n[9]+n[11])),r.call(t,Number(n[1]),Number(n[2])-1,Number(n[3]));const a=Number(n[4]||0)-e,u=Number(n[5]||0)-i,h=Number(n[6]||0),f=Math.floor(1e3*parseFloat("0."+(n[7]||0)));return s.call(t,a,u,h,f),t}(i)}const t=new Date(n);if(!dM(t))throw new Error(`Unable to convert "${n}" into a date`);return t}(n);t=Na(e,t)||t;let u,a=[];for(;t;){if(u=mL.exec(t),!u){a.push(t);break}{a=a.concat(u.slice(1));const m=a.pop();if(!m)break;t=m}}let h=r.getTimezoneOffset();i&&(h=cM(i,h),r=function bL(n,t,e){const i=e?-1:1,r=n.getTimezoneOffset();return function SL(n,t){return(n=new Date(n.getTime())).setMinutes(n.getMinutes()+t),n}(n,i*(cM(t,r)-r))}(r,i,!0));let f="";return a.forEach(m=>{const y=function DL(n){if(oD[n])return oD[n];let t;switch(n){case"G":case"GG":case"GGG":t=cn(ct.Eras,Dt.Abbreviated);break;case"GGGG":t=cn(ct.Eras,Dt.Wide);break;case"GGGGG":t=cn(ct.Eras,Dt.Narrow);break;case"y":t=Qn(Ge.FullYear,1,0,!1,!0);break;case"yy":t=Qn(Ge.FullYear,2,0,!0,!0);break;case"yyy":t=Qn(Ge.FullYear,3,0,!1,!0);break;case"yyyy":t=Qn(Ge.FullYear,4,0,!1,!0);break;case"Y":t=Kv(1);break;case"YY":t=Kv(2,!0);break;case"YYY":t=Kv(3);break;case"YYYY":t=Kv(4);break;case"M":case"L":t=Qn(Ge.Month,1,1);break;case"MM":case"LL":t=Qn(Ge.Month,2,1);break;case"MMM":t=cn(ct.Months,Dt.Abbreviated);break;case"MMMM":t=cn(ct.Months,Dt.Wide);break;case"MMMMM":t=cn(ct.Months,Dt.Narrow);break;case"LLL":t=cn(ct.Months,Dt.Abbreviated,jn.Standalone);break;case"LLLL":t=cn(ct.Months,Dt.Wide,jn.Standalone);break;case"LLLLL":t=cn(ct.Months,Dt.Narrow,jn.Standalone);break;case"w":t=sD(1);break;case"ww":t=sD(2);break;case"W":t=sD(1,!0);break;case"d":t=Qn(Ge.Date,1);break;case"dd":t=Qn(Ge.Date,2);break;case"c":case"cc":t=Qn(Ge.Day,1);break;case"ccc":t=cn(ct.Days,Dt.Abbreviated,jn.Standalone);break;case"cccc":t=cn(ct.Days,Dt.Wide,jn.Standalone);break;case"ccccc":t=cn(ct.Days,Dt.Narrow,jn.Standalone);break;case"cccccc":t=cn(ct.Days,Dt.Short,jn.Standalone);break;case"E":case"EE":case"EEE":t=cn(ct.Days,Dt.Abbreviated);break;case"EEEE":t=cn(ct.Days,Dt.Wide);break;case"EEEEE":t=cn(ct.Days,Dt.Narrow);break;case"EEEEEE":t=cn(ct.Days,Dt.Short);break;case"a":case"aa":case"aaa":t=cn(ct.DayPeriods,Dt.Abbreviated);break;case"aaaa":t=cn(ct.DayPeriods,Dt.Wide);break;case"aaaaa":t=cn(ct.DayPeriods,Dt.Narrow);break;case"b":case"bb":case"bbb":t=cn(ct.DayPeriods,Dt.Abbreviated,jn.Standalone,!0);break;case"bbbb":t=cn(ct.DayPeriods,Dt.Wide,jn.Standalone,!0);break;case"bbbbb":t=cn(ct.DayPeriods,Dt.Narrow,jn.Standalone,!0);break;case"B":case"BB":case"BBB":t=cn(ct.DayPeriods,Dt.Abbreviated,jn.Format,!0);break;case"BBBB":t=cn(ct.DayPeriods,Dt.Wide,jn.Format,!0);break;case"BBBBB":t=cn(ct.DayPeriods,Dt.Narrow,jn.Format,!0);break;case"h":t=Qn(Ge.Hours,1,-12);break;case"hh":t=Qn(Ge.Hours,2,-12);break;case"H":t=Qn(Ge.Hours,1);break;case"HH":t=Qn(Ge.Hours,2);break;case"m":t=Qn(Ge.Minutes,1);break;case"mm":t=Qn(Ge.Minutes,2);break;case"s":t=Qn(Ge.Seconds,1);break;case"ss":t=Qn(Ge.Seconds,2);break;case"S":t=Qn(Ge.FractionalSeconds,1);break;case"SS":t=Qn(Ge.FractionalSeconds,2);break;case"SSS":t=Qn(Ge.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":t=qv(ai.Short);break;case"ZZZZZ":t=qv(ai.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":t=qv(ai.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":t=qv(ai.Long);break;default:return null}return oD[n]=t,t}(m);f+=y?y(r,e,h):"''"===m?"'":m.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),f}function $v(n,t,e){const i=new Date(0);return i.setFullYear(n,t,e),i.setHours(0,0,0),i}function Na(n,t){const e=function iL(n){return Cr(n)[ce.LocaleId]}(n);if(Fp[e]=Fp[e]||{},Fp[e][t])return Fp[e][t];let i="";switch(t){case"shortDate":i=zv(n,Pn.Short);break;case"mediumDate":i=zv(n,Pn.Medium);break;case"longDate":i=zv(n,Pn.Long);break;case"fullDate":i=zv(n,Pn.Full);break;case"shortTime":i=Wv(n,Pn.Short);break;case"mediumTime":i=Wv(n,Pn.Medium);break;case"longTime":i=Wv(n,Pn.Long);break;case"fullTime":i=Wv(n,Pn.Full);break;case"short":const r=Na(n,"shortTime"),s=Na(n,"shortDate");i=Zv(Gv(n,Pn.Short),[r,s]);break;case"medium":const a=Na(n,"mediumTime"),u=Na(n,"mediumDate");i=Zv(Gv(n,Pn.Medium),[a,u]);break;case"long":const h=Na(n,"longTime"),f=Na(n,"longDate");i=Zv(Gv(n,Pn.Long),[h,f]);break;case"full":const m=Na(n,"fullTime"),y=Na(n,"fullDate");i=Zv(Gv(n,Pn.Full),[m,y])}return i&&(Fp[e][t]=i),i}function Zv(n,t){return t&&(n=n.replace(/\{([^}]+)}/g,function(e,i){return null!=t&&i in t?t[i]:e})),n}function Ao(n,t,e="-",i,r){let s="";(n<0||r&&n<=0)&&(r?n=1-n:(n=-n,s=e));let a=String(n);for(;a.length0||u>-e)&&(u+=e),n===Ge.Hours)0===u&&-12===e&&(u=12);else if(n===Ge.FractionalSeconds)return function vL(n,t){return Ao(n,3).substr(0,t)}(u,t);const h=zs(a,Fe.MinusSign);return Ao(u,t,h,i,r)}}function cn(n,t,e=jn.Format,i=!1){return function(r,s){return function yL(n,t,e,i,r,s){switch(e){case ct.Months:return function oL(n,t,e){const i=Cr(n),s=Ws([i[ce.MonthsFormat],i[ce.MonthsStandalone]],t);return Ws(s,e)}(t,r,i)[n.getMonth()];case ct.Days:return function sL(n,t,e){const i=Cr(n),s=Ws([i[ce.DaysFormat],i[ce.DaysStandalone]],t);return Ws(s,e)}(t,r,i)[n.getDay()];case ct.DayPeriods:const a=n.getHours(),u=n.getMinutes();if(s){const f=function cL(n){const t=Cr(n);return lM(t),(t[ce.ExtraData][2]||[]).map(i=>"string"==typeof i?rD(i):[rD(i[0]),rD(i[1])])}(t),m=function dL(n,t,e){const i=Cr(n);lM(i);const s=Ws([i[ce.ExtraData][0],i[ce.ExtraData][1]],t)||[];return Ws(s,e)||[]}(t,r,i),y=f.findIndex(C=>{if(Array.isArray(C)){const[S,T]=C,x=a>=S.hours&&u>=S.minutes,R=a0?Math.floor(r/60):Math.ceil(r/60);switch(n){case ai.Short:return(r>=0?"+":"")+Ao(a,2,s)+Ao(Math.abs(r%60),2,s);case ai.ShortGMT:return"GMT"+(r>=0?"+":"")+Ao(a,1,s);case ai.Long:return"GMT"+(r>=0?"+":"")+Ao(a,2,s)+":"+Ao(Math.abs(r%60),2,s);case ai.Extended:return 0===i?"Z":(r>=0?"+":"")+Ao(a,2,s)+":"+Ao(Math.abs(r%60),2,s);default:throw new Error(`Unknown zone width "${n}"`)}}}function uM(n){return $v(n.getFullYear(),n.getMonth(),n.getDate()+(4-n.getDay()))}function sD(n,t=!1){return function(e,i){let r;if(t){const s=new Date(e.getFullYear(),e.getMonth(),1).getDay()-1,a=e.getDate();r=1+Math.floor((a+s)/7)}else{const s=uM(e),a=function CL(n){const t=$v(n,0,1).getDay();return $v(n,0,1+(t<=4?4:11)-t)}(s.getFullYear()),u=s.getTime()-a.getTime();r=1+Math.round(u/6048e5)}return Ao(r,n,zs(i,Fe.MinusSign))}}function Kv(n,t=!1){return function(e,i){return Ao(uM(e).getFullYear(),n,zs(i,Fe.MinusSign),t)}}const oD={};function cM(n,t){n=n.replace(/:/g,"");const e=Date.parse("Jan 01, 1970 00:00:00 "+n)/6e4;return isNaN(e)?t:e}function dM(n){return n instanceof Date&&!isNaN(n.valueOf())}let dD=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=oe({token:n,factory:function(e){let i=null;return e?i=new e:(r=z(js),i=new FL(r)),i;var r},providedIn:"root"}),n})();let FL=(()=>{class n extends dD{constructor(e){super(),this.locale=e}getPluralCategory(e,i){switch(uL(i||this.locale)(e)){case Xn.Zero:return"zero";case Xn.One:return"one";case Xn.Two:return"two";case Xn.Few:return"few";case Xn.Many:return"many";default:return"other"}}}return n.\u0275fac=function(e){return new(e||n)(z(js))},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})();function gM(n,t){t=encodeURIComponent(t);for(const e of n.split(";")){const i=e.indexOf("="),[r,s]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(r.trim()===t)return decodeURIComponent(s)}return null}let ma=(()=>{class n{constructor(e,i,r,s){this._iterableDiffers=e,this._keyValueDiffers=i,this._ngEl=r,this._renderer=s,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(e){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof e?e.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(e){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof e?e.split(/\s+/):e,this._rawClass&&(Cp(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const e=this._iterableDiffer.diff(this._rawClass);e&&this._applyIterableChanges(e)}else if(this._keyValueDiffer){const e=this._keyValueDiffer.diff(this._rawClass);e&&this._applyKeyValueChanges(e)}}_applyKeyValueChanges(e){e.forEachAddedItem(i=>this._toggleClass(i.key,i.currentValue)),e.forEachChangedItem(i=>this._toggleClass(i.key,i.currentValue)),e.forEachRemovedItem(i=>{i.previousValue&&this._toggleClass(i.key,!1)})}_applyIterableChanges(e){e.forEachAddedItem(i=>{if("string"!=typeof i.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${yt(i.item)}`);this._toggleClass(i.item,!0)}),e.forEachRemovedItem(i=>this._toggleClass(i.item,!1))}_applyClasses(e){e&&(Array.isArray(e)||e instanceof Set?e.forEach(i=>this._toggleClass(i,!0)):Object.keys(e).forEach(i=>this._toggleClass(i,!!e[i])))}_removeClasses(e){e&&(Array.isArray(e)||e instanceof Set?e.forEach(i=>this._toggleClass(i,!1)):Object.keys(e).forEach(i=>this._toggleClass(i,!1)))}_toggleClass(e,i){(e=e.trim())&&e.split(/\s+/g).forEach(r=>{i?this._renderer.addClass(this._ngEl.nativeElement,r):this._renderer.removeClass(this._ngEl.nativeElement,r)})}}return n.\u0275fac=function(e){return new(e||n)(U(Uv),U(Lp),U(wn),U($r))},n.\u0275dir=we({type:n,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"}}),n})();class BL{constructor(t,e,i,r){this.$implicit=t,this.ngForOf=e,this.index=i,this.count=r}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 Jl=(()=>{class n{constructor(e,i,r){this._viewContainer=e,this._template=i,this._differs=r,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(e){e&&(this._template=e)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const e=this._ngForOf;!this._differ&&e&&(this._differ=this._differs.find(e).create(this.ngForTrackBy))}if(this._differ){const e=this._differ.diff(this._ngForOf);e&&this._applyChanges(e)}}_applyChanges(e){const i=this._viewContainer;e.forEachOperation((r,s,a)=>{if(null==r.previousIndex)i.createEmbeddedView(this._template,new BL(r.item,this._ngForOf,-1,-1),null===a?void 0:a);else if(null==a)i.remove(null===s?void 0:s);else if(null!==s){const u=i.get(s);i.move(u,a),mM(u,r)}});for(let r=0,s=i.length;r{mM(i.get(r.currentIndex),r)})}static ngTemplateContextGuard(e,i){return!0}}return n.\u0275fac=function(e){return new(e||n)(U(ds),U(pa),U(Uv))},n.\u0275dir=we({type:n,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}}),n})();function mM(n,t){n.context.$implicit=t.item}let Fa=(()=>{class n{constructor(e,i){this._viewContainer=e,this._context=new HL,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){vM("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){vM("ngIfElse",e),this._elseTemplateRef=e,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(e,i){return!0}}return n.\u0275fac=function(e){return new(e||n)(U(ds),U(pa))},n.\u0275dir=we({type:n,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}}),n})();class HL{constructor(){this.$implicit=null,this.ngIf=null}}function vM(n,t){if(t&&!t.createEmbeddedView)throw new Error(`${n} must be a TemplateRef, but received '${yt(t)}'.`)}class hD{constructor(t,e){this._viewContainerRef=t,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(t){t&&!this._created?this.create():!t&&this._created&&this.destroy()}}let Qv=(()=>{class n{constructor(){this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(e){this._ngSwitch=e,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(e){this._defaultViews||(this._defaultViews=[]),this._defaultViews.push(e)}_matchCase(e){const i=e==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||i,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),i}_updateDefaultCases(e){if(this._defaultViews&&e!==this._defaultUsed){this._defaultUsed=e;for(let i=0;i{class n{constructor(e,i,r){this.ngSwitch=r,r._addCase(),this._view=new hD(e,i)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}}return n.\u0275fac=function(e){return new(e||n)(U(ds),U(pa),U(Qv,9))},n.\u0275dir=we({type:n,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"}}),n})(),Bp=(()=>{class n{constructor(e,i,r){this._ngEl=e,this._differs=i,this._renderer=r,this._ngStyle=null,this._differ=null}set ngStyle(e){this._ngStyle=e,!this._differ&&e&&(this._differ=this._differs.find(e).create())}ngDoCheck(){if(this._differ){const e=this._differ.diff(this._ngStyle);e&&this._applyChanges(e)}}_setStyle(e,i){const[r,s]=e.split(".");null!=(i=null!=i&&s?`${i}${s}`:i)?this._renderer.setStyle(this._ngEl.nativeElement,r,i):this._renderer.removeStyle(this._ngEl.nativeElement,r)}_applyChanges(e){e.forEachRemovedItem(i=>this._setStyle(i.key,null)),e.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),e.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}}return n.\u0275fac=function(e){return new(e||n)(U(wn),U(Lp),U($r))},n.\u0275dir=we({type:n,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}}),n})(),Gs=(()=>{class n{constructor(e){this._viewContainerRef=e,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null}ngOnChanges(e){if(e.ngTemplateOutlet){const i=this._viewContainerRef;this._viewRef&&i.remove(i.indexOf(this._viewRef)),this._viewRef=this.ngTemplateOutlet?i.createEmbeddedView(this.ngTemplateOutlet,this.ngTemplateOutletContext):null}else this._viewRef&&e.ngTemplateOutletContext&&this.ngTemplateOutletContext&&(this._viewRef.context=this.ngTemplateOutletContext)}}return n.\u0275fac=function(e){return new(e||n)(U(ds))},n.\u0275dir=we({type:n,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet"},features:[_n]}),n})();function xo(n,t){return new ue(2100,"")}class zL{createSubscription(t,e){return t.subscribe({next:e,error:i=>{throw i}})}dispose(t){t.unsubscribe()}onDestroy(t){t.unsubscribe()}}class WL{createSubscription(t,e){return t.then(e,i=>{throw i})}dispose(t){}onDestroy(t){}}const GL=new WL,$L=new zL;let fD=(()=>{class n{constructor(e){this._ref=e,this._latestValue=null,this._subscription=null,this._obj=null,this._strategy=null}ngOnDestroy(){this._subscription&&this._dispose()}transform(e){return this._obj?e!==this._obj?(this._dispose(),this.transform(e)):this._latestValue:(e&&this._subscribe(e),this._latestValue)}_subscribe(e){this._obj=e,this._strategy=this._selectStrategy(e),this._subscription=this._strategy.createSubscription(e,i=>this._updateLatestValue(e,i))}_selectStrategy(e){if(Dv(e))return GL;if(Ib(e))return $L;throw xo()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(e,i){e===this._obj&&(this._latestValue=i,this._ref.markForCheck())}}return n.\u0275fac=function(e){return new(e||n)(U(gh,16))},n.\u0275pipe=Kt({name:"async",type:n,pure:!1}),n})();const JL=/#/g;let pD=(()=>{class n{constructor(e){this._localization=e}transform(e,i,r){if(null==e)return"";if("object"!=typeof i||null===i)throw xo();return i[function pM(n,t,e,i){let r=`=${n}`;if(t.indexOf(r)>-1||(r=e.getPluralCategory(n,i),t.indexOf(r)>-1))return r;if(t.indexOf("other")>-1)return"other";throw new Error(`No plural message found for value "${n}"`)}(e,Object.keys(i),this._localization,r)].replace(JL,e.toString())}}return n.\u0275fac=function(e){return new(e||n)(U(dD,16))},n.\u0275pipe=Kt({name:"i18nPlural",type:n,pure:!0}),n})(),CM=(()=>{class n{transform(e,i,r){if(null==e)return null;if(!this.supports(e))throw xo();return e.slice(i,r)}supports(e){return"string"==typeof e||Array.isArray(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275pipe=Kt({name:"slice",type:n,pure:!1}),n})(),mh=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({}),n})();const DM="browser";function SM(n){return n===DM}class EM{}class vD extends class dN extends class YO{}{constructor(){super(...arguments),this.supportsDOMEvents=!0}}{static makeCurrent(){!function qO(n){jv||(jv=n)}(new vD)}onAndCancel(t,e,i){return t.addEventListener(e,i,!1),()=>{t.removeEventListener(e,i,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){t.parentNode&&t.parentNode.removeChild(t)}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return"window"===e?window:"document"===e?t:"body"===e?t.body:null}getBaseHref(t){const e=function hN(){return Hp=Hp||document.querySelector("base"),Hp?Hp.getAttribute("href"):null}();return null==e?null:function fN(n){Jv=Jv||document.createElement("a"),Jv.setAttribute("href",n);const t=Jv.pathname;return"/"===t.charAt(0)?t:`/${t}`}(e)}resetBaseElement(){Hp=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return gM(document.cookie,t)}}let Jv,Hp=null;const TM=new rt("TRANSITION_ID"),gN=[{provide:RT,useFactory:function pN(n,t,e){return()=>{e.get(WC).donePromise.then(()=>{const i=ga(),r=t.querySelectorAll(`style[ng-transition="${n}"]`);for(let s=0;s{const s=t.findTestabilityInTree(i,r);if(null==s)throw new Error("Could not find testability for element.");return s},Pt.getAllAngularTestabilities=()=>t.getAllTestabilities(),Pt.getAllAngularRootElements=()=>t.getAllRootElements(),Pt.frameworkStabilizers||(Pt.frameworkStabilizers=[]),Pt.frameworkStabilizers.push(i=>{const r=Pt.getAllAngularTestabilities();let s=r.length,a=!1;const u=function(h){a=a||h,s--,0==s&&i(a)};r.forEach(function(h){h.whenStable(u)})})}findTestabilityInTree(t,e,i){return null==e?null:t.getTestability(e)??(i?ga().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null)}}let mN=(()=>{class n{build(){return new XMLHttpRequest}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})();const e_=new rt("EventManagerPlugins");let t_=(()=>{class n{constructor(e,i){this._zone=i,this._eventNameToPlugin=new Map,e.forEach(r=>r.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,i,r){return this._findPluginFor(i).addEventListener(e,i,r)}addGlobalEventListener(e,i,r){return this._findPluginFor(i).addGlobalEventListener(e,i,r)}getZone(){return this._zone}_findPluginFor(e){const i=this._eventNameToPlugin.get(e);if(i)return i;const r=this._plugins;for(let s=0;s{class n{constructor(){this._stylesSet=new Set}addStyles(e){const i=new Set;e.forEach(r=>{this._stylesSet.has(r)||(this._stylesSet.add(r),i.add(r))}),this.onStylesAdded(i)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})(),Up=(()=>{class n extends IM{constructor(e){super(),this._doc=e,this._hostNodes=new Map,this._hostNodes.set(e.head,[])}_addStylesToHost(e,i,r){e.forEach(s=>{const a=this._doc.createElement("style");a.textContent=s,r.push(i.appendChild(a))})}addHost(e){const i=[];this._addStylesToHost(this._stylesSet,e,i),this._hostNodes.set(e,i)}removeHost(e){const i=this._hostNodes.get(e);i&&i.forEach(AM),this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach((i,r)=>{this._addStylesToHost(e,r,i)})}ngOnDestroy(){this._hostNodes.forEach(e=>e.forEach(AM))}}return n.\u0275fac=function(e){return new(e||n)(z(on))},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})();function AM(n){ga().remove(n)}const yD={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/"},wD=/%COMP%/g;function n_(n,t,e){for(let i=0;i{if("__ngUnwrap__"===t)return n;!1===n(t)&&(t.preventDefault(),t.returnValue=!1)}}let i_=(()=>{class n{constructor(e,i,r){this.eventManager=e,this.sharedStylesHost=i,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new CD(e)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;switch(i.encapsulation){case $i.Emulated:{let r=this.rendererByCompId.get(i.id);return r||(r=new DN(this.eventManager,this.sharedStylesHost,i,this.appId),this.rendererByCompId.set(i.id,r)),r.applyToHost(e),r}case 1:case $i.ShadowDom:return new SN(this.eventManager,this.sharedStylesHost,e,i);default:if(!this.rendererByCompId.has(i.id)){const r=n_(i.id,i.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(i.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return n.\u0275fac=function(e){return new(e||n)(z(t_),z(Up),z(Op))},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})();class CD{constructor(t){this.eventManager=t,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(t,e){return e?document.createElementNS(yD[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){t.appendChild(e)}insertBefore(t,e,i){t&&t.insertBefore(e,i)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let i="string"==typeof t?document.querySelector(t):t;if(!i)throw new Error(`The selector "${t}" did not match any elements`);return e||(i.textContent=""),i}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,i,r){if(r){e=r+":"+e;const s=yD[r];s?t.setAttributeNS(s,e,i):t.setAttribute(e,i)}else t.setAttribute(e,i)}removeAttribute(t,e,i){if(i){const r=yD[i];r?t.removeAttributeNS(r,e):t.removeAttribute(`${i}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,i,r){r&(_r.DashCase|_r.Important)?t.style.setProperty(e,i,r&_r.Important?"important":""):t.style[e]=i}removeStyle(t,e,i){i&_r.DashCase?t.style.removeProperty(e):t.style[e]=""}setProperty(t,e,i){t[e]=i}setValue(t,e){t.nodeValue=e}listen(t,e,i){return"string"==typeof t?this.eventManager.addGlobalEventListener(t,e,RM(i)):this.eventManager.addEventListener(t,e,RM(i))}}class DN extends CD{constructor(t,e,i,r){super(t),this.component=i;const s=n_(r+"-"+i.id,i.styles,[]);e.addStyles(s),this.contentAttr=function yN(n){return"_ngcontent-%COMP%".replace(wD,n)}(r+"-"+i.id),this.hostAttr=function wN(n){return"_nghost-%COMP%".replace(wD,n)}(r+"-"+i.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,"")}createElement(t,e){const i=super.createElement(t,e);return super.setAttribute(i,this.contentAttr,""),i}}class SN extends CD{constructor(t,e,i,r){super(t),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=n_(r.id,r.styles,[]);for(let a=0;a{class n extends MM{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,r){return e.addEventListener(i,r,!1),()=>this.removeEventListener(e,i,r)}removeEventListener(e,i,r){return e.removeEventListener(i,r)}}return n.\u0275fac=function(e){return new(e||n)(z(on))},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})();const OM=["alt","control","meta","shift"],TN={"\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"},LM={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","\x90":"NumLock"},MN={alt:n=>n.altKey,control:n=>n.ctrlKey,meta:n=>n.metaKey,shift:n=>n.shiftKey};let IN=(()=>{class n extends MM{constructor(e){super(e)}supports(e){return null!=n.parseEventName(e)}addEventListener(e,i,r){const s=n.parseEventName(i),a=n.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>ga().onAndCancel(e,s.domEventName,a))}static parseEventName(e){const i=e.toLowerCase().split("."),r=i.shift();if(0===i.length||"keydown"!==r&&"keyup"!==r)return null;const s=n._normalizeKey(i.pop());let a="";if(OM.forEach(h=>{const f=i.indexOf(h);f>-1&&(i.splice(f,1),a+=h+".")}),a+=s,0!=i.length||0===s.length)return null;const u={};return u.domEventName=r,u.fullKey=a,u}static getEventFullKey(e){let i="",r=function AN(n){let t=n.key;if(null==t){if(t=n.keyIdentifier,null==t)return"Unidentified";t.startsWith("U+")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===n.location&&LM.hasOwnProperty(t)&&(t=LM[t]))}return TN[t]||t}(e);return r=r.toLowerCase()," "===r?r="space":"."===r&&(r="dot"),OM.forEach(s=>{s!=r&&MN[s](e)&&(i+=s+".")}),i+=r,i}static eventCallback(e,i,r){return s=>{n.getEventFullKey(s)===e&&r.runGuarded(()=>i(s))}}static _normalizeKey(e){return"esc"===e?"escape":e}}return n.\u0275fac=function(e){return new(e||n)(z(on))},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})();const kN=BT(GO,"browser",[{provide:ph,useValue:DM},{provide:OT,useValue:function xN(){vD.makeCurrent(),_D.init()},multi:!0},{provide:on,useFactory:function RN(){return function pe(n){Q=n}(document),document},deps:[]}]),ON=[{provide:_p,useValue:"root"},{provide:tc,useFactory:function PN(){return new tc},deps:[]},{provide:e_,useClass:bN,multi:!0,deps:[on,Qt,ph]},{provide:e_,useClass:IN,multi:!0,deps:[on]},{provide:i_,useClass:i_,deps:[t_,Up,Op]},{provide:Ip,useExisting:i_},{provide:IM,useExisting:Up},{provide:Up,useClass:Up,deps:[on]},{provide:YC,useClass:YC,deps:[Qt]},{provide:t_,useClass:t_,deps:[e_,Qt]},{provide:EM,useClass:mN,deps:[]}];let NM=(()=>{class n{constructor(e){if(e)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}static withServerTransition(e){return{ngModule:n,providers:[{provide:Op,useValue:e.appId},{provide:TM,useExisting:Op},gN]}}}return n.\u0275fac=function(e){return new(e||n)(z(n,12))},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({providers:ON,imports:[mh,$O]}),n})();typeof window<"u"&&window;const SD={now:()=>(SD.delegate||Date).now(),delegate:void 0};class bD extends Oe{constructor(t=1/0,e=1/0,i=SD){super(),this._bufferSize=t,this._windowTime=e,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=e===1/0,this._bufferSize=Math.max(1,t),this._windowTime=Math.max(1,e)}next(t){const{isStopped:e,_buffer:i,_infiniteTimeWindow:r,_timestampProvider:s,_windowTime:a}=this;e||(i.push(t),!r&&i.push(s.now()+a)),this._trimBuffer(),super.next(t)}_subscribe(t){this._throwIfClosed(),this._trimBuffer();const e=this._innerSubscribe(t),{_infiniteTimeWindow:i,_buffer:r}=this,s=r.slice();for(let a=0;a{let r=null,s=0,a=!1;const u=()=>a&&!r&&i.complete();e.subscribe(Mt(i,h=>{null==r||r.unsubscribe();let f=0;const m=s++;Ti(n(h,m)).subscribe(r=Mt(i,y=>i.next(t?t(h,y,m,f++):y),()=>{r=null,u()}))},()=>{a=!0,u()}))})}const r_={schedule(n,t){const e=setTimeout(n,t);return()=>clearTimeout(e)},scheduleBeforeRender(n){if(typeof window>"u")return r_.schedule(n,0);if(typeof window.requestAnimationFrame>"u")return r_.schedule(n,16);const t=window.requestAnimationFrame(n);return()=>window.cancelAnimationFrame(t)}};let ED;function JN(n,t,e){let i=e;return function $N(n){return!!n&&n.nodeType===Node.ELEMENT_NODE}(n)&&t.some((r,s)=>!("*"===r||!function qN(n,t){if(!ED){const e=Element.prototype;ED=e.matches||e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector}return n.nodeType===Node.ELEMENT_NODE&&ED.call(n,t)}(n,r)||(i=s,0))),i}class tF{constructor(t,e){this.componentFactory=e.get(Ql).resolveComponentFactory(t)}create(t){return new nF(this.componentFactory,t)}}class nF{constructor(t,e){this.componentFactory=t,this.injector=e,this.eventEmitters=new bD(1),this.events=this.eventEmitters.pipe(Va(i=>Nn(...i))),this.componentRef=null,this.viewChangeDetectorRef=null,this.inputChanges=null,this.hasInputChanges=!1,this.implementsOnChanges=!1,this.scheduledChangeDetectionFn=null,this.scheduledDestroyFn=null,this.initialInputValues=new Map,this.unchangedInputs=new Set(this.componentFactory.inputs.map(({propName:i})=>i)),this.ngZone=this.injector.get(Qt),this.elementZone=typeof Zone>"u"?null:this.ngZone.run(()=>Zone.current)}connect(t){this.runInZone(()=>{if(null!==this.scheduledDestroyFn)return this.scheduledDestroyFn(),void(this.scheduledDestroyFn=null);null===this.componentRef&&this.initializeComponent(t)})}disconnect(){this.runInZone(()=>{null===this.componentRef||null!==this.scheduledDestroyFn||(this.scheduledDestroyFn=r_.schedule(()=>{null!==this.componentRef&&(this.componentRef.destroy(),this.componentRef=null,this.viewChangeDetectorRef=null)},10))})}getInputValue(t){return this.runInZone(()=>null===this.componentRef?this.initialInputValues.get(t):this.componentRef.instance[t])}setInputValue(t,e){this.runInZone(()=>{null!==this.componentRef?function YN(n,t){return n===t||n!=n&&t!=t}(e,this.getInputValue(t))&&(void 0!==e||!this.unchangedInputs.has(t))||(this.recordInputChange(t,e),this.unchangedInputs.delete(t),this.hasInputChanges=!0,this.componentRef.instance[t]=e,this.scheduleDetectChanges()):this.initialInputValues.set(t,e)})}initializeComponent(t){const e=D.create({providers:[],parent:this.injector}),i=function QN(n,t){const e=n.childNodes,i=t.map(()=>[]);let r=-1;t.some((s,a)=>"*"===s&&(r=a,!0));for(let s=0,a=e.length;s{this.initialInputValues.has(t)&&this.setInputValue(t,this.initialInputValues.get(t))}),this.initialInputValues.clear()}initializeOutputs(t){const e=this.componentFactory.outputs.map(({propName:i,templateName:r})=>t.instance[i].pipe(lt(a=>({name:r,value:a}))));this.eventEmitters.next(e)}callNgOnChanges(t){if(!this.implementsOnChanges||null===this.inputChanges)return;const e=this.inputChanges;this.inputChanges=null,t.instance.ngOnChanges(e)}markViewForCheck(t){this.hasInputChanges&&(this.hasInputChanges=!1,t.markForCheck())}scheduleDetectChanges(){this.scheduledChangeDetectionFn||(this.scheduledChangeDetectionFn=r_.scheduleBeforeRender(()=>{this.scheduledChangeDetectionFn=null,this.detectChanges()}))}recordInputChange(t,e){if(!this.implementsOnChanges)return;null===this.inputChanges&&(this.inputChanges={});const i=this.inputChanges[t];if(i)return void(i.currentValue=e);const r=this.unchangedInputs.has(t),s=r?void 0:this.getInputValue(t);this.inputChanges[t]=new Cl(s,e,r)}detectChanges(){null!==this.componentRef&&(this.callNgOnChanges(this.componentRef),this.markViewForCheck(this.viewChangeDetectorRef),this.componentRef.changeDetectorRef.detectChanges())}runInZone(t){return this.elementZone&&Zone.current!==this.elementZone?this.ngZone.run(t):t()}}class iF extends HTMLElement{constructor(){super(...arguments),this.ngElementEventsSubscription=null}}function BM(n,t){const e=function XN(n,t){return t.get(Ql).resolveComponentFactory(n).inputs}(n,t.injector),i=t.strategyFactory||new tF(n,t.injector),r=function KN(n){const t={};return n.forEach(({propName:e,templateName:i})=>{t[function GN(n){return n.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}(i)]=e}),t}(e);class s extends iF{constructor(u){super(),this.injector=u}get ngElementStrategy(){if(!this._ngElementStrategy){const u=this._ngElementStrategy=i.create(this.injector||t.injector);e.forEach(({propName:h})=>{if(!this.hasOwnProperty(h))return;const f=this[h];delete this[h],u.setInputValue(h,f)})}return this._ngElementStrategy}attributeChangedCallback(u,h,f,m){this.ngElementStrategy.setInputValue(r[u],f)}connectedCallback(){let u=!1;this.ngElementStrategy.events&&(this.subscribeToEvents(),u=!0),this.ngElementStrategy.connect(this),u||this.subscribeToEvents()}disconnectedCallback(){this._ngElementStrategy&&this._ngElementStrategy.disconnect(),this.ngElementEventsSubscription&&(this.ngElementEventsSubscription.unsubscribe(),this.ngElementEventsSubscription=null)}subscribeToEvents(){this.ngElementEventsSubscription=this.ngElementStrategy.events.subscribe(u=>{const h=new CustomEvent(u.name,{detail:u.value});this.dispatchEvent(h)})}}return s.observedAttributes=Object.keys(r),e.forEach(({propName:a})=>{Object.defineProperty(s.prototype,a,{get(){return this.ngElementStrategy.getInputValue(a)},set(u){this.ngElementStrategy.setInputValue(a,u)},configurable:!0,enumerable:!0})}),s}class HM{}const Ba="*";function UM(n,t=null){return{type:4,styles:t,timings:n}}function jM(n,t=null){return{type:2,steps:n,options:t}}function s_(n){return{type:6,styles:n,offset:null}}function zM(n,t,e){return{type:0,name:n,styles:t,options:e}}function WM(n,t,e=null){return{type:1,expr:n,animation:t,options:e}}function GM(n){Promise.resolve(null).then(n)}class jp{constructor(t=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=t+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}onStart(t){this._onStartFns.push(t)}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){GM(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this._started=!1}setPosition(t){this._position=this.totalTime?t*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class $M{constructor(t){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=t;let e=0,i=0,r=0;const s=this.players.length;0==s?GM(()=>this._onFinish()):this.players.forEach(a=>{a.onDone(()=>{++e==s&&this._onFinish()}),a.onDestroy(()=>{++i==s&&this._onDestroy()}),a.onStart(()=>{++r==s&&this._onStart()})}),this.totalTime=this.players.reduce((a,u)=>Math.max(a,u.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this.players.forEach(t=>t.init())}onStart(t){this._onStartFns.push(t)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(t=>t()),this._onStartFns=[])}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(t=>t.play())}pause(){this.players.forEach(t=>t.pause())}restart(){this.players.forEach(t=>t.restart())}finish(){this._onFinish(),this.players.forEach(t=>t.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(t=>t.destroy()),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this.players.forEach(t=>t.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(t){const e=t*this.totalTime;this.players.forEach(i=>{const r=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(r)})}getPosition(){const t=this.players.reduce((e,i)=>null===e||i.totalTime>e.totalTime?i:e,null);return null!=t?t.getPosition():0}beforeDestroy(){this.players.forEach(t=>{t.beforeDestroy&&t.beforeDestroy()})}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}const Tt=!1;function ZM(n){return new ue(3e3,Tt)}function BF(){return typeof window<"u"&&typeof window.document<"u"}function MD(){return typeof process<"u"&&"[object process]"==={}.toString.call(process)}function tu(n){switch(n.length){case 0:return new jp;case 1:return n[0];default:return new $M(n)}}function qM(n,t,e,i,r={},s={}){const a=[],u=[];let h=-1,f=null;if(i.forEach(m=>{const y=m.offset,C=y==h,S=C&&f||{};Object.keys(m).forEach(T=>{let x=T,R=m[T];if("offset"!==T)switch(x=t.normalizePropertyName(x,a),R){case"!":R=r[T];break;case Ba:R=s[T];break;default:R=t.normalizeStyleValue(T,x,R,a)}S[x]=R}),C||u.push(S),f=S,h=y}),a.length)throw function IF(n){return new ue(3502,Tt)}();return u}function ID(n,t,e,i){switch(t){case"start":n.onStart(()=>i(e&&AD(e,"start",n)));break;case"done":n.onDone(()=>i(e&&AD(e,"done",n)));break;case"destroy":n.onDestroy(()=>i(e&&AD(e,"destroy",n)))}}function AD(n,t,e){const s=xD(n.element,n.triggerName,n.fromState,n.toState,t||n.phaseName,e.totalTime??n.totalTime,!!e.disabled),a=n._data;return null!=a&&(s._data=a),s}function xD(n,t,e,i,r="",s=0,a){return{element:n,triggerName:t,fromState:e,toState:i,phaseName:r,totalTime:s,disabled:!!a}}function fs(n,t,e){let i;return n instanceof Map?(i=n.get(t),i||n.set(t,i=e)):(i=n[t],i||(i=n[t]=e)),i}function YM(n){const t=n.indexOf(":");return[n.substring(1,t),n.substr(t+1)]}let PD=(n,t)=>!1,KM=(n,t,e)=>[],XM=null;function RD(n){const t=n.parentNode||n.host;return t===XM?null:t}(MD()||typeof Element<"u")&&(BF()?(XM=(()=>document.documentElement)(),PD=(n,t)=>{for(;t;){if(t===n)return!0;t=RD(t)}return!1}):PD=(n,t)=>n.contains(t),KM=(n,t,e)=>{if(e)return Array.from(n.querySelectorAll(t));const i=n.querySelector(t);return i?[i]:[]});let _c=null,QM=!1;function JM(n){_c||(_c=function UF(){return typeof document<"u"?document.body:null}()||{},QM=!!_c.style&&"WebkitAppearance"in _c.style);let t=!0;return _c.style&&!function HF(n){return"ebkit"==n.substring(1,6)}(n)&&(t=n in _c.style,!t&&QM&&(t="Webkit"+n.charAt(0).toUpperCase()+n.substr(1)in _c.style)),t}const eI=PD,tI=KM;let nI=(()=>{class n{validateStyleProperty(e){return JM(e)}matchesElement(e,i){return!1}containsElement(e,i){return eI(e,i)}getParentElement(e){return RD(e)}query(e,i,r){return tI(e,i,r)}computeStyle(e,i,r){return r||""}animate(e,i,r,s,a,u=[],h){return new jp(r,s)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})(),kD=(()=>{class n{}return n.NOOP=new nI,n})();const OD="ng-enter",a_="ng-leave",l_="ng-trigger",u_=".ng-trigger",rI="ng-animating",LD=".ng-animating";function yc(n){if("number"==typeof n)return n;const t=n.match(/^(-?[\.\d]+)(m?s)/);return!t||t.length<2?0:ND(parseFloat(t[1]),t[2])}function ND(n,t){return"s"===t?1e3*n:n}function c_(n,t,e){return n.hasOwnProperty("duration")?n:function WF(n,t,e){let r,s=0,a="";if("string"==typeof n){const u=n.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===u)return t.push(ZM()),{duration:0,delay:0,easing:""};r=ND(parseFloat(u[1]),u[2]);const h=u[3];null!=h&&(s=ND(parseFloat(h),u[4]));const f=u[5];f&&(a=f)}else r=n;if(!e){let u=!1,h=t.length;r<0&&(t.push(function oF(){return new ue(3100,Tt)}()),u=!0),s<0&&(t.push(function aF(){return new ue(3101,Tt)}()),u=!0),u&&t.splice(h,0,ZM())}return{duration:r,delay:s,easing:a}}(n,t,e)}function vh(n,t={}){return Object.keys(n).forEach(e=>{t[e]=n[e]}),t}function nu(n,t,e={}){if(t)for(let i in n)e[i]=n[i];else vh(n,e);return e}function oI(n,t,e){return e?t+":"+e+";":""}function aI(n){let t="";for(let e=0;e{const r=VD(i);e&&!e.hasOwnProperty(i)&&(e[i]=n.style[r]),n.style[r]=t[i]}),MD()&&aI(n))}function wc(n,t){n.style&&(Object.keys(t).forEach(e=>{const i=VD(e);n.style[i]=""}),MD()&&aI(n))}function zp(n){return Array.isArray(n)?1==n.length?n[0]:jM(n):n}const FD=new RegExp("{{\\s*(.+?)\\s*}}","g");function lI(n){let t=[];if("string"==typeof n){let e;for(;e=FD.exec(n);)t.push(e[1]);FD.lastIndex=0}return t}function d_(n,t,e){const i=n.toString(),r=i.replace(FD,(s,a)=>{let u=t[a];return t.hasOwnProperty(a)||(e.push(function uF(n){return new ue(3003,Tt)}()),u=""),u.toString()});return r==i?n:r}function h_(n){const t=[];let e=n.next();for(;!e.done;)t.push(e.value),e=n.next();return t}const $F=/-+([a-z0-9])/g;function VD(n){return n.replace($F,(...t)=>t[1].toUpperCase())}function ZF(n){return n.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function ps(n,t,e){switch(t.type){case 7:return n.visitTrigger(t,e);case 0:return n.visitState(t,e);case 1:return n.visitTransition(t,e);case 2:return n.visitSequence(t,e);case 3:return n.visitGroup(t,e);case 4:return n.visitAnimate(t,e);case 5:return n.visitKeyframes(t,e);case 6:return n.visitStyle(t,e);case 8:return n.visitReference(t,e);case 9:return n.visitAnimateChild(t,e);case 10:return n.visitAnimateRef(t,e);case 11:return n.visitQuery(t,e);case 12:return n.visitStagger(t,e);default:throw function cF(n){return new ue(3004,Tt)}()}}function uI(n,t){return window.getComputedStyle(n)[t]}function JF(n,t){const e=[];return"string"==typeof n?n.split(/\s*,\s*/).forEach(i=>function eV(n,t,e){if(":"==n[0]){const h=function tV(n,t){switch(n){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}(n,e);if("function"==typeof h)return void t.push(h);n=h}const i=n.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function SF(n){return new ue(3015,Tt)}()),t;const r=i[1],s=i[2],a=i[3];t.push(cI(r,a));"<"==s[0]&&!("*"==r&&"*"==a)&&t.push(cI(a,r))}(i,e,t)):e.push(n),e}const m_=new Set(["true","1"]),v_=new Set(["false","0"]);function cI(n,t){const e=m_.has(n)||v_.has(n),i=m_.has(t)||v_.has(t);return(r,s)=>{let a="*"==n||n==r,u="*"==t||t==s;return!a&&e&&"boolean"==typeof r&&(a=r?m_.has(n):v_.has(n)),!u&&i&&"boolean"==typeof s&&(u=s?m_.has(t):v_.has(t)),a&&u}}const nV=new RegExp("s*:selfs*,?","g");function BD(n,t,e,i){return new iV(n).build(t,e,i)}class iV{constructor(t){this._driver=t}build(t,e,i){const r=new oV(e);this._resetContextStyleTimingState(r);const s=ps(this,zp(t),r);return r.unsupportedCSSPropertiesFound.size&&r.unsupportedCSSPropertiesFound.keys(),s}_resetContextStyleTimingState(t){t.currentQuerySelector="",t.collectedStyles={},t.collectedStyles[""]={},t.currentTime=0}visitTrigger(t,e){let i=e.queryCount=0,r=e.depCount=0;const s=[],a=[];return"@"==t.name.charAt(0)&&e.errors.push(function hF(){return new ue(3006,Tt)}()),t.definitions.forEach(u=>{if(this._resetContextStyleTimingState(e),0==u.type){const h=u,f=h.name;f.toString().split(/\s*,\s*/).forEach(m=>{h.name=m,s.push(this.visitState(h,e))}),h.name=f}else if(1==u.type){const h=this.visitTransition(u,e);i+=h.queryCount,r+=h.depCount,a.push(h)}else e.errors.push(function fF(){return new ue(3007,Tt)}())}),{type:7,name:t.name,states:s,transitions:a,queryCount:i,depCount:r,options:null}}visitState(t,e){const i=this.visitStyle(t.styles,e),r=t.options&&t.options.params||null;if(i.containsDynamicStyles){const s=new Set,a=r||{};i.styles.forEach(u=>{if(__(u)){const h=u;Object.keys(h).forEach(f=>{lI(h[f]).forEach(m=>{a.hasOwnProperty(m)||s.add(m)})})}}),s.size&&(h_(s.values()),e.errors.push(function pF(n,t){return new ue(3008,Tt)}()))}return{type:0,name:t.name,style:i,options:r?{params:r}:null}}visitTransition(t,e){e.queryCount=0,e.depCount=0;const i=ps(this,zp(t.animation),e);return{type:1,matchers:JF(t.expr,e.errors),animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Cc(t.options)}}visitSequence(t,e){return{type:2,steps:t.steps.map(i=>ps(this,i,e)),options:Cc(t.options)}}visitGroup(t,e){const i=e.currentTime;let r=0;const s=t.steps.map(a=>{e.currentTime=i;const u=ps(this,a,e);return r=Math.max(r,e.currentTime),u});return e.currentTime=r,{type:3,steps:s,options:Cc(t.options)}}visitAnimate(t,e){const i=function lV(n,t){let e=null;if(n.hasOwnProperty("duration"))e=n;else if("number"==typeof n)return HD(c_(n,t).duration,0,"");const i=n;if(i.split(/\s+/).some(s=>"{"==s.charAt(0)&&"{"==s.charAt(1))){const s=HD(0,0,"");return s.dynamic=!0,s.strValue=i,s}return e=e||c_(i,t),HD(e.duration,e.delay,e.easing)}(t.timings,e.errors);e.currentAnimateTimings=i;let r,s=t.styles?t.styles:s_({});if(5==s.type)r=this.visitKeyframes(s,e);else{let a=t.styles,u=!1;if(!a){u=!0;const f={};i.easing&&(f.easing=i.easing),a=s_(f)}e.currentTime+=i.duration+i.delay;const h=this.visitStyle(a,e);h.isEmptyStep=u,r=h}return e.currentAnimateTimings=null,{type:4,timings:i,style:r,options:null}}visitStyle(t,e){const i=this._makeStyleAst(t,e);return this._validateStyleAst(i,e),i}_makeStyleAst(t,e){const i=[];Array.isArray(t.styles)?t.styles.forEach(a=>{"string"==typeof a?a==Ba?i.push(a):e.errors.push(function gF(n){return new ue(3002,Tt)}()):i.push(a)}):i.push(t.styles);let r=!1,s=null;return i.forEach(a=>{if(__(a)){const u=a,h=u.easing;if(h&&(s=h,delete u.easing),!r)for(let f in u)if(u[f].toString().indexOf("{{")>=0){r=!0;break}}}),{type:6,styles:i,easing:s,offset:t.offset,containsDynamicStyles:r,options:null}}_validateStyleAst(t,e){const i=e.currentAnimateTimings;let r=e.currentTime,s=e.currentTime;i&&s>0&&(s-=i.duration+i.delay),t.styles.forEach(a=>{"string"!=typeof a&&Object.keys(a).forEach(u=>{if(!this._driver.validateStyleProperty(u))return delete a[u],void e.unsupportedCSSPropertiesFound.add(u);const h=e.collectedStyles[e.currentQuerySelector],f=h[u];let m=!0;f&&(s!=r&&s>=f.startTime&&r<=f.endTime&&(e.errors.push(function mF(n,t,e,i,r){return new ue(3010,Tt)}()),m=!1),s=f.startTime),m&&(h[u]={startTime:s,endTime:r}),e.options&&function GF(n,t,e){const i=t.params||{},r=lI(n);r.length&&r.forEach(s=>{i.hasOwnProperty(s)||e.push(function lF(n){return new ue(3001,Tt)}())})}(a[u],e.options,e.errors)})})}visitKeyframes(t,e){const i={type:5,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function vF(){return new ue(3011,Tt)}()),i;let s=0;const a=[];let u=!1,h=!1,f=0;const m=t.steps.map(F=>{const O=this._makeStyleAst(F,e);let G=null!=O.offset?O.offset:function aV(n){if("string"==typeof n)return null;let t=null;if(Array.isArray(n))n.forEach(e=>{if(__(e)&&e.hasOwnProperty("offset")){const i=e;t=parseFloat(i.offset),delete i.offset}});else if(__(n)&&n.hasOwnProperty("offset")){const e=n;t=parseFloat(e.offset),delete e.offset}return t}(O.styles),Y=0;return null!=G&&(s++,Y=O.offset=G),h=h||Y<0||Y>1,u=u||Y0&&s{const G=C>0?O==S?1:C*O:a[O],Y=G*R;e.currentTime=T+x.delay+Y,x.duration=Y,this._validateStyleAst(F,e),F.offset=G,i.styles.push(F)}),i}visitReference(t,e){return{type:8,animation:ps(this,zp(t.animation),e),options:Cc(t.options)}}visitAnimateChild(t,e){return e.depCount++,{type:9,options:Cc(t.options)}}visitAnimateRef(t,e){return{type:10,animation:this.visitReference(t.animation,e),options:Cc(t.options)}}visitQuery(t,e){const i=e.currentQuerySelector,r=t.options||{};e.queryCount++,e.currentQuery=t;const[s,a]=function rV(n){const t=!!n.split(/\s*,\s*/).find(e=>":self"==e);return t&&(n=n.replace(nV,"")),n=n.replace(/@\*/g,u_).replace(/@\w+/g,e=>u_+"-"+e.substr(1)).replace(/:animating/g,LD),[n,t]}(t.selector);e.currentQuerySelector=i.length?i+" "+s:s,fs(e.collectedStyles,e.currentQuerySelector,{});const u=ps(this,zp(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:11,selector:s,limit:r.limit||0,optional:!!r.optional,includeSelf:a,animation:u,originalSelector:t.selector,options:Cc(t.options)}}visitStagger(t,e){e.currentQuery||e.errors.push(function CF(){return new ue(3013,Tt)}());const i="full"===t.timings?{duration:0,delay:0,easing:"full"}:c_(t.timings,e.errors,!0);return{type:12,animation:ps(this,zp(t.animation),e),timings:i,options:null}}}class oV{constructor(t){this.errors=t,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles={},this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function __(n){return!Array.isArray(n)&&"object"==typeof n}function Cc(n){return n?(n=vh(n)).params&&(n.params=function sV(n){return n?vh(n):null}(n.params)):n={},n}function HD(n,t,e){return{duration:n,delay:t,easing:e}}function UD(n,t,e,i,r,s,a=null,u=!1){return{type:1,element:n,keyframes:t,preStyleProps:e,postStyleProps:i,duration:r,delay:s,totalTime:r+s,easing:a,subTimeline:u}}class y_{constructor(){this._map=new Map}get(t){return this._map.get(t)||[]}append(t,e){let i=this._map.get(t);i||this._map.set(t,i=[]),i.push(...e)}has(t){return this._map.has(t)}clear(){this._map.clear()}}const dV=new RegExp(":enter","g"),fV=new RegExp(":leave","g");function jD(n,t,e,i,r,s={},a={},u,h,f=[]){return(new pV).buildKeyframes(n,t,e,i,r,s,a,u,h,f)}class pV{buildKeyframes(t,e,i,r,s,a,u,h,f,m=[]){f=f||new y_;const y=new zD(t,e,f,r,s,m,[]);y.options=h,y.currentTimeline.setStyles([a],null,y.errors,h),ps(this,i,y);const C=y.timelines.filter(S=>S.containsAnimation());if(Object.keys(u).length){let S;for(let T=C.length-1;T>=0;T--){const x=C[T];if(x.element===e){S=x;break}}S&&!S.allowOnlyTimelineStyles()&&S.setStyles([u],null,y.errors,h)}return C.length?C.map(S=>S.buildKeyframes()):[UD(e,[],[],[],0,0,"",!1)]}visitTrigger(t,e){}visitState(t,e){}visitTransition(t,e){}visitAnimateChild(t,e){const i=e.subInstructions.get(e.element);if(i){const r=e.createSubContext(t.options),s=e.currentTimeline.currentTime,a=this._visitSubInstructions(i,r,r.options);s!=a&&e.transformIntoNewTimeline(a)}e.previousNode=t}visitAnimateRef(t,e){const i=e.createSubContext(t.options);i.transformIntoNewTimeline(),this.visitReference(t.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=t}_visitSubInstructions(t,e,i){let s=e.currentTimeline.currentTime;const a=null!=i.duration?yc(i.duration):null,u=null!=i.delay?yc(i.delay):null;return 0!==a&&t.forEach(h=>{const f=e.appendInstructionToTimeline(h,a,u);s=Math.max(s,f.duration+f.delay)}),s}visitReference(t,e){e.updateOptions(t.options,!0),ps(this,t.animation,e),e.previousNode=t}visitSequence(t,e){const i=e.subContextCount;let r=e;const s=t.options;if(s&&(s.params||s.delay)&&(r=e.createSubContext(s),r.transformIntoNewTimeline(),null!=s.delay)){6==r.previousNode.type&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=w_);const a=yc(s.delay);r.delayNextStep(a)}t.steps.length&&(t.steps.forEach(a=>ps(this,a,r)),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>i&&r.transformIntoNewTimeline()),e.previousNode=t}visitGroup(t,e){const i=[];let r=e.currentTimeline.currentTime;const s=t.options&&t.options.delay?yc(t.options.delay):0;t.steps.forEach(a=>{const u=e.createSubContext(t.options);s&&u.delayNextStep(s),ps(this,a,u),r=Math.max(r,u.currentTimeline.currentTime),i.push(u.currentTimeline)}),i.forEach(a=>e.currentTimeline.mergeTimelineCollectedStyles(a)),e.transformIntoNewTimeline(r),e.previousNode=t}_visitTiming(t,e){if(t.dynamic){const i=t.strValue;return c_(e.params?d_(i,e.params,e.errors):i,e.errors)}return{duration:t.duration,delay:t.delay,easing:t.easing}}visitAnimate(t,e){const i=e.currentAnimateTimings=this._visitTiming(t.timings,e),r=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),r.snapshotCurrentStyles());const s=t.style;5==s.type?this.visitKeyframes(s,e):(e.incrementTime(i.duration),this.visitStyle(s,e),r.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t}visitStyle(t,e){const i=e.currentTimeline,r=e.currentAnimateTimings;!r&&i.getCurrentStyleProperties().length&&i.forwardFrame();const s=r&&r.easing||t.easing;t.isEmptyStep?i.applyEmptyStep(s):i.setStyles(t.styles,s,e.errors,e.options),e.previousNode=t}visitKeyframes(t,e){const i=e.currentAnimateTimings,r=e.currentTimeline.duration,s=i.duration,u=e.createSubContext().currentTimeline;u.easing=i.easing,t.styles.forEach(h=>{u.forwardTime((h.offset||0)*s),u.setStyles(h.styles,h.easing,e.errors,e.options),u.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(u),e.transformIntoNewTimeline(r+s),e.previousNode=t}visitQuery(t,e){const i=e.currentTimeline.currentTime,r=t.options||{},s=r.delay?yc(r.delay):0;s&&(6===e.previousNode.type||0==i&&e.currentTimeline.getCurrentStyleProperties().length)&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=w_);let a=i;const u=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!r.optional,e.errors);e.currentQueryTotal=u.length;let h=null;u.forEach((f,m)=>{e.currentQueryIndex=m;const y=e.createSubContext(t.options,f);s&&y.delayNextStep(s),f===e.element&&(h=y.currentTimeline),ps(this,t.animation,y),y.currentTimeline.applyStylesToKeyframe(),a=Math.max(a,y.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(a),h&&(e.currentTimeline.mergeTimelineCollectedStyles(h),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t}visitStagger(t,e){const i=e.parentContext,r=e.currentTimeline,s=t.timings,a=Math.abs(s.duration),u=a*(e.currentQueryTotal-1);let h=a*e.currentQueryIndex;switch(s.duration<0?"reverse":s.easing){case"reverse":h=u-h;break;case"full":h=i.currentStaggerTime}const m=e.currentTimeline;h&&m.delayNextStep(h);const y=m.currentTime;ps(this,t.animation,e),e.previousNode=t,i.currentStaggerTime=r.currentTime-y+(r.startTime-i.currentTimeline.startTime)}}const w_={};class zD{constructor(t,e,i,r,s,a,u,h){this._driver=t,this.element=e,this.subInstructions=i,this._enterClassName=r,this._leaveClassName=s,this.errors=a,this.timelines=u,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=w_,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=h||new C_(this._driver,e,0),u.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(t,e){if(!t)return;const i=t;let r=this.options;null!=i.duration&&(r.duration=yc(i.duration)),null!=i.delay&&(r.delay=yc(i.delay));const s=i.params;if(s){let a=r.params;a||(a=this.options.params={}),Object.keys(s).forEach(u=>{(!e||!a.hasOwnProperty(u))&&(a[u]=d_(s[u],a,this.errors))})}}_copyOptions(){const t={};if(this.options){const e=this.options.params;if(e){const i=t.params={};Object.keys(e).forEach(r=>{i[r]=e[r]})}}return t}createSubContext(t=null,e,i){const r=e||this.element,s=new zD(this._driver,r,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(r,i||0));return s.previousNode=this.previousNode,s.currentAnimateTimings=this.currentAnimateTimings,s.options=this._copyOptions(),s.updateOptions(t),s.currentQueryIndex=this.currentQueryIndex,s.currentQueryTotal=this.currentQueryTotal,s.parentContext=this,this.subContextCount++,s}transformIntoNewTimeline(t){return this.previousNode=w_,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(t,e,i){const r={duration:e??t.duration,delay:this.currentTimeline.currentTime+(i??0)+t.delay,easing:""},s=new gV(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,r,t.stretchStartingKeyframe);return this.timelines.push(s),r}incrementTime(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)}delayNextStep(t){t>0&&this.currentTimeline.delayNextStep(t)}invokeQuery(t,e,i,r,s,a){let u=[];if(r&&u.push(this.element),t.length>0){t=(t=t.replace(dV,"."+this._enterClassName)).replace(fV,"."+this._leaveClassName);let f=this._driver.query(this.element,t,1!=i);0!==i&&(f=i<0?f.slice(f.length+i,f.length):f.slice(0,i)),u.push(...f)}return!s&&0==u.length&&a.push(function DF(n){return new ue(3014,Tt)}()),u}}class C_{constructor(t,e,i,r){this._driver=t,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=r,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.getCurrentStyleProperties().length>0;default:return!0}}getCurrentStyleProperties(){return Object.keys(this._currentKeyframe)}get currentTime(){return this.startTime+this.duration}delayNextStep(t){const e=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t}fork(t,e){return this.applyStylesToKeyframe(),new C_(this._driver,t,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=Object.create(this._backFill,{}),this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()}_updateStyle(t,e){this._localTimelineStyles[t]=e,this._globalTimelineStyles[t]=e,this._styleSummary[t]={time:this.currentTime,value:e}}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(t){t&&(this._previousKeyframe.easing=t),Object.keys(this._globalTimelineStyles).forEach(e=>{this._backFill[e]=this._globalTimelineStyles[e]||Ba,this._currentKeyframe[e]=Ba}),this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(t,e,i,r){e&&(this._previousKeyframe.easing=e);const s=r&&r.params||{},a=function mV(n,t){const e={};let i;return n.forEach(r=>{"*"===r?(i=i||Object.keys(t),i.forEach(s=>{e[s]=Ba})):nu(r,!1,e)}),e}(t,this._globalTimelineStyles);Object.keys(a).forEach(u=>{const h=d_(a[u],s,i);this._pendingStyles[u]=h,this._localTimelineStyles.hasOwnProperty(u)||(this._backFill[u]=this._globalTimelineStyles.hasOwnProperty(u)?this._globalTimelineStyles[u]:Ba),this._updateStyle(u,h)})}applyStylesToKeyframe(){const t=this._pendingStyles,e=Object.keys(t);0!=e.length&&(this._pendingStyles={},e.forEach(i=>{this._currentKeyframe[i]=t[i]}),Object.keys(this._localTimelineStyles).forEach(i=>{this._currentKeyframe.hasOwnProperty(i)||(this._currentKeyframe[i]=this._localTimelineStyles[i])}))}snapshotCurrentStyles(){Object.keys(this._localTimelineStyles).forEach(t=>{const e=this._localTimelineStyles[t];this._pendingStyles[t]=e,this._updateStyle(t,e)})}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const t=[];for(let e in this._currentKeyframe)t.push(e);return t}mergeTimelineCollectedStyles(t){Object.keys(t._styleSummary).forEach(e=>{const i=this._styleSummary[e],r=t._styleSummary[e];(!i||r.time>i.time)&&this._updateStyle(e,r.value)})}buildKeyframes(){this.applyStylesToKeyframe();const t=new Set,e=new Set,i=1===this._keyframes.size&&0===this.duration;let r=[];this._keyframes.forEach((u,h)=>{const f=nu(u,!0);Object.keys(f).forEach(m=>{const y=f[m];"!"==y?t.add(m):y==Ba&&e.add(m)}),i||(f.offset=h/this.duration),r.push(f)});const s=t.size?h_(t.values()):[],a=e.size?h_(e.values()):[];if(i){const u=r[0],h=vh(u);u.offset=0,h.offset=1,r=[u,h]}return UD(this.element,r,s,a,this.duration,this.startTime,this.easing,!1)}}class gV extends C_{constructor(t,e,i,r,s,a,u=!1){super(t,e,a.delay),this.keyframes=i,this.preStyleProps=r,this.postStyleProps=s,this._stretchStartingKeyframe=u,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let t=this.keyframes,{delay:e,duration:i,easing:r}=this.timings;if(this._stretchStartingKeyframe&&e){const s=[],a=i+e,u=e/a,h=nu(t[0],!1);h.offset=0,s.push(h);const f=nu(t[0],!1);f.offset=fI(u),s.push(f);const m=t.length-1;for(let y=1;y<=m;y++){let C=nu(t[y],!1);C.offset=fI((e+C.offset*i)/a),s.push(C)}i=a,e=0,r="",t=s}return UD(this.element,t,this.preStyleProps,this.postStyleProps,i,e,r,!0)}}function fI(n,t=3){const e=Math.pow(10,t-1);return Math.round(n*e)/e}class WD{}class vV extends WD{normalizePropertyName(t,e){return VD(t)}normalizeStyleValue(t,e,i,r){let s="";const a=i.toString().trim();if(_V[e]&&0!==i&&"0"!==i)if("number"==typeof i)s="px";else{const u=i.match(/^[+-]?[\d\.]+([a-z]*)$/);u&&0==u[1].length&&r.push(function dF(n,t){return new ue(3005,Tt)}())}return a+s}}const _V=(()=>function yV(n){const t={};return n.forEach(e=>t[e]=!0),t}("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".split(",")))();function pI(n,t,e,i,r,s,a,u,h,f,m,y,C){return{type:0,element:n,triggerName:t,isRemovalTransition:r,fromState:e,fromStyles:s,toState:i,toStyles:a,timelines:u,queriedElements:h,preStyleProps:f,postStyleProps:m,totalTime:y,errors:C}}const GD={};class gI{constructor(t,e,i){this._triggerName=t,this.ast=e,this._stateStyles=i}match(t,e,i,r){return function wV(n,t,e,i,r){return n.some(s=>s(t,e,i,r))}(this.ast.matchers,t,e,i,r)}buildStyles(t,e,i){const r=this._stateStyles["*"],s=this._stateStyles[t],a=r?r.buildStyles(e,i):{};return s?s.buildStyles(e,i):a}build(t,e,i,r,s,a,u,h,f,m){const y=[],C=this.ast.options&&this.ast.options.params||GD,T=this.buildStyles(i,u&&u.params||GD,y),x=h&&h.params||GD,R=this.buildStyles(r,x,y),F=new Set,O=new Map,G=new Map,Y="void"===r,re={params:{...C,...x}},Ce=m?[]:jD(t,e,this.ast.animation,s,a,T,R,re,f,y);let Ze=0;if(Ce.forEach(De=>{Ze=Math.max(De.duration+De.delay,Ze)}),y.length)return pI(e,this._triggerName,i,r,Y,T,R,[],[],O,G,Ze,y);Ce.forEach(De=>{const be=De.element,de=fs(O,be,{});De.preStyleProps.forEach(ht=>de[ht]=!0);const ie=fs(G,be,{});De.postStyleProps.forEach(ht=>ie[ht]=!0),be!==e&&F.add(be)});const Ve=h_(F.values());return pI(e,this._triggerName,i,r,Y,T,R,Ce,Ve,O,G,Ze)}}class CV{constructor(t,e,i){this.styles=t,this.defaultParams=e,this.normalizer=i}buildStyles(t,e){const i={},r=vh(this.defaultParams);return Object.keys(t).forEach(s=>{const a=t[s];null!=a&&(r[s]=a)}),this.styles.styles.forEach(s=>{if("string"!=typeof s){const a=s;Object.keys(a).forEach(u=>{let h=a[u];h.length>1&&(h=d_(h,r,e));const f=this.normalizer.normalizePropertyName(u,e);h=this.normalizer.normalizeStyleValue(u,f,h,e),i[f]=h})}}),i}}class SV{constructor(t,e,i){this.name=t,this.ast=e,this._normalizer=i,this.transitionFactories=[],this.states={},e.states.forEach(r=>{this.states[r.name]=new CV(r.style,r.options&&r.options.params||{},i)}),mI(this.states,"true","1"),mI(this.states,"false","0"),e.transitions.forEach(r=>{this.transitionFactories.push(new gI(t,r,this.states))}),this.fallbackTransition=function bV(n,t,e){return new gI(n,{type:1,animation:{type:2,steps:[],options:null},matchers:[(a,u)=>!0],options:null,queryCount:0,depCount:0},t)}(t,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(t,e,i,r){return this.transitionFactories.find(a=>a.match(t,e,i,r))||null}matchStyles(t,e,i){return this.fallbackTransition.buildStyles(t,e,i)}}function mI(n,t,e){n.hasOwnProperty(t)?n.hasOwnProperty(e)||(n[e]=n[t]):n.hasOwnProperty(e)&&(n[t]=n[e])}const EV=new y_;class TV{constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i,this._animations={},this._playersById={},this.players=[]}register(t,e){const i=[],s=BD(this._driver,e,i,[]);if(i.length)throw function AF(n){return new ue(3503,Tt)}();this._animations[t]=s}_buildPlayer(t,e,i){const r=t.element,s=qM(0,this._normalizer,0,t.keyframes,e,i);return this._driver.animate(r,s,t.duration,t.delay,t.easing,[],!0)}create(t,e,i={}){const r=[],s=this._animations[t];let a;const u=new Map;if(s?(a=jD(this._driver,e,s,OD,a_,{},{},i,EV,r),a.forEach(m=>{const y=fs(u,m.element,{});m.postStyleProps.forEach(C=>y[C]=null)})):(r.push(function xF(){return new ue(3300,Tt)}()),a=[]),r.length)throw function PF(n){return new ue(3504,Tt)}();u.forEach((m,y)=>{Object.keys(m).forEach(C=>{m[C]=this._driver.computeStyle(y,C,Ba)})});const f=tu(a.map(m=>{const y=u.get(m.element);return this._buildPlayer(m,{},y)}));return this._playersById[t]=f,f.onDestroy(()=>this.destroy(t)),this.players.push(f),f}destroy(t){const e=this._getPlayer(t);e.destroy(),delete this._playersById[t];const i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(t){const e=this._playersById[t];if(!e)throw function RF(n){return new ue(3301,Tt)}();return e}listen(t,e,i,r){const s=xD(e,"","","");return ID(this._getPlayer(t),i,s,r),()=>{}}command(t,e,i,r){if("register"==i)return void this.register(t,r[0]);if("create"==i)return void this.create(t,e,r[0]||{});const s=this._getPlayer(t);switch(i){case"play":s.play();break;case"pause":s.pause();break;case"reset":s.reset();break;case"restart":s.restart();break;case"finish":s.finish();break;case"init":s.init();break;case"setPosition":s.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(t)}}}const vI="ng-animate-queued",$D="ng-animate-disabled",PV=[],_I={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},RV={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},$s="__ng_removed";class ZD{constructor(t,e=""){this.namespaceId=e;const i=t&&t.hasOwnProperty("value");if(this.value=function NV(n){return n??null}(i?t.value:t),i){const s=vh(t);delete s.value,this.options=s}else this.options={};this.options.params||(this.options.params={})}get params(){return this.options.params}absorbOptions(t){const e=t.params;if(e){const i=this.options.params;Object.keys(e).forEach(r=>{null==i[r]&&(i[r]=e[r])})}}}const Wp="void",qD=new ZD(Wp);class kV{constructor(t,e,i){this.id=t,this.hostElement=e,this._engine=i,this.players=[],this._triggers={},this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+t,Zs(e,this._hostClassName)}listen(t,e,i,r){if(!this._triggers.hasOwnProperty(e))throw function kF(n,t){return new ue(3302,Tt)}();if(null==i||0==i.length)throw function OF(n){return new ue(3303,Tt)}();if(!function FV(n){return"start"==n||"done"==n}(i))throw function LF(n,t){return new ue(3400,Tt)}();const s=fs(this._elementListeners,t,[]),a={name:e,phase:i,callback:r};s.push(a);const u=fs(this._engine.statesByElement,t,{});return u.hasOwnProperty(e)||(Zs(t,l_),Zs(t,l_+"-"+e),u[e]=qD),()=>{this._engine.afterFlush(()=>{const h=s.indexOf(a);h>=0&&s.splice(h,1),this._triggers[e]||delete u[e]})}}register(t,e){return!this._triggers[t]&&(this._triggers[t]=e,!0)}_getTrigger(t){const e=this._triggers[t];if(!e)throw function NF(n){return new ue(3401,Tt)}();return e}trigger(t,e,i,r=!0){const s=this._getTrigger(e),a=new YD(this.id,e,t);let u=this._engine.statesByElement.get(t);u||(Zs(t,l_),Zs(t,l_+"-"+e),this._engine.statesByElement.set(t,u={}));let h=u[e];const f=new ZD(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&h&&f.absorbOptions(h.options),u[e]=f,h||(h=qD),f.value!==Wp&&h.value===f.value){if(!function HV(n,t){const e=Object.keys(n),i=Object.keys(t);if(e.length!=i.length)return!1;for(let r=0;r{wc(t,R),va(t,F)})}return}const C=fs(this._engine.playersByElement,t,[]);C.forEach(x=>{x.namespaceId==this.id&&x.triggerName==e&&x.queued&&x.destroy()});let S=s.matchTransition(h.value,f.value,t,f.params),T=!1;if(!S){if(!r)return;S=s.fallbackTransition,T=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:S,fromState:h,toState:f,player:a,isFallbackTransition:T}),T||(Zs(t,vI),a.onStart(()=>{_h(t,vI)})),a.onDone(()=>{let x=this.players.indexOf(a);x>=0&&this.players.splice(x,1);const R=this._engine.playersByElement.get(t);if(R){let F=R.indexOf(a);F>=0&&R.splice(F,1)}}),this.players.push(a),C.push(a),a}deregister(t){delete this._triggers[t],this._engine.statesByElement.forEach((e,i)=>{delete e[t]}),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(r=>r.name!=t))})}clearElementCache(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);const e=this._engine.playersByElement.get(t);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(t))}_signalRemovalForInnerTriggers(t,e){const i=this._engine.driver.query(t,u_,!0);i.forEach(r=>{if(r[$s])return;const s=this._engine.fetchNamespacesByElement(r);s.size?s.forEach(a=>a.triggerLeaveAnimation(r,e,!1,!0)):this.clearElementCache(r)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(r=>this.clearElementCache(r)))}triggerLeaveAnimation(t,e,i,r){const s=this._engine.statesByElement.get(t),a=new Map;if(s){const u=[];if(Object.keys(s).forEach(h=>{if(a.set(h,s[h].value),this._triggers[h]){const f=this.trigger(t,h,Wp,r);f&&u.push(f)}}),u.length)return this._engine.markElementAsRemoved(this.id,t,!0,e,a),i&&tu(u).onDone(()=>this._engine.processLeaveNode(t)),!0}return!1}prepareLeaveAnimationListeners(t){const e=this._elementListeners.get(t),i=this._engine.statesByElement.get(t);if(e&&i){const r=new Set;e.forEach(s=>{const a=s.name;if(r.has(a))return;r.add(a);const h=this._triggers[a].fallbackTransition,f=i[a]||qD,m=new ZD(Wp),y=new YD(this.id,a,t);this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:a,transition:h,fromState:f,toState:m,player:y,isFallbackTransition:!0})})}}removeNode(t,e){const i=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,e),this.triggerLeaveAnimation(t,e,!0))return;let r=!1;if(i.totalAnimations){const s=i.players.length?i.playersByQueriedElement.get(t):[];if(s&&s.length)r=!0;else{let a=t;for(;a=a.parentNode;)if(i.statesByElement.get(a)){r=!0;break}}}if(this.prepareLeaveAnimationListeners(t),r)i.markElementAsRemoved(this.id,t,!1,e);else{const s=t[$s];(!s||s===_I)&&(i.afterFlush(()=>this.clearElementCache(t)),i.destroyInnerAnimations(t),i._onRemovalComplete(t,e))}}insertNode(t,e){Zs(t,this._hostClassName)}drainQueuedTransitions(t){const e=[];return this._queue.forEach(i=>{const r=i.player;if(r.destroyed)return;const s=i.element,a=this._elementListeners.get(s);a&&a.forEach(u=>{if(u.name==i.triggerName){const h=xD(s,i.triggerName,i.fromState.value,i.toState.value);h._data=t,ID(i.player,u.phase,h,u.callback)}}),r.markedForDestroy?this._engine.afterFlush(()=>{r.destroy()}):e.push(i)}),this._queue=[],e.sort((i,r)=>{const s=i.transition.ast.depCount,a=r.transition.ast.depCount;return 0==s||0==a?s-a:this._engine.driver.containsElement(i.element,r.element)?1:-1})}destroy(t){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,t)}elementContainsData(t){let e=!1;return this._elementListeners.has(t)&&(e=!0),e=!!this._queue.find(i=>i.element===t)||e,e}}class OV{constructor(t,e,i){this.bodyNode=t,this.driver=e,this._normalizer=i,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=(r,s)=>{}}_onRemovalComplete(t,e){this.onRemovalComplete(t,e)}get queuedPlayers(){const t=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&t.push(i)})}),t}createNamespace(t,e){const i=new kV(t,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[t]=i}_balanceNamespaceList(t,e){const i=this._namespaceList,r=this.namespacesByHostElement,s=i.length-1;if(s>=0){let a=!1;if(void 0!==this.driver.getParentElement){let u=this.driver.getParentElement(e);for(;u;){const h=r.get(u);if(h){const f=i.indexOf(h);i.splice(f+1,0,t),a=!0;break}u=this.driver.getParentElement(u)}}else for(let u=s;u>=0;u--)if(this.driver.containsElement(i[u].hostElement,e)){i.splice(u+1,0,t),a=!0;break}a||i.unshift(t)}else i.push(t);return r.set(e,t),t}register(t,e){let i=this._namespaceLookup[t];return i||(i=this.createNamespace(t,e)),i}registerTrigger(t,e,i){let r=this._namespaceLookup[t];r&&r.register(e,i)&&this.totalAnimations++}destroy(t,e){if(!t)return;const i=this._fetchNamespace(t);this.afterFlush(()=>{this.namespacesByHostElement.delete(i.hostElement),delete this._namespaceLookup[t];const r=this._namespaceList.indexOf(i);r>=0&&this._namespaceList.splice(r,1)}),this.afterFlushAnimationsDone(()=>i.destroy(e))}_fetchNamespace(t){return this._namespaceLookup[t]}fetchNamespacesByElement(t){const e=new Set,i=this.statesByElement.get(t);if(i){const r=Object.keys(i);for(let s=0;s=0&&this.collectedLeaveElements.splice(a,1)}if(t){const a=this._fetchNamespace(t);a&&a.insertNode(e,i)}r&&this.collectEnterElement(e)}collectEnterElement(t){this.collectedEnterElements.push(t)}markElementAsDisabled(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),Zs(t,$D)):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),_h(t,$D))}removeNode(t,e,i,r){if(D_(e)){const s=t?this._fetchNamespace(t):null;if(s?s.removeNode(e,r):this.markElementAsRemoved(t,e,!1,r),i){const a=this.namespacesByHostElement.get(e);a&&a.id!==t&&a.removeNode(e,r)}}else this._onRemovalComplete(e,r)}markElementAsRemoved(t,e,i,r,s){this.collectedLeaveElements.push(e),e[$s]={namespaceId:t,setForRemoval:r,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:s}}listen(t,e,i,r,s){return D_(e)?this._fetchNamespace(t).listen(e,i,r,s):()=>{}}_buildInstruction(t,e,i,r,s){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,i,r,t.fromState.options,t.toState.options,e,s)}destroyInnerAnimations(t){let e=this.driver.query(t,u_,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(t,LD,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(t){const e=this.playersByElement.get(t);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(t){const e=this.playersByQueriedElement.get(t);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(t=>{if(this.players.length)return tu(this.players).onDone(()=>t());t()})}processLeaveNode(t){const e=t[$s];if(e&&e.setForRemoval){if(t[$s]=_I,e.namespaceId){this.destroyInnerAnimations(t);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(t)}this._onRemovalComplete(t,e.setForRemoval)}t.classList?.contains($D)&&this.markElementAsDisabled(t,!1),this.driver.query(t,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(t=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,r)=>this._balanceNamespaceList(i,r)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],e.length?tu(e).onDone(()=>{i.forEach(r=>r())}):i.forEach(r=>r())}}reportError(t){throw function FF(n){return new ue(3402,Tt)}()}_flushAnimations(t,e){const i=new y_,r=[],s=new Map,a=[],u=new Map,h=new Map,f=new Map,m=new Set;this.disabledNodes.forEach(le=>{m.add(le);const Se=this.driver.query(le,".ng-animate-queued",!0);for(let xe=0;xe{const xe=OD+x++;T.set(Se,xe),le.forEach(St=>Zs(St,xe))});const R=[],F=new Set,O=new Set;for(let le=0;leF.add(St)):O.add(Se))}const G=new Map,Y=CI(C,Array.from(F));Y.forEach((le,Se)=>{const xe=a_+x++;G.set(Se,xe),le.forEach(St=>Zs(St,xe))}),t.push(()=>{S.forEach((le,Se)=>{const xe=T.get(Se);le.forEach(St=>_h(St,xe))}),Y.forEach((le,Se)=>{const xe=G.get(Se);le.forEach(St=>_h(St,xe))}),R.forEach(le=>{this.processLeaveNode(le)})});const re=[],Ce=[];for(let le=this._namespaceList.length-1;le>=0;le--)this._namespaceList[le].drainQueuedTransitions(e).forEach(xe=>{const St=xe.player,Rt=xe.element;if(re.push(St),this.collectedEnterElements.length){const Mr=Rt[$s];if(Mr&&Mr.setForMove){if(Mr.previousTriggersValues&&Mr.previousTriggersValues.has(xe.triggerName)){const Pc=Mr.previousTriggersValues.get(xe.triggerName),cu=this.statesByElement.get(xe.element);cu&&cu[xe.triggerName]&&(cu[xe.triggerName].value=Pc)}return void St.destroy()}}const Sn=!y||!this.driver.containsElement(y,Rt),bi=G.get(Rt),qs=T.get(Rt),ln=this._buildInstruction(xe,i,qs,bi,Sn);if(ln.errors&&ln.errors.length)return void Ce.push(ln);if(Sn)return St.onStart(()=>wc(Rt,ln.fromStyles)),St.onDestroy(()=>va(Rt,ln.toStyles)),void r.push(St);if(xe.isFallbackTransition)return St.onStart(()=>wc(Rt,ln.fromStyles)),St.onDestroy(()=>va(Rt,ln.toStyles)),void r.push(St);const yg=[];ln.timelines.forEach(Mr=>{Mr.stretchStartingKeyframe=!0,this.disabledNodes.has(Mr.element)||yg.push(Mr)}),ln.timelines=yg,i.append(Rt,ln.timelines),a.push({instruction:ln,player:St,element:Rt}),ln.queriedElements.forEach(Mr=>fs(u,Mr,[]).push(St)),ln.preStyleProps.forEach((Mr,Pc)=>{const cu=Object.keys(Mr);if(cu.length){let Rc=h.get(Pc);Rc||h.set(Pc,Rc=new Set),cu.forEach(_S=>Rc.add(_S))}}),ln.postStyleProps.forEach((Mr,Pc)=>{const cu=Object.keys(Mr);let Rc=f.get(Pc);Rc||f.set(Pc,Rc=new Set),cu.forEach(_S=>Rc.add(_S))})});if(Ce.length){const le=[];Ce.forEach(Se=>{le.push(function VF(n,t){return new ue(3505,Tt)}())}),re.forEach(Se=>Se.destroy()),this.reportError(le)}const Ze=new Map,Ve=new Map;a.forEach(le=>{const Se=le.element;i.has(Se)&&(Ve.set(Se,Se),this._beforeAnimationBuild(le.player.namespaceId,le.instruction,Ze))}),r.forEach(le=>{const Se=le.element;this._getPreviousPlayers(Se,!1,le.namespaceId,le.triggerName,null).forEach(St=>{fs(Ze,Se,[]).push(St),St.destroy()})});const De=R.filter(le=>SI(le,h,f)),be=new Map;wI(be,this.driver,O,f,Ba).forEach(le=>{SI(le,h,f)&&De.push(le)});const ie=new Map;S.forEach((le,Se)=>{wI(ie,this.driver,new Set(le),h,"!")}),De.forEach(le=>{const Se=be.get(le),xe=ie.get(le);be.set(le,{...Se,...xe})});const ht=[],dt=[],Tr={};a.forEach(le=>{const{element:Se,player:xe,instruction:St}=le;if(i.has(Se)){if(m.has(Se))return xe.onDestroy(()=>va(Se,St.toStyles)),xe.disabled=!0,xe.overrideTotalTime(St.totalTime),void r.push(xe);let Rt=Tr;if(Ve.size>1){let bi=Se;const qs=[];for(;bi=bi.parentNode;){const ln=Ve.get(bi);if(ln){Rt=ln;break}qs.push(bi)}qs.forEach(ln=>Ve.set(ln,Rt))}const Sn=this._buildAnimation(xe.namespaceId,St,Ze,s,ie,be);if(xe.setRealPlayer(Sn),Rt===Tr)ht.push(xe);else{const bi=this.playersByElement.get(Rt);bi&&bi.length&&(xe.parentPlayer=tu(bi)),r.push(xe)}}else wc(Se,St.fromStyles),xe.onDestroy(()=>va(Se,St.toStyles)),dt.push(xe),m.has(Se)&&r.push(xe)}),dt.forEach(le=>{const Se=s.get(le.element);if(Se&&Se.length){const xe=tu(Se);le.setRealPlayer(xe)}}),r.forEach(le=>{le.parentPlayer?le.syncPlayerEvents(le.parentPlayer):le.destroy()});for(let le=0;le!Sn.destroyed);Rt.length?VV(this,Se,Rt):this.processLeaveNode(Se)}return R.length=0,ht.forEach(le=>{this.players.push(le),le.onDone(()=>{le.destroy();const Se=this.players.indexOf(le);this.players.splice(Se,1)}),le.play()}),ht}elementContainsData(t,e){let i=!1;const r=e[$s];return r&&r.setForRemoval&&(i=!0),this.playersByElement.has(e)&&(i=!0),this.playersByQueriedElement.has(e)&&(i=!0),this.statesByElement.has(e)&&(i=!0),this._fetchNamespace(t).elementContainsData(e)||i}afterFlush(t){this._flushFns.push(t)}afterFlushAnimationsDone(t){this._whenQuietFns.push(t)}_getPreviousPlayers(t,e,i,r,s){let a=[];if(e){const u=this.playersByQueriedElement.get(t);u&&(a=u)}else{const u=this.playersByElement.get(t);if(u){const h=!s||s==Wp;u.forEach(f=>{f.queued||!h&&f.triggerName!=r||a.push(f)})}}return(i||r)&&(a=a.filter(u=>!(i&&i!=u.namespaceId||r&&r!=u.triggerName))),a}_beforeAnimationBuild(t,e,i){const s=e.element,a=e.isRemovalTransition?void 0:t,u=e.isRemovalTransition?void 0:e.triggerName;for(const h of e.timelines){const f=h.element,m=f!==s,y=fs(i,f,[]);this._getPreviousPlayers(f,m,a,u,e.toState).forEach(S=>{const T=S.getRealPlayer();T.beforeDestroy&&T.beforeDestroy(),S.destroy(),y.push(S)})}wc(s,e.fromStyles)}_buildAnimation(t,e,i,r,s,a){const u=e.triggerName,h=e.element,f=[],m=new Set,y=new Set,C=e.timelines.map(T=>{const x=T.element;m.add(x);const R=x[$s];if(R&&R.removedBeforeQueried)return new jp(T.duration,T.delay);const F=x!==h,O=function BV(n){const t=[];return DI(n,t),t}((i.get(x)||PV).map(Ze=>Ze.getRealPlayer())).filter(Ze=>!!Ze.element&&Ze.element===x),G=s.get(x),Y=a.get(x),re=qM(0,this._normalizer,0,T.keyframes,G,Y),Ce=this._buildPlayer(T,re,O);if(T.subTimeline&&r&&y.add(x),F){const Ze=new YD(t,u,x);Ze.setRealPlayer(Ce),f.push(Ze)}return Ce});f.forEach(T=>{fs(this.playersByQueriedElement,T.element,[]).push(T),T.onDone(()=>function LV(n,t,e){let i;if(n instanceof Map){if(i=n.get(t),i){if(i.length){const r=i.indexOf(e);i.splice(r,1)}0==i.length&&n.delete(t)}}else if(i=n[t],i){if(i.length){const r=i.indexOf(e);i.splice(r,1)}0==i.length&&delete n[t]}return i}(this.playersByQueriedElement,T.element,T))}),m.forEach(T=>Zs(T,rI));const S=tu(C);return S.onDestroy(()=>{m.forEach(T=>_h(T,rI)),va(h,e.toStyles)}),y.forEach(T=>{fs(r,T,[]).push(S)}),S}_buildPlayer(t,e,i){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,i):new jp(t.duration,t.delay)}}class YD{constructor(t,e,i){this.namespaceId=t,this.triggerName=e,this.element=i,this._player=new jp,this._containsRealPlayer=!1,this._queuedCallbacks={},this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(t){this._containsRealPlayer||(this._player=t,Object.keys(this._queuedCallbacks).forEach(e=>{this._queuedCallbacks[e].forEach(i=>ID(t,e,void 0,i))}),this._queuedCallbacks={},this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(t){this.totalTime=t}syncPlayerEvents(t){const e=this._player;e.triggerCallback&&t.onStart(()=>e.triggerCallback("start")),t.onDone(()=>this.finish()),t.onDestroy(()=>this.destroy())}_queueEvent(t,e){fs(this._queuedCallbacks,t,[]).push(e)}onDone(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)}onStart(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)}onDestroy(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)}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(t){this.queued||this._player.setPosition(t)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(t){const e=this._player;e.triggerCallback&&e.triggerCallback(t)}}function D_(n){return n&&1===n.nodeType}function yI(n,t){const e=n.style.display;return n.style.display=t??"none",e}function wI(n,t,e,i,r){const s=[];e.forEach(h=>s.push(yI(h)));const a=[];i.forEach((h,f)=>{const m={};h.forEach(y=>{const C=m[y]=t.computeStyle(f,y,r);(!C||0==C.length)&&(f[$s]=RV,a.push(f))}),n.set(f,m)});let u=0;return e.forEach(h=>yI(h,s[u++])),a}function CI(n,t){const e=new Map;if(n.forEach(u=>e.set(u,[])),0==t.length)return e;const r=new Set(t),s=new Map;function a(u){if(!u)return 1;let h=s.get(u);if(h)return h;const f=u.parentNode;return h=e.has(f)?f:r.has(f)?1:a(f),s.set(u,h),h}return t.forEach(u=>{const h=a(u);1!==h&&e.get(h).push(u)}),e}function Zs(n,t){n.classList?.add(t)}function _h(n,t){n.classList?.remove(t)}function VV(n,t,e){tu(e).onDone(()=>n.processLeaveNode(t))}function DI(n,t){for(let e=0;er.add(s)):t.set(n,i),e.delete(n),!0}class S_{constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(r,s)=>{},this._transitionEngine=new OV(t,e,i),this._timelineEngine=new TV(t,e,i),this._transitionEngine.onRemovalComplete=(r,s)=>this.onRemovalComplete(r,s)}registerTrigger(t,e,i,r,s){const a=t+"-"+r;let u=this._triggerCache[a];if(!u){const h=[],m=BD(this._driver,s,h,[]);if(h.length)throw function MF(n,t){return new ue(3404,Tt)}();u=function DV(n,t,e){return new SV(n,t,e)}(r,m,this._normalizer),this._triggerCache[a]=u}this._transitionEngine.registerTrigger(e,r,u)}register(t,e){this._transitionEngine.register(t,e)}destroy(t,e){this._transitionEngine.destroy(t,e)}onInsert(t,e,i,r){this._transitionEngine.insertNode(t,e,i,r)}onRemove(t,e,i,r){this._transitionEngine.removeNode(t,e,r||!1,i)}disableAnimations(t,e){this._transitionEngine.markElementAsDisabled(t,e)}process(t,e,i,r){if("@"==i.charAt(0)){const[s,a]=YM(i);this._timelineEngine.command(s,e,a,r)}else this._transitionEngine.trigger(t,e,i,r)}listen(t,e,i,r,s){if("@"==i.charAt(0)){const[a,u]=YM(i);return this._timelineEngine.listen(a,e,u,s)}return this._transitionEngine.listen(t,e,i,r,s)}flush(t=-1){this._transitionEngine.flush(t)}get players(){return this._transitionEngine.players.concat(this._timelineEngine.players)}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}}let jV=(()=>{class n{constructor(e,i,r){this._element=e,this._startStyles=i,this._endStyles=r,this._state=0;let s=n.initialStylesByElement.get(e);s||n.initialStylesByElement.set(e,s={}),this._initialStyles=s}start(){this._state<1&&(this._startStyles&&va(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(va(this._element,this._initialStyles),this._endStyles&&(va(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(n.initialStylesByElement.delete(this._element),this._startStyles&&(wc(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(wc(this._element,this._endStyles),this._endStyles=null),va(this._element,this._initialStyles),this._state=3)}}return n.initialStylesByElement=new WeakMap,n})();function KD(n){let t=null;const e=Object.keys(n);for(let i=0;it()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const t=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=t.length?t[t.length-1]:{},this.domPlayer.addEventListener("finish",()=>this._onFinish())}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_triggerWebAnimation(t,e,i){return t.animate(e,i)}onStart(t){this._onStartFns.push(t)}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(t=>t()),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}_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(t=>t()),this._onDestroyFns=[])}setPosition(t){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=t*this.time}getPosition(){return this.domPlayer.currentTime/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const t={};if(this.hasStarted()){const e=this._finalKeyframe;Object.keys(e).forEach(i=>{"offset"!=i&&(t[i]=this._finished?e[i]:uI(this.element,i))})}this.currentSnapshot=t}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class WV{validateStyleProperty(t){return JM(t)}matchesElement(t,e){return!1}containsElement(t,e){return eI(t,e)}getParentElement(t){return RD(t)}query(t,e,i){return tI(t,e,i)}computeStyle(t,e,i){return window.getComputedStyle(t)[e]}animate(t,e,i,r,s,a=[]){const h={duration:i,delay:r,fill:0==r?"both":"forwards"};s&&(h.easing=s);const f={},m=a.filter(C=>C instanceof bI);(function qF(n,t){return 0===n||0===t})(i,r)&&m.forEach(C=>{let S=C.currentSnapshot;Object.keys(S).forEach(T=>f[T]=S[T])}),e=function YF(n,t,e){const i=Object.keys(e);if(i.length&&t.length){let s=t[0],a=[];if(i.forEach(u=>{s.hasOwnProperty(u)||a.push(u),s[u]=e[u]}),a.length)for(var r=1;rnu(C,!1)),f);const y=function UV(n,t){let e=null,i=null;return Array.isArray(t)&&t.length?(e=KD(t[0]),t.length>1&&(i=KD(t[t.length-1]))):t&&(e=KD(t)),e||i?new jV(n,e,i):null}(t,e);return new bI(t,e,h,y)}}let GV=(()=>{class n extends HM{constructor(e,i){super(),this._nextAnimationId=0,this._renderer=e.createRenderer(i.body,{id:"0",encapsulation:$i.None,styles:[],data:{animation:[]}})}build(e){const i=this._nextAnimationId.toString();this._nextAnimationId++;const r=Array.isArray(e)?jM(e):e;return EI(this._renderer,null,i,"register",[r]),new $V(i,this._renderer)}}return n.\u0275fac=function(e){return new(e||n)(z(Ip),z(on))},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})();class $V extends class rF{}{constructor(t,e){super(),this._id=t,this._renderer=e}create(t,e){return new ZV(this._id,t,e||{},this._renderer)}}class ZV{constructor(t,e,i,r){this.id=t,this.element=e,this._renderer=r,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",i)}_listen(t,e){return this._renderer.listen(this.element,`@@${this.id}:${t}`,e)}_command(t,...e){return EI(this._renderer,this.element,this.id,t,e)}onDone(t){this._listen("done",t)}onStart(t){this._listen("start",t)}onDestroy(t){this._listen("destroy",t)}init(){this._command("init")}hasStarted(){return this._started}play(){this._command("play"),this._started=!0}pause(){this._command("pause")}restart(){this._command("restart")}finish(){this._command("finish")}destroy(){this._command("destroy")}reset(){this._command("reset"),this._started=!1}setPosition(t){this._command("setPosition",t)}getPosition(){return this._renderer.engine.players[+this.id]?.getPosition()??0}}function EI(n,t,e,i,r){return n.setProperty(t,`@@${e}:${i}`,r)}const TI="@.disabled";let qV=(()=>{class n{constructor(e,i,r){this.delegate=e,this.engine=i,this._zone=r,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,this.promise=Promise.resolve(0),i.onRemovalComplete=(s,a)=>{const u=a?.parentNode(s);u&&a.removeChild(u,s)}}createRenderer(e,i){const s=this.delegate.createRenderer(e,i);if(!(e&&i&&i.data&&i.data.animation)){let m=this._rendererCache.get(s);return m||(m=new MI("",s,this.engine),this._rendererCache.set(s,m)),m}const a=i.id,u=i.id+"-"+this._currentId;this._currentId++,this.engine.register(u,e);const h=m=>{Array.isArray(m)?m.forEach(h):this.engine.registerTrigger(a,u,e,m.name,m)};return i.data.animation.forEach(h),new YV(this,u,s,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){this.promise.then(()=>{this._microtaskId++})}scheduleListenerCallback(e,i,r){e>=0&&ei(r)):(0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(()=>{this._zone.run(()=>{this._animationCallbacksBuffer.forEach(s=>{const[a,u]=s;a(u)}),this._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([i,r]))}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()}}return n.\u0275fac=function(e){return new(e||n)(z(Ip),z(S_),z(Qt))},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})();class MI{constructor(t,e,i){this.namespaceId=t,this.delegate=e,this.engine=i,this.destroyNode=this.delegate.destroyNode?r=>e.destroyNode(r):null}get data(){return this.delegate.data}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}appendChild(t,e){this.delegate.appendChild(t,e),this.engine.onInsert(this.namespaceId,e,t,!1)}insertBefore(t,e,i,r=!0){this.delegate.insertBefore(t,e,i),this.engine.onInsert(this.namespaceId,e,t,r)}removeChild(t,e,i){this.engine.onRemove(this.namespaceId,e,this.delegate,i)}selectRootElement(t,e){return this.delegate.selectRootElement(t,e)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setAttribute(t,e,i,r){this.delegate.setAttribute(t,e,i,r)}removeAttribute(t,e,i){this.delegate.removeAttribute(t,e,i)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,i,r){this.delegate.setStyle(t,e,i,r)}removeStyle(t,e,i){this.delegate.removeStyle(t,e,i)}setProperty(t,e,i){"@"==e.charAt(0)&&e==TI?this.disableAnimations(t,!!i):this.delegate.setProperty(t,e,i)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,i){return this.delegate.listen(t,e,i)}disableAnimations(t,e){this.engine.disableAnimations(t,e)}}class YV extends MI{constructor(t,e,i,r){super(e,i,r),this.factory=t,this.namespaceId=e}setProperty(t,e,i){"@"==e.charAt(0)?"."==e.charAt(1)&&e==TI?this.disableAnimations(t,i=void 0===i||!!i):this.engine.process(this.namespaceId,t,e.substr(1),i):this.delegate.setProperty(t,e,i)}listen(t,e,i){if("@"==e.charAt(0)){const r=function KV(n){switch(n){case"body":return document.body;case"document":return document;case"window":return window;default:return n}}(t);let s=e.substr(1),a="";return"@"!=s.charAt(0)&&([s,a]=function XV(n){const t=n.indexOf(".");return[n.substring(0,t),n.substr(t+1)]}(s)),this.engine.listen(this.namespaceId,r,s,a,u=>{this.factory.scheduleListenerCallback(u._data||-1,i,u)})}return this.delegate.listen(t,e,i)}}let QV=(()=>{class n extends S_{constructor(e,i,r){super(e.body,i,r)}ngOnDestroy(){this.flush()}}return n.\u0275fac=function(e){return new(e||n)(z(on),z(kD),z(WD))},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})();const II=new rt("AnimationModuleType"),AI=[{provide:HM,useClass:GV},{provide:WD,useFactory:function JV(){return new vV}},{provide:S_,useClass:QV},{provide:Ip,useFactory:function e2(n,t,e){return new qV(n,t,e)},deps:[i_,S_,Qt]}],xI=[{provide:kD,useFactory:()=>new WV},{provide:II,useValue:"BrowserAnimations"},...AI],t2=[{provide:kD,useClass:nI},{provide:II,useValue:"NoopAnimations"},...AI];let n2=(()=>{class n{static withConfig(e){return{ngModule:n,providers:e.disableAnimations?t2:xI}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({providers:xI,imports:[NM]}),n})();function Ha(...n){return _s(n,Bo(n))}class r2 extends bn{constructor(t,e){super()}schedule(t,e=0){return this}}const E_={setInterval(n,t,...e){const{delegate:i}=E_;return(null==i?void 0:i.setInterval)?i.setInterval(n,t,...e):setInterval(n,t,...e)},clearInterval(n){const{delegate:t}=E_;return((null==t?void 0:t.clearInterval)||clearInterval)(n)},delegate:void 0};class XD extends r2{constructor(t,e){super(t,e),this.scheduler=t,this.work=e,this.pending=!1}schedule(t,e=0){if(this.closed)return this;this.state=t;const i=this.id,r=this.scheduler;return null!=i&&(this.id=this.recycleAsyncId(r,i,e)),this.pending=!0,this.delay=e,this.id=this.id||this.requestAsyncId(r,this.id,e),this}requestAsyncId(t,e,i=0){return E_.setInterval(t.flush.bind(t,this),i)}recycleAsyncId(t,e,i=0){if(null!=i&&this.delay===i&&!1===this.pending)return e;E_.clearInterval(e)}execute(t,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(t,e);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(t,e){let r,i=!1;try{this.work(t)}catch(s){i=!0,r=s||new Error("Scheduled action threw falsy error")}if(i)return this.unsubscribe(),r}unsubscribe(){if(!this.closed){const{id:t,scheduler:e}=this,{actions:i}=e;this.work=this.state=this.scheduler=null,this.pending=!1,At(i,this),null!=t&&(this.id=this.recycleAsyncId(e,t,null)),this.delay=null,super.unsubscribe()}}}class Gp{constructor(t,e=Gp.now){this.schedulerActionCtor=t,this.now=e}schedule(t,e=0,i){return new this.schedulerActionCtor(this,t).schedule(i,e)}}Gp.now=SD.now;class QD extends Gp{constructor(t,e=Gp.now){super(t,e),this.actions=[],this._active=!1,this._scheduled=void 0}flush(t){const{actions:e}=this;if(this._active)return void e.push(t);let i;this._active=!0;do{if(i=t.execute(t.state,t.delay))break}while(t=e.shift());if(this._active=!1,i){for(;t=e.shift();)t.unsubscribe();throw i}}}const T_=new QD(XD),s2=T_;function M_(n=0,t,e=s2){let i=-1;return null!=t&&(Gc(t)?e=t:i=t),new _t(r=>{let s=function o2(n){return n instanceof Date&&!isNaN(n)}(n)?+n-e.now():n;s<0&&(s=0);let a=0;return e.schedule(function(){r.closed||(r.next(a++),0<=i?this.schedule(void 0,i):r.complete())},s)})}class yh extends Oe{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const e=super._subscribe(t);return!e.closed&&t.next(this._value),e}getValue(){const{hasError:t,thrownError:e,_value:i}=this;if(t)throw e;return this._throwIfClosed(),i}next(t){super.next(this._value=t)}}function PI(n=0,t=T_){return n<0&&(n=0),M_(n,n,t)}function Ua(n){return bt((t,e)=>{Ti(n).subscribe(Mt(e,()=>e.complete(),qr)),!e.closed&&t.subscribe(e)})}function RI(...n){return function a2(){return Su(1)}()(_s(n,Bo(n)))}function kI(...n){const t=Bo(n);return bt((e,i)=>{(t?RI(n,e,t):RI(n,e)).subscribe(i)})}var u2=function(){function n(){}return n.prototype.getAllStyles=function(t){return window.getComputedStyle(t)},n.prototype.getStyle=function(t,e){return this.getAllStyles(t)[e]},n.prototype.isStaticPositioned=function(t){return"static"===(this.getStyle(t,"position")||"static")},n.prototype.offsetParent=function(t){for(var e=t.offsetParent||document.documentElement;e&&e!==document.documentElement&&this.isStaticPositioned(e);)e=e.offsetParent;return e||document.documentElement},n.prototype.position=function(t,e){void 0===e&&(e=!0);var i,r={width:0,height:0,top:0,bottom:0,left:0,right:0};if("fixed"===this.getStyle(t,"position"))i={top:(i=t.getBoundingClientRect()).top,bottom:i.bottom,left:i.left,right:i.right,height:i.height,width:i.width};else{var s=this.offsetParent(t);i=this.offset(t,!1),s!==document.documentElement&&(r=this.offset(s,!1)),r.top+=s.clientTop,r.left+=s.clientLeft}return i.top-=r.top,i.bottom-=r.top,i.left-=r.left,i.right-=r.left,e&&(i.top=Math.round(i.top),i.bottom=Math.round(i.bottom),i.left=Math.round(i.left),i.right=Math.round(i.right)),i},n.prototype.offset=function(t,e){void 0===e&&(e=!0);var i=t.getBoundingClientRect(),r_top=window.pageYOffset-document.documentElement.clientTop,r_left=window.pageXOffset-document.documentElement.clientLeft,s={height:i.height||t.offsetHeight,width:i.width||t.offsetWidth,top:i.top+r_top,bottom:i.bottom+r_top,left:i.left+r_left,right:i.right+r_left};return e&&(s.height=Math.round(s.height),s.width=Math.round(s.width),s.top=Math.round(s.top),s.bottom=Math.round(s.bottom),s.left=Math.round(s.left),s.right=Math.round(s.right)),s},n.prototype.positionElements=function(t,e,i,r){var s=i.split("-"),a=s[0],u=void 0===a?"top":a,h=s[1],f=void 0===h?"center":h,m=r?this.offset(t,!1):this.position(t,!1),y=this.getAllStyles(e),C=parseFloat(y.marginTop),S=parseFloat(y.marginBottom),T=parseFloat(y.marginLeft),x=parseFloat(y.marginRight),R=0,F=0;switch(u){case"top":R=m.top-(e.offsetHeight+C+S);break;case"bottom":R=m.top+m.height;break;case"left":F=m.left-(e.offsetWidth+T+x);break;case"right":F=m.left+m.width}switch(f){case"top":R=m.top;break;case"bottom":R=m.top+m.height-e.offsetHeight;break;case"left":F=m.left;break;case"right":F=m.left+m.width-e.offsetWidth;break;case"center":"top"===u||"bottom"===u?F=m.left+m.width/2-e.offsetWidth/2:R=m.top+m.height/2-e.offsetHeight/2}e.style.transform="translate("+Math.round(F)+"px, "+Math.round(R)+"px)";var O=e.getBoundingClientRect(),G=document.documentElement,Y=window.innerHeight||G.clientHeight,re=window.innerWidth||G.clientWidth;return O.left>=0&&O.top>=0&&O.right<=re&&O.bottom<=Y},n}(),c2=/\s+/,OI=new u2,Po=function(){return Po=Object.assign||function(n){for(var t,e=1,i=arguments.length;e{return(n=$p||($p={}))[n.SUNDAY=0]="SUNDAY",n[n.MONDAY=1]="MONDAY",n[n.TUESDAY=2]="TUESDAY",n[n.WEDNESDAY=3]="WEDNESDAY",n[n.THURSDAY=4]="THURSDAY",n[n.FRIDAY=5]="FRIDAY",n[n.SATURDAY=6]="SATURDAY",$p;var n})(),h2=[$p.SUNDAY,$p.SATURDAY],iu=86400;function NI(n,t){var e=t.startDate,r=t.excluded,s=t.precision;if(r.length<1)return 0;for(var u=n.getDay,h=n.addDays,f=(0,n.addSeconds)(e,t.seconds-1),m=u(e),y=u(f),C=0,S=e,T=function(){var x=u(S);r.some(function(R){return R===x})&&(C+=function f2(n,t){var i=t.day,s=t.dayEnd,a=t.startDate,u=t.endDate,h=n.differenceInSeconds,m=n.startOfDay;if("minutes"===t.precision){if(i===t.dayStart)return h((0,n.endOfDay)(a),a)+1;if(i===s)return h(u,m(u))+1}return iu}(n,{dayStart:m,dayEnd:y,day:x,precision:s,startDate:e,endDate:f})),S=h(S,1)};Si&&ai&&ur||s(a,i)||s(a,r)||s(u,i)||s(u,r))}(n,{event:s,periodStart:i,periodEnd:r})})}function FI(n,t){var e=t.date,i=t.weekendDays,r=void 0===i?h2:i,a=n.isSameDay,u=n.getDay,h=(0,n.startOfDay)(new Date),f=u(e);return{date:e,day:f,isPast:eh,isWeekend:r.indexOf(f)>-1}}function t0(n,t){for(var r=t.excluded,s=void 0===r?[]:r,a=t.weekendDays,u=t.viewStart,h=void 0===u?n.startOfWeek(t.viewDate,{weekStartsOn:t.weekStartsOn}):u,f=t.viewEnd,m=void 0===f?n.addDays(h,7):f,y=n.addDays,C=n.getDay,S=[],T=h;TF&&(S=F-x),(S-=NI(n,{startDate:T,seconds:S,excluded:s,precision:a}))/iu}(n,{event:G,offset:Y,startOfWeekDate:m,excluded:s,precision:u,totalDaysInView:x});return{event:G,offset:Y,span:re}}).filter(function(G){return G.offset0}).map(function(G){return{event:G.event,offset:G.offset,span:G.span,startsBeforeWeek:G.event.starty}}).sort(function(G,Y){var re=C(G.event.start,Y.event.start);return 0===re?C(Y.event.end||Y.event.start,G.event.end||G.event.start):re}),F=[],O=[];return R.forEach(function(G,Y){if(-1===O.indexOf(G)){O.push(G);var re=G.span+G.offset,Ce=R.slice(Y+1).filter(function(De){if(De.offset>=re&&re+De.span<=x&&-1===O.indexOf(De)){var be=De.offset-re;return f||(De.offset=be),re+=De.span+be,O.push(De),!0}}),Ze=LI([G],Ce),Ve=Ze.filter(function(De){return De.event.id}).map(function(De){return De.event.id}).join("-");F.push(Po({row:Ze},Ve?{id:Ve}:{}))}}),F}function y2(n,t){var e=t.events,i=t.viewDate,r=t.hourSegments,s=t.hourDuration,a=t.dayStart,u=t.dayEnd,h=t.weekStartsOn,f=t.excluded,m=t.weekendDays,y=t.segmentHeight,C=t.viewStart,S=t.viewEnd,T=t.minimumEventHeight,x=function S2(n,t){var e=t.viewDate,i=t.hourSegments,r=t.hourDuration,s=t.dayStart,a=t.dayEnd,u=n.setMinutes,h=n.setHours,f=n.startOfDay,m=n.startOfMinute,y=n.endOfDay,C=n.addMinutes,T=n.addDays,x=[],R=u(h(f(e),x_(s.hour)),P_(s.minute)),F=u(h(m(y(e)),x_(a.hour)),P_(a.minute)),O=(r||60)/i,G=f(e),Y=y(e),re=function(de){return de};n.getTimezoneOffset(G)!==n.getTimezoneOffset(Y)&&(G=T(G,1),R=T(R,1),F=T(F,1),re=function(de){return T(de,-1)});for(var Ce=r?1440/r:60,Ze=0;Ze=R&&be0&&x.push({segments:Ve})}return x}(n,{viewDate:i,hourSegments:r,hourDuration:s,dayStart:a,dayEnd:u}),R=t0(n,{viewDate:i,weekStartsOn:h,excluded:f,weekendDays:m,viewStart:C,viewEnd:S}),F=n.setHours,O=n.setMinutes,G=n.getHours,Y=n.getMinutes;return R.map(function(re){var Ce=function D2(n,t){var e=t.events,i=t.viewDate,r=t.hourSegments,s=t.dayStart,a=t.dayEnd,u=t.eventWidth,h=t.segmentHeight,f=t.hourDuration,m=t.minimumEventHeight,y=n.setMinutes,C=n.setHours,S=n.startOfDay,T=n.startOfMinute,x=n.endOfDay,R=n.differenceInMinutes,F=y(C(S(i),x_(s.hour)),P_(s.minute)),O=y(C(T(x(i)),x_(a.hour)),P_(a.minute));O.setSeconds(59,999);var G=[],Y=Zp(n,{events:e.filter(function(Ve){return!Ve.allDay}),periodStart:F,periodEnd:O}),re=Y.sort(function(Ve,De){return Ve.start.valueOf()-De.start.valueOf()}).map(function(Ve){var De=Ve.start,be=Ve.end||De,de=DeO,ht=r*h/(f||60),dt=0;if(De>F){var Tr=n.getTimezoneOffset(De),Se=n.getTimezoneOffset(F)-Tr;dt+=R(De,F)+Se}dt*=ht,dt=Math.floor(dt);var xe=de?F:De,St=ie?O:be,Rt=n.getTimezoneOffset(xe)-n.getTimezoneOffset(St),Sn=R(St,xe)+Rt;Ve.end?Sn*=ht:Sn=h,m&&Sn=ie}).filter(function(dt){return A_(de,dt.top,dt.top+dt.height).length>0});return ht.length>0?Ve(be,ht):ie}var De=Ce.events.map(function(be){var ie=100/Ve(Ce.events,A_(Ce.events,be.top,be.top+be.height));return Po(Po({},be),{left:be.left*ie,width:ie})});return{hours:Ze,date:re.date,events:De.map(function(be){var de=A_(De.filter(function(ie){return ie.left>be.left}),be.top,be.top+be.height);return de.length>0?Po(Po({},be),{width:Math.min.apply(Math,de.map(function(ie){return ie.left}))-be.left}):be})}})}function A_(n,t,e){return n.filter(function(i){var r=i.top,s=i.top+i.height;return t{return(n=ru||(ru={})).NotArray="Events must be an array",n.StartPropertyMissing="Event is missing the `start` property",n.StartPropertyNotDate="Event `start` property should be a javascript date object. Do `new Date(event.start)` to fix it.",n.EndPropertyNotDate="Event `end` property should be a javascript date object. Do `new Date(event.end)` to fix it.",n.EndsBeforeStart="Event `start` property occurs after the `end`",ru;var n})();const{isArray:E2}=Array,{getPrototypeOf:T2,prototype:M2,keys:I2}=Object;function VI(n){if(1===n.length){const t=n[0];if(E2(t))return{args:t,keys:null};if(function A2(n){return n&&"object"==typeof n&&T2(n)===M2}(t)){const e=I2(t);return{args:e.map(i=>t[i]),keys:e}}}return{args:n,keys:null}}const{isArray:x2}=Array;function n0(n){return lt(t=>function P2(n,t){return x2(t)?n(...t):n(t)}(n,t))}function BI(n,t){return n.reduce((e,i,r)=>(e[i]=t[r],e),{})}function HI(n,t,e){n?Pr(e,n,t):t()}const O2=["addListener","removeListener"],L2=["addEventListener","removeEventListener"],N2=["on","off"];function wh(n,t,e,i){if(at(e)&&(i=e,e=void 0),i)return wh(n,t,e).pipe(n0(i));const[r,s]=function B2(n){return at(n.addEventListener)&&at(n.removeEventListener)}(n)?L2.map(a=>u=>n[a](t,u,e)):function F2(n){return at(n.addListener)&&at(n.removeListener)}(n)?O2.map(UI(n,t)):function V2(n){return at(n.on)&&at(n.off)}(n)?N2.map(UI(n,t)):[];if(!r&&Da(n))return Rr(a=>wh(a,t,e))(Ti(n));if(!r)throw new TypeError("Invalid event target");return new _t(a=>{const u=(...h)=>a.next(1s(u)})}function UI(n,t){return e=>i=>n[e](t,i)}function Fi(n,t){return bt((e,i)=>{let r=0;e.subscribe(Mt(i,s=>n.call(t,s,r++)&&i.next(s)))})}function Ro(n){return n<=0?()=>Jr:bt((t,e)=>{let i=0;t.subscribe(Mt(e,r=>{++i<=n&&(e.next(r),n<=i&&e.complete())}))})}function U2(n,t,e,i,r){return(s,a)=>{let u=e,h=t,f=0;s.subscribe(Mt(a,m=>{const y=f++;h=u?n(h,m,y):(u=!0,m),i&&a.next(h)},r&&(()=>{u&&a.next(h),a.complete()})))}}function r0(){return bt((n,t)=>{let e,i=!1;n.subscribe(Mt(t,r=>{const s=e;e=r,i&&t.next([s,r]),i=!0}))})}function jI(n,t=Tn){return n=n??W2,bt((e,i)=>{let r,s=!0;e.subscribe(Mt(i,a=>{const u=t(a);(s||!n(r,u))&&(s=!1,r=u,i.next(a))}))})}function W2(n,t){return n===t}function s0(n,t){return n=function G2(n,t){return typeof n>"u"?typeof t>"u"?n:t:n}(n,t),"function"==typeof n?function(){for(var i=arguments,r=arguments.length,s=Array(r),a=0;a"u"?"undefined":o0(n))&&1===n.nodeType&&"object"===o0(n.style)&&"object"===o0(n.ownerDocument)};function WI(n,t){if(t=l0(t,!0),!zI(t))return-1;for(var e=0;e0;)e[i]=t[i+1];return $2(n,e=e.map(l0))}function q2(n){for(var t=arguments,e=[],i=arguments.length-1;i-- >0;)e[i]=t[i+1];return e.map(l0).reduce(function(r,s){var a=WI(n,s);return-1!==a?r.concat(n.splice(a,1)):r},[])}function l0(n,t){if("string"==typeof n)try{return document.querySelector(n)}catch(e){throw e}if(!zI(n)&&!t)throw new TypeError(n+" is not a DOM element.");return n}function GI(n){if(n===window)return function K2(){var n={top:{value:0,enumerable:!0},left:{value:0,enumerable:!0},right:{value:window.innerWidth,enumerable:!0},bottom:{value:window.innerHeight,enumerable:!0},width:{value:window.innerWidth,enumerable:!0},height:{value:window.innerHeight,enumerable:!0},x:{value:0,enumerable:!0},y:{value:0,enumerable:!0}};if(Object.create)return Object.create({},n);var t={};return Object.defineProperties(t,n),t}();try{var t=n.getBoundingClientRect();return void 0===t.x&&(t.x=t.left,t.y=t.top),t}catch{throw new TypeError("Can't call getBoundingClientRect on "+n)}}var t,u0=void 0;"function"!=typeof Object.create?(t=function(){},u0=function(e,i){if(e!==Object(e)&&null!==e)throw TypeError("Argument must be an object, or null");t.prototype=e||{};var r=new t;return t.prototype=null,void 0!==i&&Object.defineProperties(r,i),null===e&&(r.__proto__=null),r}):u0=Object.create;var Q2=u0,Dc=["altKey","button","buttons","clientX","clientY","ctrlKey","metaKey","movementX","movementY","offsetX","offsetY","pageX","pageY","region","relatedTarget","screenX","screenY","shiftKey","which","x","y"];function c0(n,t){t=t||{};for(var e=Q2(n),i=0;i"u")return function(){};for(var n=0,t=qp.length;n"u")return function(){};for(var n=0,t=qp.length;nie.right-e.margin.right?Math.ceil(Math.min(1,(a.x-ie.right)/e.margin.right+1)*e.maxSpeed.right):0,dt=a.yie.bottom-e.margin.bottom?Math.ceil(Math.min(1,(a.y-ie.bottom)/e.margin.bottom+1)*e.maxSpeed.bottom):0,e.syncMove()&&h.dispatch(de,{pageX:a.pageX+ht,pageY:a.pageY+dt,clientX:a.x+ht,clientY:a.y+dt}),setTimeout(function(){dt&&function De(de,ie){de===window?window.scrollTo(de.pageXOffset,de.pageYOffset+ie):de.scrollTop+=ie}(de,dt),ht&&function be(de,ie){de===window?window.scrollTo(de.pageXOffset+ie,de.pageYOffset):de.scrollLeft+=ie}(de,ht)})}window.addEventListener("mousedown",x,!1),window.addEventListener("touchstart",x,!1),window.addEventListener("mouseup",R,!1),window.addEventListener("touchend",R,!1),window.addEventListener("pointerup",R,!1),window.addEventListener("mousemove",re,!1),window.addEventListener("touchmove",re,!1),window.addEventListener("mouseleave",O,!1),window.addEventListener("scroll",T,!0)}function $I(n,t,e){return e?n.y>e.top&&n.ye.left&&n.xe.top&&n.ye.left&&n.xn.addClass(t.nativeElement,i))}function R_(n,t,e){e&&e.split(" ").forEach(i=>n.removeClass(t.nativeElement,i))}let ZI=(()=>{class n{constructor(){this.currentDrag=new Oe}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=oe({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),qI=(()=>{class n{constructor(e){this.elementRef=e}}return n.\u0275fac=function(e){return new(e||n)(U(wn))},n.\u0275dir=we({type:n,selectors:[["","mwlDraggableScrollContainer",""]]}),n})(),f0=(()=>{class n{constructor(e,i,r,s,a,u,h){this.element=e,this.renderer=i,this.draggableHelper=r,this.zone=s,this.vcr=a,this.scrollContainer=u,this.document=h,this.dragAxis={x:!0,y:!0},this.dragSnapGrid={},this.ghostDragEnabled=!0,this.showOriginalElementWhileDragging=!1,this.dragCursor="",this.autoScroll={margin:20},this.dragPointerDown=new me,this.dragStart=new me,this.ghostElementCreated=new me,this.dragging=new me,this.dragEnd=new me,this.pointerDown$=new Oe,this.pointerMove$=new Oe,this.pointerUp$=new Oe,this.eventListenerSubscriptions={},this.destroy$=new Oe,this.timeLongPress={timerBegin:0,timerEnd:0}}ngOnInit(){this.checkEventListeners();const e=this.pointerDown$.pipe(Fi(()=>this.canDrag()),Rr(i=>{i.event.stopPropagation&&!this.scrollContainer&&i.event.stopPropagation();const r=this.renderer.createElement("style");this.renderer.setAttribute(r,"type","text/css"),this.renderer.appendChild(r,this.renderer.createText("\n body * {\n -moz-user-select: none;\n -ms-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n }\n ")),requestAnimationFrame(()=>{this.document.head.appendChild(r)});const s=this.getScrollPosition(),a=new _t(S=>this.renderer.listen(this.scrollContainer?this.scrollContainer.elementRef.nativeElement:"window","scroll",x=>S.next(x))).pipe(kI(s),lt(()=>this.getScrollPosition())),u=new Oe,h=new bD;this.dragPointerDown.observers.length>0&&this.zone.run(()=>{this.dragPointerDown.next({x:0,y:0})});const f=Nn(this.pointerUp$,this.pointerDown$,h,this.destroy$).pipe(Ye()),m=function R2(...n){const t=Bo(n),e=$c(n),{args:i,keys:r}=VI(n);if(0===i.length)return _s([],t);const s=new _t(function k2(n,t,e=Tn){return i=>{HI(t,()=>{const{length:r}=n,s=new Array(r);let a=r,u=r;for(let h=0;h{const f=_s(n[h],t);let m=!1;f.subscribe(Mt(i,y=>{s[h]=y,m||(m=!0,u--),u||i.next(e(s.slice()))},()=>{--a||i.complete()}))},i)},i)}}(i,t,r?a=>BI(r,a):Tn));return e?s.pipe(n0(e)):s}([this.pointerMove$,a]).pipe(lt(([S,T])=>({currentDrag$:u,transformX:S.clientX-i.clientX,transformY:S.clientY-i.clientY,clientX:S.clientX,clientY:S.clientY,scrollLeft:T.left,scrollTop:T.top,target:S.event.target})),lt(S=>(this.dragSnapGrid.x&&(S.transformX=Math.round(S.transformX/this.dragSnapGrid.x)*this.dragSnapGrid.x),this.dragSnapGrid.y&&(S.transformY=Math.round(S.transformY/this.dragSnapGrid.y)*this.dragSnapGrid.y),S)),lt(S=>(this.dragAxis.x||(S.transformX=0),this.dragAxis.y||(S.transformY=0),S)),lt(S=>{const T=S.scrollLeft-s.left,x=S.scrollTop-s.top;return Object.assign(Object.assign({},S),{x:S.transformX+T,y:S.transformY+x})}),Fi(({x:S,y:T,transformX:x,transformY:R})=>!this.validateDrag||this.validateDrag({x:S,y:T,transform:{x,y:R}})),Ua(f),Ye()),y=m.pipe(Ro(1),Ye()),C=m.pipe(function H2(n){return n<=0?()=>Jr:bt((t,e)=>{let i=[];t.subscribe(Mt(e,r=>{i.push(r),n{for(const r of i)e.next(r);e.complete()},void 0,()=>{i=null}))})}(1),Ye());return y.subscribe(({clientX:S,clientY:T,x,y:R})=>{if(this.dragStart.observers.length>0&&this.zone.run(()=>{this.dragStart.next({cancelDrag$:h})}),this.scroller=function tB(n,t){return new eB(n,t)}([this.scrollContainer?this.scrollContainer.elementRef.nativeElement:this.document.defaultView],Object.assign(Object.assign({},this.autoScroll),{autoScroll:()=>!0})),h0(this.renderer,this.element,this.dragActiveClass),this.ghostDragEnabled){const F=this.element.nativeElement.getBoundingClientRect(),O=this.element.nativeElement.cloneNode(!0);if(this.showOriginalElementWhileDragging||this.renderer.setStyle(this.element.nativeElement,"visibility","hidden"),this.ghostElementAppendTo?this.ghostElementAppendTo.appendChild(O):this.element.nativeElement.parentNode.insertBefore(O,this.element.nativeElement.nextSibling),this.ghostElement=O,this.document.body.style.cursor=this.dragCursor,this.setElementStyles(O,{position:"fixed",top:`${F.top}px`,left:`${F.left}px`,width:`${F.width}px`,height:`${F.height}px`,cursor:this.dragCursor,margin:"0",willChange:"transform",pointerEvents:"none"}),this.ghostElementTemplate){const G=this.vcr.createEmbeddedView(this.ghostElementTemplate);O.innerHTML="",G.rootNodes.filter(Y=>Y instanceof Node).forEach(Y=>{O.appendChild(Y)}),C.subscribe(()=>{this.vcr.remove(this.vcr.indexOf(G))})}this.ghostElementCreated.observers.length>0&&this.zone.run(()=>{this.ghostElementCreated.emit({clientX:S-x,clientY:T-R,element:O})}),C.subscribe(()=>{O.parentElement.removeChild(O),this.ghostElement=null,this.renderer.setStyle(this.element.nativeElement,"visibility","")})}this.draggableHelper.currentDrag.next(u)}),C.pipe(Rr(S=>{const T=h.pipe(function z2(n){return function j2(n,t){return bt(U2(n,t,arguments.length>=2,!1,!0))}((t,e,i)=>!n||n(e,i)?t+1:t,0)}(),Ro(1),lt(x=>Object.assign(Object.assign({},S),{dragCancelled:x>0})));return h.complete(),T})).subscribe(({x:S,y:T,dragCancelled:x})=>{this.scroller.destroy(),this.dragEnd.observers.length>0&&this.zone.run(()=>{this.dragEnd.next({x:S,y:T,dragCancelled:x})}),R_(this.renderer,this.element,this.dragActiveClass),u.complete()}),Nn(f,C).pipe(Ro(1)).subscribe(()=>{requestAnimationFrame(()=>{this.document.head.removeChild(r)})}),m}),Ye());Nn(e.pipe(Ro(1),lt(i=>[,i])),e.pipe(r0())).pipe(Fi(([i,r])=>!i||i.x!==r.x||i.y!==r.y),lt(([i,r])=>r)).subscribe(({x:i,y:r,currentDrag$:s,clientX:a,clientY:u,transformX:h,transformY:f,target:m})=>{this.dragging.observers.length>0&&this.zone.run(()=>{this.dragging.next({x:i,y:r})}),requestAnimationFrame(()=>{if(this.ghostElement){const y=`translate3d(${h}px, ${f}px, 0px)`;this.setElementStyles(this.ghostElement,{transform:y,"-webkit-transform":y,"-ms-transform":y,"-moz-transform":y,"-o-transform":y})}}),s.next({clientX:a,clientY:u,dropData:this.dropData,target:m})})}ngOnChanges(e){e.dragAxis&&this.checkEventListeners()}ngOnDestroy(){this.unsubscribeEventListeners(),this.pointerDown$.complete(),this.pointerMove$.complete(),this.pointerUp$.complete(),this.destroy$.next()}checkEventListeners(){const e=this.canDrag(),i=Object.keys(this.eventListenerSubscriptions).length>0;e&&!i?this.zone.runOutsideAngular(()=>{this.eventListenerSubscriptions.mousedown=this.renderer.listen(this.element.nativeElement,"mousedown",r=>{this.onMouseDown(r)}),this.eventListenerSubscriptions.mouseup=this.renderer.listen("document","mouseup",r=>{this.onMouseUp(r)}),this.eventListenerSubscriptions.touchstart=this.renderer.listen(this.element.nativeElement,"touchstart",r=>{this.onTouchStart(r)}),this.eventListenerSubscriptions.touchend=this.renderer.listen("document","touchend",r=>{this.onTouchEnd(r)}),this.eventListenerSubscriptions.touchcancel=this.renderer.listen("document","touchcancel",r=>{this.onTouchEnd(r)}),this.eventListenerSubscriptions.mouseenter=this.renderer.listen(this.element.nativeElement,"mouseenter",()=>{this.onMouseEnter()}),this.eventListenerSubscriptions.mouseleave=this.renderer.listen(this.element.nativeElement,"mouseleave",()=>{this.onMouseLeave()})}):!e&&i&&this.unsubscribeEventListeners()}onMouseDown(e){0===e.button&&(this.eventListenerSubscriptions.mousemove||(this.eventListenerSubscriptions.mousemove=this.renderer.listen("document","mousemove",i=>{this.pointerMove$.next({event:i,clientX:i.clientX,clientY:i.clientY})})),this.pointerDown$.next({event:e,clientX:e.clientX,clientY:e.clientY}))}onMouseUp(e){0===e.button&&(this.eventListenerSubscriptions.mousemove&&(this.eventListenerSubscriptions.mousemove(),delete this.eventListenerSubscriptions.mousemove),this.pointerUp$.next({event:e,clientX:e.clientX,clientY:e.clientY}))}onTouchStart(e){let i,r,s;if(this.touchStartLongPress&&(this.timeLongPress.timerBegin=Date.now(),r=!1,s=this.hasScrollbar(),i=this.getScrollPosition()),!this.eventListenerSubscriptions.touchmove){const a=wh(this.document,"contextmenu").subscribe(h=>{h.preventDefault()}),u=wh(this.document,"touchmove",{passive:!1}).subscribe(h=>{this.touchStartLongPress&&!r&&s&&(r=this.shouldBeginDrag(e,h,i)),(!this.touchStartLongPress||!s||r)&&(h.preventDefault(),this.pointerMove$.next({event:h,clientX:h.targetTouches[0].clientX,clientY:h.targetTouches[0].clientY}))});this.eventListenerSubscriptions.touchmove=()=>{a.unsubscribe(),u.unsubscribe()}}this.pointerDown$.next({event:e,clientX:e.touches[0].clientX,clientY:e.touches[0].clientY})}onTouchEnd(e){this.eventListenerSubscriptions.touchmove&&(this.eventListenerSubscriptions.touchmove(),delete this.eventListenerSubscriptions.touchmove,this.touchStartLongPress&&this.enableScroll()),this.pointerUp$.next({event:e,clientX:e.changedTouches[0].clientX,clientY:e.changedTouches[0].clientY})}onMouseEnter(){this.setCursor(this.dragCursor)}onMouseLeave(){this.setCursor("")}canDrag(){return this.dragAxis.x||this.dragAxis.y}setCursor(e){this.eventListenerSubscriptions.mousemove||this.renderer.setStyle(this.element.nativeElement,"cursor",e)}unsubscribeEventListeners(){Object.keys(this.eventListenerSubscriptions).forEach(e=>{this.eventListenerSubscriptions[e](),delete this.eventListenerSubscriptions[e]})}setElementStyles(e,i){Object.keys(i).forEach(r=>{this.renderer.setStyle(e,r,i[r])})}getScrollElement(){return this.scrollContainer?this.scrollContainer.elementRef.nativeElement:this.document.body}getScrollPosition(){return this.scrollContainer?{top:this.scrollContainer.elementRef.nativeElement.scrollTop,left:this.scrollContainer.elementRef.nativeElement.scrollLeft}:{top:window.pageYOffset||this.document.documentElement.scrollTop,left:window.pageXOffset||this.document.documentElement.scrollLeft}}shouldBeginDrag(e,i,r){const s=this.getScrollPosition(),a_top=Math.abs(s.top-r.top),a_left=Math.abs(s.left-r.left),u=Math.abs(i.targetTouches[0].clientX-e.touches[0].clientX)-a_left,h=Math.abs(i.targetTouches[0].clientY-e.touches[0].clientY)-a_top,m=this.touchStartLongPress;return(u+h>m.delta||a_top>0||a_left>0)&&(this.timeLongPress.timerBegin=Date.now()),this.timeLongPress.timerEnd=Date.now(),this.timeLongPress.timerEnd-this.timeLongPress.timerBegin>=m.delay&&(this.disableScroll(),!0)}enableScroll(){this.scrollContainer&&this.renderer.setStyle(this.scrollContainer.elementRef.nativeElement,"overflow",""),this.renderer.setStyle(this.document.body,"overflow","")}disableScroll(){this.scrollContainer&&this.renderer.setStyle(this.scrollContainer.elementRef.nativeElement,"overflow","hidden"),this.renderer.setStyle(this.document.body,"overflow","hidden")}hasScrollbar(){const e=this.getScrollElement();return e.scrollWidth>e.clientWidth||e.scrollHeight>e.clientHeight}}return n.\u0275fac=function(e){return new(e||n)(U(wn),U($r),U(ZI),U(Qt),U(ds),U(qI,8),U(on))},n.\u0275dir=we({type:n,selectors:[["","mwlDraggable",""]],inputs:{dropData:"dropData",dragAxis:"dragAxis",dragSnapGrid:"dragSnapGrid",ghostDragEnabled:"ghostDragEnabled",showOriginalElementWhileDragging:"showOriginalElementWhileDragging",validateDrag:"validateDrag",dragCursor:"dragCursor",dragActiveClass:"dragActiveClass",ghostElementAppendTo:"ghostElementAppendTo",ghostElementTemplate:"ghostElementTemplate",touchStartLongPress:"touchStartLongPress",autoScroll:"autoScroll"},outputs:{dragPointerDown:"dragPointerDown",dragStart:"dragStart",ghostElementCreated:"ghostElementCreated",dragging:"dragging",dragEnd:"dragEnd"},features:[_n]}),n})();function YI(n,t,e){return n>=e.left&&n<=e.right&&t>=e.top&&t<=e.bottom}let p0=(()=>{class n{constructor(e,i,r,s,a){this.element=e,this.draggableHelper=i,this.zone=r,this.renderer=s,this.scrollContainer=a,this.dragEnter=new me,this.dragLeave=new me,this.dragOver=new me,this.drop=new me}ngOnInit(){this.currentDragSubscription=this.draggableHelper.currentDrag.subscribe(e=>{h0(this.renderer,this.element,this.dragActiveClass);const i={updateCache:!0},r=this.renderer.listen(this.scrollContainer?this.scrollContainer.elementRef.nativeElement:"window","scroll",()=>{i.updateCache=!0});let s;const a=e.pipe(lt(({clientX:f,clientY:m,dropData:y,target:C})=>{s={clientX:f,clientY:m,dropData:y,target:C},i.updateCache&&(i.rect=this.element.nativeElement.getBoundingClientRect(),this.scrollContainer&&(i.scrollContainerRect=this.scrollContainer.elementRef.nativeElement.getBoundingClientRect()),i.updateCache=!1);const S=YI(f,m,i.rect),T=!this.validateDrop||this.validateDrop({clientX:f,clientY:m,target:C,dropData:y});return i.scrollContainerRect?S&&T&&YI(f,m,i.scrollContainerRect):S&&T})),u=a.pipe(jI());let h;u.pipe(Fi(f=>f)).subscribe(()=>{h=!0,h0(this.renderer,this.element,this.dragOverClass),this.dragEnter.observers.length>0&&this.zone.run(()=>{this.dragEnter.next(s)})}),a.pipe(Fi(f=>f)).subscribe(()=>{this.dragOver.observers.length>0&&this.zone.run(()=>{this.dragOver.next(s)})}),u.pipe(r0(),Fi(([f,m])=>f&&!m)).subscribe(()=>{h=!1,R_(this.renderer,this.element,this.dragOverClass),this.dragLeave.observers.length>0&&this.zone.run(()=>{this.dragLeave.next(s)})}),e.subscribe({complete:()=>{r(),R_(this.renderer,this.element,this.dragActiveClass),h&&(R_(this.renderer,this.element,this.dragOverClass),this.drop.observers.length>0&&this.zone.run(()=>{this.drop.next(s)}))}})})}ngOnDestroy(){this.currentDragSubscription&&this.currentDragSubscription.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(U(wn),U(ZI),U(Qt),U($r),U(qI,8))},n.\u0275dir=we({type:n,selectors:[["","mwlDroppable",""]],inputs:{dragOverClass:"dragOverClass",dragActiveClass:"dragActiveClass",validateDrop:"validateDrop"},outputs:{dragEnter:"dragEnter",dragLeave:"dragLeave",dragOver:"dragOver",drop:"drop"}}),n})(),k_=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({}),n})();function g0(n,t,e){const i=at(n)||t||e?{next:n,error:t,complete:e}:n;return i?bt((r,s)=>{var a;null===(a=i.subscribe)||void 0===a||a.call(i);let u=!0;r.subscribe(Mt(s,h=>{var f;null===(f=i.next)||void 0===f||f.call(i,h),s.next(h)},()=>{var h;u=!1,null===(h=i.complete)||void 0===h||h.call(i),s.complete()},h=>{var f;u=!1,null===(f=i.error)||void 0===f||f.call(i,h),s.error(h)},()=>{var h,f;u&&(null===(h=i.unsubscribe)||void 0===h||h.call(i)),null===(f=i.finalize)||void 0===f||f.call(i)}))}):Tn}const Sc=!(typeof window>"u")&&("ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0);function KI(n,t,e,i){const r=t.querySelectorAll(n);if(r.length){const s=e.querySelectorAll(n);for(let a=0;a{i[r]=(e[r]||0)-(t[r]||0)}),i}const nA="resize-active";let iA=(()=>{class n{constructor(e,i,r,s){this.platformId=e,this.renderer=i,this.elm=r,this.zone=s,this.enableGhostResize=!1,this.resizeSnapGrid={},this.resizeCursors=eA,this.ghostElementPositioning="fixed",this.allowNegativeResizes=!1,this.mouseMoveThrottleMS=50,this.resizeStart=new me,this.resizing=new me,this.resizeEnd=new me,this.mouseup=new Oe,this.mousedown=new Oe,this.mousemove=new Oe,this.destroy$=new Oe,this.pointerEventListeners=Dh.getInstance(i,s)}ngOnInit(){const e=Nn(this.pointerEventListeners.pointerDown,this.mousedown),i=Nn(this.pointerEventListeners.pointerMove,this.mousemove).pipe(g0(({event:f})=>{if(s)try{f.preventDefault()}catch{}}),Ye()),r=Nn(this.pointerEventListeners.pointerUp,this.mouseup);let s;const a=()=>{s&&s.clonedNode&&(this.elm.nativeElement.parentElement.removeChild(s.clonedNode),this.renderer.setStyle(this.elm.nativeElement,"visibility","inherit"))},u=()=>Object.assign(Object.assign({},eA),this.resizeCursors);e.pipe(Rr(f=>{function m(S){return{clientX:S.clientX-f.clientX,clientY:S.clientY-f.clientY}}const y=()=>{const S={x:1,y:1};return s&&(this.resizeSnapGrid.left&&s.edges.left?S.x=+this.resizeSnapGrid.left:this.resizeSnapGrid.right&&s.edges.right&&(S.x=+this.resizeSnapGrid.right),this.resizeSnapGrid.top&&s.edges.top?S.y=+this.resizeSnapGrid.top:this.resizeSnapGrid.bottom&&s.edges.bottom&&(S.y=+this.resizeSnapGrid.bottom)),S};function C(S,T){return{x:Math.ceil(S.clientX/T.x),y:Math.ceil(S.clientY/T.y)}}return Nn(i.pipe(Ro(1)).pipe(lt(S=>[,S])),i.pipe(r0())).pipe(lt(([S,T])=>[S&&m(S),m(T)])).pipe(Fi(([S,T])=>{if(!S)return!0;const x=y(),R=C(S,x),F=C(T,x);return R.x!==F.x||R.y!==F.y})).pipe(lt(([,S])=>{const T=y();return{clientX:Math.round(S.clientX/T.x)*T.x,clientY:Math.round(S.clientY/T.y)*T.y}})).pipe(Ua(Nn(r,e)))})).pipe(Fi(()=>!!s)).pipe(lt(({clientX:f,clientY:m})=>JI(s.startingRect,s.edges,f,m))).pipe(Fi(f=>this.allowNegativeResizes||!!(f.height&&f.width&&f.height>0&&f.width>0))).pipe(Fi(f=>!this.validateResize||this.validateResize({rectangle:f,edges:O_({edges:s.edges,initialRectangle:s.startingRect,newRectangle:f})})),Ua(this.destroy$)).subscribe(f=>{s&&s.clonedNode&&(this.renderer.setStyle(s.clonedNode,"height",`${f.height}px`),this.renderer.setStyle(s.clonedNode,"width",`${f.width}px`),this.renderer.setStyle(s.clonedNode,"top",`${f.top}px`),this.renderer.setStyle(s.clonedNode,"left",`${f.left}px`)),this.resizing.observers.length>0&&this.zone.run(()=>{this.resizing.emit({edges:O_({edges:s.edges,initialRectangle:s.startingRect,newRectangle:f}),rectangle:f})}),s.currentRect=f}),e.pipe(lt(({edges:f})=>f||{}),Fi(f=>Object.keys(f).length>0),Ua(this.destroy$)).subscribe(f=>{s&&a();const m=function sB(n,t){let e=0,i=0;const r=n.nativeElement.style,a=["transform","-ms-transform","-moz-transform","-o-transform"].map(u=>r[u]).find(u=>!!u);if(a&&a.includes("translate")&&(e=a.replace(/.*translate3?d?\((-?[0-9]*)px, (-?[0-9]*)px.*/,"$1"),i=a.replace(/.*translate3?d?\((-?[0-9]*)px, (-?[0-9]*)px.*/,"$2")),"absolute"===t)return{height:n.nativeElement.offsetHeight,width:n.nativeElement.offsetWidth,top:n.nativeElement.offsetTop-i,bottom:n.nativeElement.offsetHeight+n.nativeElement.offsetTop-i,left:n.nativeElement.offsetLeft-e,right:n.nativeElement.offsetWidth+n.nativeElement.offsetLeft-e};{const u=n.nativeElement.getBoundingClientRect();return{height:u.height,width:u.width,top:u.top-i,bottom:u.bottom-i,left:u.left-e,right:u.right-e,scrollTop:n.nativeElement.scrollTop,scrollLeft:n.nativeElement.scrollLeft}}}(this.elm,this.ghostElementPositioning);s={edges:f,startingRect:m,currentRect:m};const y=u(),C=tA(s.edges,y);this.renderer.setStyle(document.body,"cursor",C),this.setElementClass(this.elm,nA,!0),this.enableGhostResize&&(s.clonedNode=function iB(n){const t=n.cloneNode(!0),e=t.querySelectorAll("[id]"),i=n.nodeName.toLowerCase();return t.removeAttribute("id"),e.forEach(r=>{r.removeAttribute("id")}),"canvas"===i?QI(n,t):("input"===i||"select"===i||"textarea"===i)&&XI(n,t),KI("canvas",n,t,QI),KI("input, textarea, select",n,t,XI),t}(this.elm.nativeElement),this.elm.nativeElement.parentElement.appendChild(s.clonedNode),this.renderer.setStyle(this.elm.nativeElement,"visibility","hidden"),this.renderer.setStyle(s.clonedNode,"position",this.ghostElementPositioning),this.renderer.setStyle(s.clonedNode,"left",`${s.startingRect.left}px`),this.renderer.setStyle(s.clonedNode,"top",`${s.startingRect.top}px`),this.renderer.setStyle(s.clonedNode,"height",`${s.startingRect.height}px`),this.renderer.setStyle(s.clonedNode,"width",`${s.startingRect.width}px`),this.renderer.setStyle(s.clonedNode,"cursor",tA(s.edges,y)),this.renderer.addClass(s.clonedNode,"resize-ghost-element"),s.clonedNode.scrollTop=s.startingRect.scrollTop,s.clonedNode.scrollLeft=s.startingRect.scrollLeft),this.resizeStart.observers.length>0&&this.zone.run(()=>{this.resizeStart.emit({edges:O_({edges:f,initialRectangle:m,newRectangle:m}),rectangle:JI(m,{},0,0)})})}),r.pipe(Ua(this.destroy$)).subscribe(()=>{s&&(this.renderer.removeClass(this.elm.nativeElement,nA),this.renderer.setStyle(document.body,"cursor",""),this.renderer.setStyle(this.elm.nativeElement,"cursor",""),this.resizeEnd.observers.length>0&&this.zone.run(()=>{this.resizeEnd.emit({edges:O_({edges:s.edges,initialRectangle:s.startingRect,newRectangle:s.currentRect}),rectangle:s.currentRect})}),a(),s=null)})}ngOnDestroy(){SM(this.platformId)&&this.renderer.setStyle(document.body,"cursor",""),this.mousedown.complete(),this.mouseup.complete(),this.mousemove.complete(),this.destroy$.next()}setElementClass(e,i,r){r?this.renderer.addClass(e.nativeElement,i):this.renderer.removeClass(e.nativeElement,i)}}return n.\u0275fac=function(e){return new(e||n)(U(ph),U($r),U(wn),U(Qt))},n.\u0275dir=we({type:n,selectors:[["","mwlResizable",""]],inputs:{validateResize:"validateResize",enableGhostResize:"enableGhostResize",resizeSnapGrid:"resizeSnapGrid",resizeCursors:"resizeCursors",ghostElementPositioning:"ghostElementPositioning",allowNegativeResizes:"allowNegativeResizes",mouseMoveThrottleMS:"mouseMoveThrottleMS"},outputs:{resizeStart:"resizeStart",resizing:"resizing",resizeEnd:"resizeEnd"},exportAs:["mwlResizable"]}),n})();class Dh{constructor(t,e){this.pointerDown=new _t(i=>{let r,s;return e.runOutsideAngular(()=>{r=t.listen("document","mousedown",a=>{i.next({clientX:a.clientX,clientY:a.clientY,event:a})}),Sc&&(s=t.listen("document","touchstart",a=>{i.next({clientX:a.touches[0].clientX,clientY:a.touches[0].clientY,event:a})}))}),()=>{r(),Sc&&s()}}).pipe(Ye()),this.pointerMove=new _t(i=>{let r,s;return e.runOutsideAngular(()=>{r=t.listen("document","mousemove",a=>{i.next({clientX:a.clientX,clientY:a.clientY,event:a})}),Sc&&(s=t.listen("document","touchmove",a=>{i.next({clientX:a.targetTouches[0].clientX,clientY:a.targetTouches[0].clientY,event:a})}))}),()=>{r(),Sc&&s()}}).pipe(Ye()),this.pointerUp=new _t(i=>{let r,s,a;return e.runOutsideAngular(()=>{r=t.listen("document","mouseup",u=>{i.next({clientX:u.clientX,clientY:u.clientY,event:u})}),Sc&&(s=t.listen("document","touchend",u=>{i.next({clientX:u.changedTouches[0].clientX,clientY:u.changedTouches[0].clientY,event:u})}),a=t.listen("document","touchcancel",u=>{i.next({clientX:u.changedTouches[0].clientX,clientY:u.changedTouches[0].clientY,event:u})}))}),()=>{r(),Sc&&(s(),a())}}).pipe(Ye())}static getInstance(t,e){return Dh.instance||(Dh.instance=new Dh(t,e)),Dh.instance}}let lB=(()=>{class n{constructor(e,i,r,s){this.renderer=e,this.element=i,this.zone=r,this.resizableDirective=s,this.resizeEdges={},this.eventListeners={},this.destroy$=new Oe}ngOnInit(){this.zone.runOutsideAngular(()=>{this.listenOnTheHost("mousedown").subscribe(e=>{this.onMousedown(e,e.clientX,e.clientY)}),this.listenOnTheHost("mouseup").subscribe(e=>{this.onMouseup(e.clientX,e.clientY)}),Sc&&(this.listenOnTheHost("touchstart").subscribe(e=>{this.onMousedown(e,e.touches[0].clientX,e.touches[0].clientY)}),Nn(this.listenOnTheHost("touchend"),this.listenOnTheHost("touchcancel")).subscribe(e=>{this.onMouseup(e.changedTouches[0].clientX,e.changedTouches[0].clientY)}))})}ngOnDestroy(){this.destroy$.next(),this.unsubscribeEventListeners()}onMousedown(e,i,r){e.preventDefault(),this.eventListeners.touchmove||(this.eventListeners.touchmove=this.renderer.listen(this.element.nativeElement,"touchmove",s=>{this.onMousemove(s,s.targetTouches[0].clientX,s.targetTouches[0].clientY)})),this.eventListeners.mousemove||(this.eventListeners.mousemove=this.renderer.listen(this.element.nativeElement,"mousemove",s=>{this.onMousemove(s,s.clientX,s.clientY)})),this.resizable.mousedown.next({clientX:i,clientY:r,edges:this.resizeEdges})}onMouseup(e,i){this.unsubscribeEventListeners(),this.resizable.mouseup.next({clientX:e,clientY:i,edges:this.resizeEdges})}get resizable(){return this.resizableDirective||this.resizableContainer}onMousemove(e,i,r){this.resizable.mousemove.next({clientX:i,clientY:r,edges:this.resizeEdges,event:e})}unsubscribeEventListeners(){Object.keys(this.eventListeners).forEach(e=>{this.eventListeners[e](),delete this.eventListeners[e]})}listenOnTheHost(e){return wh(this.element.nativeElement,e).pipe(Ua(this.destroy$))}}return n.\u0275fac=function(e){return new(e||n)(U($r),U(wn),U(Qt),U(iA,8))},n.\u0275dir=we({type:n,selectors:[["","mwlResizeHandle",""]],inputs:{resizeEdges:"resizeEdges",resizableContainer:"resizableContainer"}}),n})(),rA=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({}),n})();const uB=function(n){return{action:n}};function cB(n,t){if(1&n){const e=Kn();fe(0,"a",5),We("mwlClick",function(r){const a=_e(e).$implicit,u=ee(2).event;return a.onClick({event:u,sourceEvent:r})})("mwlKeydownEnter",function(r){const a=_e(e).$implicit,u=ee(2).event;return a.onClick({event:u,sourceEvent:r})}),Cn(1,"calendarA11y"),ge()}if(2&n){const e=t.$implicit;te("ngClass",e.cssClass)("innerHtml",e.label,Nd),si("aria-label",To(1,3,gc(6,uB,e),"actionButtonLabel"))}}function dB(n,t){if(1&n&&(fe(0,"span",3),Ee(1,cB,2,8,"a",4),ge()),2&n){const e=ee(),i=e.event,r=e.trackByActionId;J(1),te("ngForOf",i.actions)("ngForTrackBy",r)}}function hB(n,t){1&n&&Ee(0,dB,2,2,"span",2),2&n&&te("ngIf",t.event.actions)}function fB(n,t){}const pB=function(n,t){return{event:n,trackByActionId:t}},Sh=function(){return{}};function gB(n,t){if(1&n&&(fn(0,"span",2),Cn(1,"calendarEventTitle"),Cn(2,"calendarA11y")),2&n){const e=t.event;te("innerHTML",Mo(1,2,e.title,t.view,e),Nd),si("aria-hidden",To(2,6,Dr(9,Sh),"hideEventTitle"))}}function mB(n,t){}const vB=function(n,t){return{event:n,view:t}};function _B(n,t){if(1&n&&(fe(0,"div",2),fn(1,"div",3)(2,"div",4),ge()),2&n){const e=t.contents;te("ngClass","cal-tooltip-"+t.placement),J(2),te("innerHtml",e,Nd)}}function yB(n,t){}const wB=function(n,t,e){return{contents:n,placement:t,event:e}};function CB(n,t){if(1&n){const e=Kn();fe(0,"div",4),We("click",function(r){const a=_e(e).$implicit;return ee(2).columnHeaderClicked.emit({isoDayNumber:a.day,sourceEvent:r})}),pn(1),Cn(2,"calendarDate"),ge()}if(2&n){const e=t.$implicit,i=ee().locale;yi("cal-past",e.isPast)("cal-today",e.isToday)("cal-future",e.isFuture)("cal-weekend",e.isWeekend),te("ngClass",e.cssClass),J(1),ah(" ",Mo(2,10,e.date,"monthViewColumnHeader",i)," ")}}function DB(n,t){if(1&n&&(fe(0,"div",2),Ee(1,CB,3,14,"div",3),ge()),2&n){const e=t.days,i=t.trackByWeekDayHeaderDate;J(1),te("ngForOf",e)("ngForTrackBy",i)}}function SB(n,t){}const bB=function(n,t,e){return{days:n,locale:t,trackByWeekDayHeaderDate:e}};function EB(n,t){if(1&n&&(fe(0,"span",7),pn(1),ge()),2&n){const e=ee().day;J(1),fc(e.badgeTotal)}}const m0=function(n){return{backgroundColor:n}},TB=function(n,t){return{event:n,draggedFrom:t}},Kp=function(n,t){return{x:n,y:t}},L_=function(){return{delay:300,delta:30}};function MB(n,t){if(1&n){const e=Kn();fe(0,"div",10),We("mouseenter",function(){const s=_e(e).$implicit;return ee(2).highlightDay.emit({event:s})})("mouseleave",function(){const s=_e(e).$implicit;return ee(2).unhighlightDay.emit({event:s})})("mwlClick",function(r){const a=_e(e).$implicit;return ee(2).eventClicked.emit({event:a,sourceEvent:r})}),Cn(1,"calendarEventTitle"),Cn(2,"calendarA11y"),ge()}if(2&n){const e=t.$implicit,i=ee(2),r=i.tooltipPlacement,s=i.tooltipTemplate,a=i.tooltipAppendToBody,u=i.tooltipDelay,h=i.day,f=i.validateDrag;yi("cal-draggable",e.draggable),te("ngStyle",gc(22,m0,null==e.color?null:e.color.primary))("ngClass",null==e?null:e.cssClass)("mwlCalendarTooltip",Mo(1,15,e.title,"monthTooltip",e))("tooltipPlacement",r)("tooltipEvent",e)("tooltipTemplate",s)("tooltipAppendToBody",a)("tooltipDelay",u)("dropData",wi(24,TB,e,h))("dragAxis",wi(27,Kp,e.draggable,e.draggable))("validateDrag",f)("touchStartLongPress",Dr(30,L_)),si("aria-hidden",To(2,19,Dr(31,Sh),"hideMonthCellEvents"))}}function IB(n,t){if(1&n&&(fe(0,"div",8),Ee(1,MB,3,32,"div",9),ge()),2&n){const e=ee(),i=e.day,r=e.trackByEventId;J(1),te("ngForOf",i.events)("ngForTrackBy",r)}}const AB=function(n,t){return{day:n,locale:t}};function xB(n,t){if(1&n&&(fe(0,"div",2),Cn(1,"calendarA11y"),fe(2,"span",3),Ee(3,EB,2,1,"span",4),fe(4,"span",5),pn(5),Cn(6,"calendarDate"),ge()()(),Ee(7,IB,2,2,"div",6)),2&n){const e=t.day,i=t.locale;si("aria-label",To(1,4,wi(11,AB,e,i),"monthCell")),J(3),te("ngIf",e.badgeTotal>0),J(2),fc(Mo(6,7,e.date,"monthViewDayNumber",i)),J(2),te("ngIf",e.events.length>0)}}function PB(n,t){}const RB=function(n,t,e,i,r,s,a,u,h,f,m,y){return{day:n,openDay:t,locale:e,tooltipPlacement:i,highlightDay:r,unhighlightDay:s,eventClicked:a,tooltipTemplate:u,tooltipAppendToBody:h,tooltipDelay:f,trackByEventId:m,validateDrag:y}},kB=function(n){return{event:n}},sA=function(n,t){return{event:n,locale:t}};function OB(n,t){if(1&n){const e=Kn();fe(0,"div",7),fn(1,"span",8),pn(2," "),fe(3,"mwl-calendar-event-title",9),We("mwlClick",function(r){const a=_e(e).$implicit;return ee(2).eventClicked.emit({event:a,sourceEvent:r})})("mwlKeydownEnter",function(r){const a=_e(e).$implicit;return ee(2).eventClicked.emit({event:a,sourceEvent:r})}),Cn(4,"calendarA11y"),ge(),pn(5," "),fn(6,"mwl-calendar-event-actions",10),ge()}if(2&n){const e=t.$implicit,i=ee(2).validateDrag,r=ee();yi("cal-draggable",e.draggable),te("ngClass",null==e?null:e.cssClass)("dropData",gc(16,kB,e))("dragAxis",wi(18,Kp,e.draggable,e.draggable))("validateDrag",i)("touchStartLongPress",Dr(21,L_)),J(1),te("ngStyle",gc(22,m0,null==e.color?null:e.color.primary)),J(2),te("event",e)("customTemplate",r.eventTitleTemplate),si("aria-label",To(4,13,wi(24,sA,e,r.locale),"eventDescription")),J(3),te("event",e)("customTemplate",r.eventActionsTemplate)}}const oA=function(n,t){return{date:n,locale:t}};function LB(n,t){if(1&n&&(fe(0,"div",3),fn(1,"span",4),Cn(2,"calendarA11y"),fn(3,"span",5),Cn(4,"calendarA11y"),Ee(5,OB,7,27,"div",6),ge()),2&n){const e=ee(),i=e.events,r=e.trackByEventId,s=ee();te("@collapse",void 0),J(1),si("aria-label",To(2,5,wi(11,oA,s.date,s.locale),"openDayEventsAlert")),J(2),si("aria-label",To(4,8,wi(14,oA,s.date,s.locale),"openDayEventsLandmark")),J(2),te("ngForOf",i)("ngForTrackBy",r)}}function NB(n,t){1&n&&Ee(0,LB,6,17,"div",2),2&n&&te("ngIf",t.isOpen)}function FB(n,t){}const VB=function(n,t,e,i,r){return{events:n,eventClicked:t,isOpen:e,trackByEventId:i,validateDrag:r}};function BB(n,t){if(1&n){const e=Kn();fe(0,"mwl-calendar-month-cell",7),We("mwlClick",function(r){const a=_e(e).$implicit;return ee(2).dayClicked.emit({day:a,sourceEvent:r})})("mwlKeydownEnter",function(r){const a=_e(e).$implicit;return ee(2).dayClicked.emit({day:a,sourceEvent:r})})("highlightDay",function(r){return _e(e),ee(2).toggleDayHighlight(r.event,!0)})("unhighlightDay",function(r){return _e(e),ee(2).toggleDayHighlight(r.event,!1)})("drop",function(r){const a=_e(e).$implicit;return ee(2).eventDropped(a,r.dropData.event,r.dropData.draggedFrom)})("eventClicked",function(r){return _e(e),ee(2).eventClicked.emit({event:r.event,sourceEvent:r.sourceEvent})}),Cn(1,"calendarA11y"),ge()}if(2&n){const e=t.$implicit,i=ee(2);te("ngClass",null==e?null:e.cssClass)("day",e)("openDay",i.openDay)("locale",i.locale)("tooltipPlacement",i.tooltipPlacement)("tooltipAppendToBody",i.tooltipAppendToBody)("tooltipTemplate",i.tooltipTemplate)("tooltipDelay",i.tooltipDelay)("customTemplate",i.cellTemplate)("ngStyle",gc(15,m0,e.backgroundColor))("clickListenerDisabled",0===i.dayClicked.observers.length),si("tabindex",To(1,12,Dr(17,Sh),"monthCellTabIndex"))}}function HB(n,t){if(1&n){const e=Kn();fe(0,"div")(1,"div",4),Ee(2,BB,2,18,"mwl-calendar-month-cell",5),Cn(3,"slice"),ge(),fe(4,"mwl-calendar-open-day-events",6),We("eventClicked",function(r){return _e(e),ee().eventClicked.emit({event:r.event,sourceEvent:r.sourceEvent})})("drop",function(r){_e(e);const s=ee();return s.eventDropped(s.openDay,r.dropData.event,r.dropData.draggedFrom)}),ge()()}if(2&n){const e=t.$implicit,i=ee();J(2),te("ngForOf",Mo(3,9,i.view.days,e,e+i.view.totalDaysVisibleInWeek))("ngForTrackBy",i.trackByDate),J(2),te("locale",i.locale)("isOpen",i.openRowIndex===e)("events",null==i.openDay?null:i.openDay.events)("date",null==i.openDay?null:i.openDay.date)("customTemplate",i.openDayEventsTemplate)("eventTitleTemplate",i.eventTitleTemplate)("eventActionsTemplate",i.eventActionsTemplate)}}function UB(n,t){if(1&n){const e=Kn();fe(0,"div",4),We("mwlClick",function(r){const a=_e(e).$implicit;return ee().dayHeaderClicked.emit({day:a,sourceEvent:r})})("drop",function(r){const a=_e(e).$implicit;return ee().eventDropped.emit({event:r.dropData.event,newStart:a.date})})("dragEnter",function(){const s=_e(e).$implicit;return ee().dragEnter.emit({date:s.date})}),fe(1,"b"),pn(2),Cn(3,"calendarDate"),ge(),fn(4,"br"),fe(5,"span"),pn(6),Cn(7,"calendarDate"),ge()()}if(2&n){const e=t.$implicit,i=ee().locale;yi("cal-past",e.isPast)("cal-today",e.isToday)("cal-future",e.isFuture)("cal-weekend",e.isWeekend),te("ngClass",e.cssClass),J(2),fc(Mo(3,11,e.date,"weekViewColumnHeader",i)),J(4),fc(Mo(7,15,e.date,"weekViewColumnSubHeader",i))}}function jB(n,t){if(1&n&&(fe(0,"div",2),Ee(1,UB,8,19,"div",3),ge()),2&n){const e=t.days,i=t.trackByWeekDayHeaderDate;J(1),te("ngForOf",e)("ngForTrackBy",i)}}function zB(n,t){}const WB=function(n,t,e,i,r,s){return{days:n,locale:t,dayHeaderClicked:e,eventDropped:i,dragEnter:r,trackByWeekDayHeaderDate:s}},GB=function(n,t){return{backgroundColor:n,borderColor:t}};function $B(n,t){if(1&n){const e=Kn();fe(0,"div",2),We("mwlClick",function(r){return _e(e).eventClicked.emit({sourceEvent:r})})("mwlKeydownEnter",function(r){return _e(e).eventClicked.emit({sourceEvent:r})}),Cn(1,"calendarEventTitle"),Cn(2,"calendarA11y"),fn(3,"mwl-calendar-event-actions",3),pn(4," "),fn(5,"mwl-calendar-event-title",4),ge()}if(2&n){const e=t.weekEvent,i=t.tooltipPlacement,r=t.tooltipTemplate,s=t.tooltipAppendToBody,a=t.tooltipDisabled,u=t.tooltipDelay,h=t.daysInWeek,f=ee();te("ngStyle",wi(20,GB,null==e.event.color?null:e.event.color.secondary,null==e.event.color?null:e.event.color.primary))("mwlCalendarTooltip",a?"":Mo(1,13,e.event.title,1===h?"dayTooltip":"weekTooltip",e.tempEvent||e.event))("tooltipPlacement",i)("tooltipEvent",e.tempEvent||e.event)("tooltipTemplate",r)("tooltipAppendToBody",s)("tooltipDelay",u),si("aria-label",To(2,17,wi(23,sA,e.tempEvent||e.event,f.locale),"eventDescription")),J(3),te("event",e.tempEvent||e.event)("customTemplate",f.eventActionsTemplate),J(2),te("event",e.tempEvent||e.event)("customTemplate",f.eventTitleTemplate)("view",1===h?"day":"week")}}function ZB(n,t){}const qB=function(n,t,e,i,r,s,a,u,h){return{weekEvent:n,tooltipPlacement:t,eventClicked:e,tooltipTemplate:i,tooltipAppendToBody:r,tooltipDisabled:s,tooltipDelay:a,column:u,daysInWeek:h}};function YB(n,t){if(1&n&&(fe(0,"div",4),pn(1),Cn(2,"calendarDate"),ge()),2&n){const e=ee(),i=e.segment,r=e.daysInWeek,s=e.locale;J(1),ah(" ",Mo(2,1,i.displayDate,1===r?"dayViewHour":"weekViewHour",s)," ")}}function KB(n,t){if(1&n&&(fe(0,"div",2),Cn(1,"calendarA11y"),Ee(2,YB,3,5,"div",3),ge()),2&n){const e=t.segment,r=t.isTimeLabel,s=t.daysInWeek;La("height",t.segmentHeight,"px"),yi("cal-hour-start",e.isStart)("cal-after-hour-start",!e.isStart),te("ngClass",e.cssClass),si("aria-hidden",To(1,9,Dr(12,Sh),1===s?"hideDayHourSegment":"hideWeekHourSegment")),J(2),te("ngIf",r)}}function XB(n,t){}const QB=function(n,t,e,i,r){return{segment:n,locale:t,segmentHeight:e,isTimeLabel:i,daysInWeek:r}};function JB(n,t){1&n&&fn(0,"div",3),2&n&&La("top",ee().topPx,"px")}function eH(n,t){1&n&&Ee(0,JB,1,2,"div",2),2&n&&te("ngIf",t.isVisible)}function tH(n,t){}const nH=function(n,t,e,i,r,s,a){return{columnDate:n,dayStartHour:t,dayStartMinute:e,dayEndHour:i,dayEndMinute:r,isVisible:s,topPx:a}};function iH(n,t){if(1&n){const e=Kn();fe(0,"div",13),We("drop",function(r){const a=_e(e).$implicit;return ee(2).eventDropped(r,a.date,!0)})("dragEnter",function(){const s=_e(e).$implicit;return ee(2).dateDragEnter(s.date)}),ge()}}const rH=function(){return{left:!0}};function sH(n,t){1&n&&fn(0,"div",22),2&n&&te("resizeEdges",Dr(1,rH))}const oH=function(){return{right:!0}};function aH(n,t){1&n&&fn(0,"div",23),2&n&&te("resizeEdges",Dr(1,oH))}const lH=function(n,t){return{left:n,right:t}},aA=function(n,t){return{event:n,calendarId:t}},uH=function(n){return{x:n}};function cH(n,t){if(1&n){const e=Kn();fe(0,"div",17,18),We("resizeStart",function(r){const a=_e(e).$implicit;ee();const u=Yn(1);return ee(2).allDayEventResizeStarted(u,a,r)})("resizing",function(r){const a=_e(e).$implicit,u=ee(3);return u.allDayEventResizing(a,r,u.dayColumnWidth)})("resizeEnd",function(){const s=_e(e).$implicit;return ee(3).allDayEventResizeEnded(s)})("dragStart",function(){const s=_e(e).$implicit,a=Yn(1);ee();const u=Yn(1);return ee(2).dragStarted(u,a,s,!1)})("dragging",function(){return _e(e),ee(3).allDayEventDragMove()})("dragEnd",function(r){const a=_e(e).$implicit,u=ee(3);return u.dragEnded(a,r,u.dayColumnWidth)}),Ee(2,sH,1,2,"div",19),fe(3,"mwl-calendar-week-view-event",20),We("eventClicked",function(r){const a=_e(e).$implicit;return ee(3).eventClicked.emit({event:a.event,sourceEvent:r.sourceEvent})}),ge(),Ee(4,aH,1,2,"div",21),ge()}if(2&n){const e=t.$implicit,i=ee(3);La("width",100/i.days.length*e.span,"%")("margin-left",i.rtl?null:100/i.days.length*e.offset,"%")("margin-right",i.rtl?100/i.days.length*(i.days.length-e.offset)*-1:null,"%"),yi("cal-draggable",e.event.draggable&&0===i.allDayEventResizes.size)("cal-starts-within-week",!e.startsBeforeWeek)("cal-ends-within-week",!e.endsAfterWeek),te("ngClass",null==e.event?null:e.event.cssClass)("resizeSnapGrid",wi(32,lH,i.dayColumnWidth,i.dayColumnWidth))("validateResize",i.validateResize)("dropData",wi(35,aA,e.event,i.calendarId))("dragAxis",wi(38,Kp,e.event.draggable&&0===i.allDayEventResizes.size,!i.snapDraggedEvents&&e.event.draggable&&0===i.allDayEventResizes.size))("dragSnapGrid",i.snapDraggedEvents?gc(41,uH,i.dayColumnWidth):Dr(43,Sh))("validateDrag",i.validateDrag)("touchStartLongPress",Dr(44,L_)),J(2),te("ngIf",(null==e.event||null==e.event.resizable?null:e.event.resizable.beforeStart)&&!e.startsBeforeWeek),J(1),te("locale",i.locale)("weekEvent",e)("tooltipPlacement",i.tooltipPlacement)("tooltipTemplate",i.tooltipTemplate)("tooltipAppendToBody",i.tooltipAppendToBody)("tooltipDelay",i.tooltipDelay)("customTemplate",i.eventTemplate)("eventTitleTemplate",i.eventTitleTemplate)("eventActionsTemplate",i.eventActionsTemplate)("daysInWeek",i.daysInWeek),J(1),te("ngIf",(null==e.event||null==e.event.resizable?null:e.event.resizable.afterEnd)&&!e.endsAfterWeek)}}function dH(n,t){if(1&n&&(fe(0,"div",14,15),Ee(2,cH,5,45,"div",16),ge()),2&n){const e=t.$implicit,i=ee(2);J(2),te("ngForOf",e.row)("ngForTrackBy",i.trackByWeekAllDayEvent)}}function hH(n,t){if(1&n){const e=Kn();fe(0,"div",8,9),We("dragEnter",function(){return _e(e),ee().dragEnter("allDay")})("dragLeave",function(){return _e(e),ee().dragLeave("allDay")}),fe(2,"div",5),fn(3,"div",10),Ee(4,iH,1,0,"div",11),ge(),Ee(5,dH,3,2,"div",12),ge()}if(2&n){const e=ee();J(3),te("ngTemplateOutlet",e.allDayEventsLabelTemplate),J(1),te("ngForOf",e.days)("ngForTrackBy",e.trackByWeekDayHeaderDate),J(1),te("ngForOf",e.view.allDayEventRows)("ngForTrackBy",e.trackById)}}function fH(n,t){if(1&n&&fn(0,"mwl-calendar-week-view-hour-segment",28),2&n){const e=t.$implicit,i=ee(3);La("height",i.hourSegmentHeight,"px"),te("segment",e)("segmentHeight",i.hourSegmentHeight)("locale",i.locale)("customTemplate",i.hourSegmentTemplate)("isTimeLabel",!0)("daysInWeek",i.daysInWeek)}}function pH(n,t){if(1&n&&(fe(0,"div",26),Ee(1,fH,1,8,"mwl-calendar-week-view-hour-segment",27),ge()),2&n){const e=t.$implicit,i=t.odd,r=ee(2);yi("cal-hour-odd",i),J(1),te("ngForOf",e.segments)("ngForTrackBy",r.trackByHourSegment)}}function gH(n,t){if(1&n&&(fe(0,"div",24),Ee(1,pH,2,4,"div",25),ge()),2&n){const e=ee();J(1),te("ngForOf",e.view.hourColumns[0].hours)("ngForTrackBy",e.trackByHour)}}const mH=function(){return{left:!0,top:!0}};function vH(n,t){1&n&&fn(0,"div",22),2&n&&te("resizeEdges",Dr(1,mH))}function _H(n,t){}function yH(n,t){if(1&n){const e=Kn();fe(0,"mwl-calendar-week-view-event",36),We("eventClicked",function(r){_e(e);const s=ee().$implicit;return ee(2).eventClicked.emit({event:s.event,sourceEvent:r.sourceEvent})}),ge()}if(2&n){const e=ee().$implicit,i=ee().$implicit,r=ee();te("locale",r.locale)("weekEvent",e)("tooltipPlacement",r.tooltipPlacement)("tooltipTemplate",r.tooltipTemplate)("tooltipAppendToBody",r.tooltipAppendToBody)("tooltipDisabled",r.dragActive||r.timeEventResizes.size>0)("tooltipDelay",r.tooltipDelay)("customTemplate",r.eventTemplate)("eventTitleTemplate",r.eventTitleTemplate)("eventActionsTemplate",r.eventActionsTemplate)("column",i)("daysInWeek",r.daysInWeek)}}const wH=function(){return{right:!0,bottom:!0}};function CH(n,t){1&n&&fn(0,"div",23),2&n&&te("resizeEdges",Dr(1,wH))}const DH=function(n,t,e,i){return{left:n,right:t,top:e,bottom:i}};function SH(n,t){if(1&n){const e=Kn();fe(0,"div",33,18),We("resizeStart",function(r){const a=_e(e).$implicit,u=ee(2),h=Yn(6);return u.timeEventResizeStarted(h,a,r)})("resizing",function(r){const a=_e(e).$implicit;return ee(2).timeEventResizing(a,r)})("resizeEnd",function(){const s=_e(e).$implicit;return ee(2).timeEventResizeEnded(s)})("dragStart",function(){const s=_e(e).$implicit,a=Yn(1),u=ee(2),h=Yn(6);return u.dragStarted(h,a,s,!0)})("dragging",function(r){const a=_e(e).$implicit;return ee(2).dragMove(a,r)})("dragEnd",function(r){const a=_e(e).$implicit,u=ee(2);return u.dragEnded(a,r,u.dayColumnWidth,!0)}),Ee(2,vH,1,2,"div",19),Ee(3,_H,0,0,"ng-template",34),Ee(4,yH,1,12,"ng-template",null,35,hs),Ee(6,CH,1,2,"div",21),ge()}if(2&n){const e=t.$implicit,i=Yn(5),r=ee(2);La("top",e.top,"px")("height",e.height,"px")("left",e.left,"%")("width",e.width,"%"),yi("cal-draggable",e.event.draggable&&0===r.timeEventResizes.size)("cal-starts-within-day",!e.startsBeforeDay)("cal-ends-within-day",!e.endsAfterDay),te("ngClass",e.event.cssClass)("hidden",0===e.height&&0===e.width)("resizeSnapGrid",eT(29,DH,r.dayColumnWidth,r.dayColumnWidth,r.eventSnapSize||r.hourSegmentHeight,r.eventSnapSize||r.hourSegmentHeight))("validateResize",r.validateResize)("allowNegativeResizes",!0)("dropData",wi(34,aA,e.event,r.calendarId))("dragAxis",wi(37,Kp,e.event.draggable&&0===r.timeEventResizes.size,e.event.draggable&&0===r.timeEventResizes.size))("dragSnapGrid",r.snapDraggedEvents?wi(40,Kp,r.dayColumnWidth,r.eventSnapSize||r.hourSegmentHeight):Dr(43,Sh))("touchStartLongPress",Dr(44,L_))("ghostDragEnabled",!r.snapDraggedEvents)("ghostElementTemplate",i)("validateDrag",r.validateDrag),J(2),te("ngIf",(null==e.event||null==e.event.resizable?null:e.event.resizable.beforeStart)&&!e.startsBeforeDay),J(1),te("ngTemplateOutlet",i),J(3),te("ngIf",(null==e.event||null==e.event.resizable?null:e.event.resizable.afterEnd)&&!e.endsAfterDay)}}function bH(n,t){if(1&n){const e=Kn();fe(0,"mwl-calendar-week-view-hour-segment",38),We("mwlClick",function(r){const a=_e(e).$implicit;return ee(3).hourSegmentClicked.emit({date:a.date,sourceEvent:r})})("drop",function(r){const a=_e(e).$implicit;return ee(3).eventDropped(r,a.date,!1)})("dragEnter",function(){const s=_e(e).$implicit;return ee(3).dateDragEnter(s.date)}),ge()}if(2&n){const e=t.$implicit,i=ee(3);La("height",i.hourSegmentHeight,"px"),te("segment",e)("segmentHeight",i.hourSegmentHeight)("locale",i.locale)("customTemplate",i.hourSegmentTemplate)("daysInWeek",i.daysInWeek)("clickListenerDisabled",0===i.hourSegmentClicked.observers.length)("dragOverClass",i.dragActive&&i.snapDraggedEvents?null:"cal-drag-over")("isTimeLabel",1===i.daysInWeek)}}function EH(n,t){if(1&n&&(fe(0,"div",26),Ee(1,bH,1,10,"mwl-calendar-week-view-hour-segment",37),ge()),2&n){const e=t.$implicit,i=t.odd,r=ee(2);yi("cal-hour-odd",i),J(1),te("ngForOf",e.segments)("ngForTrackBy",r.trackByHourSegment)}}function TH(n,t){if(1&n&&(fe(0,"div",29),fn(1,"mwl-calendar-week-view-current-time-marker",30),fe(2,"div",31),Ee(3,SH,7,45,"div",32),ge(),Ee(4,EH,2,4,"div",25),ge()),2&n){const e=t.$implicit,i=ee();J(1),te("columnDate",e.date)("dayStartHour",i.dayStartHour)("dayStartMinute",i.dayStartMinute)("dayEndHour",i.dayEndHour)("dayEndMinute",i.dayEndMinute)("hourSegments",i.hourSegments)("hourDuration",i.hourDuration)("hourSegmentHeight",i.hourSegmentHeight)("customTemplate",i.currentTimeMarkerTemplate),J(2),te("ngForOf",e.events)("ngForTrackBy",i.trackByWeekTimeEvent),J(1),te("ngForOf",e.hours)("ngForTrackBy",i.trackByHour)}}let bc=(()=>{class n{constructor(e,i,r){this.renderer=e,this.elm=i,this.document=r,this.clickListenerDisabled=!1,this.click=new me,this.destroy$=new Oe}ngOnInit(){this.clickListenerDisabled||this.listen().pipe(Ua(this.destroy$)).subscribe(e=>{e.stopPropagation(),this.click.emit(e)})}ngOnDestroy(){this.destroy$.next()}listen(){return new _t(e=>this.renderer.listen(this.elm.nativeElement,"click",i=>{e.next(i)}))}}return n.\u0275fac=function(e){return new(e||n)(U($r),U(wn),U(on))},n.\u0275dir=we({type:n,selectors:[["","mwlClick",""]],inputs:{clickListenerDisabled:"clickListenerDisabled"},outputs:{click:"mwlClick"}}),n})(),N_=(()=>{class n{constructor(e,i,r){this.host=e,this.ngZone=i,this.renderer=r,this.keydown=new me,this.keydownListener=null}ngOnInit(){this.ngZone.runOutsideAngular(()=>{this.keydownListener=this.renderer.listen(this.host.nativeElement,"keydown",e=>{(13===e.keyCode||13===e.which||"Enter"===e.key)&&(e.preventDefault(),e.stopPropagation(),this.ngZone.run(()=>{this.keydown.emit(e)}))})})}ngOnDestroy(){null!==this.keydownListener&&(this.keydownListener(),this.keydownListener=null)}}return n.\u0275fac=function(e){return new(e||n)(U(wn),U(Qt),U($r))},n.\u0275dir=we({type:n,selectors:[["","mwlKeydownEnter",""]],outputs:{keydown:"mwlKeydownEnter"}}),n})(),F_=(()=>{class n{constructor(e){this.i18nPlural=e}monthCell({day:e,locale:i}){return e.badgeTotal>0?`\n ${li(e.date,"EEEE MMMM d",i)},\n ${this.i18nPlural.transform(e.badgeTotal,{"=0":"No events","=1":"One event",other:"# events"})},\n click to expand\n `:`${li(e.date,"EEEE MMMM d",i)}`}openDayEventsLandmark({date:e,locale:i}){return`\n Beginning of expanded view for ${li(e,"EEEE MMMM dd",i)}\n `}openDayEventsAlert({date:e,locale:i}){return`${li(e,"EEEE MMMM dd",i)} expanded`}eventDescription({event:e,locale:i}){if(!0===e.allDay)return this.allDayEventDescription({event:e,locale:i});const r=`\n ${li(e.start,"EEEE MMMM dd",i)},\n ${e.title}, from ${li(e.start,"hh:mm a",i)}\n `;return e.end?r+` to ${li(e.end,"hh:mm a",i)}`:r}allDayEventDescription({event:e,locale:i}){const r=`\n ${e.title}, event spans multiple days:\n start time ${li(e.start,"MMMM dd hh:mm a",i)}\n `;return e.end?r+`, stop time ${li(e.end,"MMMM d hh:mm a",i)}`:r+", no stop time"}actionButtonLabel({action:e}){return e.a11yLabel}monthCellTabIndex(){return 0}hideMonthCellEvents(){return!0}hideEventTitle(){return!0}hideWeekHourSegment(){return!0}hideDayHourSegment(){return!0}}return n.\u0275fac=function(e){return new(e||n)(z(pD))},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})(),Ec=(()=>{class n{constructor(e,i){this.calendarA11y=e,this.locale=i}transform(e,i){if(e.locale=e.locale||this.locale,typeof this.calendarA11y[i]>"u"){const r=Object.getOwnPropertyNames(Object.getPrototypeOf(F_.prototype)).filter(s=>"constructor"!==s);throw new Error(`${i} is not a valid a11y method. Can only be one of ${r.join(", ")}`)}return this.calendarA11y[i](e)}}return n.\u0275fac=function(e){return new(e||n)(U(F_,16),U(js,16))},n.\u0275pipe=Kt({name:"calendarA11y",type:n,pure:!0}),n})(),lA=(()=>{class n{constructor(){this.trackByActionId=(e,i)=>i.id?i.id:i}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=Yt({type:n,selectors:[["mwl-calendar-event-actions"]],inputs:{event:"event",customTemplate:"customTemplate"},decls:3,vars:5,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["class","cal-event-actions",4,"ngIf"],[1,"cal-event-actions"],["class","cal-event-action","href","javascript:;","tabindex","0","role","button",3,"ngClass","innerHtml","mwlClick","mwlKeydownEnter",4,"ngFor","ngForOf","ngForTrackBy"],["href","javascript:;","tabindex","0","role","button",1,"cal-event-action",3,"ngClass","innerHtml","mwlClick","mwlKeydownEnter"]],template:function(e,i){if(1&e&&(Ee(0,hB,1,1,"ng-template",null,0,hs),Ee(2,fB,0,0,"ng-template",1)),2&e){const r=Yn(1);J(2),te("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",wi(2,pB,i.event,i.trackByActionId))}},directives:[Fa,Jl,ma,bc,N_,Gs],pipes:[Ec],encapsulation:2}),n})();class v0{month(t,e){return t.title}monthTooltip(t,e){return t.title}week(t,e){return t.title}weekTooltip(t,e){return t.title}day(t,e){return t.title}dayTooltip(t,e){return t.title}}let _0=(()=>{class n{constructor(e){this.calendarEventTitle=e}transform(e,i,r){return this.calendarEventTitle[i](r,e)}}return n.\u0275fac=function(e){return new(e||n)(U(v0,16))},n.\u0275pipe=Kt({name:"calendarEventTitle",type:n,pure:!0}),n})(),uA=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=Yt({type:n,selectors:[["mwl-calendar-event-title"]],inputs:{event:"event",customTemplate:"customTemplate",view:"view"},decls:3,vars:5,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"cal-event-title",3,"innerHTML"]],template:function(e,i){if(1&e&&(Ee(0,gB,3,10,"ng-template",null,0,hs),Ee(2,mB,0,0,"ng-template",1)),2&e){const r=Yn(1);J(2),te("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",wi(2,vB,i.event,i.view))}},directives:[Gs],pipes:[_0,Ec],encapsulation:2}),n})(),MH=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=Yt({type:n,selectors:[["mwl-calendar-tooltip-window"]],inputs:{contents:"contents",placement:"placement",event:"event",customTemplate:"customTemplate"},decls:3,vars:6,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"cal-tooltip",3,"ngClass"],[1,"cal-tooltip-arrow"],[1,"cal-tooltip-inner",3,"innerHtml"]],template:function(e,i){if(1&e&&(Ee(0,_B,3,2,"ng-template",null,0,hs),Ee(2,yB,0,0,"ng-template",1)),2&e){const r=Yn(1);J(2),te("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",IC(2,wB,i.contents,i.placement,i.event))}},directives:[ma,Gs],encapsulation:2}),n})(),cA=(()=>{class n{constructor(e,i,r,s,a,u){this.elementRef=e,this.injector=i,this.renderer=r,this.viewContainerRef=a,this.document=u,this.placement="auto",this.delay=null,this.cancelTooltipDelay$=new Oe,this.tooltipFactory=s.resolveComponentFactory(MH)}ngOnChanges(e){this.tooltipRef&&(e.contents||e.customTemplate||e.event)&&(this.tooltipRef.instance.contents=this.contents,this.tooltipRef.instance.customTemplate=this.customTemplate,this.tooltipRef.instance.event=this.event,this.tooltipRef.changeDetectorRef.markForCheck(),this.contents||this.hide())}ngOnDestroy(){this.hide()}onMouseOver(){(null===this.delay?Ha("now"):M_(this.delay)).pipe(Ua(this.cancelTooltipDelay$)).subscribe(()=>{this.show()})}onMouseOut(){this.hide()}show(){!this.tooltipRef&&this.contents&&(this.tooltipRef=this.viewContainerRef.createComponent(this.tooltipFactory,0,this.injector,[]),this.tooltipRef.instance.contents=this.contents,this.tooltipRef.instance.customTemplate=this.customTemplate,this.tooltipRef.instance.event=this.event,this.appendToBody&&this.document.body.appendChild(this.tooltipRef.location.nativeElement),requestAnimationFrame(()=>{this.positionTooltip()}))}hide(){this.tooltipRef&&(this.viewContainerRef.remove(this.viewContainerRef.indexOf(this.tooltipRef.hostView)),this.tooltipRef=null),this.cancelTooltipDelay$.next()}positionTooltip(e=[]){this.tooltipRef&&(this.tooltipRef.changeDetectorRef.detectChanges(),this.tooltipRef.instance.placement=function d2(n,t,e,i,r){var s=Array.isArray(e)?e:e.split(c2),a=["top","bottom","left","right","top-left","top-right","bottom-left","bottom-right","left-top","left-bottom","right-top","right-bottom"],u=t.classList,h=function(R){var F=R.split("-"),O=F[0],G=F[1],Y=[];return r&&(Y.push(r+"-"+O),G&&Y.push(r+"-"+O+"-"+G),Y.forEach(function(re){u.add(re)})),Y};r&&a.forEach(function(R){u.remove(r+"-"+R)});var f=s.findIndex(function(R){return"auto"===R});f>=0&&a.forEach(function(R){null==s.find(function(F){return-1!==F.search("^"+R)})&&s.splice(f++,1,R)});var m=t.style;m.position="absolute",m.top="0",m.left="0",m["will-change"]="transform";for(var y,C=!1,S=0,T=s;S{return(n=ja||(ja={})).Month="month",n.Week="week",n.Day="day",ja;var n})();const dA=n=>function b2(n,t){var e=!0;function i(r,s){t(r,s),e=!1}return Array.isArray(n)?(n.forEach(function(r){r.start?r.start instanceof Date||i(ru.StartPropertyNotDate,r):i(ru.StartPropertyMissing,r),r.end&&(r.end instanceof Date||i(ru.EndPropertyNotDate,r),r.start>r.end&&i(ru.EndsBeforeStart,r))}),e):(t(ru.NotArray,n),!1)}(n,(...e)=>console.warn("angular-calendar",...e));function hA(n,t){return Math.floor(n.left)<=Math.ceil(t.left)&&Math.floor(t.left)<=Math.ceil(n.right)&&Math.floor(n.left)<=Math.ceil(t.right)&&Math.floor(t.right)<=Math.ceil(n.right)}function fA(n,t){return Math.round(n/t)*t}const pA=(n,t)=>t.id?t.id:t,y0=(n,t)=>t.date.toISOString(),xH=(n,t)=>t.date.toISOString(),PH=(n,t)=>t.segments[0].date.toISOString(),RH=(n,t)=>t.event.id?t.event.id:t.event,kH=(n,t)=>t.event.id?t.event.id:t.event;function w0(n,t,e,i,r){const s=fA(n,i||e),a=function LH(n,t,e){return(e||60)/(n*t)}(t,e,r);return s*a}function gA(n,t,e){return t.end?t.end:n.addMinutes(t.start,e)}function ko(n,t,e,i){let r=0,s=0;const a=e<0?n.subDays:n.addDays;let u=t;for(;s<=Math.abs(e);){u=a(t,r);const h=n.getDay(u);-1===i.indexOf(h)&&s++,r++}return u}function C0(n,t,e,i=[],r){let s=r?n.startOfDay(t):n.startOfWeek(t,{weekStartsOn:e});const a=n.endOfWeek(t,{weekStartsOn:e});for(;i.indexOf(n.getDay(s))>-1&&s-1&&u>s;)u=n.subDays(u,1);return{viewStart:s,viewEnd:u}}}function D0({x:n,y:t}){return Math.abs(n)>1||Math.abs(t)>1}class za{}let VH=(()=>{class n{constructor(e){this.dateAdapter=e,this.excludeDays=[],this.viewDateChange=new me}onClick(){const e={day:this.dateAdapter.subDays,week:this.dateAdapter.subWeeks,month:this.dateAdapter.subMonths}[this.view];this.viewDateChange.emit(this.view===ja.Day?ko(this.dateAdapter,this.viewDate,-1,this.excludeDays):this.view===ja.Week&&this.daysInWeek?ko(this.dateAdapter,this.viewDate,-this.daysInWeek,this.excludeDays):e(this.viewDate,1))}}return n.\u0275fac=function(e){return new(e||n)(U(za))},n.\u0275dir=we({type:n,selectors:[["","mwlCalendarPreviousView",""]],hostBindings:function(e,i){1&e&&We("click",function(){return i.onClick()})},inputs:{view:"view",viewDate:"viewDate",excludeDays:"excludeDays",daysInWeek:"daysInWeek"},outputs:{viewDateChange:"viewDateChange"}}),n})(),BH=(()=>{class n{constructor(e){this.dateAdapter=e,this.excludeDays=[],this.viewDateChange=new me}onClick(){const e={day:this.dateAdapter.addDays,week:this.dateAdapter.addWeeks,month:this.dateAdapter.addMonths}[this.view];this.viewDateChange.emit(this.view===ja.Day?ko(this.dateAdapter,this.viewDate,1,this.excludeDays):this.view===ja.Week&&this.daysInWeek?ko(this.dateAdapter,this.viewDate,this.daysInWeek,this.excludeDays):e(this.viewDate,1))}}return n.\u0275fac=function(e){return new(e||n)(U(za))},n.\u0275dir=we({type:n,selectors:[["","mwlCalendarNextView",""]],hostBindings:function(e,i){1&e&&We("click",function(){return i.onClick()})},inputs:{view:"view",viewDate:"viewDate",excludeDays:"excludeDays",daysInWeek:"daysInWeek"},outputs:{viewDateChange:"viewDateChange"}}),n})(),HH=(()=>{class n{constructor(e){this.dateAdapter=e,this.viewDateChange=new me}onClick(){this.viewDateChange.emit(this.dateAdapter.startOfDay(new Date))}}return n.\u0275fac=function(e){return new(e||n)(U(za))},n.\u0275dir=we({type:n,selectors:[["","mwlCalendarToday",""]],hostBindings:function(e,i){1&e&&We("click",function(){return i.onClick()})},inputs:{viewDate:"viewDate"},outputs:{viewDateChange:"viewDateChange"}}),n})(),UH=(()=>{class n{constructor(e){this.dateAdapter=e}monthViewColumnHeader({date:e,locale:i}){return li(e,"EEEE",i)}monthViewDayNumber({date:e,locale:i}){return li(e,"d",i)}monthViewTitle({date:e,locale:i}){return li(e,"LLLL y",i)}weekViewColumnHeader({date:e,locale:i}){return li(e,"EEEE",i)}weekViewColumnSubHeader({date:e,locale:i}){return li(e,"MMM d",i)}weekViewTitle({date:e,locale:i,weekStartsOn:r,excludeDays:s,daysInWeek:a}){const{viewStart:u,viewEnd:h}=C0(this.dateAdapter,e,r,s,a),f=(m,y)=>li(m,"MMM d"+(y?", yyyy":""),i);return`${f(u,u.getUTCFullYear()!==h.getUTCFullYear())} - ${f(h,!0)}`}weekViewHour({date:e,locale:i}){return li(e,"h a",i)}dayViewHour({date:e,locale:i}){return li(e,"h a",i)}dayViewTitle({date:e,locale:i}){return li(e,"EEEE, MMMM d, y",i)}}return n.\u0275fac=function(e){return new(e||n)(z(za))},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})(),V_=(()=>{class n extends UH{}return n.\u0275fac=function(){let t;return function(i){return(t||(t=Hn(n)))(i||n)}}(),n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})(),Xp=(()=>{class n{constructor(e,i){this.dateFormatter=e,this.locale=i}transform(e,i,r=this.locale,s=0,a=[],u){if(typeof this.dateFormatter[i]>"u"){const h=Object.getOwnPropertyNames(Object.getPrototypeOf(V_.prototype)).filter(f=>"constructor"!==f);throw new Error(`${i} is not a valid date formatter. Can only be one of ${h.join(", ")}`)}return this.dateFormatter[i]({date:e,locale:r,weekStartsOn:s,excludeDays:a,daysInWeek:u})}}return n.\u0275fac=function(e){return new(e||n)(U(V_,16),U(js,16))},n.\u0275pipe=Kt({name:"calendarDate",type:n,pure:!0}),n})(),B_=(()=>{class n{constructor(e){this.dateAdapter=e}getMonthView(e){return function C2(n,t){var e=t.events,i=void 0===e?[]:e,r=t.viewDate,s=t.weekStartsOn,a=t.excluded,u=void 0===a?[]:a,h=t.viewStart,f=void 0===h?n.startOfMonth(r):h,m=t.viewEnd,y=void 0===m?n.endOfMonth(r):m,C=t.weekendDays;i||(i=[]);for(var be,T=n.endOfWeek,x=n.differenceInDays,R=n.startOfDay,F=n.addHours,O=n.endOfDay,G=n.isSameMonth,Y=n.getDay,Ce=(0,n.startOfWeek)(f,{weekStartsOn:s}),Ze=T(y,{weekStartsOn:s}),Ve=Zp(n,{events:i,periodStart:Ce,periodEnd:Ze}),De=[],de=function(St){var Rt;if(be?(Rt=R(F(be,24)),be.getTime()===Rt.getTime()&&(Rt=R(F(be,25))),be=Rt):Rt=be=Ce,!u.some(function(qs){return Y(Rt)===qs})){var Sn=FI(n,{date:Rt,weekendDays:C}),bi=Zp(n,{events:Ve,periodStart:R(Rt),periodEnd:O(Rt)});Sn.inMonth=G(Rt,r),Sn.events=bi,Sn.badgeTotal=bi.length,De.push(Sn)}},ie=0;ie{return(n=_a||(_a={})).Drag="drag",n.Drop="drop",n.Resize="resize",_a;var n})();let Qp=(()=>{class n{static forRoot(e,i={}){return{ngModule:n,providers:[e,i.eventTitleFormatter||v0,i.dateFormatter||V_,i.utils||B_,i.a11y||F_]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({providers:[pD],imports:[[mh]]}),n})(),jH=(()=>{class n{constructor(){this.columnHeaderClicked=new me,this.trackByWeekDayHeaderDate=y0}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=Yt({type:n,selectors:[["mwl-calendar-month-view-header"]],inputs:{days:"days",locale:"locale",customTemplate:"customTemplate"},outputs:{columnHeaderClicked:"columnHeaderClicked"},decls:3,vars:6,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["role","row",1,"cal-cell-row","cal-header"],["class","cal-cell","tabindex","0","role","columnheader",3,"cal-past","cal-today","cal-future","cal-weekend","ngClass","click",4,"ngFor","ngForOf","ngForTrackBy"],["tabindex","0","role","columnheader",1,"cal-cell",3,"ngClass","click"]],template:function(e,i){if(1&e&&(Ee(0,DB,2,2,"ng-template",null,0,hs),Ee(2,SB,0,0,"ng-template",1)),2&e){const r=Yn(1);J(2),te("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",IC(2,bB,i.days,i.locale,i.trackByWeekDayHeaderDate))}},directives:[Jl,ma,Gs],pipes:[Xp],encapsulation:2}),n})(),zH=(()=>{class n{constructor(){this.highlightDay=new me,this.unhighlightDay=new me,this.eventClicked=new me,this.trackByEventId=pA,this.validateDrag=D0}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=Yt({type:n,selectors:[["mwl-calendar-month-cell"]],hostAttrs:[1,"cal-cell","cal-day-cell"],hostVars:18,hostBindings:function(e,i){2&e&&yi("cal-past",i.day.isPast)("cal-today",i.day.isToday)("cal-future",i.day.isFuture)("cal-weekend",i.day.isWeekend)("cal-in-month",i.day.inMonth)("cal-out-month",!i.day.inMonth)("cal-has-events",i.day.events.length>0)("cal-open",i.day===i.openDay)("cal-event-highlight",!!i.day.backgroundColor)},inputs:{day:"day",openDay:"openDay",locale:"locale",tooltipPlacement:"tooltipPlacement",tooltipAppendToBody:"tooltipAppendToBody",customTemplate:"customTemplate",tooltipTemplate:"tooltipTemplate",tooltipDelay:"tooltipDelay"},outputs:{highlightDay:"highlightDay",unhighlightDay:"unhighlightDay",eventClicked:"eventClicked"},decls:3,vars:15,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"cal-cell-top"],["aria-hidden","true"],["class","cal-day-badge",4,"ngIf"],[1,"cal-day-number"],["class","cal-events",4,"ngIf"],[1,"cal-day-badge"],[1,"cal-events"],["class","cal-event","mwlDraggable","","dragActiveClass","cal-drag-active",3,"ngStyle","ngClass","mwlCalendarTooltip","tooltipPlacement","tooltipEvent","tooltipTemplate","tooltipAppendToBody","tooltipDelay","cal-draggable","dropData","dragAxis","validateDrag","touchStartLongPress","mouseenter","mouseleave","mwlClick",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDraggable","","dragActiveClass","cal-drag-active",1,"cal-event",3,"ngStyle","ngClass","mwlCalendarTooltip","tooltipPlacement","tooltipEvent","tooltipTemplate","tooltipAppendToBody","tooltipDelay","dropData","dragAxis","validateDrag","touchStartLongPress","mouseenter","mouseleave","mwlClick"]],template:function(e,i){if(1&e&&(Ee(0,xB,8,14,"ng-template",null,0,hs),Ee(2,PB,0,0,"ng-template",1)),2&e){const r=Yn(1);J(2),te("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",xC(2,RB,[i.day,i.openDay,i.locale,i.tooltipPlacement,i.highlightDay,i.unhighlightDay,i.eventClicked,i.tooltipTemplate,i.tooltipAppendToBody,i.tooltipDelay,i.trackByEventId,i.validateDrag]))}},directives:[Fa,Jl,f0,Bp,ma,cA,bc,Gs],pipes:[Ec,Xp,_0],encapsulation:2}),n})();const WH=function sF(n,t){return{type:7,name:n,definitions:t,options:{}}}("collapse",[zM("void",s_({height:0,overflow:"hidden","padding-top":0,"padding-bottom":0})),zM("*",s_({height:"*",overflow:"hidden","padding-top":"*","padding-bottom":"*"})),WM("* => void",UM("150ms ease-out")),WM("void => *",UM("150ms ease-in"))]);let GH=(()=>{class n{constructor(){this.isOpen=!1,this.eventClicked=new me,this.trackByEventId=pA,this.validateDrag=D0}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=Yt({type:n,selectors:[["mwl-calendar-open-day-events"]],inputs:{locale:"locale",isOpen:"isOpen",events:"events",customTemplate:"customTemplate",eventTitleTemplate:"eventTitleTemplate",eventActionsTemplate:"eventActionsTemplate",date:"date"},outputs:{eventClicked:"eventClicked"},decls:3,vars:8,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["class","cal-open-day-events","role","application",4,"ngIf"],["role","application",1,"cal-open-day-events"],["tabindex","-1","role","alert"],["tabindex","0","role","landmark"],["mwlDraggable","","dragActiveClass","cal-drag-active",3,"ngClass","cal-draggable","dropData","dragAxis","validateDrag","touchStartLongPress",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDraggable","","dragActiveClass","cal-drag-active",3,"ngClass","dropData","dragAxis","validateDrag","touchStartLongPress"],[1,"cal-event",3,"ngStyle"],["view","month","tabindex","0",3,"event","customTemplate","mwlClick","mwlKeydownEnter"],[3,"event","customTemplate"]],template:function(e,i){if(1&e&&(Ee(0,NB,1,1,"ng-template",null,0,hs),Ee(2,FB,0,0,"ng-template",1)),2&e){const r=Yn(1);J(2),te("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",AC(2,VB,i.events,i.eventClicked,i.isOpen,i.trackByEventId,i.validateDrag))}},directives:[uA,lA,Fa,Jl,f0,ma,Bp,bc,N_,Gs],pipes:[Ec],encapsulation:2,data:{animation:[WH]}}),n})(),$H=(()=>{class n{constructor(e,i,r,s){this.cdr=e,this.utils=i,this.dateAdapter=s,this.events=[],this.excludeDays=[],this.activeDayIsOpen=!1,this.tooltipPlacement="auto",this.tooltipAppendToBody=!0,this.tooltipDelay=null,this.beforeViewRender=new me,this.dayClicked=new me,this.eventClicked=new me,this.columnHeaderClicked=new me,this.eventTimesChanged=new me,this.trackByRowOffset=(a,u)=>this.view.days.slice(u,this.view.totalDaysVisibleInWeek).map(h=>h.date.toISOString()).join("-"),this.trackByDate=(a,u)=>u.date.toISOString(),this.locale=r}ngOnInit(){this.refresh&&(this.refreshSubscription=this.refresh.subscribe(()=>{this.refreshAll(),this.cdr.markForCheck()}))}ngOnChanges(e){const i=e.viewDate||e.excludeDays||e.weekendDays,r=e.viewDate||e.events||e.excludeDays||e.weekendDays;i&&this.refreshHeader(),e.events&&dA(this.events),r&&this.refreshBody(),(i||r)&&this.emitBeforeViewRender(),(e.activeDayIsOpen||e.viewDate||e.events||e.excludeDays||e.activeDay)&&this.checkActiveDayIsOpen()}ngOnDestroy(){this.refreshSubscription&&this.refreshSubscription.unsubscribe()}toggleDayHighlight(e,i){this.view.days.forEach(r=>{i&&r.events.indexOf(e)>-1?r.backgroundColor=e.color&&e.color.secondary||"#D1E8FF":delete r.backgroundColor})}eventDropped(e,i,r){if(e!==r){const s=this.dateAdapter.getYear(e.date),a=this.dateAdapter.getMonth(e.date),u=this.dateAdapter.getDate(e.date),h=this.dateAdapter.setDate(this.dateAdapter.setMonth(this.dateAdapter.setYear(i.start,s),a),u);let f;if(i.end){const m=this.dateAdapter.differenceInSeconds(h,i.start);f=this.dateAdapter.addSeconds(i.end,m)}this.eventTimesChanged.emit({event:i,newStart:h,newEnd:f,day:e,type:_a.Drop})}}refreshHeader(){this.columnHeaders=this.utils.getWeekViewHeader({viewDate:this.viewDate,weekStartsOn:this.weekStartsOn,excluded:this.excludeDays,weekendDays:this.weekendDays})}refreshBody(){this.view=this.utils.getMonthView({events:this.events,viewDate:this.viewDate,weekStartsOn:this.weekStartsOn,excluded:this.excludeDays,weekendDays:this.weekendDays})}checkActiveDayIsOpen(){if(!0===this.activeDayIsOpen){const e=this.activeDay||this.viewDate;this.openDay=this.view.days.find(r=>this.dateAdapter.isSameDay(r.date,e));const i=this.view.days.indexOf(this.openDay);this.openRowIndex=Math.floor(i/this.view.totalDaysVisibleInWeek)*this.view.totalDaysVisibleInWeek}else this.openRowIndex=null,this.openDay=null}refreshAll(){this.refreshHeader(),this.refreshBody(),this.emitBeforeViewRender(),this.checkActiveDayIsOpen()}emitBeforeViewRender(){this.columnHeaders&&this.view&&this.beforeViewRender.emit({header:this.columnHeaders,body:this.view.days,period:this.view.period})}}return n.\u0275fac=function(e){return new(e||n)(U(gh),U(B_),U(js),U(za))},n.\u0275cmp=Yt({type:n,selectors:[["mwl-calendar-month-view"]],inputs:{viewDate:"viewDate",events:"events",excludeDays:"excludeDays",activeDayIsOpen:"activeDayIsOpen",activeDay:"activeDay",refresh:"refresh",locale:"locale",tooltipPlacement:"tooltipPlacement",tooltipTemplate:"tooltipTemplate",tooltipAppendToBody:"tooltipAppendToBody",tooltipDelay:"tooltipDelay",weekStartsOn:"weekStartsOn",headerTemplate:"headerTemplate",cellTemplate:"cellTemplate",openDayEventsTemplate:"openDayEventsTemplate",eventTitleTemplate:"eventTitleTemplate",eventActionsTemplate:"eventActionsTemplate",weekendDays:"weekendDays"},outputs:{beforeViewRender:"beforeViewRender",dayClicked:"dayClicked",eventClicked:"eventClicked",columnHeaderClicked:"columnHeaderClicked",eventTimesChanged:"eventTimesChanged"},features:[_n],decls:4,vars:5,consts:[["role","grid",1,"cal-month-view"],[3,"days","locale","customTemplate","columnHeaderClicked"],[1,"cal-days"],[4,"ngFor","ngForOf","ngForTrackBy"],["role","row",1,"cal-cell-row"],["role","gridcell","mwlDroppable","","dragOverClass","cal-drag-over",3,"ngClass","day","openDay","locale","tooltipPlacement","tooltipAppendToBody","tooltipTemplate","tooltipDelay","customTemplate","ngStyle","clickListenerDisabled","mwlClick","mwlKeydownEnter","highlightDay","unhighlightDay","drop","eventClicked",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDroppable","","dragOverClass","cal-drag-over",3,"locale","isOpen","events","date","customTemplate","eventTitleTemplate","eventActionsTemplate","eventClicked","drop"],["role","gridcell","mwlDroppable","","dragOverClass","cal-drag-over",3,"ngClass","day","openDay","locale","tooltipPlacement","tooltipAppendToBody","tooltipTemplate","tooltipDelay","customTemplate","ngStyle","clickListenerDisabled","mwlClick","mwlKeydownEnter","highlightDay","unhighlightDay","drop","eventClicked"]],template:function(e,i){1&e&&(fe(0,"div",0)(1,"mwl-calendar-month-view-header",1),We("columnHeaderClicked",function(s){return i.columnHeaderClicked.emit(s)}),ge(),fe(2,"div",2),Ee(3,HB,5,13,"div",3),ge()()),2&e&&(J(1),te("days",i.columnHeaders)("locale",i.locale)("customTemplate",i.headerTemplate),J(2),te("ngForOf",i.view.rowOffsets)("ngForTrackBy",i.trackByRowOffset))},directives:[jH,zH,GH,Jl,p0,ma,Bp,bc,N_],pipes:[Ec,CM],encapsulation:2}),n})(),mA=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({imports:[[mh,k_,Qp],k_]}),n})();class ZH{constructor(t,e){this.dragContainerElement=t,this.startPosition=e.getBoundingClientRect()}validateDrag({x:t,y:e,snapDraggedEvents:i,dragAlreadyMoved:r,transform:s}){const a=D0({x:t,y:e})||r;if(i){const u=Object.assign({},this.startPosition,{left:this.startPosition.left+s.x,right:this.startPosition.right+s.x,top:this.startPosition.top+s.y,bottom:this.startPosition.bottom+s.y});if(a){const h=this.dragContainerElement.getBoundingClientRect(),f=h.top{class n{constructor(){this.dayHeaderClicked=new me,this.eventDropped=new me,this.dragEnter=new me,this.trackByWeekDayHeaderDate=y0}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=Yt({type:n,selectors:[["mwl-calendar-week-view-header"]],inputs:{days:"days",locale:"locale",customTemplate:"customTemplate"},outputs:{dayHeaderClicked:"dayHeaderClicked",eventDropped:"eventDropped",dragEnter:"dragEnter"},decls:3,vars:9,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["role","row",1,"cal-day-headers"],["class","cal-header","mwlDroppable","","dragOverClass","cal-drag-over","tabindex","0","role","columnheader",3,"cal-past","cal-today","cal-future","cal-weekend","ngClass","mwlClick","drop","dragEnter",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDroppable","","dragOverClass","cal-drag-over","tabindex","0","role","columnheader",1,"cal-header",3,"ngClass","mwlClick","drop","dragEnter"]],template:function(e,i){if(1&e&&(Ee(0,jB,2,2,"ng-template",null,0,hs),Ee(2,zB,0,0,"ng-template",1)),2&e){const r=Yn(1);J(2),te("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",function tT(n,t,e,i,r,s,a,u,h){const f=Oi()+n,m=K(),y=Us(m,f,e,i,r,s);return hc(m,f+4,a,u)||y?da(m,f+6,h?t.call(h,e,i,r,s,a,u):t(e,i,r,s,a,u)):Dp(m,f+6)}(2,WB,i.days,i.locale,i.dayHeaderClicked,i.eventDropped,i.dragEnter,i.trackByWeekDayHeaderDate))}},directives:[Jl,p0,ma,bc,Gs],pipes:[Xp],encapsulation:2}),n})(),KH=(()=>{class n{constructor(){this.eventClicked=new me}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=Yt({type:n,selectors:[["mwl-calendar-week-view-event"]],inputs:{locale:"locale",weekEvent:"weekEvent",tooltipPlacement:"tooltipPlacement",tooltipAppendToBody:"tooltipAppendToBody",tooltipDisabled:"tooltipDisabled",tooltipDelay:"tooltipDelay",customTemplate:"customTemplate",eventTitleTemplate:"eventTitleTemplate",eventActionsTemplate:"eventActionsTemplate",tooltipTemplate:"tooltipTemplate",column:"column",daysInWeek:"daysInWeek"},outputs:{eventClicked:"eventClicked"},decls:3,vars:12,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["tabindex","0","role","application",1,"cal-event",3,"ngStyle","mwlCalendarTooltip","tooltipPlacement","tooltipEvent","tooltipTemplate","tooltipAppendToBody","tooltipDelay","mwlClick","mwlKeydownEnter"],[3,"event","customTemplate"],[3,"event","customTemplate","view"]],template:function(e,i){if(1&e&&(Ee(0,$B,6,26,"ng-template",null,0,hs),Ee(2,ZB,0,0,"ng-template",1)),2&e){const r=Yn(1);J(2),te("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",xC(2,qB,[i.weekEvent,i.tooltipPlacement,i.eventClicked,i.tooltipTemplate,i.tooltipAppendToBody,i.tooltipDisabled,i.tooltipDelay,i.column,i.daysInWeek]))}},directives:[lA,uA,Bp,cA,bc,N_,Gs],pipes:[_0,Ec],encapsulation:2}),n})(),XH=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=Yt({type:n,selectors:[["mwl-calendar-week-view-hour-segment"]],inputs:{segment:"segment",segmentHeight:"segmentHeight",locale:"locale",isTimeLabel:"isTimeLabel",daysInWeek:"daysInWeek",customTemplate:"customTemplate"},decls:3,vars:8,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"cal-hour-segment",3,"ngClass"],["class","cal-time",4,"ngIf"],[1,"cal-time"]],template:function(e,i){if(1&e&&(Ee(0,KB,3,13,"ng-template",null,0,hs),Ee(2,XB,0,0,"ng-template",1)),2&e){const r=Yn(1);J(2),te("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",AC(2,QB,i.segment,i.locale,i.segmentHeight,i.isTimeLabel,i.daysInWeek))}},directives:[ma,Fa,Gs],pipes:[Ec,Xp],encapsulation:2}),n})(),QH=(()=>{class n{constructor(e,i){this.dateAdapter=e,this.zone=i,this.columnDate$=new yh(void 0),this.marker$=this.zone.onStable.pipe(Va(()=>PI(6e4)),kI(0),function l2(n,t){return at(t)?Va(()=>n,t):Va(()=>n)}(this.columnDate$),lt(r=>{const s=this.dateAdapter.setMinutes(this.dateAdapter.setHours(r,this.dayStartHour),this.dayStartMinute),a=this.dateAdapter.setMinutes(this.dateAdapter.setHours(r,this.dayEndHour),this.dayEndMinute),u=this.hourSegments*this.hourSegmentHeight/(this.hourDuration||60),h=new Date;return{isVisible:this.dateAdapter.isSameDay(r,h)&&h>=s&&h<=a,top:this.dateAdapter.differenceInMinutes(h,s)*u}}))}ngOnChanges(e){e.columnDate&&this.columnDate$.next(e.columnDate.currentValue)}}return n.\u0275fac=function(e){return new(e||n)(U(za),U(Qt))},n.\u0275cmp=Yt({type:n,selectors:[["mwl-calendar-week-view-current-time-marker"]],inputs:{columnDate:"columnDate",dayStartHour:"dayStartHour",dayStartMinute:"dayStartMinute",dayEndHour:"dayEndHour",dayEndMinute:"dayEndMinute",hourSegments:"hourSegments",hourDuration:"hourDuration",hourSegmentHeight:"hourSegmentHeight",customTemplate:"customTemplate"},features:[_n],decls:5,vars:14,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["class","cal-current-time-marker",3,"top",4,"ngIf"],[1,"cal-current-time-marker"]],template:function(e,i){if(1&e&&(Ee(0,eH,1,1,"ng-template",null,0,hs),Ee(2,tH,0,0,"ng-template",1),Cn(3,"async"),Cn(4,"async")),2&e){const r=Yn(1);let s;J(2),te("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",function nT(n,t,e,i,r,s,a,u,h,f){const m=Oi()+n,y=K();let C=Us(y,m,e,i,r,s);return wv(y,m+4,a,u,h)||C?da(y,m+7,f?t.call(f,e,i,r,s,a,u,h):t(e,i,r,s,a,u,h)):Dp(y,m+7)}(6,nH,i.columnDate,i.dayStartHour,i.dayStartMinute,i.dayEndHour,i.dayEndMinute,null==(s=xv(3,2,i.marker$))?null:s.isVisible,null==(s=xv(4,4,i.marker$))?null:s.top))}},directives:[Fa,Gs],pipes:[fD],encapsulation:2}),n})(),vA=(()=>{class n{constructor(e,i,r,s,a){this.cdr=e,this.utils=i,this.dateAdapter=s,this.element=a,this.events=[],this.excludeDays=[],this.tooltipPlacement="auto",this.tooltipAppendToBody=!0,this.tooltipDelay=null,this.precision="days",this.snapDraggedEvents=!0,this.hourSegments=2,this.hourSegmentHeight=30,this.minimumEventHeight=30,this.dayStartHour=0,this.dayStartMinute=0,this.dayEndHour=23,this.dayEndMinute=59,this.dayHeaderClicked=new me,this.eventClicked=new me,this.eventTimesChanged=new me,this.beforeViewRender=new me,this.hourSegmentClicked=new me,this.allDayEventResizes=new Map,this.timeEventResizes=new Map,this.eventDragEnterByType={allDay:0,time:0},this.dragActive=!1,this.dragAlreadyMoved=!1,this.calendarId=Symbol("angular calendar week view id"),this.rtl=!1,this.trackByWeekDayHeaderDate=y0,this.trackByHourSegment=xH,this.trackByHour=PH,this.trackByWeekAllDayEvent=RH,this.trackByWeekTimeEvent=kH,this.trackByHourColumn=(u,h)=>h.hours[0]?h.hours[0].segments[0].date.toISOString():h,this.trackById=(u,h)=>h.id,this.locale=r}ngOnInit(){this.refresh&&(this.refreshSubscription=this.refresh.subscribe(()=>{this.refreshAll(),this.cdr.markForCheck()}))}ngOnChanges(e){const i=e.viewDate||e.excludeDays||e.weekendDays||e.daysInWeek||e.weekStartsOn,r=e.viewDate||e.dayStartHour||e.dayStartMinute||e.dayEndHour||e.dayEndMinute||e.hourSegments||e.hourDuration||e.weekStartsOn||e.weekendDays||e.excludeDays||e.hourSegmentHeight||e.events||e.daysInWeek||e.minimumEventHeight;i&&this.refreshHeader(),e.events&&dA(this.events),r&&this.refreshBody(),(i||r)&&this.emitBeforeViewRender()}ngOnDestroy(){this.refreshSubscription&&this.refreshSubscription.unsubscribe()}ngAfterViewInit(){this.rtl=typeof window<"u"&&"rtl"===getComputedStyle(this.element.nativeElement).direction,this.cdr.detectChanges()}timeEventResizeStarted(e,i,r){this.timeEventResizes.set(i.event,r),this.resizeStarted(e,i)}timeEventResizing(e,i){this.timeEventResizes.set(e.event,i);const r=new Map,s=[...this.events];this.timeEventResizes.forEach((a,u)=>{const h=this.getTimeEventResizedDates(u,a),f=Object.assign(Object.assign({},u),h);r.set(f,u);const m=s.indexOf(u);s[m]=f}),this.restoreOriginalEvents(s,r,!0)}timeEventResizeEnded(e){this.view=this.getWeekView(this.events);const i=this.timeEventResizes.get(e.event);if(i){this.timeEventResizes.delete(e.event);const r=this.getTimeEventResizedDates(e.event,i);this.eventTimesChanged.emit({newStart:r.start,newEnd:r.end,event:e.event,type:_a.Resize})}}allDayEventResizeStarted(e,i,r){this.allDayEventResizes.set(i,{originalOffset:i.offset,originalSpan:i.span,edge:typeof r.edges.left<"u"?"left":"right"}),this.resizeStarted(e,i,this.getDayColumnWidth(e))}allDayEventResizing(e,i,r){const s=this.allDayEventResizes.get(e),a=this.rtl?-1:1;if(typeof i.edges.left<"u"){const u=Math.round(+i.edges.left/r)*a;e.offset=s.originalOffset+u,e.span=s.originalSpan-u}else if(typeof i.edges.right<"u"){const u=Math.round(+i.edges.right/r)*a;e.span=s.originalSpan+u}}allDayEventResizeEnded(e){const i=this.allDayEventResizes.get(e);if(i){const r="left"===i.edge;let s;s=r?e.offset-i.originalOffset:e.span-i.originalSpan,e.offset=i.originalOffset,e.span=i.originalSpan;const a=this.getAllDayEventResizedDates(e.event,s,r);this.eventTimesChanged.emit({newStart:a.start,newEnd:a.end,event:e.event,type:_a.Resize}),this.allDayEventResizes.delete(e)}}getDayColumnWidth(e){return Math.floor(e.offsetWidth/this.days.length)}dateDragEnter(e){this.lastDragEnterDate=e}eventDropped(e,i,r){(function FH(n,t,e,i){return n.dropData&&n.dropData.event&&(n.dropData.calendarId!==i||n.dropData.event.allDay&&!e||!n.dropData.event.allDay&&e)})(e,0,r,this.calendarId)&&this.lastDragEnterDate.getTime()===i.getTime()&&(!this.snapDraggedEvents||e.dropData.event!==this.lastDraggedEvent)&&this.eventTimesChanged.emit({type:_a.Drop,event:e.dropData.event,newStart:i,allDay:r}),this.lastDraggedEvent=null}dragEnter(e){this.eventDragEnterByType[e]++}dragLeave(e){this.eventDragEnterByType[e]--}dragStarted(e,i,r,s){this.dayColumnWidth=this.getDayColumnWidth(e);const a=new ZH(e,i);this.validateDrag=({x:u,y:h,transform:f})=>{const m=0===this.allDayEventResizes.size&&0===this.timeEventResizes.size&&a.validateDrag({x:u,y:h,snapDraggedEvents:this.snapDraggedEvents,dragAlreadyMoved:this.dragAlreadyMoved,transform:f});if(m&&this.validateEventTimesChanged){const y=this.getDragMovedEventTimes(r,{x:u,y:h},this.dayColumnWidth,s);return this.validateEventTimesChanged({type:_a.Drag,event:r.event,newStart:y.start,newEnd:y.end})}return m},this.dragActive=!0,this.dragAlreadyMoved=!1,this.lastDraggedEvent=null,this.eventDragEnterByType={allDay:0,time:0},!this.snapDraggedEvents&&s&&this.view.hourColumns.forEach(u=>{const h=u.events.find(f=>f.event===r.event&&f!==r);h&&(h.width=0,h.height=0)}),this.cdr.markForCheck()}dragMove(e,i){const r=this.getDragMovedEventTimes(e,i,this.dayColumnWidth,!0),s=e.event,a=Object.assign(Object.assign({},s),r),u=this.events.map(h=>h===s?a:h);this.restoreOriginalEvents(u,new Map([[a,s]]),this.snapDraggedEvents),this.dragAlreadyMoved=!0}allDayEventDragMove(){this.dragAlreadyMoved=!0}dragEnded(e,i,r,s=!1){this.view=this.getWeekView(this.events),this.dragActive=!1,this.validateDrag=null;const{start:a,end:u}=this.getDragMovedEventTimes(e,i,r,s);(this.snapDraggedEvents||this.eventDragEnterByType[s?"time":"allDay"]>0)&&function NH(n,t,e){const i=t||n;return e.start<=n&&n<=e.end||e.start<=i&&i<=e.end}(a,u,this.view.period)&&(this.lastDraggedEvent=e.event,this.eventTimesChanged.emit({newStart:a,newEnd:u,event:e.event,type:_a.Drag,allDay:!s}))}refreshHeader(){this.days=this.utils.getWeekViewHeader(Object.assign({viewDate:this.viewDate,weekStartsOn:this.weekStartsOn,excluded:this.excludeDays,weekendDays:this.weekendDays},C0(this.dateAdapter,this.viewDate,this.weekStartsOn,this.excludeDays,this.daysInWeek)))}refreshBody(){this.view=this.getWeekView(this.events)}refreshAll(){this.refreshHeader(),this.refreshBody(),this.emitBeforeViewRender()}emitBeforeViewRender(){this.days&&this.view&&this.beforeViewRender.emit(Object.assign({header:this.days},this.view))}getWeekView(e){return this.utils.getWeekView(Object.assign({events:e,viewDate:this.viewDate,weekStartsOn:this.weekStartsOn,excluded:this.excludeDays,precision:this.precision,absolutePositionedEvents:!0,hourSegments:this.hourSegments,hourDuration:this.hourDuration,dayStart:{hour:this.dayStartHour,minute:this.dayStartMinute},dayEnd:{hour:this.dayEndHour,minute:this.dayEndMinute},segmentHeight:this.hourSegmentHeight,weekendDays:this.weekendDays,minimumEventHeight:this.minimumEventHeight},C0(this.dateAdapter,this.viewDate,this.weekStartsOn,this.excludeDays,this.daysInWeek)))}getDragMovedEventTimes(e,i,r,s){const a=fA(i.x,r)/r*(this.rtl?-1:1),u=s?w0(i.y,this.hourSegments,this.hourSegmentHeight,this.eventSnapSize,this.hourDuration):0,h=this.dateAdapter.addMinutes(ko(this.dateAdapter,e.event.start,a,this.excludeDays),u);let f;return e.event.end&&(f=this.dateAdapter.addMinutes(ko(this.dateAdapter,e.event.end,a,this.excludeDays),u)),{start:h,end:f}}restoreOriginalEvents(e,i,r=!0){const s=this.view;r&&(this.view=this.getWeekView(e));const a=e.filter(u=>i.has(u));this.view.hourColumns.forEach((u,h)=>{s.hourColumns[h].hours.forEach((f,m)=>{f.segments.forEach((y,C)=>{u.hours[m].segments[C].cssClass=y.cssClass})}),a.forEach(f=>{const m=i.get(f),y=u.events.find(C=>C.event===(r?f:m));y?(y.event=m,y.tempEvent=f,r||(y.height=0,y.width=0)):u.events.push({event:m,left:0,top:0,height:0,width:0,startsBeforeDay:!1,endsAfterDay:!1,tempEvent:f})})}),i.clear()}getTimeEventResizedDates(e,i){const r={start:e.start,end:gA(this.dateAdapter,e,this.minimumEventHeight)},a=function Ya(n,t){var e={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&t.indexOf(i)<0&&(e[i]=n[i]);if(null!=n&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(n);ru.end?m:u.end}if(typeof i.edges.top<"u"){const f=w0(i.edges.top,this.hourSegments,this.hourSegmentHeight,this.eventSnapSize,this.hourDuration),m=this.dateAdapter.addMinutes(r.start,f);r.start=mu.end?m:u.end}return r}resizeStarted(e,i,r){this.dayColumnWidth=this.getDayColumnWidth(e);const s=new qH(e,r,this.rtl);this.validateResize=({rectangle:a,edges:u})=>{const h=s.validateResize({rectangle:Object.assign({},a),edges:u});if(h&&this.validateEventTimesChanged){let f;if(r){const m=this.rtl?-1:1;if(typeof u.left<"u"){const y=Math.round(+u.left/r)*m;f=this.getAllDayEventResizedDates(i.event,y,!this.rtl)}else{const y=Math.round(+u.right/r)*m;f=this.getAllDayEventResizedDates(i.event,y,this.rtl)}}else f=this.getTimeEventResizedDates(i.event,{rectangle:a,edges:u});return this.validateEventTimesChanged({type:_a.Resize,event:i.event,newStart:f.start,newEnd:f.end})}return h},this.cdr.markForCheck()}getAllDayEventResizedDates(e,i,r){let s=e.start,a=e.end||e.start;return r?s=ko(this.dateAdapter,s,i,this.excludeDays):a=ko(this.dateAdapter,a,i,this.excludeDays),{start:s,end:a}}}return n.\u0275fac=function(e){return new(e||n)(U(gh),U(B_),U(js),U(za),U(wn))},n.\u0275cmp=Yt({type:n,selectors:[["mwl-calendar-week-view"]],inputs:{viewDate:"viewDate",events:"events",excludeDays:"excludeDays",refresh:"refresh",locale:"locale",tooltipPlacement:"tooltipPlacement",tooltipTemplate:"tooltipTemplate",tooltipAppendToBody:"tooltipAppendToBody",tooltipDelay:"tooltipDelay",weekStartsOn:"weekStartsOn",headerTemplate:"headerTemplate",eventTemplate:"eventTemplate",eventTitleTemplate:"eventTitleTemplate",eventActionsTemplate:"eventActionsTemplate",precision:"precision",weekendDays:"weekendDays",snapDraggedEvents:"snapDraggedEvents",hourSegments:"hourSegments",hourDuration:"hourDuration",hourSegmentHeight:"hourSegmentHeight",minimumEventHeight:"minimumEventHeight",dayStartHour:"dayStartHour",dayStartMinute:"dayStartMinute",dayEndHour:"dayEndHour",dayEndMinute:"dayEndMinute",hourSegmentTemplate:"hourSegmentTemplate",eventSnapSize:"eventSnapSize",allDayEventsLabelTemplate:"allDayEventsLabelTemplate",daysInWeek:"daysInWeek",currentTimeMarkerTemplate:"currentTimeMarkerTemplate",validateEventTimesChanged:"validateEventTimesChanged"},outputs:{dayHeaderClicked:"dayHeaderClicked",eventClicked:"eventClicked",eventTimesChanged:"eventTimesChanged",beforeViewRender:"beforeViewRender",hourSegmentClicked:"hourSegmentClicked"},features:[_n],decls:8,vars:9,consts:[["role","grid",1,"cal-week-view"],[3,"days","locale","customTemplate","dayHeaderClicked","eventDropped","dragEnter"],["class","cal-all-day-events","mwlDroppable","",3,"dragEnter","dragLeave",4,"ngIf"],["mwlDroppable","",1,"cal-time-events",3,"dragEnter","dragLeave"],["class","cal-time-label-column",4,"ngIf"],[1,"cal-day-columns"],["dayColumns",""],["class","cal-day-column",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDroppable","",1,"cal-all-day-events",3,"dragEnter","dragLeave"],["allDayEventsContainer",""],[1,"cal-time-label-column",3,"ngTemplateOutlet"],["class","cal-day-column","mwlDroppable","","dragOverClass","cal-drag-over",3,"drop","dragEnter",4,"ngFor","ngForOf","ngForTrackBy"],["class","cal-events-row",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDroppable","","dragOverClass","cal-drag-over",1,"cal-day-column",3,"drop","dragEnter"],[1,"cal-events-row"],["eventRowContainer",""],["class","cal-event-container","mwlResizable","","mwlDraggable","","dragActiveClass","cal-drag-active",3,"cal-draggable","cal-starts-within-week","cal-ends-within-week","ngClass","width","marginLeft","marginRight","resizeSnapGrid","validateResize","dropData","dragAxis","dragSnapGrid","validateDrag","touchStartLongPress","resizeStart","resizing","resizeEnd","dragStart","dragging","dragEnd",4,"ngFor","ngForOf","ngForTrackBy"],["mwlResizable","","mwlDraggable","","dragActiveClass","cal-drag-active",1,"cal-event-container",3,"ngClass","resizeSnapGrid","validateResize","dropData","dragAxis","dragSnapGrid","validateDrag","touchStartLongPress","resizeStart","resizing","resizeEnd","dragStart","dragging","dragEnd"],["event",""],["class","cal-resize-handle cal-resize-handle-before-start","mwlResizeHandle","",3,"resizeEdges",4,"ngIf"],[3,"locale","weekEvent","tooltipPlacement","tooltipTemplate","tooltipAppendToBody","tooltipDelay","customTemplate","eventTitleTemplate","eventActionsTemplate","daysInWeek","eventClicked"],["class","cal-resize-handle cal-resize-handle-after-end","mwlResizeHandle","",3,"resizeEdges",4,"ngIf"],["mwlResizeHandle","",1,"cal-resize-handle","cal-resize-handle-before-start",3,"resizeEdges"],["mwlResizeHandle","",1,"cal-resize-handle","cal-resize-handle-after-end",3,"resizeEdges"],[1,"cal-time-label-column"],["class","cal-hour",3,"cal-hour-odd",4,"ngFor","ngForOf","ngForTrackBy"],[1,"cal-hour"],[3,"height","segment","segmentHeight","locale","customTemplate","isTimeLabel","daysInWeek",4,"ngFor","ngForOf","ngForTrackBy"],[3,"segment","segmentHeight","locale","customTemplate","isTimeLabel","daysInWeek"],[1,"cal-day-column"],[3,"columnDate","dayStartHour","dayStartMinute","dayEndHour","dayEndMinute","hourSegments","hourDuration","hourSegmentHeight","customTemplate"],[1,"cal-events-container"],["class","cal-event-container","mwlResizable","","mwlDraggable","","dragActiveClass","cal-drag-active",3,"cal-draggable","cal-starts-within-day","cal-ends-within-day","ngClass","hidden","top","height","left","width","resizeSnapGrid","validateResize","allowNegativeResizes","dropData","dragAxis","dragSnapGrid","touchStartLongPress","ghostDragEnabled","ghostElementTemplate","validateDrag","resizeStart","resizing","resizeEnd","dragStart","dragging","dragEnd",4,"ngFor","ngForOf","ngForTrackBy"],["mwlResizable","","mwlDraggable","","dragActiveClass","cal-drag-active",1,"cal-event-container",3,"ngClass","hidden","resizeSnapGrid","validateResize","allowNegativeResizes","dropData","dragAxis","dragSnapGrid","touchStartLongPress","ghostDragEnabled","ghostElementTemplate","validateDrag","resizeStart","resizing","resizeEnd","dragStart","dragging","dragEnd"],[3,"ngTemplateOutlet"],["weekEventTemplate",""],[3,"locale","weekEvent","tooltipPlacement","tooltipTemplate","tooltipAppendToBody","tooltipDisabled","tooltipDelay","customTemplate","eventTitleTemplate","eventActionsTemplate","column","daysInWeek","eventClicked"],["mwlDroppable","","dragActiveClass","cal-drag-active",3,"height","segment","segmentHeight","locale","customTemplate","daysInWeek","clickListenerDisabled","dragOverClass","isTimeLabel","mwlClick","drop","dragEnter",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDroppable","","dragActiveClass","cal-drag-active",3,"segment","segmentHeight","locale","customTemplate","daysInWeek","clickListenerDisabled","dragOverClass","isTimeLabel","mwlClick","drop","dragEnter"]],template:function(e,i){1&e&&(fe(0,"div",0)(1,"mwl-calendar-week-view-header",1),We("dayHeaderClicked",function(s){return i.dayHeaderClicked.emit(s)})("eventDropped",function(s){return i.eventDropped({dropData:s},s.newStart,!0)})("dragEnter",function(s){return i.dateDragEnter(s.date)}),ge(),Ee(2,hH,6,5,"div",2),fe(3,"div",3),We("dragEnter",function(){return i.dragEnter("time")})("dragLeave",function(){return i.dragLeave("time")}),Ee(4,gH,2,2,"div",4),fe(5,"div",5,6),Ee(7,TH,5,13,"div",7),ge()()()),2&e&&(J(1),te("days",i.days)("locale",i.locale)("customTemplate",i.headerTemplate),J(1),te("ngIf",i.view.allDayEventRows.length>0),J(2),te("ngIf",i.view.hourColumns.length>0&&1!==i.daysInWeek),J(1),yi("cal-resize-active",i.timeEventResizes.size>0),J(2),te("ngForOf",i.view.hourColumns)("ngForTrackBy",i.trackByHourColumn))},directives:[YH,KH,XH,QH,Fa,p0,Gs,Jl,iA,f0,ma,lB,bc],encapsulation:2}),n})(),S0=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({imports:[[mh,rA,k_,Qp],rA,k_]}),n})(),JH=(()=>{class n{constructor(){this.events=[],this.hourSegments=2,this.hourSegmentHeight=30,this.minimumEventHeight=30,this.dayStartHour=0,this.dayStartMinute=0,this.dayEndHour=23,this.dayEndMinute=59,this.tooltipPlacement="auto",this.tooltipAppendToBody=!0,this.tooltipDelay=null,this.snapDraggedEvents=!0,this.eventClicked=new me,this.hourSegmentClicked=new me,this.eventTimesChanged=new me,this.beforeViewRender=new me}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=Yt({type:n,selectors:[["mwl-calendar-day-view"]],inputs:{viewDate:"viewDate",events:"events",hourSegments:"hourSegments",hourSegmentHeight:"hourSegmentHeight",hourDuration:"hourDuration",minimumEventHeight:"minimumEventHeight",dayStartHour:"dayStartHour",dayStartMinute:"dayStartMinute",dayEndHour:"dayEndHour",dayEndMinute:"dayEndMinute",refresh:"refresh",locale:"locale",eventSnapSize:"eventSnapSize",tooltipPlacement:"tooltipPlacement",tooltipTemplate:"tooltipTemplate",tooltipAppendToBody:"tooltipAppendToBody",tooltipDelay:"tooltipDelay",hourSegmentTemplate:"hourSegmentTemplate",eventTemplate:"eventTemplate",eventTitleTemplate:"eventTitleTemplate",eventActionsTemplate:"eventActionsTemplate",snapDraggedEvents:"snapDraggedEvents",allDayEventsLabelTemplate:"allDayEventsLabelTemplate",currentTimeMarkerTemplate:"currentTimeMarkerTemplate",validateEventTimesChanged:"validateEventTimesChanged"},outputs:{eventClicked:"eventClicked",hourSegmentClicked:"hourSegmentClicked",eventTimesChanged:"eventTimesChanged",beforeViewRender:"beforeViewRender"},decls:1,vars:26,consts:[[1,"cal-day-view",3,"daysInWeek","viewDate","events","hourSegments","hourDuration","hourSegmentHeight","minimumEventHeight","dayStartHour","dayStartMinute","dayEndHour","dayEndMinute","refresh","locale","eventSnapSize","tooltipPlacement","tooltipTemplate","tooltipAppendToBody","tooltipDelay","hourSegmentTemplate","eventTemplate","eventTitleTemplate","eventActionsTemplate","snapDraggedEvents","allDayEventsLabelTemplate","currentTimeMarkerTemplate","validateEventTimesChanged","eventClicked","hourSegmentClicked","eventTimesChanged","beforeViewRender"]],template:function(e,i){1&e&&(fe(0,"mwl-calendar-week-view",0),We("eventClicked",function(s){return i.eventClicked.emit(s)})("hourSegmentClicked",function(s){return i.hourSegmentClicked.emit(s)})("eventTimesChanged",function(s){return i.eventTimesChanged.emit(s)})("beforeViewRender",function(s){return i.beforeViewRender.emit(s)}),ge()),2&e&&te("daysInWeek",1)("viewDate",i.viewDate)("events",i.events)("hourSegments",i.hourSegments)("hourDuration",i.hourDuration)("hourSegmentHeight",i.hourSegmentHeight)("minimumEventHeight",i.minimumEventHeight)("dayStartHour",i.dayStartHour)("dayStartMinute",i.dayStartMinute)("dayEndHour",i.dayEndHour)("dayEndMinute",i.dayEndMinute)("refresh",i.refresh)("locale",i.locale)("eventSnapSize",i.eventSnapSize)("tooltipPlacement",i.tooltipPlacement)("tooltipTemplate",i.tooltipTemplate)("tooltipAppendToBody",i.tooltipAppendToBody)("tooltipDelay",i.tooltipDelay)("hourSegmentTemplate",i.hourSegmentTemplate)("eventTemplate",i.eventTemplate)("eventTitleTemplate",i.eventTitleTemplate)("eventActionsTemplate",i.eventActionsTemplate)("snapDraggedEvents",i.snapDraggedEvents)("allDayEventsLabelTemplate",i.allDayEventsLabelTemplate)("currentTimeMarkerTemplate",i.currentTimeMarkerTemplate)("validateEventTimesChanged",i.validateEventTimesChanged)},directives:[vA],encapsulation:2}),n})(),_A=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({imports:[[mh,Qp,S0]]}),n})(),eU=(()=>{class n{static forRoot(e,i={}){return{ngModule:n,providers:[e,i.eventTitleFormatter||v0,i.dateFormatter||V_,i.utils||B_,i.a11y||F_]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({imports:[[Qp,mA,S0,_A],Qp,mA,S0,_A]}),n})();function Vi(n){if(null===n||!0===n||!1===n)return NaN;var t=Number(n);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function it(n,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function jt(n){it(1,arguments);var t=Object.prototype.toString.call(n);return n instanceof Date||"object"==typeof n&&"[object Date]"===t?new Date(n.getTime()):"number"==typeof n||"[object Number]"===t?new Date(n):(("string"==typeof n||"[object String]"===t)&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}function b0(n,t){it(2,arguments);var e=jt(n),i=Vi(t);return isNaN(i)?new Date(NaN):(i&&e.setDate(e.getDate()+i),e)}function E0(n,t){it(2,arguments);var e=jt(n).getTime(),i=Vi(t);return new Date(e+i)}function nU(n,t){it(2,arguments);var e=Vi(t);return E0(n,36e5*e)}function rU(n,t){it(2,arguments);var e=Vi(t);return E0(n,6e4*e)}function sU(n,t){it(2,arguments);var e=Vi(t);return E0(n,1e3*e)}function yA(n){var t=new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds()));return t.setUTCFullYear(n.getFullYear()),n.getTime()-t.getTime()}function Jp(n){it(1,arguments);var t=jt(n);return t.setHours(0,0,0,0),t}function aU(n,t){it(2,arguments);var e=Jp(n),i=Jp(t),r=e.getTime()-yA(e),s=i.getTime()-yA(i);return Math.round((r-s)/864e5)}function wA(n,t){var e=n.getFullYear()-t.getFullYear()||n.getMonth()-t.getMonth()||n.getDate()-t.getDate()||n.getHours()-t.getHours()||n.getMinutes()-t.getMinutes()||n.getSeconds()-t.getSeconds()||n.getMilliseconds()-t.getMilliseconds();return e<0?-1:e>0?1:e}function lU(n,t){it(2,arguments);var e=jt(n),i=jt(t),r=wA(e,i),s=Math.abs(aU(e,i));e.setDate(e.getDate()-r*s);var a=Number(wA(e,i)===-r),u=r*(s-a);return 0===u?0:u}function DA(n,t){return it(2,arguments),jt(n).getTime()-jt(t).getTime()}Math.pow(10,8);var SA={ceil:Math.ceil,round:Math.round,floor:Math.floor,trunc:function(n){return n<0?Math.ceil(n):Math.floor(n)}};function bA(n){return n?SA[n]:SA.trunc}function mU(n,t,e){it(2,arguments);var i=DA(n,t)/6e4;return bA(null==e?void 0:e.roundingMethod)(i)}function vU(n,t,e){it(2,arguments);var i=DA(n,t)/1e3;return bA(null==e?void 0:e.roundingMethod)(i)}function _U(n){it(1,arguments);var t=jt(n);return t.setHours(23,59,59,999),t}function yU(n){it(1,arguments);var t=jt(n),e=t.getMonth();return t.setFullYear(t.getFullYear(),e+1,0),t.setHours(23,59,59,999),t}var EA={};function TA(){return EA}function wU(n,t){var e,i,r,s,a,u,h,f;it(1,arguments);var m=TA(),y=Vi(null!==(e=null!==(i=null!==(r=null!==(s=null==t?void 0:t.weekStartsOn)&&void 0!==s?s:null==t||null===(a=t.locale)||void 0===a||null===(u=a.options)||void 0===u?void 0:u.weekStartsOn)&&void 0!==r?r:m.weekStartsOn)&&void 0!==i?i:null===(h=m.locale)||void 0===h||null===(f=h.options)||void 0===f?void 0:f.weekStartsOn)&&void 0!==e?e:0);if(!(y>=0&&y<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var C=jt(n),S=C.getDay(),T=6+(S=0&&y<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var C=jt(n),S=C.getDay(),T=(S=a?s:(e.setFullYear(s.getFullYear(),s.getMonth(),r),e)}function kU(n,t){it(2,arguments);var e=Vi(t);return b0(n,-e)}function OU(n,t){it(2,arguments);var e=Vi(t);return PA(n,-e)}function LU(n,t){it(2,arguments);var e=Vi(t);return RA(n,-e)}function H_(n){return it(1,arguments),xA(n,{weekStartsOn:1})}function NU(n){it(1,arguments);var t=jt(n),e=t.getFullYear(),i=new Date(0);i.setFullYear(e+1,0,4),i.setHours(0,0,0,0);var r=H_(i),s=new Date(0);s.setFullYear(e,0,4),s.setHours(0,0,0,0);var a=H_(s);return t.getTime()>=r.getTime()?e+1:t.getTime()>=a.getTime()?e:e-1}function FU(n){it(1,arguments);var t=NU(n),e=new Date(0);e.setFullYear(t,0,4),e.setHours(0,0,0,0);var i=H_(e);return i}var VU=6048e5;function BU(n){it(1,arguments);var t=jt(n),e=H_(t).getTime()-FU(t).getTime();return Math.round(e/VU)+1}function HU(n,t){it(2,arguments);var e=jt(n),i=Vi(t);return e.setDate(i),e}function UU(n){it(1,arguments);var t=jt(n),e=t.getFullYear(),i=t.getMonth(),r=new Date(0);return r.setFullYear(e,i+1,0),r.setHours(0,0,0,0),r.getDate()}function jU(n,t){it(2,arguments);var e=jt(n),i=Vi(t),r=e.getFullYear(),s=e.getDate(),a=new Date(0);a.setFullYear(r,i,15),a.setHours(0,0,0,0);var u=UU(a);return e.setMonth(i,Math.min(s,u)),e}function zU(n,t){it(2,arguments);var e=jt(n),i=Vi(t);return isNaN(e.getTime())?new Date(NaN):(e.setFullYear(i),e)}function WU(n){it(1,arguments);var t=jt(n),e=t.getDate();return e}function GU(n){return it(1,arguments),jt(n).getFullYear()}function $U(){return Qr(Qr({},function RU(){return{addDays:b0,addHours:nU,addMinutes:rU,addSeconds:sU,differenceInDays:lU,differenceInMinutes:mU,differenceInSeconds:vU,endOfDay:_U,endOfMonth:yU,endOfWeek:wU,getDay:CU,getMonth:DU,isSameDay:MA,isSameMonth:IA,isSameSecond:SU,max:bU,setHours:EU,setMinutes:TU,startOfDay:Jp,startOfMinute:MU,startOfMonth:IU,startOfWeek:xA,getHours:AU,getMinutes:xU,getTimezoneOffset:PU}}()),{addWeeks:PA,addMonths:RA,subDays:kU,subWeeks:OU,subMonths:LU,getISOWeek:BU,setDate:HU,setMonth:jU,setYear:zU,getDate:WU,getYear:GU})}class kA{}class OA{}class ya{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit="string"==typeof t?()=>{this.headers=new Map,t.split("\n").forEach(e=>{const i=e.indexOf(":");if(i>0){const r=e.slice(0,i),s=r.toLowerCase(),a=e.slice(i+1).trim();this.maybeSetNormalizedName(r,s),this.headers.has(s)?this.headers.get(s).push(a):this.headers.set(s,[a])}})}:()=>{this.headers=new Map,Object.keys(t).forEach(e=>{let i=t[e];const r=e.toLowerCase();"string"==typeof i&&(i=[i]),i.length>0&&(this.headers.set(r,i),this.maybeSetNormalizedName(e,r))})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const e=this.headers.get(t.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,e){return this.clone({name:t,value:e,op:"a"})}set(t,e){return this.clone({name:t,value:e,op:"s"})}delete(t,e){return this.clone({name:t,value:e,op:"d"})}maybeSetNormalizedName(t,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,t)}init(){this.lazyInit&&(this.lazyInit instanceof ya?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(e=>{this.headers.set(e,t.headers.get(e)),this.normalizedNames.set(e,t.normalizedNames.get(e))})}clone(t){const e=new ya;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof ya?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([t]),e}applyUpdate(t){const e=t.name.toLowerCase();switch(t.op){case"a":case"s":let i=t.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(t.name,e);const r=("a"===t.op?this.headers.get(e):void 0)||[];r.push(...i),this.headers.set(e,r);break;case"d":const s=t.value;if(s){let a=this.headers.get(e);if(!a)return;a=a.filter(u=>-1===s.indexOf(u)),0===a.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,a)}else this.headers.delete(e),this.normalizedNames.delete(e)}}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>t(this.normalizedNames.get(e),this.headers.get(e)))}}class qU{encodeKey(t){return LA(t)}encodeValue(t){return LA(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}const KU=/%(\d[a-f0-9])/gi,XU={40:"@","3A":":",24:"$","2C":",","3B":";","2B":"+","3D":"=","3F":"?","2F":"/"};function LA(n){return encodeURIComponent(n).replace(KU,(t,e)=>XU[e]??t)}function NA(n){return`${n}`}class Wa{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new qU,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function YU(n,t){const e=new Map;return n.length>0&&n.replace(/^\?/,"").split("&").forEach(r=>{const s=r.indexOf("="),[a,u]=-1==s?[t.decodeKey(r),""]:[t.decodeKey(r.slice(0,s)),t.decodeValue(r.slice(s+1))],h=e.get(a)||[];h.push(u),e.set(a,h)}),e}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(e=>{const i=t.fromObject[e];this.map.set(e,Array.isArray(i)?i:[i])})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const e=this.map.get(t);return e?e[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,e){return this.clone({param:t,value:e,op:"a"})}appendAll(t){const e=[];return Object.keys(t).forEach(i=>{const r=t[i];Array.isArray(r)?r.forEach(s=>{e.push({param:i,value:s,op:"a"})}):e.push({param:i,value:r,op:"a"})}),this.clone(e)}set(t,e){return this.clone({param:t,value:e,op:"s"})}delete(t,e){return this.clone({param:t,value:e,op:"d"})}toString(){return this.init(),this.keys().map(t=>{const e=this.encoder.encodeKey(t);return this.map.get(t).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(t=>""!==t).join("&")}clone(t){const e=new Wa({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(t),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":const e=("a"===t.op?this.map.get(t.param):void 0)||[];e.push(NA(t.value)),this.map.set(t.param,e);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let i=this.map.get(t.param)||[];const r=i.indexOf(NA(t.value));-1!==r&&i.splice(r,1),i.length>0?this.map.set(t.param,i):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}class U_{constructor(t){this.defaultValue=t}}class FA{constructor(){this.map=new Map}set(t,e){return this.map.set(t,e),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}}function VA(n){return typeof ArrayBuffer<"u"&&n instanceof ArrayBuffer}function BA(n){return typeof Blob<"u"&&n instanceof Blob}function HA(n){return typeof FormData<"u"&&n instanceof FormData}class eg{constructor(t,e,i,r){let s;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function QU(n){switch(n){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||r?(this.body=void 0!==i?i:null,s=r):s=i,s&&(this.reportProgress=!!s.reportProgress,this.withCredentials=!!s.withCredentials,s.responseType&&(this.responseType=s.responseType),s.headers&&(this.headers=s.headers),s.context&&(this.context=s.context),s.params&&(this.params=s.params)),this.headers||(this.headers=new ya),this.context||(this.context=new FA),this.params){const a=this.params.toString();if(0===a.length)this.urlWithParams=e;else{const u=e.indexOf("?");this.urlWithParams=e+(-1===u?"?":uy.set(C,t.setHeaders[C]),h)),t.setParams&&(f=Object.keys(t.setParams).reduce((y,C)=>y.set(C,t.setParams[C]),f)),new eg(e,i,s,{params:f,headers:h,context:m,reportProgress:u,responseType:r,withCredentials:a})}}var Jn=(()=>((Jn=Jn||{})[Jn.Sent=0]="Sent",Jn[Jn.UploadProgress=1]="UploadProgress",Jn[Jn.ResponseHeader=2]="ResponseHeader",Jn[Jn.DownloadProgress=3]="DownloadProgress",Jn[Jn.Response=4]="Response",Jn[Jn.User=5]="User",Jn))();class T0{constructor(t,e=200,i="OK"){this.headers=t.headers||new ya,this.status=void 0!==t.status?t.status:e,this.statusText=t.statusText||i,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class M0 extends T0{constructor(t={}){super(t),this.type=Jn.ResponseHeader}clone(t={}){return new M0({headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class tg extends T0{constructor(t={}){super(t),this.type=Jn.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new tg({body:void 0!==t.body?t.body:this.body,headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class I0 extends T0{constructor(t){super(t,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${t.url||"(unknown url)"}`:`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}}function A0(n,t){return{body:t,headers:n.headers,context:n.context,observe:n.observe,params:n.params,reportProgress:n.reportProgress,responseType:n.responseType,withCredentials:n.withCredentials}}let su=(()=>{class n{constructor(e){this.handler=e}request(e,i,r={}){let s;if(e instanceof eg)s=e;else{let h,f;h=r.headers instanceof ya?r.headers:new ya(r.headers),r.params&&(f=r.params instanceof Wa?r.params:new Wa({fromObject:r.params})),s=new eg(e,i,void 0!==r.body?r.body:null,{headers:h,context:r.context,params:f,reportProgress:r.reportProgress,responseType:r.responseType||"json",withCredentials:r.withCredentials})}const a=Ha(s).pipe(function ZU(n,t){return at(t)?Rr(n,t,1):Rr(n,1)}(h=>this.handler.handle(h)));if(e instanceof eg||"events"===r.observe)return a;const u=a.pipe(Fi(h=>h instanceof tg));switch(r.observe||"body"){case"body":switch(s.responseType){case"arraybuffer":return u.pipe(lt(h=>{if(null!==h.body&&!(h.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return h.body}));case"blob":return u.pipe(lt(h=>{if(null!==h.body&&!(h.body instanceof Blob))throw new Error("Response is not a Blob.");return h.body}));case"text":return u.pipe(lt(h=>{if(null!==h.body&&"string"!=typeof h.body)throw new Error("Response is not a string.");return h.body}));default:return u.pipe(lt(h=>h.body))}case"response":return u;default:throw new Error(`Unreachable: unhandled observe type ${r.observe}}`)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:(new Wa).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,r={}){return this.request("PATCH",e,A0(r,i))}post(e,i,r={}){return this.request("POST",e,A0(r,i))}put(e,i,r={}){return this.request("PUT",e,A0(r,i))}}return n.\u0275fac=function(e){return new(e||n)(z(kA))},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})();class UA{constructor(t,e){this.next=t,this.interceptor=e}handle(t){return this.interceptor.intercept(t,this.next)}}const j_=new rt("HTTP_INTERCEPTORS");let ej=(()=>{class n{intercept(e,i){return i.handle(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})();const tj=/^\)\]\}',?\n/;let jA=(()=>{class n{constructor(e){this.xhrFactory=e}handle(e){if("JSONP"===e.method)throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");return new _t(i=>{const r=this.xhrFactory.build();if(r.open(e.method,e.urlWithParams),e.withCredentials&&(r.withCredentials=!0),e.headers.forEach((S,T)=>r.setRequestHeader(S,T.join(","))),e.headers.has("Accept")||r.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){const S=e.detectContentTypeHeader();null!==S&&r.setRequestHeader("Content-Type",S)}if(e.responseType){const S=e.responseType.toLowerCase();r.responseType="json"!==S?S:"text"}const s=e.serializeBody();let a=null;const u=()=>{if(null!==a)return a;const S=r.statusText||"OK",T=new ya(r.getAllResponseHeaders()),x=function nj(n){return"responseURL"in n&&n.responseURL?n.responseURL:/^X-Request-URL:/m.test(n.getAllResponseHeaders())?n.getResponseHeader("X-Request-URL"):null}(r)||e.url;return a=new M0({headers:T,status:r.status,statusText:S,url:x}),a},h=()=>{let{headers:S,status:T,statusText:x,url:R}=u(),F=null;204!==T&&(F=typeof r.response>"u"?r.responseText:r.response),0===T&&(T=F?200:0);let O=T>=200&&T<300;if("json"===e.responseType&&"string"==typeof F){const G=F;F=F.replace(tj,"");try{F=""!==F?JSON.parse(F):null}catch(Y){F=G,O&&(O=!1,F={error:Y,text:F})}}O?(i.next(new tg({body:F,headers:S,status:T,statusText:x,url:R||void 0})),i.complete()):i.error(new I0({error:F,headers:S,status:T,statusText:x,url:R||void 0}))},f=S=>{const{url:T}=u(),x=new I0({error:S,status:r.status||0,statusText:r.statusText||"Unknown Error",url:T||void 0});i.error(x)};let m=!1;const y=S=>{m||(i.next(u()),m=!0);let T={type:Jn.DownloadProgress,loaded:S.loaded};S.lengthComputable&&(T.total=S.total),"text"===e.responseType&&!!r.responseText&&(T.partialText=r.responseText),i.next(T)},C=S=>{let T={type:Jn.UploadProgress,loaded:S.loaded};S.lengthComputable&&(T.total=S.total),i.next(T)};return r.addEventListener("load",h),r.addEventListener("error",f),r.addEventListener("timeout",f),r.addEventListener("abort",f),e.reportProgress&&(r.addEventListener("progress",y),null!==s&&r.upload&&r.upload.addEventListener("progress",C)),r.send(s),i.next({type:Jn.Sent}),()=>{r.removeEventListener("error",f),r.removeEventListener("abort",f),r.removeEventListener("load",h),r.removeEventListener("timeout",f),e.reportProgress&&(r.removeEventListener("progress",y),null!==s&&r.upload&&r.upload.removeEventListener("progress",C)),r.readyState!==r.DONE&&r.abort()}})}}return n.\u0275fac=function(e){return new(e||n)(z(EM))},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})();const x0=new rt("XSRF_COOKIE_NAME"),P0=new rt("XSRF_HEADER_NAME");class zA{}let ij=(()=>{class n{constructor(e,i,r){this.doc=e,this.platform=i,this.cookieName=r,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=gM(e,this.cookieName),this.lastCookieString=e),this.lastToken}}return n.\u0275fac=function(e){return new(e||n)(z(on),z(ph),z(x0))},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})(),R0=(()=>{class n{constructor(e,i){this.tokenService=e,this.headerName=i}intercept(e,i){const r=e.url.toLowerCase();if("GET"===e.method||"HEAD"===e.method||r.startsWith("http://")||r.startsWith("https://"))return i.handle(e);const s=this.tokenService.getToken();return null!==s&&!e.headers.has(this.headerName)&&(e=e.clone({headers:e.headers.set(this.headerName,s)})),i.handle(e)}}return n.\u0275fac=function(e){return new(e||n)(z(zA),z(P0))},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})(),rj=(()=>{class n{constructor(e,i){this.backend=e,this.injector=i,this.chain=null}handle(e){if(null===this.chain){const i=this.injector.get(j_,[]);this.chain=i.reduceRight((r,s)=>new UA(r,s),this.backend)}return this.chain.handle(e)}}return n.\u0275fac=function(e){return new(e||n)(z(OA),z(D))},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})(),sj=(()=>{class n{static disable(){return{ngModule:n,providers:[{provide:R0,useClass:ej}]}}static withOptions(e={}){return{ngModule:n,providers:[e.cookieName?{provide:x0,useValue:e.cookieName}:[],e.headerName?{provide:P0,useValue:e.headerName}:[]]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({providers:[R0,{provide:j_,useExisting:R0,multi:!0},{provide:zA,useClass:ij},{provide:x0,useValue:"XSRF-TOKEN"},{provide:P0,useValue:"X-XSRF-TOKEN"}]}),n})(),oj=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({providers:[su,{provide:kA,useClass:rj},jA,{provide:OA,useExisting:jA}],imports:[[sj.withOptions({cookieName:"XSRF-TOKEN",headerName:"X-XSRF-TOKEN"})]]}),n})();function z_(n,t){const e=at(n)?n:()=>n,i=r=>r.error(e());return new _t(t?r=>t.schedule(i,0,r):i)}function bh(n){return bt((t,e)=>{let s,i=null,r=!1;i=t.subscribe(Mt(e,void 0,void 0,a=>{s=Ti(n(a,bh(n)(t))),i?(i.unsubscribe(),i=null,s.subscribe(e)):r=!0})),r&&(i.unsubscribe(),i=null,s.subscribe(e))})}function k0(n){this.message=n}(k0.prototype=new Error).name="InvalidCharacterError";var WA=typeof window<"u"&&window.atob&&window.atob.bind(window)||function(n){var t=String(n).replace(/=+$/,"");if(t.length%4==1)throw new k0("'atob' failed: The string to be decoded is not correctly encoded.");for(var e,i,r=0,s=0,a="";i=t.charAt(s++);~i&&(e=r%4?64*e+i:i,r++%4)?a+=String.fromCharCode(255&e>>(-2*r&6)):0)i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(i);return a};function W_(n){this.message=n}(W_.prototype=new Error).name="InvalidTokenError";const GA=function lj(n,t){if("string"!=typeof n)throw new W_("Invalid token specified");var e=!0===(t=t||{}).header?0:1;try{return JSON.parse(function aj(n){var t=n.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return decodeURIComponent(WA(t).replace(/(.)/g,function(i,r){var s=r.charCodeAt(0).toString(16).toUpperCase();return s.length<2&&(s="0"+s),"%"+s}))}catch{return WA(t)}}(n.split(".")[e]))}catch(i){throw new W_("Invalid token specified: "+i.message)}};var n,O0=(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),ng=function(n){function t(e,i){var s=this,a=this.constructor.prototype;return(s=n.call(this,e)||this).statusCode=i,s.__proto__=a,s}return O0(t,n),t}(Error),L0=function(n){function t(e){void 0===e&&(e="A timeout occurred.");var r=this,s=this.constructor.prototype;return(r=n.call(this,e)||this).__proto__=s,r}return O0(t,n),t}(Error),ig=function(n){function t(e){void 0===e&&(e="An abort occurred.");var r=this,s=this.constructor.prototype;return(r=n.call(this,e)||this).__proto__=s,r}return O0(t,n),t}(Error),N0=Object.assign||function(n){for(var t,e=1,i=arguments.length;e(function(n){n[n.Trace=0]="Trace",n[n.Debug=1]="Debug",n[n.Information=2]="Information",n[n.Warning=3]="Warning",n[n.Error=4]="Error",n[n.Critical=5]="Critical",n[n.None=6]="None"}(q||(q={})),q))(),V0=function(){function n(){}return n.prototype.log=function(t,e){},n.instance=new n,n}(),uj=Object.assign||function(n){for(var t,e=1,i=arguments.length;e0&&s[s.length-1])&&(6===f[0]||2===f[0])){e=0;continue}if(3===f[0]&&(!s||f[1]>s[0]&&f[1]-1&&this.subject.observers.splice(t,1),0===this.subject.observers.length&&this.subject.cancelCallback&&this.subject.cancelCallback().catch(function(e){})},n}(),G_=function(){function n(t){this.minimumLogLevel=t,this.outputConsole=console}return n.prototype.log=function(t,e){if(t>=this.minimumLogLevel)switch(t){case q.Critical:case q.Error:this.outputConsole.error("["+(new Date).toISOString()+"] "+q[t]+": "+e);break;case q.Warning:this.outputConsole.warn("["+(new Date).toISOString()+"] "+q[t]+": "+e);break;case q.Information:this.outputConsole.info("["+(new Date).toISOString()+"] "+q[t]+": "+e);break;default:this.outputConsole.log("["+(new Date).toISOString()+"] "+q[t]+": "+e)}},n}();function Eh(){var n="X-SignalR-User-Agent";return br.isNode&&(n="User-Agent"),[n,mj("5.0.10",vj(),br.isNode?"NodeJS":"Browser",_j())]}function mj(n,t,e,i){var r="Microsoft SignalR/",s=n.split(".");return r+=s[0]+"."+s[1],r+=" ("+n+"; ",r+=t&&""!==t?t+"; ":"Unknown OS; ",r+=""+e,(r+=i?"; "+i:"; Unknown Runtime Version")+")"}function vj(){if(!br.isNode)return"";switch(process.platform){case"win32":return"Windows NT";case"darwin":return"macOS";case"linux":return"Linux";default:return process.platform}}function _j(){if(br.isNode)return process.versions.node}var wj=function(){var n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])};return function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}}(),Cj=Object.assign||function(n){for(var t,e=1,i=arguments.length;e"u"){var r=require;i.jar=new(r("tough-cookie").CookieJar),i.fetchType=r("node-fetch"),i.fetchType=r("fetch-cookie")(i.fetchType,i.jar),i.abortControllerType=r("abort-controller")}else i.fetchType=fetch.bind(self),i.abortControllerType=AbortController;return i}return wj(t,n),t.prototype.send=function(e){return function(n,t,e,i){return new(e||(e=Promise))(function(r,s){function a(f){try{h(i.next(f))}catch(m){s(m)}}function u(f){try{h(i.throw(f))}catch(m){s(m)}}function h(f){f.done?r(f.value):new e(function(m){m(f.value)}).then(a,u)}h((i=i.apply(n,[])).next())})}(this,0,void 0,function(){var i,r,s,u,h,f,m,y=this;return function(n,t){var i,r,s,a,e={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(f){return function(m){return function h(f){if(i)throw new TypeError("Generator is already executing.");for(;e;)try{if(i=1,r&&(s=2&f[0]?r.return:f[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,f[1])).done)return s;switch(r=0,s&&(f=[2&f[0],s.value]),f[0]){case 0:case 1:s=f;break;case 4:return e.label++,{value:f[1],done:!1};case 5:e.label++,r=f[1],f=[0];continue;case 7:f=e.ops.pop(),e.trys.pop();continue;default:if(!(s=(s=e.trys).length>0&&s[s.length-1])&&(6===f[0]||2===f[0])){e=0;continue}if(3===f[0]&&(!s||f[1]>s[0]&&f[1]=200&&a.status<300?r(new $A(a.status,a.statusText,a.response||a.responseText)):s(new ng(a.statusText,a.status))},a.onerror=function(){i.logger.log(q.Warning,"Error from HTTP request. "+a.status+": "+a.statusText+"."),s(new ng(a.statusText,a.status))},a.ontimeout=function(){i.logger.log(q.Warning,"Timeout from HTTP request."),s(new L0)},a.send(e.content||"")}):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t}(F0),Ij=function(){var n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])};return function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}}(),Aj=function(n){function t(e){var i=n.call(this)||this;if(typeof fetch<"u"||br.isNode)i.httpClient=new bj(e);else{if(!(typeof XMLHttpRequest<"u"))throw new Error("No usable HttpClient found.");i.httpClient=new Mj(e)}return i}return Ij(t,n),t.prototype.send=function(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new ig):e.method?e.url?this.httpClient.send(e):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t.prototype.getCookieString=function(e){return this.httpClient.getCookieString(e)},t}(F0),Th=function(){function n(){}return n.write=function(t){return""+t+n.RecordSeparator},n.parse=function(t){if(t[t.length-1]!==n.RecordSeparator)throw new Error("Message is incomplete.");var e=t.split(n.RecordSeparator);return e.pop(),e},n.RecordSeparatorCode=30,n.RecordSeparator=String.fromCharCode(n.RecordSeparatorCode),n}(),xj=function(){function n(){}return n.prototype.writeHandshakeRequest=function(t){return Th.write(JSON.stringify(t))},n.prototype.parseHandshakeResponse=function(t){var i,r;if(B0(t)||typeof Buffer<"u"&&t instanceof Buffer){var s=new Uint8Array(t);if(-1===(a=s.indexOf(Th.RecordSeparatorCode)))throw new Error("Message is incomplete.");var u=a+1;i=String.fromCharCode.apply(null,s.slice(0,u)),r=s.byteLength>u?s.slice(u).buffer:null}else{var a,h=t;if(-1===(a=h.indexOf(Th.RecordSeparator)))throw new Error("Message is incomplete.");i=h.substring(0,u=a+1),r=h.length>u?h.substring(u):null}var f=Th.parse(i),m=JSON.parse(f[0]);if(m.type)throw new Error("Expected a handshake response from the server.");return[r,m]},n}(),an=(()=>(function(n){n[n.Invocation=1]="Invocation",n[n.StreamItem=2]="StreamItem",n[n.Completion=3]="Completion",n[n.StreamInvocation=4]="StreamInvocation",n[n.CancelInvocation=5]="CancelInvocation",n[n.Ping=6]="Ping",n[n.Close=7]="Close"}(an||(an={})),an))(),Pj=function(){function n(){this.observers=[]}return n.prototype.next=function(t){for(var e=0,i=this.observers;e0&&s[s.length-1])&&(6===f[0]||2===f[0])){e=0;continue}if(3===f[0]&&(!s||f[1]>s[0]&&f[1](function(n){n.Disconnected="Disconnected",n.Connecting="Connecting",n.Connected="Connected",n.Disconnecting="Disconnecting",n.Reconnecting="Reconnecting"}(Dn||(Dn={})),Dn))(),Oj=function(){function n(t,e,i,r){var s=this;this.nextKeepAlive=0,Ci.isRequired(t,"connection"),Ci.isRequired(e,"logger"),Ci.isRequired(i,"protocol"),this.serverTimeoutInMilliseconds=3e4,this.keepAliveIntervalInMilliseconds=15e3,this.logger=e,this.protocol=i,this.connection=t,this.reconnectPolicy=r,this.handshakeProtocol=new xj,this.connection.onreceive=function(a){return s.processIncomingData(a)},this.connection.onclose=function(a){return s.connectionClosed(a)},this.callbacks={},this.methods={},this.closedCallbacks=[],this.reconnectingCallbacks=[],this.reconnectedCallbacks=[],this.invocationId=0,this.receivedHandshakeResponse=!1,this.connectionState=Dn.Disconnected,this.connectionStarted=!1,this.cachedPingMessage=this.protocol.writeMessage({type:an.Ping})}return n.create=function(t,e,i,r){return new n(t,e,i,r)},Object.defineProperty(n.prototype,"state",{get:function(){return this.connectionState},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"connectionId",{get:function(){return this.connection&&this.connection.connectionId||null},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"baseUrl",{get:function(){return this.connection.baseUrl||""},set:function(t){if(this.connectionState!==Dn.Disconnected&&this.connectionState!==Dn.Reconnecting)throw new Error("The HubConnection must be in the Disconnected or Reconnecting state to change the url.");if(!t)throw new Error("The HubConnection url must be a valid url.");this.connection.baseUrl=t},enumerable:!0,configurable:!0}),n.prototype.start=function(){return this.startPromise=this.startWithStateTransitions(),this.startPromise},n.prototype.startWithStateTransitions=function(){return sg(this,void 0,void 0,function(){var t;return og(this,function(e){switch(e.label){case 0:if(this.connectionState!==Dn.Disconnected)return[2,Promise.reject(new Error("Cannot start a HubConnection that is not in the 'Disconnected' state."))];this.connectionState=Dn.Connecting,this.logger.log(q.Debug,"Starting HubConnection."),e.label=1;case 1:return e.trys.push([1,3,,4]),[4,this.startInternal()];case 2:return e.sent(),this.connectionState=Dn.Connected,this.connectionStarted=!0,this.logger.log(q.Debug,"HubConnection connected successfully."),[3,4];case 3:return t=e.sent(),this.connectionState=Dn.Disconnected,this.logger.log(q.Debug,"HubConnection failed to start successfully because of error '"+t+"'."),[2,Promise.reject(t)];case 4:return[2]}})})},n.prototype.startInternal=function(){return sg(this,void 0,void 0,function(){var t,e,i,r=this;return og(this,function(s){switch(s.label){case 0:return this.stopDuringStartError=void 0,this.receivedHandshakeResponse=!1,t=new Promise(function(a,u){r.handshakeResolver=a,r.handshakeRejecter=u}),[4,this.connection.start(this.protocol.transferFormat)];case 1:s.sent(),s.label=2;case 2:return s.trys.push([2,5,,7]),e={protocol:this.protocol.name,version:this.protocol.version},this.logger.log(q.Debug,"Sending handshake request."),[4,this.sendMessage(this.handshakeProtocol.writeHandshakeRequest(e))];case 3:return s.sent(),this.logger.log(q.Information,"Using HubProtocol '"+this.protocol.name+"'."),this.cleanupTimeout(),this.resetTimeoutPeriod(),this.resetKeepAliveInterval(),[4,t];case 4:if(s.sent(),this.stopDuringStartError)throw this.stopDuringStartError;return[3,7];case 5:return i=s.sent(),this.logger.log(q.Debug,"Hub handshake failed with error '"+i+"' during start(). Stopping HubConnection."),this.cleanupTimeout(),this.cleanupPingTimer(),[4,this.connection.stop(i)];case 6:throw s.sent(),i;case 7:return[2]}})})},n.prototype.stop=function(){return sg(this,void 0,void 0,function(){var t;return og(this,function(i){switch(i.label){case 0:return t=this.startPromise,this.stopPromise=this.stopInternal(),[4,this.stopPromise];case 1:i.sent(),i.label=2;case 2:return i.trys.push([2,4,,5]),[4,t];case 3:case 4:return i.sent(),[3,5];case 5:return[2]}})})},n.prototype.stopInternal=function(t){return this.connectionState===Dn.Disconnected?(this.logger.log(q.Debug,"Call to HubConnection.stop("+t+") ignored because it is already in the disconnected state."),Promise.resolve()):this.connectionState===Dn.Disconnecting?(this.logger.log(q.Debug,"Call to HttpConnection.stop("+t+") ignored because the connection is already in the disconnecting state."),this.stopPromise):(this.connectionState=Dn.Disconnecting,this.logger.log(q.Debug,"Stopping HubConnection."),this.reconnectDelayHandle?(this.logger.log(q.Debug,"Connection stopped during reconnect delay. Done reconnecting."),clearTimeout(this.reconnectDelayHandle),this.reconnectDelayHandle=void 0,this.completeClose(),Promise.resolve()):(this.cleanupTimeout(),this.cleanupPingTimer(),this.stopDuringStartError=t||new Error("The connection was stopped before the hub handshake could complete."),this.connection.stop(t)))},n.prototype.stream=function(t){for(var e=this,i=[],r=1;r(function(n){n[n.None=0]="None",n[n.WebSockets=1]="WebSockets",n[n.ServerSentEvents=2]="ServerSentEvents",n[n.LongPolling=4]="LongPolling"}(Di||(Di={})),Di))(),Bi=(()=>(function(n){n[n.Text=1]="Text",n[n.Binary=2]="Binary"}(Bi||(Bi={})),Bi))(),Nj=function(){function n(){this.isAborted=!1,this.onabort=null}return n.prototype.abort=function(){this.isAborted||(this.isAborted=!0,this.onabort&&this.onabort())},Object.defineProperty(n.prototype,"signal",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"aborted",{get:function(){return this.isAborted},enumerable:!0,configurable:!0}),n}(),YA=Object.assign||function(n){for(var t,e=1,i=arguments.length;e0&&s[s.length-1])&&(6===f[0]||2===f[0])){e=0;continue}if(3===f[0]&&(!s||f[1]>s[0]&&f[1]0&&s[s.length-1])&&(6===f[0]||2===f[0])){e=0;continue}if(3===f[0]&&(!s||f[1]>s[0]&&f[1]0&&s[s.length-1])&&(6===f[0]||2===f[0])){e=0;continue}if(3===f[0]&&(!s||f[1]>s[0]&&f[1]0&&s[s.length-1])&&(6===f[0]||2===f[0])){e=0;continue}if(3===f[0]&&(!s||f[1]>s[0]&&f[1]0?[2,Promise.reject(new Error("Unable to connect to the server with any of the available transports. "+a.join(" ")))]:[2,Promise.reject(new Error("None of the transports supported by the client are supported by the server."))]}})})},n.prototype.constructTransport=function(t){switch(t){case Di.WebSockets:if(!this.options.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new jj(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.WebSocket,this.options.headers||{});case Di.ServerSentEvents:if(!this.options.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new Vj(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.EventSource,this.options.withCredentials,this.options.headers||{});case Di.LongPolling:return new KA(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.withCredentials,this.options.headers||{});default:throw new Error("Unknown transport: "+t+".")}},n.prototype.startTransport=function(t,e){var i=this;return this.transport.onreceive=this.onreceive,this.transport.onclose=function(r){return i.stopConnection(r)},this.transport.connect(t,e)},n.prototype.resolveTransportOrError=function(t,e,i){var r=Di[t.transport];if(null==r)return this.logger.log(q.Debug,"Skipping transport '"+t.transport+"' because it is not supported by this client."),new Error("Skipping transport '"+t.transport+"' because it is not supported by this client.");if(!function Gj(n,t){return!n||0!=(t&n)}(e,r))return this.logger.log(q.Debug,"Skipping transport '"+Di[r]+"' because it was disabled by the client."),new Error("'"+Di[r]+"' is disabled by the client.");if(!(t.transferFormats.map(function(a){return Bi[a]}).indexOf(i)>=0))return this.logger.log(q.Debug,"Skipping transport '"+Di[r]+"' because it does not support the requested transfer format '"+Bi[i]+"'."),new Error("'"+Di[r]+"' does not support "+Bi[i]+".");if(r===Di.WebSockets&&!this.options.WebSocket||r===Di.ServerSentEvents&&!this.options.EventSource)return this.logger.log(q.Debug,"Skipping transport '"+Di[r]+"' because it is not supported in your environment.'"),new Error("'"+Di[r]+"' is not supported in your environment.");this.logger.log(q.Debug,"Selecting transport '"+Di[r]+"'.");try{return this.constructTransport(r)}catch(a){return a}},n.prototype.isITransport=function(t){return t&&"object"==typeof t&&"connect"in t},n.prototype.stopConnection=function(t){var e=this;if(this.logger.log(q.Debug,"HttpConnection.stopConnection("+t+") called while in state "+this.connectionState+"."),this.transport=void 0,t=this.stopError||t,this.stopError=void 0,"Disconnected"!==this.connectionState){if("Connecting"===this.connectionState)throw this.logger.log(q.Warning,"Call to HttpConnection.stopConnection("+t+") was ignored because the connection is still in the connecting state."),new Error("HttpConnection.stopConnection("+t+") was called while the connection is still in the connecting state.");if("Disconnecting"===this.connectionState&&this.stopPromiseResolver(),t?this.logger.log(q.Error,"Connection disconnected with error '"+t+"'."):this.logger.log(q.Information,"Connection disconnected."),this.sendQueue&&(this.sendQueue.stop().catch(function(i){e.logger.log(q.Error,"TransportSendQueue.stop() threw error '"+i+"'.")}),this.sendQueue=void 0),this.connectionId=void 0,this.connectionState="Disconnected",this.connectionStarted){this.connectionStarted=!1;try{this.onclose&&this.onclose(t)}catch(i){this.logger.log(q.Error,"HttpConnection.onclose("+t+") threw error '"+i+"'.")}}}else this.logger.log(q.Debug,"Call to HttpConnection.stopConnection("+t+") was ignored because the connection is already in the disconnected state.")},n.prototype.resolveUrl=function(t){if(0===t.lastIndexOf("https://",0)||0===t.lastIndexOf("http://",0))return t;if(!br.isBrowser||!window.document)throw new Error("Cannot resolve '"+t+"'.");var e=window.document.createElement("a");return e.href=t,this.logger.log(q.Information,"Normalizing '"+t+"' to '"+e.href+"'."),e.href},n.prototype.resolveNegotiateUrl=function(t){var e=t.indexOf("?"),i=t.substring(0,-1===e?t.length:e);return"/"!==i[i.length-1]&&(i+="/"),i+="negotiate",-1===(i+=-1===e?"":t.substring(e)).indexOf("negotiateVersion")&&(i+=-1===e?"?":"&",i+="negotiateVersion="+this.negotiateVersion),i},n}(),$j=function(){function n(t){this.transport=t,this.buffer=[],this.executing=!0,this.sendBufferedData=new $_,this.transportResult=new $_,this.sendLoopPromise=this.sendLoop()}return n.prototype.send=function(t){return this.bufferData(t),this.transportResult||(this.transportResult=new $_),this.transportResult.promise},n.prototype.stop=function(){return this.executing=!1,this.sendBufferedData.resolve(),this.sendLoopPromise},n.prototype.bufferData=function(t){if(this.buffer.length&&typeof this.buffer[0]!=typeof t)throw new Error("Expected data to be of type "+typeof this.buffer+" but was of type "+typeof t);this.buffer.push(t),this.sendBufferedData.resolve()},n.prototype.sendLoop=function(){return Tc(this,void 0,void 0,function(){var t,e,i;return ou(this,function(r){switch(r.label){case 0:return[4,this.sendBufferedData.promise];case 1:if(r.sent(),!this.executing)return this.transportResult&&this.transportResult.reject("Connection stopped."),[3,6];this.sendBufferedData=new $_,t=this.transportResult,this.transportResult=void 0,e="string"==typeof this.buffer[0]?this.buffer.join(""):n.concatBuffers(this.buffer),this.buffer.length=0,r.label=2;case 2:return r.trys.push([2,4,,5]),[4,this.transport.send(e)];case 3:return r.sent(),t.resolve(),[3,5];case 4:return i=r.sent(),t.reject(i),[3,5];case 5:return[3,0];case 6:return[2]}})})},n.concatBuffers=function(t){for(var e=t.map(function(h){return h.byteLength}).reduce(function(h,f){return h+f}),i=new Uint8Array(e),r=0,s=0,a=t;s"http://localhost:8080/api/",this.apiVersion="v4",this.channelUrl="",this.channelHubName="",this.realtimeGeolocationHubName="",this.clientId="",this.googleApiKey="",this.logLevel=0,this.isMobileApp=!1,this.cacheProvider=null}get apiUrl(){return`${this.baseApiUrl()}/api/${this.apiVersion}`}}class r3{encodeKey(t){return encodeURIComponent(t)}encodeValue(t){return encodeURIComponent(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}let wa=(()=>{class n{constructor(e){this.config=e}logError(e,...i){this.config.logLevel>=2&&(i&&i.length?console.error(`[ERROR] ${this.config.clientId} - ${e}`,...i):console.error(`[ERROR] ${this.config.clientId} - ${e}`))}logWarning(e,...i){this.config.logLevel>=1&&(i&&i.length?console.warn(`[WARN] ${this.config.clientId} - ${e}`,...i):console.warn(`[WARN] ${this.config.clientId} - ${e}`))}logDebug(e,...i){this.config.logLevel>=0&&(i&&i.length?console.log(`[DEBUG] ${this.config.clientId} - ${e}`,...i):console.log(`[DEBUG] ${this.config.clientId} - ${e}`))}}return n.\u0275fac=function(e){return new(e||n)(z(nr))},n.\u0275prov=oe({factory:function(){return new n(z(nr))},token:n,providedIn:"root"}),n})(),r1=(()=>{class n{constructor(e,i){this.logger=e,this.config=i}read(e){const i=`${this.config.clientId}.${e}`,r=localStorage.getItem(i);return r?(this.logger.logDebug(`readKey ${i} length: ${r.length}`),JSON.parse(r)):(this.logger.logDebug(`readKey ${i} empty`),null)}write(e,i){return localStorage.setItem(`${this.config.clientId}.${e}`,JSON.stringify(i)),!0}remove(e){return localStorage.removeItem(`${this.config.clientId}.${e}`),!0}clear(){return localStorage.clear(),!0}}return n.\u0275fac=function(e){return new(e||n)(z(wa),z(nr))},n.\u0275prov=oe({factory:function(){return new n(z(wa),z(nr))},token:n,providedIn:"root"}),n})(),Z_=(()=>{class n{constructor(e,i,r,s){this.http=e,this.config=i,this.storageService=r,this.logger=s,this.isRefreshing=!1,this.refreshTokenSubject=new yh(null),this.initalState={profile:void 0,tokens:void 0,authReady:!1},this.authReady$=new yh(!1),this.state=new yh(this.initalState),this.state$=this.state.asObservable(),this.tokens$=this.state.pipe(Fi(a=>null!=a.authReady&&0!=a.authReady),lt(a=>a.tokens)),this.profile$=this.state.pipe(Fi(a=>null!=a.authReady&&0!=a.authReady),lt(a=>a.profile)),this.loggedIn$=this.tokens$.pipe(lt(a=>!!a))}init(){return this.startupTokenRefresh().pipe(g0(()=>this.scheduleRefresh()))}login(e){return this.getTokens(e,"password")}logout(){this.updateState({profile:void 0,tokens:void 0}),this.refreshSubscription$&&this.refreshSubscription$.unsubscribe(),this.removeToken()}refreshTokens(){this.logger.logDebug("Starting refresh token flow");const e=this.retrieveTokens();return e&&e.refresh_token&&e.refresh_token.length>0?this.isRefreshing?this.refreshTokenSubject.pipe(Fi(i=>null!==i),Ro(1),Va(i=>Ha(i))):(this.isRefreshing=!0,this.logger.logDebug("Retrieved stored tokens"),this.getTokens({username:"",password:"",refresh_token:e.refresh_token},"refresh_token")):(this.logger.logDebug("No stored tokens retrieved"),Ha(null))}storeToken(e){const i=this.retrieveTokens();null!=i&&null==e.refresh_token&&(e.refresh_token=i.refresh_token),this.storageService.write("auth-tokens",e)}retrieveTokens(){return this.storageService.read("auth-tokens")||null}removeToken(){this.storageService.remove("auth-tokens")}updateState(e){const i=this.state.getValue();this.state.next(Object.assign({},i,e))}getTokens(e,i){let r=new ya;r=r.set("Content-Type","application/x-www-form-urlencoded");let s=new Wa({encoder:new r3});return s=s.set("grant_type",i),e.refresh_token&&e.refresh_token.length>0?s=s.append("refresh_token",e.refresh_token):(s=s.append("scope",this.config.isMobileApp?"openid profile offline_access mobile":"openid profile offline_access"),s=s.append("username",e.username),s=s.append("password",e.password)),this.logger.logDebug("performing token connection"),this.http.post(`${this.config.apiUrl}/connect/token`,s,{headers:r}).pipe(lt(a=>{const u=new Date;a.expiration_date=new Date(u.getTime()+1e3*a.expires_in).getTime().toString(),this.logger.logDebug(`got token expiration: ${a.expiration_date}`);const h=GA(a.id_token);return this.storeToken(a),this.updateState({authReady:!0,tokens:a,profile:h}),this.isRefreshing=!1,this.refreshTokenSubject.next(h),h}),bh(a=>(this.isRefreshing=!1,this.refreshTokenSubject.next(null),z_(a))))}startupTokenRefresh(){return Ha(this.retrieveTokens()).pipe(lt(e=>{if(!e)return this.updateState({authReady:!0}),Ha("No token in Storage");const i=GA(e.id_token);return this.updateState({tokens:e,profile:i}),+e.expiration_date>(new Date).getTime()&&this.updateState({authReady:!0}),this.refreshTokens()}),bh(e=>(this.logout(),this.updateState({authReady:!0}),Ha(e))))}scheduleRefresh(){this.refreshSubscription$=this.tokens$.pipe(Ro(1),lt(e=>{e&&(this.logger.logDebug("Will refresh auth token in "+.8*e.expires_in*1e3),PI(.8*e.expires_in*1e3))}),lt(()=>this.refreshTokens())).subscribe()}}return n.\u0275fac=function(e){return new(e||n)(z(su),z(nr),z(r1),z(wa))},n.\u0275prov=oe({factory:function(){return new n(z(su),z(nr),z(r1),z(wa))},token:n,providedIn:"root"}),n})(),s3=(()=>{class n{constructor(e,i,r){this.authService=e,this.config=i,this.logger=r,this.isRefreshing=!1,this.refreshTokenSubject=new yh(null)}intercept(e,i){if(this.shouldAddTokenToRequest(e.url)){const r=this.addAuthHeader(e);return i.handle(r).pipe(bh(s=>s instanceof I0&&401===s.status?this.handle401Error(e,i):z_(s)))}return i.handle(e)}handle401Error(e,i){return this.isRefreshing?this.refreshTokenSubject.pipe(Fi(r=>null!==r),Ro(1),Va(r=>i.handle(this.addAuthHeader(e)))):(this.isRefreshing=!0,this.refreshTokenSubject.next(null),this.authService.refreshTokens().pipe(Va(r=>{this.isRefreshing=!1;const s=this.addAuthHeader(e),a=this.authService.retrieveTokens();return a&&this.refreshTokenSubject.next(a.access_token),i.handle(s)}),bh(r=>(this.isRefreshing=!1,this.authService.logout(),z_(r)))))}addAuthHeader(e){const i=this.authService.retrieveTokens();return i?e.clone({headers:e.headers.set("Authorization","Bearer "+i.access_token)}):e}handleResponseError(e,i,r){return 400!==e.status&&401===e.status?(this.logger.logDebug(`In handleResponseError got 401 response: ${i.url}`),M_(1e4).pipe(Va(()=>{const s=this.addAuthHeader(i);return r.handle(s)}))):z_(e)}shouldAddTokenToRequest(e){return!(!e.startsWith(this.config.baseApiUrl())||e.includes("/connect/token"))}}return n.\u0275fac=function(e){return new(e||n)(z(Z_),z(nr),z(wa))},n.\u0275prov=oe({factory:function(){return new n(z(Z_),z(nr),z(wa))},token:n,providedIn:"root"}),n})();const s1=new U_(()=>!1),o1=new U_(()=>""),a1=new U_(()=>0),l1=new U_(()=>0);let u1=(()=>{class n{constructor(e,i){this.cacheProvider=e,this.loggerService=i}setCacheInfoHttpContext(e){let i=new FA;return i.set(s1,!0),i.set(o1,e.cacheKey),i.set(a1,e.cacheType),i.set(l1,e.cacheTime),i}initalize(){return ur(this,void 0,void 0,function*(){return this.cacheProvider?yield this.cacheProvider.initialize():(this.loggerService.logError("No cache provider found"),new Promise((e,i)=>{e()}))})}put(e){return ur(this,void 0,void 0,function*(){if(this.cacheProvider){e.cacheSavedOn=new Date;const i=new Date;i.setMinutes(i.getMinutes()+e.cacheTime),yield this.cacheProvider.put(e.cacheKey,i,JSON.stringify(e))}})}get(e){return ur(this,void 0,void 0,function*(){if(this.cacheProvider)try{const i=yield this.cacheProvider.get(e);if(i){const r=JSON.parse(i);if(r){const s=new Date;return r.cacheSavedOn&&(r.cacheSavedOn.setMinutes(r.cacheSavedOn.getMinutes()+r.cacheTime),s.getTime()-r.cacheSavedOn.getTime()<=0&&(r.cacheHitFailed=!0,yield this.delete(e))),r}}}catch{return{cacheHitFailed:!0}}return{cacheHitFailed:!0}})}delete(e){return ur(this,void 0,void 0,function*(){this.cacheProvider&&(yield this.cacheProvider.delete(e))})}putHttpResponse(e,i,r){return ur(this,void 0,void 0,function*(){if(this.cacheProvider){const s=new Date;s.setMinutes(s.getMinutes()+i),yield this.cacheProvider.put(e,s,JSON.stringify(r))}})}getHttpResponse(e){return ur(this,void 0,void 0,function*(){if(this.cacheProvider){const i=yield this.cacheProvider.get(e);if(i)return JSON.parse(i)}})}deleteHttpResponse(e){return ur(this,void 0,void 0,function*(){this.cacheProvider&&(yield this.cacheProvider.delete(e))})}}return n.\u0275fac=function(e){return new(e||n)(z("RG_CACHE_PROVIDER"),z(wa))},n.\u0275prov=oe({factory:function(){return new n(z("RG_CACHE_PROVIDER"),z(wa))},token:n,providedIn:"root"}),n})(),o3=(()=>{class n{constructor(e,i){this.cacheService=e,this.loggerService=i}intercept(e,i){return"GET"===e.method&&e.context.get(s1)&&1===e.context.get(a1)?i.handle(e).pipe(g0(r=>{r instanceof tg&&200===r.status&&this.cacheService.putHttpResponse(e.context.get(o1),e.context.get(l1),r)}),Va(r=>Ha(r)),bh(r=>{throw r})):i.handle(e)}}return n.\u0275fac=function(e){return new(e||n)(z(u1),z(wa))},n.\u0275prov=oe({factory:function(){return new n(z(u1),z(wa))},token:n,providedIn:"root"}),n})(),a3=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({providers:[{provide:j_,useClass:s3,multi:!0},{provide:j_,useClass:o3,multi:!0}]}),n})(),l3=(()=>{class n{static forRoot(e){return{ngModule:n,providers:[{provide:nr,useFactory:()=>{let i=new nr;return i.baseApiUrl=e.baseApiUrl,i.apiVersion=e.apiVersion,i.clientId=e.clientId,i.googleApiKey=e.googleApiKey,i.channelUrl=e.channelUrl,i.channelHubName=e.channelHubName,i.realtimeGeolocationHubName=e.realtimeGeolocationHubName,i.logLevel=e.logLevel,i.isMobileApp=e.isMobileApp,i}},{provide:"RG_CACHE_PROVIDER",useValue:e.cacheProvider}]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({imports:[[a3]]}),n})(),ug=(()=>{class n{constructor(){this.LANG_KEY="lang",this.LANG_EN="en",this.HAS_SEEN_TUTORIAL_KEY="hasSeenTutorial",this.EVENTS={LOGGED_IN:"userLoggedIn",SYSTEM_READY:"systemReady",COREDATASYNCED:"coreDataSynced",LOCAL_DATA_SET:"localDataSet",SETTINGS_SAVED:"settingsSaved",MESSAGE_RECIPIENT_ADDED:"messageRecipientAdded",REGISTRATION_OPERATION_FINISHED:"registrationOperationFinished",CORDOVA_DEVICE_RESUMED:"onResumeCordova",CORDOVA_DEVICE_PAUSED:"onPauseCordova",HIDE_SPLASH_SCREEN:"hideSplashScreen",STATUS_UPDATED:"statusUpdated",STATUS_QUEUED:"statusQueued",STAFFING_UPDATED:"staffingUpdated",SECURITY_SET:"securitySet",NAV_PUSH:"navPush",NAV_SETROOT:"navSetRoot"},this.SIGNALR_EVENTS={PERSONNEL_STATUS_UPDATED:"PersonnelStatusUpdated",PERSONNEL_STAFFING_UPDATED:"PersonnelStaffingUpdated",UNIT_STATUS_UPDATED:"UnitStatusUpdated",CALLS_UPDATED:"CallsUpdated",CALL_ADDED:"CallAdded",CALL_CLOSED:"CallClosed",PERSONNEL_LOCATION_UPDATED:"PersonnelLocationUpdated",UNIT_LOCATION_UPDATED:"UnitLocationUpdated"},this.DOCTYPES={PERSONNEL:1,GROUPS:2,UNITS:3,ROLES:4,STATUSES:5,PRIORITIES:6,DEPARTMENTS:7},this.STATUS={STANDINGBY:0,NOTRESPONDING:1,RESPONDING:2,ONSCENE:3,AVAILABLESTATION:4,RESPONDINGTOSTATION:5,RESPONDINGTOSCENE:6},this.STAFFING={NORMAL:0,DELAYED:1,UNAVAILABLE:2,COMMITTED:3,ONSHIFT:4},this.DETAILTYPES={NONE:0,STATIONS:1,CALLS:2,CALLSANDSTATIONS:3},this.NOTETYPES={NONE:0,OPTIONAL:1,REQUIRED:2},this.CUSTOMTYPES={PERSONNEL:1,UNIT:2,STAFFING:3},this.MESSAGETYPES={NORMAL:0,CALLBACK:1,POLL:2},this.GROUPTYPES={ORG:1,STATION:2},this.DESTTYPES={STATION:1,CALL:2},this.CACHE={PERSON_DETAIL:"personDetail",UNIT_DETAIL:"unitDetail"}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=oe({factory:function(){return new n},token:n,providedIn:"root"}),n})(),c3=(()=>{class n{constructor(e,i){this.http=e,this.config=i}getMapDataAndMarkers(){return this.http.get(this.config.apiUrl+"/Mapping/GetMapDataAndMarkers")}getMayLayers(e){return this.http.get(this.config.apiUrl+"/Mapping/GetMayLayers?type="+e)}}return n.\u0275fac=function(e){return new(e||n)(z(su),z(nr))},n.\u0275prov=oe({factory:function(){return new n(z(su),z(nr))},token:n,providedIn:"root"}),n})(),d3=(()=>{class n{constructor(e,i){this.http=e,this.config=i}getShifts(){return this.http.get(this.config.apiUrl+"/Shifts/GetShifts")}getShift(e){return this.http.get(this.config.apiUrl+"/Shifts/GetShift?id="+e)}getTodaysShifts(){return this.http.get(this.config.apiUrl+"/Shifts/GetTodaysShifts")}getShiftDay(e){return this.http.get(this.config.apiUrl+"/Shifts/GetShiftDay?id="+e)}signupForShiftDay(e,i){return this.http.post(this.config.apiUrl+"/Shifts/SignupForShiftDay",{ShiftDayId:e,GroupId:i})}}return n.\u0275fac=function(e){return new(e||n)(z(su),z(nr))},n.\u0275prov=oe({factory:function(){return new n(z(su),z(nr))},token:n,providedIn:"root"}),n})();var ir=(()=>(function(n){n[n.Subject=0]="Subject",n[n.BehaviorSubject=1]="BehaviorSubject",n[n.ReplaySubject=2]="ReplaySubject"}(ir||(ir={})),ir))();let c1=(()=>{class n{constructor(){this.eventObservableMapping={}}publishEvent(e,i){this.validateEventName(e),this.createSubjectIfNotExist(e),this.publishNext(e,ir.Subject,i)}subscribe(e,i,r,s){return this.validateEventName(e),this.createSubjectIfNotExist(e),this.eventObservableMapping[e].ref.subscribe(i,r,s)}getEventObservable(e){return this.validateEventName(e),this.createSubjectIfNotExist(e),this.eventObservableMapping[e].ref.asObservable()}registerEventWithLast(e,i){this.validateEventName(e),this.checkType(e,ir.BehaviorSubject,!0),this.eventObservableMapping[e]={type:ir.BehaviorSubject,ref:new yh(i)}}registerEventWithHistory(e,i,r,s){this.validateEventName(e),this.checkType(e,ir.ReplaySubject,!0),this.eventObservableMapping[e]={type:ir.ReplaySubject,ref:new bD(i,r,s)}}publishWithLast(e,i){this.validateEventName(e),this.publishNext(e,ir.BehaviorSubject,i)}publishWithHistory(e,i){this.validateEventName(e),this.publishNext(e,ir.ReplaySubject,i)}completeEvent(e){if(this.validateEventName(e),!this.eventObservableMapping[e])throw Error("Event not created yet");this.completeObservableAndDestroyMapping(e)}ngOnDestroy(){for(const e in this.eventObservableMapping)this.eventObservableMapping.hasOwnProperty(e)&&this.completeObservableAndDestroyMapping(e)}publishNext(e,i=ir.Subject,r){this.checkType(e,i),this.eventObservableMapping[e].ref.next(r)}checkType(e,i=ir.Subject,r=!1){const s=this.eventObservableMapping[e];let a;if((s||!r)&&(s?s.type!==i&&(a=`Event exists with other type: ${ir[s.type]}. Expected type: ${ir[i]}`):a=`Event doesn't exist of type: ${ir[i]} or it has been completed`,r&&s.type===i&&(a="Event already registerd with the same type. Don't register a second time"),a))throw Error(`Error (${e}): ${a}`)}createSubjectIfNotExist(e){this.eventObservableMapping[e]||(this.eventObservableMapping[e]={type:ir.Subject,ref:new Oe})}validateEventName(e){if(!e)throw Error("Event name not provided")}completeObservableAndDestroyMapping(e){this.eventObservableMapping[e].ref.complete(),delete this.eventObservableMapping[e]}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=oe({factory:function(){return new n},token:n,providedIn:"root"}),n})(),H0=(()=>{class n{constructor(e,i){this.pubsubSvc=e,this.consts=i,this.pubsubSvc.registerEventWithLast(this.consts.EVENTS.LOGGED_IN,void 0),this.pubsubSvc.registerEventWithLast(this.consts.EVENTS.SYSTEM_READY,void 0),this.pubsubSvc.registerEventWithLast(this.consts.EVENTS.COREDATASYNCED,void 0),this.pubsubSvc.registerEventWithLast(this.consts.EVENTS.LOCAL_DATA_SET,void 0),this.pubsubSvc.registerEventWithLast(this.consts.EVENTS.SETTINGS_SAVED,void 0),this.pubsubSvc.registerEventWithLast(this.consts.EVENTS.STATUS_UPDATED,void 0),this.pubsubSvc.registerEventWithLast(this.consts.EVENTS.STAFFING_UPDATED,void 0),this.pubsubSvc.registerEventWithLast(this.consts.EVENTS.SECURITY_SET,void 0)}publishEvent(e,i){this.pubsubSvc.publishEvent(e,i)}subscribe(e,i,r,s){return this.pubsubSvc.subscribe(e,i,r,s)}}return n.\u0275fac=function(e){return new(e||n)(z(c1),z(ug))},n.\u0275prov=oe({factory:function(){return new n(z(c1),z(ug))},token:n,providedIn:"root"}),n})();Window;var Oo=(()=>(function(n){n[n.Connecting=1]="Connecting",n[n.Connected=2]="Connected",n[n.Reconnecting=3]="Reconnecting",n[n.Disconnected=4]="Disconnected"}(Oo||(Oo={})),Oo))();class g3{constructor(){this.channel=""}}let m3=(()=>{class n{constructor(e,i,r,s){this.config=e,this.events=i,this.consts=r,this.authService=s,this.startingSubject=new Oe,this.errorSubject=new Oe,this.started=!1,this.subjects=new Array,this.connectionState$=new _t(a=>{this.connectionStateObserver=a}).pipe(Ye()),this.error$=this.errorSubject.asObservable(),this.starting$=this.startingSubject.asObservable()}start(){var e;if(console.log("SignalR Channel Start()"),!this.started)try{null===(e=this.connectionStateObserver)||void 0===e||e.next(Oo.Connecting);const i=this.authService.retrieveTokens();i&&(this.hubConnection=(new Xj).withUrl(this.config.channelUrl+this.config.realtimeGeolocationHubName+`?access_token=${encodeURIComponent(i.access_token)}`).configureLogging(q.Information).withAutomaticReconnect().build(),this.hubConnection.on("onPersonnelLocationUpdated",r=>{console.log("onPersonnelLocationUpdated"),this.events.publishEvent(this.consts.SIGNALR_EVENTS.PERSONNEL_LOCATION_UPDATED,r)}),this.hubConnection.on("onUnitLocationUpdated",r=>{console.log("onUnitLocationUpdated"),this.events.publishEvent(this.consts.SIGNALR_EVENTS.UNIT_LOCATION_UPDATED,r)}),this.hubConnection.on("onGeolocationConnect",r=>{console.log(`onGeolocationConnect with ${r}`)}),this.hubConnection.start().then(()=>{var r,s;console.log("Connection started"),null===(r=this.connectionStateObserver)||void 0===r||r.next(Oo.Connected),null===(s=this.hubConnection)||void 0===s||s.invoke("geolocationConnect").then(()=>{console.log("Successfully subscribed to geolocationConnect channel")}).catch(a=>{console.log(`Error subscribed to geolocationConnect channel, ERROR: ${a}`)}),this.started=!0}).catch(r=>{var s;console.log("Error while starting connection: "+r),null===(s=this.connectionStateObserver)||void 0===s||s.next(Oo.Disconnected),this.errorSubject.next(r)}))}catch(i){console.log(i)}}restart(e){if(this.hubConnection&&!1===this.started)try{this.hubConnection.start().then(()=>{var i,r;console.log("Connection started"),null===(i=this.connectionStateObserver)||void 0===i||i.next(Oo.Connected),null===(r=this.hubConnection)||void 0===r||r.invoke("geolocationConnect",parseInt(e)).then(()=>{console.log(`Successfully subscribed to Connect channel with ${e}`)}).catch(s=>{console.log(`Error subscribed to Connect channel with ${e}, ERROR: ${s}`)}),this.started=!0}).catch(i=>{var r;console.log("Error while starting connection: "+i),null===(r=this.connectionStateObserver)||void 0===r||r.next(Oo.Disconnected),this.started=!1,this.errorSubject.next(i)})}catch(i){console.log(i)}}stop(){this.hubConnection&&this.hubConnection.stop().then(()=>{var e;console.log("Connection stopped"),null===(e=this.connectionStateObserver)||void 0===e||e.next(Oo.Disconnected),this.started=!1}).catch(e=>{var i;console.log("Error while starting connection: "+e),null===(i=this.connectionStateObserver)||void 0===i||i.next(Oo.Disconnected),this.started=!1,this.errorSubject.next(e)})}sub(e,i){var r;let s=this.subjects.find(a=>a.channel===e);return void 0!==s?(console.log(`Found existing observable for ${e} channel`),null===(r=null==s?void 0:s.subject)||void 0===r?void 0:r.asObservable()):(s=new g3,s.channel=e,s.subject=new Oe,this.subjects.push(s),this.starting$.subscribe(()=>{var a;null===(a=this.hubConnection)||void 0===a||a.invoke(e,i).then(()=>console.log(`Successfully subscribed to ${e} channel with ${i}`)).catch(u=>{var h;return null===(h=null==s?void 0:s.subject)||void 0===h?void 0:h.error(u)})},a=>{var u;null===(u=null==s?void 0:s.subject)||void 0===u||u.error(a)}),s.subject.asObservable())}publish(e){var i;null===(i=this.hubConnection)||void 0===i||i.invoke("Publish",e)}}return n.\u0275fac=function(e){return new(e||n)(z(nr),z(H0),z(ug),z(Z_))},n.\u0275prov=oe({factory:function(){return new n(z(nr),z(H0),z(ug),z(Z_))},token:n,providedIn:"root"}),n})();const B3=["modalContent"];function H3(n,t){1&n&&(fe(0,"div",2)(1,"div",3),fn(2,"div",4)(3,"div",5)(4,"div",6)(5,"div",7)(6,"div",8),ge(),fn(7,"br"),pn(8," Loading shift calendar... "),ge())}function U3(n,t){if(1&n){const e=Kn();fe(0,"mwl-calendar-month-view",19),We("dayClicked",function(r){return _e(e),ee(2).dayClicked(r.day)})("eventClicked",function(r){return _e(e),ee(2).handleEvent("Clicked",r.event)}),ge()}if(2&n){const e=ee().$implicit,i=ee();te("viewDate",i.viewDate)("events",e)("refresh",i.refresh)("activeDayIsOpen",i.activeDayIsOpen)}}function j3(n,t){if(1&n){const e=Kn();fe(0,"mwl-calendar-week-view",20),We("eventClicked",function(r){return _e(e),ee(2).handleEvent("Clicked",r.event)}),ge()}if(2&n){const e=ee().$implicit,i=ee();te("viewDate",i.viewDate)("events",e)("refresh",i.refresh)}}function z3(n,t){if(1&n){const e=Kn();fe(0,"mwl-calendar-day-view",20),We("eventClicked",function(r){return _e(e),ee(2).handleEvent("Clicked",r.event)}),ge()}if(2&n){const e=ee().$implicit,i=ee();te("viewDate",i.viewDate)("events",e)("refresh",i.refresh)}}function W3(n,t){if(1&n){const e=Kn();fe(0,"div")(1,"div",9)(2,"div",10)(3,"div",11)(4,"div",12),We("viewDateChange",function(r){return _e(e),ee().viewDate=r})("viewDateChange",function(){return _e(e),ee().closeOpenMonthViewDay()}),pn(5," Previous "),ge(),fe(6,"div",13),We("viewDateChange",function(r){return _e(e),ee().viewDate=r}),pn(7," Today "),ge(),fe(8,"div",14),We("viewDateChange",function(r){return _e(e),ee().viewDate=r})("viewDateChange",function(){return _e(e),ee().closeOpenMonthViewDay()}),pn(9," Next "),ge()()(),fe(10,"div",10)(11,"h3"),pn(12),Cn(13,"calendarDate"),ge()(),fe(14,"div",10)(15,"div",11)(16,"div",15),We("click",function(){_e(e);const r=ee();return r.setView(r.CalendarView.Month)}),pn(17," Month "),ge(),fe(18,"div",15),We("click",function(){_e(e);const r=ee();return r.setView(r.CalendarView.Week)}),pn(19," Week "),ge(),fe(20,"div",15),We("click",function(){_e(e);const r=ee();return r.setView(r.CalendarView.Day)}),pn(21," Day "),ge()()()(),fn(22,"br"),fe(23,"div",16),Ee(24,U3,1,4,"mwl-calendar-month-view",17),Ee(25,j3,1,3,"mwl-calendar-week-view",18),Ee(26,z3,1,3,"mwl-calendar-day-view",18),ge()()}if(2&n){const e=ee();J(4),te("view",e.view)("viewDate",e.viewDate),J(2),te("viewDate",e.viewDate),J(2),te("view",e.view)("viewDate",e.viewDate),J(4),fc(Mo(13,16,e.viewDate,e.view+"ViewTitle","en")),J(4),yi("active",e.view===e.CalendarView.Month),J(2),yi("active",e.view===e.CalendarView.Week),J(2),yi("active",e.view===e.CalendarView.Day),J(3),te("ngSwitch",e.view),J(1),te("ngSwitchCase",e.CalendarView.Month),J(1),te("ngSwitchCase",e.CalendarView.Week),J(1),te("ngSwitchCase",e.CalendarView.Day)}}let G3=(()=>{class n{constructor(e,i){this.shiftProvider=e,this.http=i,this.view=ja.Month,this.CalendarView=ja,this.viewDate=new Date,this.refresh=new Oe,this.activeDayIsOpen=!0,this.actions=[{label:'',a11yLabel:"Edit",onClick:({event:r})=>{this.handleEvent("Edited",r)}},{label:'',a11yLabel:"Delete",onClick:({event:r})=>{this.handleEvent("Deleted",r)}}],this.events$=this.http.get("/User/Shifts/GetShiftCalendarItems").pipe(lt(r=>{if(r&&r.length>0)return r.map(s=>{if(s)return{title:s.Title,start:new Date(s.Start),end:new Date(s.End),color:{primary:s.Color,secondary:s.Color},allDay:s.IsAllDay,draggable:!1,resizable:{beforeStart:!1,afterEnd:!1},meta:{shift:s}}})}))}ngOnInit(){}ngAfterContentInit(){}dayClicked({date:e,events:i}){IA(e,this.viewDate)&&(this.activeDayIsOpen=!(MA(this.viewDate,e)&&!0===this.activeDayIsOpen||0===i.length),this.viewDate=e)}handleEvent(e,i){e&&"Clicked"===e&&i&&i.meta&&i.meta.shift&&(i.meta.shift.WorkshiftId?window.open(`/User/Workshifts/ViewDay?dayId=${i.meta.shift.WorkshiftDayId}`,"_self"):0===i.meta.shift.SignupType?window.open(`/User/Shifts/ViewShift?shiftDayId=${i.meta.shift.CalendarItemId}`,"_self"):window.open(`/User/Shifts/Signup?shiftDayId=${i.meta.shift.CalendarItemId}`,"_self"))}setView(e){this.view=e}closeOpenMonthViewDay(){this.activeDayIsOpen=!1}}return n.\u0275fac=function(e){return new(e||n)(U(d3),U(su))},n.\u0275cmp=Yt({type:n,selectors:[["ng-component"]],viewQuery:function(e,i){if(1&e&&kv(B3,7),2&e){let r;Rv(r=Ov())&&(i.modalContent=r.first)}},decls:4,vars:4,consts:[["loading",""],[4,"ngIf","ngIfElse"],[1,"text-center"],[1,"sk-spinner","sk-spinner-wave"],[1,"sk-rect1"],[1,"sk-rect2",2,"padding-left","4px"],[1,"sk-rect3",2,"padding-left","4px"],[1,"sk-rect4",2,"padding-left","4px"],[1,"sk-rect5",2,"padding-left","4px"],[1,"row","text-center"],[1,"col-md-4"],[1,"btn-group"],["mwlCalendarPreviousView","",1,"btn","btn-primary",3,"view","viewDate","viewDateChange"],["mwlCalendarToday","",1,"btn","btn-outline-secondary",3,"viewDate","viewDateChange"],["mwlCalendarNextView","",1,"btn","btn-primary",3,"view","viewDate","viewDateChange"],[1,"btn","btn-primary",3,"click"],[3,"ngSwitch"],[3,"viewDate","events","refresh","activeDayIsOpen","dayClicked","eventClicked",4,"ngSwitchCase"],[3,"viewDate","events","refresh","eventClicked",4,"ngSwitchCase"],[3,"viewDate","events","refresh","activeDayIsOpen","dayClicked","eventClicked"],[3,"viewDate","events","refresh","eventClicked"]],template:function(e,i){if(1&e&&(Ee(0,H3,9,0,"ng-template",null,0,hs),Ee(2,W3,27,20,"div",1),Cn(3,"async")),2&e){const r=Yn(1);J(2),te("ngIf",xv(3,2,i.events$))("ngIfElse",r)}},directives:[Fa,VH,HH,BH,Qv,_M,$H,vA,JH],pipes:[fD,Xp],styles:[""],changeDetection:0}),n})();var Ga=ne(407),Z3=ne(489);function dg(n){return null!=n&&"false"!=`${n}`}function f1(n){return Array.isArray(n)?n:[n]}function ei(n){return null==n?"":"string"==typeof n?n:`${n}px`}const hg={schedule(n){let t=requestAnimationFrame,e=cancelAnimationFrame;const{delegate:i}=hg;i&&(t=i.requestAnimationFrame,e=i.cancelAnimationFrame);const r=t(s=>{e=void 0,n(s)});return new bn(()=>null==e?void 0:e(r))},requestAnimationFrame(...n){const{delegate:t}=hg;return((null==t?void 0:t.requestAnimationFrame)||requestAnimationFrame)(...n)},cancelAnimationFrame(...n){const{delegate:t}=hg;return((null==t?void 0:t.cancelAnimationFrame)||cancelAnimationFrame)(...n)},delegate:void 0};new class X3 extends QD{flush(t){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let r;t=t||i.shift();do{if(r=t.execute(t.state,t.delay))break}while((t=i[0])&&t.id===e&&i.shift());if(this._active=!1,r){for(;(t=i[0])&&t.id===e&&i.shift();)t.unsubscribe();throw r}}}(class K3 extends XD{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}requestAsyncId(t,e,i=0){return null!==i&&i>0?super.requestAsyncId(t,e,i):(t.actions.push(this),t._scheduled||(t._scheduled=hg.requestAnimationFrame(()=>t.flush(void 0))))}recycleAsyncId(t,e,i=0){if(null!=i&&i>0||null==i&&this.delay>0)return super.recycleAsyncId(t,e,i);t.actions.some(r=>r.id===e)||(hg.cancelAnimationFrame(e),t._scheduled=void 0)}});let U0,J3=1;const Y_={};function p1(n){return n in Y_&&(delete Y_[n],!0)}const ez={setImmediate(n){const t=J3++;return Y_[t]=!0,U0||(U0=Promise.resolve()),U0.then(()=>p1(t)&&n()),t},clearImmediate(n){p1(n)}},{setImmediate:tz,clearImmediate:nz}=ez,K_={setImmediate(...n){const{delegate:t}=K_;return((null==t?void 0:t.setImmediate)||tz)(...n)},clearImmediate(n){const{delegate:t}=K_;return((null==t?void 0:t.clearImmediate)||nz)(n)},delegate:void 0};new class rz extends QD{flush(t){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let r;t=t||i.shift();do{if(r=t.execute(t.state,t.delay))break}while((t=i[0])&&t.id===e&&i.shift());if(this._active=!1,r){for(;(t=i[0])&&t.id===e&&i.shift();)t.unsubscribe();throw r}}}(class iz extends XD{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}requestAsyncId(t,e,i=0){return null!==i&&i>0?super.requestAsyncId(t,e,i):(t.actions.push(this),t._scheduled||(t._scheduled=K_.setImmediate(t.flush.bind(t,void 0))))}recycleAsyncId(t,e,i=0){if(null!=i&&i>0||null==i&&this.delay>0)return super.recycleAsyncId(t,e,i);t.actions.some(r=>r.id===e)||(K_.clearImmediate(e),t._scheduled=void 0)}});function g1(n,t=T_){return function oz(n){return bt((t,e)=>{let i=!1,r=null,s=null,a=!1;const u=()=>{if(null==s||s.unsubscribe(),s=null,i){i=!1;const f=r;r=null,e.next(f)}a&&e.complete()},h=()=>{s=null,a&&e.complete()};t.subscribe(Mt(e,f=>{i=!0,r=f,s||Ti(n(f)).subscribe(s=Mt(e,u,h))},()=>{a=!0,(!i||!s||s.closed)&&e.complete()}))})}(()=>M_(n,t))}let j0;try{j0=typeof Intl<"u"&&Intl.v8BreakIterator}catch{j0=!1}let Mc,fg=(()=>{class n{constructor(e){this._platformId=e,this.isBrowser=this._platformId?SM(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&&!j0)&&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}}return n.\u0275fac=function(e){return new(e||n)(z(ph))},n.\u0275prov=oe({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function lz(){if(null==Mc){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return Mc=!1,Mc;if("scrollBehavior"in document.documentElement.style)Mc=!0;else{const n=Element.prototype.scrollTo;Mc=!!n&&!/\{\s*\[native code\]\s*\}/.test(n.toString())}}return Mc}function v1(n){return n.composedPath?n.composedPath()[0]:n.target}function _1(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const cz=new rt("cdk-dir-doc",{providedIn:"root",factory:function dz(){return Zu(on)}}),hz=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let y1=(()=>{class n{constructor(e){if(this.value="ltr",this.change=new me,e){const r=e.documentElement?e.documentElement.dir:null;this.value=function fz(n){const t=n?.toLowerCase()||"";return"auto"===t&&typeof navigator<"u"&&navigator?.language?hz.test(navigator.language)?"rtl":"ltr":"rtl"===t?"rtl":"ltr"}((e.body?e.body.dir:null)||r||"ltr")}}ngOnDestroy(){this.change.complete()}}return n.\u0275fac=function(e){return new(e||n)(z(cz,8))},n.\u0275prov=oe({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),W0=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({}),n})(),gz=(()=>{class n{constructor(e,i,r){this._ngZone=e,this._platform=i,this._scrolled=new Oe,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=r}register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){const i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=20){return this._platform.isBrowser?new _t(i=>{this._globalSubscription||this._addGlobalListener();const r=e>0?this._scrolled.pipe(g1(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{r.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):Ha()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const r=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(Fi(s=>!s||r.indexOf(s)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((r,s)=>{this._scrollableContainsElement(s,e)&&i.push(s)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let r=function Y3(n){return n instanceof wn?n.nativeElement:n}(i),s=e.getElementRef().nativeElement;do{if(r==s)return!0}while(r=r.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>wh(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}}return n.\u0275fac=function(e){return new(e||n)(z(Qt),z(fg),z(on,8))},n.\u0275prov=oe({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),w1=(()=>{class n{constructor(e,i,r){this._platform=e,this._change=new Oe,this._changeListener=s=>{this._change.next(s)},this._document=r,i.runOutsideAngular(()=>{if(e.isBrowser){const s=this._getWindow();s.addEventListener("resize",this._changeListener),s.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){const e=this.getViewportScrollPosition(),{width:i,height:r}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+r,right:e.left+i,height:r,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const e=this._document,i=this._getWindow(),r=e.documentElement,s=r.getBoundingClientRect();return{top:-s.top||e.body.scrollTop||i.scrollY||r.scrollTop||0,left:-s.left||e.body.scrollLeft||i.scrollX||r.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(g1(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}}return n.\u0275fac=function(e){return new(e||n)(z(fg),z(Qt),z(on,8))},n.\u0275prov=oe({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),C1=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({}),n})(),D1=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({imports:[[W0,C1],W0,C1]}),n})();class G0{attach(t){return this._attachedHost=t,t.attach(this)}detach(){let t=this._attachedHost;null!=t&&(this._attachedHost=null,t.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(t){this._attachedHost=t}}class vz extends G0{constructor(t,e,i,r){super(),this.component=t,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=r}}class S1 extends G0{constructor(t,e,i){super(),this.templateRef=t,this.viewContainerRef=e,this.context=i}get origin(){return this.templateRef.elementRef}attach(t,e=this.context){return this.context=e,super.attach(t)}detach(){return this.context=void 0,super.detach()}}class _z extends G0{constructor(t){super(),this.element=t instanceof wn?t.nativeElement:t}}class wz extends class yz{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(t){return t instanceof vz?(this._attachedPortal=t,this.attachComponentPortal(t)):t instanceof S1?(this._attachedPortal=t,this.attachTemplatePortal(t)):this.attachDomPortal&&t instanceof _z?(this._attachedPortal=t,this.attachDomPortal(t)):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(t){this._disposeFn=t}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}{constructor(t,e,i,r,s){super(),this.outletElement=t,this._componentFactoryResolver=e,this._appRef=i,this._defaultInjector=r,this.attachDomPortal=a=>{const u=a.element,h=this._document.createComment("dom-portal");u.parentNode.insertBefore(h,u),this.outletElement.appendChild(u),this._attachedPortal=a,super.setDisposeFn(()=>{h.parentNode&&h.parentNode.replaceChild(u,h)})},this._document=s}attachComponentPortal(t){const i=(t.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(t.component);let r;return t.viewContainerRef?(r=t.viewContainerRef.createComponent(i,t.viewContainerRef.length,t.injector||t.viewContainerRef.injector),this.setDisposeFn(()=>r.destroy())):(r=i.create(t.injector||this._defaultInjector||D.NULL),this._appRef.attachView(r.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(r.hostView),r.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(r)),this._attachedPortal=t,r}attachTemplatePortal(t){let e=t.viewContainerRef,i=e.createEmbeddedView(t.templateRef,t.context);return i.rootNodes.forEach(r=>this.outletElement.appendChild(r)),i.detectChanges(),this.setDisposeFn(()=>{let r=e.indexOf(i);-1!==r&&e.remove(r)}),this._attachedPortal=t,i}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(t){return t.hostView.rootNodes[0]}}let Cz=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({}),n})();const b1=lz();class Ez{constructor(t,e){this._viewportRuler=t,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=e}attach(){}enable(){if(this._canBeEnabled()){const t=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=t.style.left||"",this._previousHTMLStyles.top=t.style.top||"",t.style.left=ei(-this._previousScrollPosition.left),t.style.top=ei(-this._previousScrollPosition.top),t.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const t=this._document.documentElement,i=t.style,r=this._document.body.style,s=i.scrollBehavior||"",a=r.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,t.classList.remove("cdk-global-scrollblock"),b1&&(i.scrollBehavior=r.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),b1&&(i.scrollBehavior=s,r.scrollBehavior=a)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.body,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class Tz{constructor(t,e,i,r){this._scrollDispatcher=t,this._ngZone=e,this._viewportRuler=i,this._config=r,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(t){this._overlayRef=t}enable(){if(this._scrollSubscription)return;const t=this._scrollDispatcher.scrolled(0);this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=t.subscribe(()=>{const e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=t.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class E1{enable(){}disable(){}attach(){}}function $0(n,t){return t.some(e=>n.bottome.bottom||n.righte.right)}function T1(n,t){return t.some(e=>n.tope.bottom||n.lefte.right)}class Mz{constructor(t,e,i,r){this._scrollDispatcher=t,this._viewportRuler=e,this._ngZone=i,this._config=r,this._scrollSubscription=null}attach(t){this._overlayRef=t}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:r}=this._viewportRuler.getViewportSize();$0(e,[{width:i,height:r,bottom:r,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let Iz=(()=>{class n{constructor(e,i,r,s){this._scrollDispatcher=e,this._viewportRuler=i,this._ngZone=r,this.noop=()=>new E1,this.close=a=>new Tz(this._scrollDispatcher,this._ngZone,this._viewportRuler,a),this.block=()=>new Ez(this._viewportRuler,this._document),this.reposition=a=>new Mz(this._scrollDispatcher,this._viewportRuler,this._ngZone,a),this._document=s}}return n.\u0275fac=function(e){return new(e||n)(z(gz),z(w1),z(Qt),z(on))},n.\u0275prov=oe({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();class M1{constructor(t){if(this.scrollStrategy=new E1,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,t){const e=Object.keys(t);for(const i of e)void 0!==t[i]&&(this[i]=t[i])}}}class Az{constructor(t,e){this.connectionPair=t,this.scrollableViewProperties=e}}let I1=(()=>{class n{constructor(e){this._attachedOverlays=[],this._document=e}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){const i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),0===this._attachedOverlays.length&&this.detach()}}return n.\u0275fac=function(e){return new(e||n)(z(on))},n.\u0275prov=oe({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),xz=(()=>{class n extends I1{constructor(e,i){super(e),this._ngZone=i,this._keydownListener=r=>{const s=this._attachedOverlays;for(let a=s.length-1;a>-1;a--)if(s[a]._keydownEvents.observers.length>0){const u=s[a]._keydownEvents;this._ngZone?this._ngZone.run(()=>u.next(r)):u.next(r);break}}}add(e){super.add(e),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}}return n.\u0275fac=function(e){return new(e||n)(z(on),z(Qt,8))},n.\u0275prov=oe({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),Pz=(()=>{class n extends I1{constructor(e,i,r){super(e),this._platform=i,this._ngZone=r,this._cursorStyleIsSet=!1,this._pointerDownListener=s=>{this._pointerDownEventTarget=v1(s)},this._clickListener=s=>{const a=v1(s),u="click"===s.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:a;this._pointerDownEventTarget=null;const h=this._attachedOverlays.slice();for(let f=h.length-1;f>-1;f--){const m=h[f];if(m._outsidePointerEvents.observers.length<1||!m.hasAttached())continue;if(m.overlayElement.contains(a)||m.overlayElement.contains(u))break;const y=m._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>y.next(s)):y.next(s)}}}add(e){if(super.add(e),!this._isAttached){const i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const e=this._document.body;e.removeEventListener("pointerdown",this._pointerDownListener,!0),e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(e){e.addEventListener("pointerdown",this._pointerDownListener,!0),e.addEventListener("click",this._clickListener,!0),e.addEventListener("auxclick",this._clickListener,!0),e.addEventListener("contextmenu",this._clickListener,!0)}}return n.\u0275fac=function(e){return new(e||n)(z(on),z(fg),z(Qt,8))},n.\u0275prov=oe({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),A1=(()=>{class n{constructor(e,i){this._platform=i,this._document=e}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||_1()){const r=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let s=0;sthis._backdropClick.next(m),this._backdropTransitionendHandler=m=>{this._disposeBackdrop(m.target)},this._keydownEvents=new Oe,this._outsidePointerEvents=new Oe,r.scrollStrategy&&(this._scrollStrategy=r.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=r.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(t){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const e=this._portalOutlet.attach(t);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe(Ro(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const t=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),t}dispose(){const t=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,t&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(t){t!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=t,this.hasAttached()&&(t.attach(this),this.updatePosition()))}updateSize(t){this._config={...this._config,...t},this._updateElementSize()}setDirection(t){this._config={...this._config,direction:t},this._updateElementDirection()}addPanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!0)}removePanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!1)}getDirection(){const t=this._config.direction;return t?"string"==typeof t?t:t.value:"ltr"}updateScrollStrategy(t){t!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=t,this.hasAttached()&&(t.attach(this),t.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const t=this._pane.style;t.width=ei(this._config.width),t.height=ei(this._config.height),t.minWidth=ei(this._config.minWidth),t.minHeight=ei(this._config.minHeight),t.maxWidth=ei(this._config.maxWidth),t.maxHeight=ei(this._config.maxHeight)}_togglePointerEvents(t){this._pane.style.pointerEvents=t?"":"none"}_attachBackdrop(){const t="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(t)})}):this._backdropElement.classList.add(t)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const t=this._backdropElement;!t||(t.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{t.addEventListener("transitionend",this._backdropTransitionendHandler)}),t.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(t)},500)))}_toggleClasses(t,e,i){const r=f1(e||[]).filter(s=>!!s);r.length&&(i?t.classList.add(...r):t.classList.remove(...r))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const t=this._ngZone.onStable.pipe(Ua(Nn(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),t.unsubscribe())})})}_disposeScrollStrategy(){const t=this._scrollStrategy;t&&(t.disable(),t.detach&&t.detach())}_disposeBackdrop(t){t&&(t.removeEventListener("click",this._backdropClickHandler),t.removeEventListener("transitionend",this._backdropTransitionendHandler),t.remove(),this._backdropElement===t&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const x1="cdk-overlay-connected-position-bounding-box",kz=/([A-Za-z%]+)$/;class Oz{constructor(t,e,i,r,s){this._viewportRuler=e,this._document=i,this._platform=r,this._overlayContainer=s,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new Oe,this._resizeSubscription=bn.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(t)}get positions(){return this._preferredPositions}attach(t){this._validatePositions(),t.hostElement.classList.add(x1),this._overlayRef=t,this._boundingBox=t.hostElement,this._pane=t.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const t=this._originRect,e=this._overlayRect,i=this._viewportRect,r=this._containerRect,s=[];let a;for(let u of this._preferredPositions){let h=this._getOriginPoint(t,r,u),f=this._getOverlayPoint(h,e,u),m=this._getOverlayFit(f,e,i,u);if(m.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(u,h);this._canFitWithFlexibleDimensions(m,f,i)?s.push({position:u,origin:h,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(h,u)}):(!a||a.overlayFit.visibleAreah&&(h=m,u=f)}return this._isPushed=!1,void this._applyPosition(u.position,u.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(a.position,a.originPoint);this._applyPosition(a.position,a.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&Ic(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(x1),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const t=this._lastPosition;if(t){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._getOriginPoint(this._originRect,this._containerRect,t);this._applyPosition(t,e)}else this.apply()}withScrollableContainers(t){return this._scrollables=t,this}withPositions(t){return this._preferredPositions=t,-1===t.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(t){return this._viewportMargin=t,this}withFlexibleDimensions(t=!0){return this._hasFlexibleDimensions=t,this}withGrowAfterOpen(t=!0){return this._growAfterOpen=t,this}withPush(t=!0){return this._canPush=t,this}withLockedPosition(t=!0){return this._positionLocked=t,this}setOrigin(t){return this._origin=t,this}withDefaultOffsetX(t){return this._offsetX=t,this}withDefaultOffsetY(t){return this._offsetY=t,this}withTransformOriginOn(t){return this._transformOriginSelector=t,this}_getOriginPoint(t,e,i){let r,s;if("center"==i.originX)r=t.left+t.width/2;else{const a=this._isRtl()?t.right:t.left,u=this._isRtl()?t.left:t.right;r="start"==i.originX?a:u}return e.left<0&&(r-=e.left),s="center"==i.originY?t.top+t.height/2:"top"==i.originY?t.top:t.bottom,e.top<0&&(s-=e.top),{x:r,y:s}}_getOverlayPoint(t,e,i){let r,s;return r="center"==i.overlayX?-e.width/2:"start"===i.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,s="center"==i.overlayY?-e.height/2:"top"==i.overlayY?0:-e.height,{x:t.x+r,y:t.y+s}}_getOverlayFit(t,e,i,r){const s=R1(e);let{x:a,y:u}=t,h=this._getOffset(r,"x"),f=this._getOffset(r,"y");h&&(a+=h),f&&(u+=f);let C=0-u,S=u+s.height-i.height,T=this._subtractOverflows(s.width,0-a,a+s.width-i.width),x=this._subtractOverflows(s.height,C,S),R=T*x;return{visibleArea:R,isCompletelyWithinViewport:s.width*s.height===R,fitsInViewportVertically:x===s.height,fitsInViewportHorizontally:T==s.width}}_canFitWithFlexibleDimensions(t,e,i){if(this._hasFlexibleDimensions){const r=i.bottom-e.y,s=i.right-e.x,a=P1(this._overlayRef.getConfig().minHeight),u=P1(this._overlayRef.getConfig().minWidth),f=t.fitsInViewportHorizontally||null!=u&&u<=s;return(t.fitsInViewportVertically||null!=a&&a<=r)&&f}return!1}_pushOverlayOnScreen(t,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:t.x+this._previousPushAmount.x,y:t.y+this._previousPushAmount.y};const r=R1(e),s=this._viewportRect,a=Math.max(t.x+r.width-s.width,0),u=Math.max(t.y+r.height-s.height,0),h=Math.max(s.top-i.top-t.y,0),f=Math.max(s.left-i.left-t.x,0);let m=0,y=0;return m=r.width<=s.width?f||-a:t.xT&&!this._isInitialRender&&!this._growAfterOpen&&(a=t.y-T/2)}if("end"===e.overlayX&&!r||"start"===e.overlayX&&r)C=i.width-t.x+this._viewportMargin,m=t.x-this._viewportMargin;else if("start"===e.overlayX&&!r||"end"===e.overlayX&&r)y=t.x,m=i.right-t.x;else{const S=Math.min(i.right-t.x+i.left,t.x),T=this._lastBoundingBoxSize.width;m=2*S,y=t.x-S,m>T&&!this._isInitialRender&&!this._growAfterOpen&&(y=t.x-T/2)}return{top:a,left:y,bottom:u,right:C,width:m,height:s}}_setBoundingBoxStyles(t,e){const i=this._calculateBoundingBoxRect(t,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const r={};if(this._hasExactPosition())r.top=r.left="0",r.bottom=r.right=r.maxHeight=r.maxWidth="",r.width=r.height="100%";else{const s=this._overlayRef.getConfig().maxHeight,a=this._overlayRef.getConfig().maxWidth;r.height=ei(i.height),r.top=ei(i.top),r.bottom=ei(i.bottom),r.width=ei(i.width),r.left=ei(i.left),r.right=ei(i.right),r.alignItems="center"===e.overlayX?"center":"end"===e.overlayX?"flex-end":"flex-start",r.justifyContent="center"===e.overlayY?"center":"bottom"===e.overlayY?"flex-end":"flex-start",s&&(r.maxHeight=ei(s)),a&&(r.maxWidth=ei(a))}this._lastBoundingBoxSize=i,Ic(this._boundingBox.style,r)}_resetBoundingBoxStyles(){Ic(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){Ic(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(t,e){const i={},r=this._hasExactPosition(),s=this._hasFlexibleDimensions,a=this._overlayRef.getConfig();if(r){const m=this._viewportRuler.getViewportScrollPosition();Ic(i,this._getExactOverlayY(e,t,m)),Ic(i,this._getExactOverlayX(e,t,m))}else i.position="static";let u="",h=this._getOffset(e,"x"),f=this._getOffset(e,"y");h&&(u+=`translateX(${h}px) `),f&&(u+=`translateY(${f}px)`),i.transform=u.trim(),a.maxHeight&&(r?i.maxHeight=ei(a.maxHeight):s&&(i.maxHeight="")),a.maxWidth&&(r?i.maxWidth=ei(a.maxWidth):s&&(i.maxWidth="")),Ic(this._pane.style,i)}_getExactOverlayY(t,e,i){let r={top:"",bottom:""},s=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),"bottom"===t.overlayY?r.bottom=this._document.documentElement.clientHeight-(s.y+this._overlayRect.height)+"px":r.top=ei(s.y),r}_getExactOverlayX(t,e,i){let a,r={left:"",right:""},s=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),a=this._isRtl()?"end"===t.overlayX?"left":"right":"end"===t.overlayX?"right":"left","right"===a?r.right=this._document.documentElement.clientWidth-(s.x+this._overlayRect.width)+"px":r.left=ei(s.x),r}_getScrollVisibility(){const t=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(r=>r.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:T1(t,i),isOriginOutsideView:$0(t,i),isOverlayClipped:T1(e,i),isOverlayOutsideView:$0(e,i)}}_subtractOverflows(t,...e){return e.reduce((i,r)=>i-Math.max(r,0),t)}_getNarrowedViewportRect(){const t=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+t-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:t-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(t,e){return"x"===e?t.offsetX??this._offsetX:t.offsetY??this._offsetY}_validatePositions(){}_addPanelClasses(t){this._pane&&f1(t).forEach(e=>{""!==e&&-1===this._appliedPanelClasses.indexOf(e)&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(t=>{this._pane.classList.remove(t)}),this._appliedPanelClasses=[])}_getOriginRect(){const t=this._origin;if(t instanceof wn)return t.nativeElement.getBoundingClientRect();if(t instanceof Element)return t.getBoundingClientRect();const e=t.width||0,i=t.height||0;return{top:t.y,bottom:t.y+i,left:t.x,right:t.x+e,height:i,width:e}}}function Ic(n,t){for(let e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);return n}function P1(n){if("number"!=typeof n&&null!=n){const[t,e]=n.split(kz);return e&&"px"!==e?null:parseFloat(t)}return n||null}function R1(n){return{top:Math.floor(n.top),right:Math.floor(n.right),bottom:Math.floor(n.bottom),left:Math.floor(n.left),width:Math.floor(n.width),height:Math.floor(n.height)}}const k1="cdk-global-overlay-wrapper";class Lz{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._leftOffset="",this._rightOffset="",this._alignItems="",this._justifyContent="",this._width="",this._height=""}attach(t){const e=t.getConfig();this._overlayRef=t,this._width&&!e.width&&t.updateSize({width:this._width}),this._height&&!e.height&&t.updateSize({height:this._height}),t.hostElement.classList.add(k1),this._isDisposed=!1}top(t=""){return this._bottomOffset="",this._topOffset=t,this._alignItems="flex-start",this}left(t=""){return this._rightOffset="",this._leftOffset=t,this._justifyContent="flex-start",this}bottom(t=""){return this._topOffset="",this._bottomOffset=t,this._alignItems="flex-end",this}right(t=""){return this._leftOffset="",this._rightOffset=t,this._justifyContent="flex-end",this}width(t=""){return this._overlayRef?this._overlayRef.updateSize({width:t}):this._width=t,this}height(t=""){return this._overlayRef?this._overlayRef.updateSize({height:t}):this._height=t,this}centerHorizontally(t=""){return this.left(t),this._justifyContent="center",this}centerVertically(t=""){return this.top(t),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:r,height:s,maxWidth:a,maxHeight:u}=i,h=!("100%"!==r&&"100vw"!==r||a&&"100%"!==a&&"100vw"!==a),f=!("100%"!==s&&"100vh"!==s||u&&"100%"!==u&&"100vh"!==u);t.position=this._cssPosition,t.marginLeft=h?"0":this._leftOffset,t.marginTop=f?"0":this._topOffset,t.marginBottom=this._bottomOffset,t.marginRight=this._rightOffset,h?e.justifyContent="flex-start":"center"===this._justifyContent?e.justifyContent="center":"rtl"===this._overlayRef.getConfig().direction?"flex-start"===this._justifyContent?e.justifyContent="flex-end":"flex-end"===this._justifyContent&&(e.justifyContent="flex-start"):e.justifyContent=this._justifyContent,e.alignItems=f?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(k1),i.justifyContent=i.alignItems=t.marginTop=t.marginBottom=t.marginLeft=t.marginRight=t.position="",this._overlayRef=null,this._isDisposed=!0}}let Nz=(()=>{class n{constructor(e,i,r,s){this._viewportRuler=e,this._document=i,this._platform=r,this._overlayContainer=s}global(){return new Lz}flexibleConnectedTo(e){return new Oz(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}}return n.\u0275fac=function(e){return new(e||n)(z(w1),z(on),z(fg),z(A1))},n.\u0275prov=oe({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),Fz=0,Z0=(()=>{class n{constructor(e,i,r,s,a,u,h,f,m,y,C){this.scrollStrategies=e,this._overlayContainer=i,this._componentFactoryResolver=r,this._positionBuilder=s,this._keyboardDispatcher=a,this._injector=u,this._ngZone=h,this._document=f,this._directionality=m,this._location=y,this._outsideClickDispatcher=C}create(e){const i=this._createHostElement(),r=this._createPaneElement(i),s=this._createPortalOutlet(r),a=new M1(e);return a.direction=a.direction||this._directionality.value,new Rz(s,i,r,a,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher)}position(){return this._positionBuilder}_createPaneElement(e){const i=this._document.createElement("div");return i.id="cdk-overlay-"+Fz++,i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){const e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(Vv)),new wz(e,this._componentFactoryResolver,this._appRef,this._injector,this._document)}}return n.\u0275fac=function(e){return new(e||n)(z(Iz),z(A1),z(Ql),z(Nz),z(xz),z(D),z(Qt),z(on),z(y1),z(sM),z(Pz))},n.\u0275prov=oe({token:n,factory:n.\u0275fac}),n})();const Vz=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],O1=new rt("cdk-connected-overlay-scroll-strategy");let L1=(()=>{class n{constructor(e){this.elementRef=e}}return n.\u0275fac=function(e){return new(e||n)(U(wn))},n.\u0275dir=we({type:n,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]}),n})(),Bz=(()=>{class n{constructor(e,i,r,s,a){this._overlay=e,this._dir=a,this._hasBackdrop=!1,this._lockPosition=!1,this._growAfterOpen=!1,this._flexibleDimensions=!1,this._push=!1,this._backdropSubscription=bn.EMPTY,this._attachSubscription=bn.EMPTY,this._detachSubscription=bn.EMPTY,this._positionSubscription=bn.EMPTY,this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.backdropClick=new me,this.positionChange=new me,this.attach=new me,this.detach=new me,this.overlayKeydown=new me,this.overlayOutsideClick=new me,this._templatePortal=new S1(i,r),this._scrollStrategyFactory=s,this.scrollStrategy=this._scrollStrategyFactory()}get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(e){this._hasBackdrop=dg(e)}get lockPosition(){return this._lockPosition}set lockPosition(e){this._lockPosition=dg(e)}get flexibleDimensions(){return this._flexibleDimensions}set flexibleDimensions(e){this._flexibleDimensions=dg(e)}get growAfterOpen(){return this._growAfterOpen}set growAfterOpen(e){this._growAfterOpen=dg(e)}get push(){return this._push}set push(e){this._push=dg(e)}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=Vz);const e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),27===i.keyCode&&!this.disableClose&&!function bz(n,...t){return t.length?t.some(e=>n[e]):n.altKey||n.shiftKey||n.ctrlKey||n.metaKey}(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new M1({direction:this._dir,positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop});return(this.width||0===this.width)&&(i.width=this.width),(this.height||0===this.height)&&(i.height=this.height),(this.minWidth||0===this.minWidth)&&(i.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){const i=this.positions.map(r=>({originX:r.originX,originY:r.originY,overlayX:r.overlayX,overlayY:r.overlayY,offsetX:r.offsetX||this.offsetX,offsetY:r.offsetY||this.offsetY,panelClass:r.panelClass||void 0}));return e.setOrigin(this._getFlexibleConnectedPositionStrategyOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const e=this._overlay.position().flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());return this._updatePositionStrategy(e),e}_getFlexibleConnectedPositionStrategyOrigin(){return this.origin instanceof L1?this.origin.elementRef:this.origin}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function Dz(n,t=!1){return bt((e,i)=>{let r=0;e.subscribe(Mt(i,s=>{const a=n(s,r++);(a||t)&&i.next(s),!a&&i.complete()}))})}(()=>this.positionChange.observers.length>0)).subscribe(e=>{this.positionChange.emit(e),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(U(Z0),U(pa),U(ds),U(O1),U(y1,8))},n.\u0275dir=we({type:n,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:["cdkConnectedOverlayOrigin","origin"],positions:["cdkConnectedOverlayPositions","positions"],positionStrategy:["cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:["cdkConnectedOverlayOffsetX","offsetX"],offsetY:["cdkConnectedOverlayOffsetY","offsetY"],width:["cdkConnectedOverlayWidth","width"],height:["cdkConnectedOverlayHeight","height"],minWidth:["cdkConnectedOverlayMinWidth","minWidth"],minHeight:["cdkConnectedOverlayMinHeight","minHeight"],backdropClass:["cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:["cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:["cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:["cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:["cdkConnectedOverlayOpen","open"],disableClose:["cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:["cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:["cdkConnectedOverlayHasBackdrop","hasBackdrop"],lockPosition:["cdkConnectedOverlayLockPosition","lockPosition"],flexibleDimensions:["cdkConnectedOverlayFlexibleDimensions","flexibleDimensions"],growAfterOpen:["cdkConnectedOverlayGrowAfterOpen","growAfterOpen"],push:["cdkConnectedOverlayPush","push"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[_n]}),n})();const Uz={provide:O1,deps:[Z0],useFactory:function Hz(n){return()=>n.scrollStrategies.reposition()}};let jz=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({providers:[Z0,Uz],imports:[[W0,Cz,D1],D1]}),n})(),N1=(()=>{class n{constructor(e,i){this._renderer=e,this._elementRef=i,this.onChange=r=>{},this.onTouched=()=>{}}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}}return n.\u0275fac=function(e){return new(e||n)(U($r),U(wn))},n.\u0275dir=we({type:n}),n})(),Ac=(()=>{class n extends N1{}return n.\u0275fac=function(){let t;return function(i){return(t||(t=Hn(n)))(i||n)}}(),n.\u0275dir=we({type:n,features:[Xt]}),n})();const Ca=new rt("NgValueAccessor"),Gz={provide:Ca,useExisting:Le(()=>Q_),multi:!0},Zz=new rt("CompositionEventMode");let Q_=(()=>{class n extends N1{constructor(e,i,r){super(e,i),this._compositionMode=r,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function $z(){const n=ga()?ga().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}())}writeValue(e){this.setProperty("value",e??"")}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}}return n.\u0275fac=function(e){return new(e||n)(U($r),U(wn),U(Zz,8))},n.\u0275dir=we({type:n,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(e,i){1&e&&We("input",function(s){return i._handleInput(s.target.value)})("blur",function(){return i.onTouched()})("compositionstart",function(){return i._compositionStart()})("compositionend",function(s){return i._compositionEnd(s.target.value)})},features:[yn([Gz]),Xt]}),n})();const rr=new rt("NgValidators"),lu=new rt("NgAsyncValidators");function Z1(n){return null!=n}function q1(n){const t=Dv(n)?_s(n):n;return Ab(t),t}function Y1(n){let t={};return n.forEach(e=>{t=null!=e?{...t,...e}:t}),0===Object.keys(t).length?null:t}function K1(n,t){return t.map(e=>e(n))}function X1(n){return n.map(t=>function Yz(n){return!n.validate}(t)?t:e=>t.validate(e))}function q0(n){return null!=n?function Q1(n){if(!n)return null;const t=n.filter(Z1);return 0==t.length?null:function(e){return Y1(K1(e,t))}}(X1(n)):null}function Y0(n){return null!=n?function J1(n){if(!n)return null;const t=n.filter(Z1);return 0==t.length?null:function(e){return function zz(...n){const t=$c(n),{args:e,keys:i}=VI(n),r=new _t(s=>{const{length:a}=e;if(!a)return void s.complete();const u=new Array(a);let h=a,f=a;for(let m=0;m{y||(y=!0,f--),u[m]=C},()=>h--,void 0,()=>{(!h||!y)&&(f||s.next(i?BI(i,u):u),s.complete())}))}});return t?r.pipe(n0(t)):r}(K1(e,t).map(q1)).pipe(lt(Y1))}}(X1(n)):null}function ex(n,t){return null===n?[t]:Array.isArray(n)?[...n,t]:[n,t]}function K0(n){return n?Array.isArray(n)?n:[n]:[]}function ey(n,t){return Array.isArray(n)?n.includes(t):n===t}function ix(n,t){const e=K0(t);return K0(n).forEach(r=>{ey(e,r)||e.push(r)}),e}function rx(n,t){return K0(t).filter(e=>!ey(n,e))}class sx{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(t){this._rawValidators=t||[],this._composedValidatorFn=q0(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=Y0(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t){this.control&&this.control.reset(t)}hasError(t,e){return!!this.control&&this.control.hasError(t,e)}getError(t,e){return this.control?this.control.getError(t,e):null}}class Er extends sx{get formDirective(){return null}get path(){return null}}class uu extends sx{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}let ax=(()=>{class n extends class ox{constructor(t){this._cd=t}is(t){return"submitted"===t?!!this._cd?.submitted:!!this._cd?.control?.[t]}}{constructor(e){super(e)}}return n.\u0275fac=function(e){return new(e||n)(U(uu,2))},n.\u0275dir=we({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(e,i){2&e&&yi("ng-untouched",i.is("untouched"))("ng-touched",i.is("touched"))("ng-pristine",i.is("pristine"))("ng-dirty",i.is("dirty"))("ng-valid",i.is("valid"))("ng-invalid",i.is("invalid"))("ng-pending",i.is("pending"))},features:[Xt]}),n})();function gg(n,t){(function J0(n,t){const e=function tx(n){return n._rawValidators}(n);null!==t.validator?n.setValidators(ex(e,t.validator)):"function"==typeof e&&n.setValidators([e]);const i=function nx(n){return n._rawAsyncValidators}(n);null!==t.asyncValidator?n.setAsyncValidators(ex(i,t.asyncValidator)):"function"==typeof i&&n.setAsyncValidators([i]);const r=()=>n.updateValueAndValidity();ry(t._rawValidators,r),ry(t._rawAsyncValidators,r)})(n,t),t.valueAccessor.writeValue(n.value),function rW(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,"change"===n.updateOn&&ux(n,t)})}(n,t),function oW(n,t){const e=(i,r)=>{t.valueAccessor.writeValue(i),r&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}(n,t),function sW(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,"blur"===n.updateOn&&n._pendingChange&&ux(n,t),"submit"!==n.updateOn&&n.markAsTouched()})}(n,t),function iW(n,t){if(t.valueAccessor.setDisabledState){const e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}(n,t)}function ry(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function ux(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function nS(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}const mg="VALID",oy="INVALID",Ih="PENDING",vg="DISABLED";function rS(n){return(ay(n)?n.validators:n)||null}function fx(n){return Array.isArray(n)?q0(n):n||null}function sS(n,t){return(ay(t)?t.asyncValidators:n)||null}function px(n){return Array.isArray(n)?Y0(n):n||null}function ay(n){return null!=n&&!Array.isArray(n)&&"object"==typeof n}const oS=n=>n instanceof lS;function mx(n){return(n=>n instanceof yx)(n)?n.value:n.getRawValue()}function vx(n,t){const e=oS(n),i=n.controls;if(!(e?Object.keys(i):i).length)throw new ue(1e3,"");if(!i[t])throw new ue(1001,"")}function _x(n,t){oS(n),n._forEachChild((i,r)=>{if(void 0===t[r])throw new ue(1002,"")})}class aS{constructor(t,e){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._rawValidators=t,this._rawAsyncValidators=e,this._composedValidatorFn=fx(this._rawValidators),this._composedAsyncValidatorFn=px(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get valid(){return this.status===mg}get invalid(){return this.status===oy}get pending(){return this.status==Ih}get disabled(){return this.status===vg}get enabled(){return this.status!==vg}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._rawValidators=t,this._composedValidatorFn=fx(t)}setAsyncValidators(t){this._rawAsyncValidators=t,this._composedAsyncValidatorFn=px(t)}addValidators(t){this.setValidators(ix(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(ix(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(rx(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(rx(t,this._rawAsyncValidators))}hasValidator(t){return ey(this._rawValidators,t)}hasAsyncValidator(t){return ey(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){this.touched=!0,this._parent&&!t.onlySelf&&this._parent.markAsTouched(t)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(t=>t.markAllAsTouched())}markAsUntouched(t={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(e=>{e.markAsUntouched({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}markAsDirty(t={}){this.pristine=!1,this._parent&&!t.onlySelf&&this._parent.markAsDirty(t)}markAsPristine(t={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(e=>{e.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}markAsPending(t={}){this.status=Ih,!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)}disable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=vg,this.errors=null,this._forEachChild(i=>{i.disable({...t,onlySelf:!0})}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...t,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!0))}enable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=mg,this._forEachChild(i=>{i.enable({...t,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors({...t,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(t){this._parent=t}updateValueAndValidity(t={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===mg||this.status===Ih)&&this._runAsyncValidator(t.emitEvent)),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(t)}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?vg:mg}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t){if(this.asyncValidator){this.status=Ih,this._hasOwnPendingAsyncValidator=!0;const e=q1(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe(i=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(i,{emitEvent:t})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(!1!==e.emitEvent)}get(t){return function cW(n,t,e){if(null==t||(Array.isArray(t)||(t=t.split(e)),Array.isArray(t)&&0===t.length))return null;let i=n;return t.forEach(r=>{i=oS(i)?i.controls.hasOwnProperty(r)?i.controls[r]:null:(n=>n instanceof hW)(i)&&i.at(r)||null}),i}(this,t,".")}getError(t,e){const i=e?this.get(e):this;return i&&i.errors?i.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(t)}_initObservables(){this.valueChanges=new me,this.statusChanges=new me}_calculateStatus(){return this._allControlsDisabled()?vg:this.errors?oy:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Ih)?Ih:this._anyControlsHaveStatus(oy)?oy:mg}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t={}){this.pristine=!this._anyControlsDirty(),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}_updateTouched(t={}){this.touched=this._anyControlsTouched(),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}_isBoxedValue(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t}_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){ay(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){return!t&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}}class yx extends aS{constructor(t=null,e,i){super(rS(e),sS(i,e)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),ay(e)&&e.initialValueIsDefault&&(this.defaultValue=this._isBoxedValue(t)?t.value:t)}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=this.defaultValue,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){nS(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){nS(this._onDisabledChange,t)}_forEachChild(t){}_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(t){this._isBoxedValue(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}}class lS extends aS{constructor(t,e,i){super(rS(e),sS(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e,i={}){this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){_x(this,t),Object.keys(t).forEach(i=>{vx(this,i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){null!=t&&(Object.keys(t).forEach(i=>{this.controls[i]&&this.controls[i].patchValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild((i,r)=>{i.reset(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(t,e,i)=>(t[i]=mx(e),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(e,i)=>!!i._syncPendingControls()||e);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(e=>{const i=this.controls[e];i&&t(i,e)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(const e of Object.keys(this.controls)){const i=this.controls[e];if(this.contains(e)&&t(i))return!0}return!1}_reduceValue(){return this._reduceChildren({},(t,e,i)=>((e.enabled||this.disabled)&&(t[i]=e.value),t))}_reduceChildren(t,e){let i=t;return this._forEachChild((r,s)=>{i=e(i,r,s)}),i}_allControlsDisabled(){for(const t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}}class hW extends aS{constructor(t,e,i){super(rS(e),sS(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(t){return this.controls[t]}push(t,e={}){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(t,e,i={}){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),this.controls.splice(t,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),this.controls.splice(t,1),e&&(this.controls.splice(t,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(t,e={}){_x(this,t),t.forEach((i,r)=>{vx(this,r),this.at(r).setValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){null!=t&&(t.forEach((i,r)=>{this.at(r)&&this.at(r).patchValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t=[],e={}){this._forEachChild((i,r)=>{i.reset(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(t=>mx(t))}clear(t={}){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:t.emitEvent}))}_syncPendingControls(){let t=this.controls.reduce((e,i)=>!!i._syncPendingControls()||e,!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){this.controls.forEach((e,i)=>{t(e,i)})}_updateValue(){this.value=this.controls.filter(t=>t.enabled||this.disabled).map(t=>t.value)}_anyControls(t){return this.controls.some(e=>e.enabled&&t(e))}_setUpControls(){this._forEachChild(t=>this._registerControl(t))}_allControlsDisabled(){for(const t of this.controls)if(t.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)}}const gW={provide:uu,useExisting:Le(()=>cS)},Dx=(()=>Promise.resolve(null))();let cS=(()=>{class n extends uu{constructor(e,i,r,s,a){super(),this._changeDetectorRef=a,this.control=new yx,this._registered=!1,this.update=new me,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=function tS(n,t){if(!t)return null;let e,i,r;return Array.isArray(t),t.forEach(s=>{s.constructor===Q_?e=s:function uW(n){return Object.getPrototypeOf(n.constructor)===Ac}(s)?i=s:r=s}),r||i||e||null}(0,s)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){const i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),function eS(n,t){if(!n.hasOwnProperty("model"))return!1;const e=n.model;return!!e.isFirstChange()||!Object.is(t,e.currentValue)}(e,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(e){this.viewModel=e,this.update.emit(e)}_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(){gg(this.control,this),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(e){Dx.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){const i=e.isDisabled.currentValue,r=""===i||i&&"false"!==i;Dx.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?function ny(n,t){return[...t.path,n]}(e,this._parent):[e]}}return n.\u0275fac=function(e){return new(e||n)(U(Er,9),U(rr,10),U(lu,10),U(Ca,10),U(gh,8))},n.\u0275dir=we({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:["disabled","isDisabled"],model:["ngModel","model"],options:["ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[yn([gW]),Xt,_n]}),n})(),bx=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({}),n})(),UW=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({imports:[[bx]]}),n})(),jW=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({imports:[UW]}),n})();const zW=["map"],WW=["filterTextInput"];function GW(n,t){1&n&&(fe(0,"div",7)(1,"div",8),fn(2,"div",9)(3,"div",10)(4,"div",11)(5,"div",12)(6,"div",13),ge(),fn(7,"br"),pn(8," Loading map... "),ge())}function $W(n,t){if(1&n){const e=Kn();fe(0,"div",14)(1,"div",15)(2,"input",16,17),We("ngModelChange",function(r){return _e(e),ee().filterText=r}),ge(),pn(4,"\xa0\xa0\xa0 Hide Labels: "),fe(5,"input",18),We("change",function(r){return _e(e),ee().changeHideLabels(r)}),ge()(),fe(6,"div",19),pn(7," Show Calls: "),fe(8,"input",18),We("change",function(r){return _e(e),ee().changeShowCalls(r)}),ge(),pn(9," \xa0\xa0\xa0 Show Stations: "),fe(10,"input",18),We("change",function(r){return _e(e),ee().changeShowStations(r)}),ge(),pn(11," \xa0\xa0\xa0 Show Units: "),fe(12,"input",18),We("change",function(r){return _e(e),ee().changeShowUnits(r)}),ge(),pn(13," \xa0\xa0\xa0 Show Personnel: "),fe(14,"input",18),We("change",function(r){return _e(e),ee().changeShowPeople(r)}),ge()()()}if(2&n){const e=ee();J(2),te("ngModel",e.filterText),J(3),te("checked",e.hideLabels),J(3),te("checked",e.showCalls),J(2),te("checked",e.showStations),J(2),te("checked",e.showUnits),J(2),te("checked",e.showPersonnel)}}let ZW=(()=>{class n{constructor(e,i,r,s,a){this.mapProvider=e,this.cdRef=i,this.realtimeGeolocationService=r,this.events=s,this.consts=a,this.showCalls=!0,this.showStations=!0,this.showUnits=!0,this.showPersonnel=!0,this.hideLabels=!1,this.filterText="",this.updateDate="",this.signalRStarted=!1,this.markers=[]}ngOnInit(){const e=new Date;this.updateDate=e.toString(),this.mapProvider.getMapDataAndMarkers().pipe(Ro(1)).subscribe(i=>{this.processMapData(i.Data),this.startSignalR()}),typeof this.showbuttons>"u"&&(this.showbuttons=!1),typeof this.mapheight>"u"&&(this.mapheight="600px"),this.cdRef.detectChanges()}ngAfterViewInit(){this.filterTextInput.valueChanges.pipe(function $3(n,t=T_){return bt((e,i)=>{let r=null,s=null,a=null;const u=()=>{if(r){r.unsubscribe(),r=null;const f=s;s=null,i.next(f)}};function h(){const f=a+n,m=t.now();if(m{s=f,a=t.now(),r||(r=t.schedule(h,n),i.add(r))},()=>{u(),i.complete()},void 0,()=>{s=r=null}))})}(500)).pipe(jI()).subscribe(e=>{this.mapProvider.getMapDataAndMarkers().subscribe(i=>{this.processMapData(i.Data)})})}ngOnChanges(){typeof this.showbuttons>"u"&&(this.showbuttons=!1),typeof this.mapheight>"u"&&(this.mapheight="600px"),this.cdRef.detectChanges()}changeHideLabels(e){e&&e.target&&(this.hideLabels=e.target.checked,this.mapProvider.getMapDataAndMarkers().subscribe(r=>{this.processMapData(r.Data)}))}changeShowCalls(e){e&&e.target&&(this.showCalls=e.target.checked,this.mapProvider.getMapDataAndMarkers().subscribe(r=>{this.processMapData(r.Data)}))}changeShowStations(e){e&&e.target&&(this.showStations=e.target.checked,this.mapProvider.getMapDataAndMarkers().subscribe(r=>{this.processMapData(r.Data)}))}changeShowUnits(e){e&&e.target&&(this.showUnits=e.target.checked,this.mapProvider.getMapDataAndMarkers().subscribe(r=>{this.processMapData(r.Data)}))}changeShowPeople(e){e&&e.target&&(this.showPersonnel=e.target.checked,this.mapProvider.getMapDataAndMarkers().subscribe(r=>{this.processMapData(r.Data)}))}getMapLayers(){this.mapProvider.getMayLayers(0).pipe(Ro(1)).subscribe(e=>{if(e&&e.Data&&e.Data.LayerJson){this.clearLayers();var i=JSON.parse(e.Data.LayerJson);i&&i.forEach(r=>{var s=Ga.geoJSON(r,{style:{color:r.features[0].properties.color,opacity:.7,fillColor:r.features[0].properties.color,fillOpacity:.1}});this.layerControl.addOverlay(s,r.features[0].properties.name),this.layers.push(s)})}})}clearLayers(){this.layers&&this.layers.length>0?(this.layers.forEach(e=>{try{this.layerControl.removeLayer(e),this.map.removeLayer(e)}catch{}}),this.layers=[]):this.layers=[]}colorlayer(e,i){i.on("mouseover",function(r){i.setStyle({fillOpacity:.4})}),i.on("mouseout",function(r){i.setStyle({fillOpacity:0})})}processMapData(e){if(e){const u=new Date;this.updateDate=u.toString(),this.clearLayers();var i=this.getMapCenter(e);if(!this.map){var r=Ga.tileLayer(this.leafletosmurl,{maxZoom:19,attribution:this.mapattribution});this.baseMaps={OpenStreetMap:r},this.map=Ga.map(this.mapContainer.nativeElement,{doubleClickZoom:!1,zoomControl:!0,layers:[r]}),this.layerControl=Ga.control.layers(this.baseMaps).addTo(this.map)}if(this.map.setView(i,this.getMapZoomLevel(e)),this.markers&&this.markers.length>=0){for(var s=0;s0){e&&e.MapMakerInfos&&e.MapMakerInfos.forEach(h=>{if(""===this.filterText||h.Title.toLowerCase().indexOf(this.filterText.toLowerCase())>=0){let f="",m=null;this.hideLabels||(f=h.Title),(0==h.Type&&this.showCalls||1==h.Type&&this.showUnits||2==h.Type&&this.showStations)&&(m=this.hideLabels?Ga.marker([h.Latitude,h.Longitude],{icon:Ga.icon({iconUrl:"/images/mapping/"+h.ImagePath+".png",iconSize:[32,37],iconAnchor:[16,37]}),draggable:!1,title:f,elementId:h.Id}).addTo(this.map):Ga.marker([h.Latitude,h.Longitude],{icon:Ga.icon({iconUrl:"/images/mapping/"+h.ImagePath+".png",iconSize:[32,37],iconAnchor:[16,37]}),draggable:!1,title:f,elementId:h.Id}).bindTooltip(f,{permanent:!0,direction:"bottom"}).addTo(this.map)),console.log(JSON.stringify(m)),this.markers.push(m)}});var a=Ga.featureGroup(this.markers);this.map.fitBounds(a.getBounds())}}this.getMapLayers()}getMapCenter(e){return[e.CenterLat,e.CenterLon]}getMapZoomLevel(e){return e.ZoomLevel}startSignalR(){this.signalRStarted||(Object.defineProperty(WebSocket,"OPEN",{value:1}),this.realtimeGeolocationService.connectionState$.subscribe(e=>{}),this.signalrInit(),this.realtimeGeolocationService.start(),this.signalRStarted=!0)}stopSignalR(){this.realtimeGeolocationService.stop(),this.signalRStarted=!1}signalrInit(){this.events.subscribe(this.consts.SIGNALR_EVENTS.PERSONNEL_LOCATION_UPDATED,e=>{}),this.events.subscribe(this.consts.SIGNALR_EVENTS.UNIT_LOCATION_UPDATED,e=>{if(console.log("unit location updated event"),e){let i=Z3.find(this.markers,["elementId",`u${e.UnitId}`]);i&&i.setLatLng([e.Latitude,e.Longitude])}})}}return n.\u0275fac=function(e){return new(e||n)(U(c3),U(gh),U(m3),U(H0),U(ug))},n.\u0275cmp=Yt({type:n,selectors:[["ng-component"]],viewQuery:function(e,i){if(1&e&&(kv(zW,5),kv(WW,5)),2&e){let r;Rv(r=Ov())&&(i.mapContainer=r.first),Rv(r=Ov())&&(i.filterTextInput=r.first)}},inputs:{showbuttons:"showbuttons",mapheight:"mapheight",departmentId:"departmentId",leafletosmurl:"leafletosmurl",mapattribution:"mapattribution"},features:[_n],decls:8,vars:5,consts:[["cdkConnectedOverlay","",3,"cdkConnectedOverlayOpen"],["cdkOverlayOrigin",""],["style","width: 100%; padding-bottom: 4px;",4,"ngIf"],["id","map","name","map",2,"width","100%"],["map",""],[2,"width","100%"],[2,"font-size","10px","width","50%","float","right","text-align","right","margin-bottom","8px"],[1,"text-center"],[1,"sk-spinner","sk-spinner-wave"],[1,"sk-rect1"],[1,"sk-rect2",2,"padding-left","4px"],[1,"sk-rect3",2,"padding-left","4px"],[1,"sk-rect4",2,"padding-left","4px"],[1,"sk-rect5",2,"padding-left","4px"],[2,"width","100%","padding-bottom","4px"],[2,"width","50%","float","left","text-align","left"],["type","text","placeholder","filter markers text",3,"ngModel","ngModelChange"],["filterTextInput","ngModel"],["type","checkbox",3,"checked","change"],[2,"width","50%","float","right","text-align","right"]],template:function(e,i){1&e&&(Ee(0,GW,9,0,"ng-template",0),fe(1,"div",1),Ee(2,$W,15,6,"div",2),fn(3,"div",3,4),fe(5,"div",5)(6,"div",6),pn(7),ge()()()),2&e&&(te("cdkConnectedOverlayOpen",null===Yn(4)),J(2),te("ngIf",1==i.showbuttons),J(1),La("height",i.mapheight),J(4),ah(" Last Update: ",i.updateDate," "))},directives:[Bz,L1,Fa,Q_,ax,cS],styles:[""],changeDetection:0}),n})();const qW=()=>window.rgApiBaseUrl&&window.rgApiBaseUrl.length>0?window.rgApiBaseUrl.trim().toString():"https://api.resgrid.com";let XW=(()=>{class n{constructor(e){this.injector=e}ngDoBootstrap(){customElements.define("rg-shifts-calendar",BM(G3,{injector:this.injector})),customElements.define("rg-map",BM(ZW,{injector:this.injector}))}}return n.\u0275fac=function(e){return new(e||n)(z(D))},n.\u0275mod=Ht({type:n}),n.\u0275inj=Je({providers:[],imports:[[mh,oj,NM,jW,n2,eU.forRoot({provide:za,useFactory:$U}),jz,l3.forRoot({baseApiUrl:qW,apiVersion:"v4",clientId:"RgWebApp",googleApiKey:window.rgGoogleMapsKey&&window.rgGoogleMapsKey.length>0?window.rgGoogleMapsKey.trim().toString():"",channelUrl:window.rgChannelUrl&&window.rgChannelUrl.length>0?window.rgChannelUrl.trim().toString():"https://events.resgrid.com",channelHubName:"eventingHub",realtimeGeolocationHubName:"/geolocationHub",logLevel:0,isMobileApp:!1,cacheProvider:null})]]}),n})();(function xO(){WT=!1})(),kN().bootstrapModule(XW).catch(n=>console.error(n))},407:function(gs,Lo){!function(ne){"use strict";function I(o){var c,p,v,w;for(p=1,v=arguments.length;p"u")&&L&&L.Mixin){o=un(o)?o:[o];for(var c=0;c0?Math.floor(o):Math.ceil(o)};function $e(o,c,p){return o instanceof Be?o:un(o)?new Be(o[0],o[1]):null==o?o:"object"==typeof o&&"x"in o&&"y"in o?new Be(o.x,o.y):new Be(o,c,p)}function en(o,c){if(o)for(var p=c?[o,c]:o,v=0,w=p.length;v=this.min.x&&p.x<=this.max.x&&c.y>=this.min.y&&p.y<=this.max.y},intersects:function(o){o=ui(o);var c=this.min,p=this.max,v=o.min,w=o.max;return w.x>=c.x&&v.x<=p.x&&w.y>=c.y&&v.y<=p.y},overlaps:function(o){o=ui(o);var c=this.min,p=this.max,v=o.min,w=o.max;return w.x>c.x&&v.xc.y&&v.y=c.lat&&w.lat<=p.lat&&v.lng>=c.lng&&w.lng<=p.lng},intersects:function(o){o=Oe(o);var c=this._southWest,p=this._northEast,v=o.getSouthWest(),w=o.getNorthEast();return w.lat>=c.lat&&v.lat<=p.lat&&w.lng>=c.lng&&v.lng<=p.lng},overlaps:function(o){o=Oe(o);var c=this._southWest,p=this._northEast,v=o.getSouthWest(),w=o.getNorthEast();return w.lat>c.lat&&v.latc.lng&&v.lng1,jc=function(){var o=!1;try{var c=Object.defineProperty({},"passive",{get:function(){o=!0}});window.addEventListener("testPassiveEventSupport",Wt,c),window.removeEventListener("testPassiveEventSupport",Wt,c)}catch{}return o}(),Ti=!!document.createElement("canvas").getContext,tl=!(!document.createElementNS||!Oc("svg").createSVGRect),Ah=!!tl&&function(){var o=document.createElement("div");return o.innerHTML="","http://www.w3.org/2000/svg"===(o.firstChild&&o.firstChild.namespaceURI)}(),xh=!tl&&function(){try{var o=document.createElement("div");o.innerHTML='';var c=o.firstChild;return c.style.behavior="url(#default#VML)",c&&"object"==typeof c.adj}catch{return!1}}();function xr(o){return navigator.userAgent.toLowerCase().indexOf(o)>=0}var ve={ie:ur,ielt9:vs,edge:Ka,webkit:Lc,android:Xs,android23:Ui,androidStock:pu,opera:Nc,chrome:ji,gecko:Fc,safari:Qa,phantom:Qs,opera12:gu,win:mu,ie3d:vu,webkit3d:Ja,gecko3d:_u,any3d:Vc,mobile:Vo,mobileWebkit:Da,mobileWebkit3d:el,msPointer:yu,pointer:wu,touch:Bc,touchNative:Cu,mobileOpera:Du,mobileGecko:Hc,retina:Uc,passiveEvents:jc,canvas:Ti,svg:tl,vml:xh,inlineSvg:Ah},zc=ve.msPointer?"MSPointerDown":"pointerdown",nl=ve.msPointer?"MSPointerMove":"pointermove",Pr=ve.msPointer?"MSPointerUp":"pointerup",Wc=ve.msPointer?"MSPointerCancel":"pointercancel",Rr={touchstart:zc,touchmove:nl,touchend:Pr,touchcancel:Wc},Su={touchstart:function Zc(o,c){c.MSPOINTER_TYPE_TOUCH&&c.pointerType===c.MSPOINTER_TYPE_TOUCH&&Je(c),Sa(o,c)},touchmove:Sa,touchend:Sa,touchcancel:Sa},Jr={},Ph=!1;function Rh(o,c,p){return"touchstart"===c&&function kh(){Ph||(document.addEventListener(zc,il,!0),document.addEventListener(nl,$c,!0),document.addEventListener(Pr,Bo,!0),document.addEventListener(Wc,Bo,!0),Ph=!0)}(),Su[c]?(p=Su[c].bind(this,p),o.addEventListener(Rr[c],p,!1),p):(console.warn("wrong event specified:",c),L.Util.falseFn)}function il(o){Jr[o.pointerId]=o}function $c(o){Jr[o.pointerId]&&(Jr[o.pointerId]=o)}function Bo(o){delete Jr[o.pointerId]}function Sa(o,c){if(c.pointerType!==(c.MSPOINTER_TYPE_MOUSE||"mouse")){for(var p in c.touches=[],Jr)c.touches.push(Jr[p]);c.changedTouches=[c],o(c)}}var Uo,al,eo,ul,Wi,ol=Js(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),ba=Js(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),qc="webkitTransition"===ba||"OTransition"===ba?ba+"End":"transitionend";function _s(o){return"string"==typeof o?document.getElementById(o):o}function Nn(o,c){var p=o.style[c]||o.currentStyle&&o.currentStyle[c];if((!p||"auto"===p)&&document.defaultView){var v=document.defaultView.getComputedStyle(o,null);p=v?v[c]:null}return"auto"===p?null:p}function Ye(o,c,p){var v=document.createElement(o);return v.className=c||"",p&&p.appendChild(v),v}function Zt(o){var c=o.parentNode;c&&c.removeChild(o)}function xt(o){for(;o.firstChild;)o.removeChild(o.firstChild)}function ys(o){var c=o.parentNode;c&&c.lastChild!==o&&c.appendChild(o)}function yt(o){var c=o.parentNode;c&&c.firstChild!==o&&c.insertBefore(o,c.firstChild)}function Ho(o,c){if(void 0!==o.classList)return o.classList.contains(c);var p=Ea(o);return p.length>0&&new RegExp("(^|\\s)"+c+"(\\s|$)").test(p)}function Qe(o,c){if(void 0!==o.classList)for(var p=qr(c),v=0,w=p.length;vthis.options.maxZoom)?this.setZoom(o):this},panInsideBounds:function(o,c){this._enforcingBounds=!0;var p=this.getCenter(),v=this._limitCenter(p,this._zoom,Oe(o));return p.equals(v)||this.panTo(v,c),this._enforcingBounds=!1,this},panInside:function(o,c){var p=$e((c=c||{}).paddingTopLeft||c.padding||[0,0]),v=$e(c.paddingBottomRight||c.padding||[0,0]),w=this.project(this.getCenter()),b=this.project(o),P=this.getPixelBounds(),B=ui([P.min.add(p),P.max.subtract(v)]),W=B.getSize();if(!B.contains(b)){this._enforcingBounds=!0;var Q=b.subtract(B.getCenter()),pe=B.extend(b).getSize().subtract(W);w.x+=Q.x<0?-pe.x:pe.x,w.y+=Q.y<0?-pe.y:pe.y,this.panTo(this.unproject(w),c),this._enforcingBounds=!1}return this},invalidateSize:function(o){if(!this._loaded)return this;o=I({animate:!1,pan:!0},!0===o?{animate:!0}:o);var c=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var p=this.getSize(),v=c.divideBy(2).round(),w=p.divideBy(2).round(),b=v.subtract(w);return b.x||b.y?(o.animate&&o.pan?this.panBy(b):(o.pan&&this._rawPanBy(b),this.fire("move"),o.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(At(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:c,newSize:p})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(o){if(o=this._locateOptions=I({timeout:1e4,watch:!1},o),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var c=At(this._handleGeolocationResponse,this),p=At(this._handleGeolocationError,this);return o.watch?this._locationWatchId=navigator.geolocation.watchPosition(c,p,o):navigator.geolocation.getCurrentPosition(c,p,o),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(o){if(this._container._leaflet_id){var c=o.code,p=o.message||(1===c?"permission denied":2===c?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:c,message:"Geolocation error: "+p+"."})}},_handleGeolocationResponse:function(o){if(this._container._leaflet_id){var v=new Bt(o.coords.latitude,o.coords.longitude),w=v.toBounds(2*o.coords.accuracy),b=this._locateOptions;if(b.setView){var P=this.getBoundsZoom(w);this.setView(v,b.maxZoom?Math.min(P,b.maxZoom):P)}var B={latlng:v,bounds:w,timestamp:o.timestamp};for(var W in o.coords)"number"==typeof o.coords[W]&&(B[W]=o.coords[W]);this.fire("locationfound",B)}},addHandler:function(o,c){if(!c)return this;var p=this[o]=new c(this);return this._handlers.push(p),this.options[o]&&p.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch{this._container._leaflet_id=void 0,this._containerId=void 0}var o;for(o in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),Zt(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(Hi(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[o].remove();for(o in this._panes)Zt(this._panes[o]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(o,c){var v=Ye("div","leaflet-pane"+(o?" leaflet-"+o.replace("Pane","")+"-pane":""),c||this._mapPane);return o&&(this._panes[o]=v),v},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var o=this.getPixelBounds();return new tn(this.unproject(o.getBottomLeft()),this.unproject(o.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(o,c,p){o=Oe(o),p=$e(p||[0,0]);var v=this.getZoom()||0,w=this.getMinZoom(),b=this.getMaxZoom(),P=o.getNorthWest(),B=o.getSouthEast(),W=this.getSize().subtract(p),Q=ui(this.project(B,v),this.project(P,v)).getSize(),pe=ve.any3d?this.options.zoomSnap:1,nt=W.x/Q.x,Ie=W.y/Q.y,je=c?Math.max(nt,Ie):Math.min(nt,Ie);return v=this.getScaleZoom(je,v),pe&&(v=Math.round(v/(pe/100))*(pe/100),v=c?Math.ceil(v/pe)*pe:Math.floor(v/pe)*pe),Math.max(w,Math.min(b,v))},getSize:function(){return(!this._size||this._sizeChanged)&&(this._size=new Be(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(o,c){var p=this._getTopLeftPoint(o,c);return new en(p,p.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(o){return this.options.crs.getProjectedBounds(void 0===o?this.getZoom():o)},getPane:function(o){return"string"==typeof o?this._panes[o]:o},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(o,c){var p=this.options.crs;return c=void 0===c?this._zoom:c,p.scale(o)/p.scale(c)},getScaleZoom:function(o,c){var p=this.options.crs,v=p.zoom(o*p.scale(c=void 0===c?this._zoom:c));return isNaN(v)?1/0:v},project:function(o,c){return c=void 0===c?this._zoom:c,this.options.crs.latLngToPoint(nn(o),c)},unproject:function(o,c){return c=void 0===c?this._zoom:c,this.options.crs.pointToLatLng($e(o),c)},layerPointToLatLng:function(o){var c=$e(o).add(this.getPixelOrigin());return this.unproject(c)},latLngToLayerPoint:function(o){return this.project(nn(o))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(o){return this.options.crs.wrapLatLng(nn(o))},wrapLatLngBounds:function(o){return this.options.crs.wrapLatLngBounds(Oe(o))},distance:function(o,c){return this.options.crs.distance(nn(o),nn(c))},containerPointToLayerPoint:function(o){return $e(o).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(o){return $e(o).add(this._getMapPanePos())},containerPointToLatLng:function(o){var c=this.containerPointToLayerPoint($e(o));return this.layerPointToLatLng(c)},latLngToContainerPoint:function(o){return this.layerPointToContainerPoint(this.latLngToLayerPoint(nn(o)))},mouseEventToContainerPoint:function(o){return Eu(o,this._container)},mouseEventToLayerPoint:function(o){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(o))},mouseEventToLatLng:function(o){return this.layerPointToLatLng(this.mouseEventToLayerPoint(o))},_initContainer:function(o){var c=this._container=_s(o);if(!c)throw new Error("Map container not found.");if(c._leaflet_id)throw new Error("Map container is already initialized.");tt(c,"scroll",this._onScroll,this),this._containerId=qe(c)},_initLayout:function(){var o=this._container;this._fadeAnimated=this.options.fadeAnimation&&ve.any3d,Qe(o,"leaflet-container"+(ve.touch?" leaflet-touch":"")+(ve.retina?" leaflet-retina":"")+(ve.ielt9?" leaflet-oldie":"")+(ve.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var c=Nn(o,"position");"absolute"!==c&&"relative"!==c&&"fixed"!==c&&(o.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var o=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),ft(this._mapPane,new Be(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(Qe(o.markerPane,"leaflet-zoom-hide"),Qe(o.shadowPane,"leaflet-zoom-hide"))},_resetView:function(o,c){ft(this._mapPane,new Be(0,0));var p=!this._loaded;this._loaded=!0,c=this._limitZoom(c),this.fire("viewprereset");var v=this._zoom!==c;this._moveStart(v,!1)._move(o,c)._moveEnd(v),this.fire("viewreset"),p&&this.fire("load")},_moveStart:function(o,c){return o&&this.fire("zoomstart"),c||this.fire("movestart"),this},_move:function(o,c,p,v){void 0===c&&(c=this._zoom);var w=this._zoom!==c;return this._zoom=c,this._lastCenter=o,this._pixelOrigin=this._getNewPixelOrigin(o),v?p&&p.pinch&&this.fire("zoom",p):((w||p&&p.pinch)&&this.fire("zoom",p),this.fire("move",p)),this},_moveEnd:function(o){return o&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return Hi(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(o){ft(this._mapPane,this._getMapPanePos().subtract(o))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(o){this._targets={},this._targets[qe(this._container)]=this;var c=o?qt:tt;c(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&c(window,"resize",this._onResize,this),ve.any3d&&this.options.transform3DLimit&&(o?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){Hi(this._resizeRequest),this._resizeRequest=En(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var o=this._getMapPanePos();Math.max(Math.abs(o.x),Math.abs(o.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(o,c){for(var v,p=[],w="mouseout"===c||"mouseover"===c,b=o.target||o.srcElement,P=!1;b;){if((v=this._targets[qe(b)])&&("click"===c||"preclick"===c)&&this._draggableMoved(v)){P=!0;break}if(v&&v.listens(c,!0)&&(w&&!kt(b,o)||(p.push(v),w))||b===this._container)break;b=b.parentNode}return!p.length&&!P&&!w&&this.listens(c,!0)&&(p=[this]),p},_isClickDisabled:function(o){for(;o!==this._container;){if(o._leaflet_disable_click)return!0;o=o.parentNode}},_handleDOMEvent:function(o){var c=o.target||o.srcElement;if(!(!this._loaded||c._leaflet_disable_events||"click"===o.type&&this._isClickDisabled(c))){var p=o.type;"mousedown"===p&&Yc(c),this._fireDOMEvent(o,p)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(o,c,p){if("click"===o.type){var v=I({},o);v.type="preclick",this._fireDOMEvent(v,v.type,p)}var w=this._findEventTargets(o,c);if(p){for(var b=[],P=0;P0?Math.round(o-c)/2:Math.max(0,Math.ceil(o))-Math.max(0,Math.floor(c))},_limitZoom:function(o){var c=this.getMinZoom(),p=this.getMaxZoom(),v=ve.any3d?this.options.zoomSnap:1;return v&&(o=Math.round(o/v)*v),Math.max(c,Math.min(p,o))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){Le(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(o,c){var p=this._getCenterOffset(o)._trunc();return!(!0!==(c&&c.animate)&&!this.getSize().contains(p)||(this.panBy(p,c),0))},_createAnimProxy:function(){var o=this._proxy=Ye("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(o),this.on("zoomanim",function(c){var p=ol,v=this._proxy.style[p];Ae(this._proxy,this.project(c.center,c.zoom),this.getZoomScale(c.zoom,1)),v===this._proxy.style[p]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){Zt(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var o=this.getCenter(),c=this.getZoom();Ae(this._proxy,this.project(o,c),this.getZoomScale(c,1))},_catchTransitionEnd:function(o){this._animatingZoom&&o.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(o,c,p){if(this._animatingZoom)return!0;if(p=p||{},!this._zoomAnimated||!1===p.animate||this._nothingToAnimate()||Math.abs(c-this._zoom)>this.options.zoomAnimationThreshold)return!1;var v=this.getZoomScale(c),w=this._getCenterOffset(o)._divideBy(1-1/v);return!(!0!==p.animate&&!this.getSize().contains(w)||(En(function(){this._moveStart(!0,!1)._animateZoom(o,c,!0)},this),0))},_animateZoom:function(o,c,p,v){!this._mapPane||(p&&(this._animatingZoom=!0,this._animateToCenter=o,this._animateToZoom=c,Qe(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:o,zoom:c,noUpdate:v}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(At(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){!this._animatingZoom||(this._mapPane&&Le(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});var Te=Kr.extend({options:{position:"topright"},initialize:function(o){Vt(this,o)},getPosition:function(){return this.options.position},setPosition:function(o){var c=this._map;return c&&c.removeControl(this),this.options.position=o,c&&c.addControl(this),this},getContainer:function(){return this._container},addTo:function(o){this.remove(),this._map=o;var c=this._container=this.onAdd(o),p=this.getPosition(),v=o._controlCorners[p];return Qe(c,"leaflet-control"),-1!==p.indexOf("bottom")?v.insertBefore(c,v.firstChild):v.appendChild(c),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(Zt(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(o){this._map&&o&&o.screenX>0&&o.screenY>0&&this._map.getContainer().focus()}}),to=function(o){return new Te(o)};pt.include({addControl:function(o){return o.addTo(this),this},removeControl:function(o){return o.remove(),this},_initControlPos:function(){var o=this._controlCorners={},c="leaflet-",p=this._controlContainer=Ye("div",c+"control-container",this._container);function v(w,b){o[w+b]=Ye("div",c+w+" "+c+b,p)}v("top","left"),v("top","right"),v("bottom","left"),v("bottom","right")},_clearControlPos:function(){for(var o in this._controlCorners)Zt(this._controlCorners[o]);Zt(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Tu=Te.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(o,c,p,v){return p1)?"":"none"),this._separator.style.display=c&&o?"":"none",this},_onLayerChange:function(o){this._handlingClick||this._update();var c=this._getLayer(qe(o.target)),p=c.overlay?"add"===o.type?"overlayadd":"overlayremove":"add"===o.type?"baselayerchange":null;p&&this._map.fire(p,c)},_createRadioElement:function(o,c){var p='",v=document.createElement("div");return v.innerHTML=p,v.firstChild},_addItem:function(o){var v,c=document.createElement("label"),p=this._map.hasLayer(o.layer);o.overlay?((v=document.createElement("input")).type="checkbox",v.className="leaflet-control-layers-selector",v.defaultChecked=p):v=this._createRadioElement("leaflet-base-layers_"+qe(this),p),this._layerControlInputs.push(v),v.layerId=qe(o.layer),tt(v,"click",this._onInputClick,this);var w=document.createElement("span");w.innerHTML=" "+o.name;var b=document.createElement("span");return c.appendChild(b),b.appendChild(v),b.appendChild(w),(o.overlay?this._overlaysList:this._baseLayersList).appendChild(c),this._checkDisabledLayers(),c},_onInputClick:function(){var c,p,o=this._layerControlInputs,v=[],w=[];this._handlingClick=!0;for(var b=o.length-1;b>=0;b--)p=this._getLayer((c=o[b]).layerId).layer,c.checked?v.push(p):c.checked||w.push(p);for(b=0;b=0;w--)p=this._getLayer((c=o[w]).layerId).layer,c.disabled=void 0!==p.options.minZoom&&vp.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this}}),gn=Te.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(o){var c="leaflet-control-zoom",p=Ye("div",c+" leaflet-bar"),v=this.options;return this._zoomInButton=this._createButton(v.zoomInText,v.zoomInTitle,c+"-in",p,this._zoomIn),this._zoomOutButton=this._createButton(v.zoomOutText,v.zoomOutTitle,c+"-out",p,this._zoomOut),this._updateDisabled(),o.on("zoomend zoomlevelschange",this._updateDisabled,this),p},onRemove:function(o){o.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(o){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(o.shiftKey?3:1))},_createButton:function(o,c,p,v,w){var b=Ye("a",p,v);return b.innerHTML=o,b.href="#",b.title=c,b.setAttribute("role","button"),b.setAttribute("aria-label",c),dl(b),tt(b,"click",es),tt(b,"click",w,this),tt(b,"click",this._refocusOnMap,this),b},_updateDisabled:function(){var o=this._map,c="leaflet-disabled";Le(this._zoomInButton,c),Le(this._zoomOutButton,c),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||o._zoom===o.getMinZoom())&&(Qe(this._zoomOutButton,c),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||o._zoom===o.getMaxZoom())&&(Qe(this._zoomInButton,c),this._zoomInButton.setAttribute("aria-disabled","true"))}});pt.mergeOptions({zoomControl:!0}),pt.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new gn,this.addControl(this.zoomControl))});var Mi=Te.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(o){var c="leaflet-control-scale",p=Ye("div",c),v=this.options;return this._addScales(v,c+"-line",p),o.on(v.updateWhenIdle?"moveend":"move",this._update,this),o.whenReady(this._update,this),p},onRemove:function(o){o.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(o,c,p){o.metric&&(this._mScale=Ye("div",c,p)),o.imperial&&(this._iScale=Ye("div",c,p))},_update:function(){var o=this._map,c=o.getSize().y/2,p=o.distance(o.containerPointToLatLng([0,c]),o.containerPointToLatLng([this.options.maxWidth,c]));this._updateScales(p)},_updateScales:function(o){this.options.metric&&o&&this._updateMetric(o),this.options.imperial&&o&&this._updateImperial(o)},_updateMetric:function(o){var c=this._getRoundNum(o);this._updateScale(this._mScale,c<1e3?c+" m":c/1e3+" km",c/o)},_updateImperial:function(o){var p,v,w,c=3.2808399*o;c>5280?(v=this._getRoundNum(p=c/5280),this._updateScale(this._iScale,v+" mi",v/p)):(w=this._getRoundNum(c),this._updateScale(this._iScale,w+" ft",w/c))},_updateScale:function(o,c,p){o.style.width=Math.round(this.options.maxWidth*p)+"px",o.innerHTML=c},_getRoundNum:function(o){var c=Math.pow(10,(Math.floor(o)+"").length-1),p=o/c;return c*(p>=10?10:p>=5?5:p>=3?3:p>=2?2:1)}}),Ii=Te.extend({options:{position:"bottomright",prefix:''+(ve.inlineSvg?' ':"")+"Leaflet"},initialize:function(o){Vt(this,o),this._attributions={}},onAdd:function(o){for(var c in o.attributionControl=this,this._container=Ye("div","leaflet-control-attribution"),dl(this._container),o._layers)o._layers[c].getAttribution&&this.addAttribution(o._layers[c].getAttribution());return this._update(),o.on("layeradd",this._addAttribution,this),this._container},onRemove:function(o){o.off("layeradd",this._addAttribution,this)},_addAttribution:function(o){o.layer.getAttribution&&(this.addAttribution(o.layer.getAttribution()),o.layer.once("remove",function(){this.removeAttribution(o.layer.getAttribution())},this))},setPrefix:function(o){return this.options.prefix=o,this._update(),this},addAttribution:function(o){return o?(this._attributions[o]||(this._attributions[o]=0),this._attributions[o]++,this._update(),this):this},removeAttribution:function(o){return o?(this._attributions[o]&&(this._attributions[o]--,this._update()),this):this},_update:function(){if(this._map){var o=[];for(var c in this._attributions)this._attributions[c]&&o.push(c);var p=[];this.options.prefix&&p.push(this.options.prefix),o.length&&p.push(o.join(", ")),this._container.innerHTML=p.join(' ')}}});pt.mergeOptions({attributionControl:!0}),pt.addInitHook(function(){this.options.attributionControl&&(new Ii).addTo(this)});Te.Layers=Tu,Te.Zoom=gn,Te.Scale=Mi,Te.Attribution=Ii,to.layers=function(o,c,p){return new Tu(o,c,p)},to.zoom=function(o){return new gn(o)},to.scale=function(o){return new Mi(o)},to.attribution=function(o){return new Ii(o)};var cr=Kr.extend({initialize:function(o){this._map=o},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});cr.addTo=function(o,c){return o.addHandler(c,this),this};var dr,td={Events:Tn},Mu=ve.touch?"touchstart mousedown":"mousedown",Ss=Za.extend({options:{clickTolerance:3},initialize:function(o,c,p,v){Vt(this,v),this._element=o,this._dragStartTarget=c||o,this._preventOutline=p},enable:function(){this._enabled||(tt(this._dragStartTarget,Mu,this._onDown,this),this._enabled=!0)},disable:function(){!this._enabled||(Ss._dragging===this&&this.finishDrag(!0),qt(this._dragStartTarget,Mu,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(o){if(this._enabled&&(this._moved=!1,!Ho(this._element,"leaflet-zoom-anim"))){if(o.touches&&1!==o.touches.length)return void(Ss._dragging===this&&this.finishDrag());if(!(Ss._dragging||o.shiftKey||1!==o.which&&1!==o.button&&!o.touches||(Ss._dragging=this,this._preventOutline&&Yc(this._element),ll(),Uo(),this._moving))){this.fire("down");var c=o.touches?o.touches[0]:o,p=Kc(this._element);this._startPoint=new Be(c.clientX,c.clientY),this._startPos=ws(this._element),this._parentScale=bu(p);var v="mousedown"===o.type;tt(document,v?"mousemove":"touchmove",this._onMove,this),tt(document,v?"mouseup":"touchend touchcancel",this._onUp,this)}}},_onMove:function(o){if(this._enabled){if(o.touches&&o.touches.length>1)return void(this._moved=!0);var c=o.touches&&1===o.touches.length?o.touches[0]:o,p=new Be(c.clientX,c.clientY)._subtract(this._startPoint);!p.x&&!p.y||Math.abs(p.x)+Math.abs(p.y)c&&(p.push(o[v]),w=v);return wb&&(P=B,b=W);b>p&&(c[P]=1,Ot(o,c,p,v,P),Ot(o,c,p,P,w))}function no(o,c,p,v,w){var B,W,Q,b=v?dr:ot(o,p),P=ot(c,p);for(dr=P;;){if(!(b|P))return[o,c];if(b&P)return!1;Q=ot(W=io(o,c,B=b||P,p,w),p),B===b?(o=W,b=Q):(c=W,P=Q)}}function io(o,c,p,v,w){var Q,pe,b=c.x-o.x,P=c.y-o.y,B=v.min,W=v.max;return 8&p?(Q=o.x+b*(W.y-o.y)/P,pe=W.y):4&p?(Q=o.x+b*(B.y-o.y)/P,pe=B.y):2&p?(Q=W.x,pe=o.y+P*(W.x-o.x)/b):1&p&&(Q=B.x,pe=o.y+P*(B.x-o.x)/b),new Be(Q,pe,w)}function ot(o,c){var p=0;return o.xc.max.x&&(p|=2),o.yc.max.y&&(p|=8),p}function Zi(o,c){var p=c.x-o.x,v=c.y-o.y;return p*p+v*v}function ro(o,c,p,v){var Q,w=c.x,b=c.y,P=p.x-w,B=p.y-b,W=P*P+B*B;return W>0&&((Q=((o.x-w)*P+(o.y-b)*B)/W)>1?(w=p.x,b=p.y):Q>0&&(w+=P*Q,b+=B*Q)),P=o.x-w,B=o.y-b,v?P*P+B*B:new Be(w,b)}function Yt(o){return!un(o[0])||"object"!=typeof o[0][0]&&typeof o[0][0]<"u"}function pl(o){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),Yt(o)}var nd={__proto__:null,simplify:Pt,pointToSegmentDistance:Ai,closestPointOnSegment:function wg(o,c,p){return ro(o,c,p)},clipSegment:no,_getEdgeIntersection:io,_getBitCode:ot,_sqClosestPointOnSegment:ro,isFlat:Yt,_flat:pl};function Iu(o,c,p){var v,b,P,B,W,Q,pe,nt,Ie,w=[1,4,2,8];for(b=0,pe=o.length;b1e-7;B++)Q=w*Math.sin(P),Q=Math.pow((1-Q)/(1+Q),w/2),P+=W=Math.PI/2-2*Math.atan(b*Q)-P;return new Bt(P*c,o.x*c/p)}},so={__proto__:null,LonLat:Ht,Mercator:zo,SphericalMercator:lt},we=I({},Mt,{code:"EPSG:3395",projection:zo,transformation:function(){var o=.5/(Math.PI*zo.R);return qa(o,.5,-o,.5)}()}),Kt=I({},Mt,{code:"EPSG:4326",projection:Ht,transformation:qa(1/180,1,-1/180,.5)}),Vn=I({},bt,{projection:Ht,transformation:qa(1,0,-1,0),scale:function(o){return Math.pow(2,o)},zoom:function(o){return Math.log(o)/Math.LN2},distance:function(o,c){var p=c.lng-o.lng,v=c.lat-o.lat;return Math.sqrt(p*p+v*v)},infinite:!0});bt.Earth=Mt,bt.EPSG3395=we,bt.EPSG3857=Qr,bt.EPSG900913=Ya,bt.EPSG4326=Kt,bt.Simple=Vn;var mn=Za.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(o){return o.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(o){return o&&o.removeLayer(this),this},getPane:function(o){return this._map.getPane(o?this.options[o]||o:this.options.pane)},addInteractiveTarget:function(o){return this._map._targets[qe(o)]=this,this},removeInteractiveTarget:function(o){return delete this._map._targets[qe(o)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(o){var c=o.target;if(c.hasLayer(this)){if(this._map=c,this._zoomAnimated=c._zoomAnimated,this.getEvents){var p=this.getEvents();c.on(p,this),this.once("remove",function(){c.off(p,this)},this)}this.onAdd(c),this.fire("add"),c.fire("layeradd",{layer:this})}}});pt.include({addLayer:function(o){if(!o._layerAdd)throw new Error("The provided object is not a Layer.");var c=qe(o);return this._layers[c]||(this._layers[c]=o,o._mapToAdd=this,o.beforeAdd&&o.beforeAdd(this),this.whenReady(o._layerAdd,o)),this},removeLayer:function(o){var c=qe(o);return this._layers[c]?(this._loaded&&o.onRemove(this),delete this._layers[c],this._loaded&&(this.fire("layerremove",{layer:o}),o.fire("remove")),o._map=o._mapToAdd=null,this):this},hasLayer:function(o){return qe(o)in this._layers},eachLayer:function(o,c){for(var p in this._layers)o.call(c,this._layers[p]);return this},_addLayers:function(o){for(var c=0,p=(o=o?un(o)?o:[o]:[]).length;cthis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()c)return this._map.layerPointToLatLng([b.x-(P=(v-c)/p)*(b.x-w.x),b.y-P*(b.y-w.y)])},getBounds:function(){return this._bounds},addLatLng:function(o,c){return c=c||this._defaultShape(),o=nn(o),c.push(o),this._bounds.extend(o),this.redraw()},_setLatLngs:function(o){this._bounds=new tn,this._latlngs=this._convertLatLngs(o)},_defaultShape:function(){return Yt(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(o){for(var c=[],p=Yt(o),v=0,w=o.length;v=2&&c[0]instanceof Bt&&c[0].equals(c[p-1])&&c.pop(),c},_setLatLngs:function(o){di.prototype._setLatLngs.call(this,o),Yt(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return Yt(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var o=this._renderer._bounds,c=this.options.weight,p=new Be(c,c);if(o=new en(o.min.subtract(p),o.max.add(p)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(o)){if(this.options.noClip)return void(this._parts=this._rings);for(var b,v=0,w=this._rings.length;vo.y!=(w=p[B]).y>o.y&&o.x<(w.x-v.x)*(o.y-v.y)/(w.y-v.y)+v.x&&(c=!c);return c||di.prototype._containsPoint.call(this,o,!0)}});var Pi=Bn.extend({initialize:function(o,c){Vt(this,c),this._layers={},o&&this.addData(o)},addData:function(o){var p,v,w,c=un(o)?o:o.features;if(c){for(p=0,v=c.length;p0?v:[c.src]}else{un(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(c.style,"objectFit")&&(c.style.objectFit="fill"),c.autoplay=!!this.options.autoplay,c.loop=!!this.options.loop,c.muted=!!this.options.muted,c.playsInline=!!this.options.playsInline;for(var b=0;bw?(c.height=w+"px",Qe(o,b)):Le(o,b),this._containerWidth=this._container.offsetWidth},_animateZoom:function(o){var c=this._map._latLngToNewLayerPoint(this._latlng,o.zoom,o.center),p=this._getAnchor();ft(this._container,c.add(p))},_adjustPan:function(o){if(this.options.autoPan){this._map._panAnim&&this._map._panAnim.stop();var c=this._map,p=parseInt(Nn(this._container,"marginBottom"),10)||0,v=this._container.offsetHeight+p,w=this._containerWidth,b=new Be(this._containerLeft,-v-this._containerBottom);b._add(ws(this._container));var P=c.layerPointToContainerPoint(b),B=$e(this.options.autoPanPadding),W=$e(this.options.autoPanPaddingTopLeft||B),Q=$e(this.options.autoPanPaddingBottomRight||B),pe=c.getSize(),nt=0,Ie=0;P.x+w+Q.x>pe.x&&(nt=P.x+w-pe.x+Q.x),P.x-nt-W.x<0&&(nt=P.x-W.x),P.y+v+Q.y>pe.y&&(Ie=P.y+v-pe.y+Q.y),P.y-Ie-W.y<0&&(Ie=P.y-W.y),(nt||Ie)&&c.fire("autopanstart").panBy([nt,Ie],{animate:o&&"moveend"===o.type})}},_getAnchor:function(){return $e(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});pt.mergeOptions({closePopupOnClick:!0}),pt.include({openPopup:function(o,c,p){return this._initOverlay(H,o,c,p).openOn(this),this},closePopup:function(o){return(o=arguments.length?o:this._popup)&&o.close(),this}}),mn.include({bindPopup:function(o,c){return this._popup=this._initOverlay(H,this._popup,o,c),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(o){return this._popup&&this._popup._prepareOpen(o)&&this._popup.openOn(this._map),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(o){return this._popup&&this._popup.setContent(o),this},getPopup:function(){return this._popup},_openPopup:function(o){if(this._popup&&this._map){es(o);var c=o.layer||o.target;if(this._popup._source===c&&!(c instanceof Lt))return void(this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(o.latlng));this._popup._source=c,this.openPopup(o.latlng)}},_movePopup:function(o){this._popup.setLatLng(o.latlng)},_onKeyPress:function(o){13===o.originalEvent.keyCode&&this._openPopup(o)}});var Ne=j.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(o){j.prototype.onAdd.call(this,o),this.setOpacity(this.options.opacity),o.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(o){j.prototype.onRemove.call(this,o),o.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var o=j.prototype.getEvents.call(this);return this.options.permanent||(o.preclick=this.close),o},_initLayout:function(){this._contentNode=this._container=Ye("div","leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide"))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(o){var c,p,v=this._map,w=this._container,b=v.latLngToContainerPoint(v.getCenter()),P=v.layerPointToContainerPoint(o),B=this.options.direction,W=w.offsetWidth,Q=w.offsetHeight,pe=$e(this.options.offset),nt=this._getAnchor();"top"===B?(c=W/2,p=Q):"bottom"===B?(c=W/2,p=0):"center"===B?(c=W/2,p=Q/2):"right"===B?(c=0,p=Q/2):"left"===B?(c=W,p=Q/2):P.xthis.options.maxZoom||pv&&this._retainParent(w,b,P,v))},_retainChildren:function(o,c,p,v){for(var w=2*o;w<2*o+2;w++)for(var b=2*c;b<2*c+2;b++){var P=new Be(w,b);P.z=p+1;var B=this._tileCoordsToKey(P),W=this._tiles[B];W&&W.active?W.retain=!0:(W&&W.loaded&&(W.retain=!0),p+1this.options.maxZoom||void 0!==this.options.minZoom&&w1)return void this._setView(o,p);for(var nt=w.min.y;nt<=w.max.y;nt++)for(var Ie=w.min.x;Ie<=w.max.x;Ie++){var je=new Be(Ie,nt);if(je.z=this._tileZoom,this._isValidTile(je)){var Ms=this._tiles[this._tileCoordsToKey(je)];Ms?Ms.current=!0:P.push(je)}}if(P.sort(function(Ut,ku){return Ut.distanceTo(b)-ku.distanceTo(b)}),0!==P.length){this._loading||(this._loading=!0,this.fire("loading"));var bl=document.createDocumentFragment();for(Ie=0;Iep.max.x)||!c.wrapLat&&(o.yp.max.y))return!1}if(!this.options.bounds)return!0;var v=this._tileCoordsToBounds(o);return Oe(this.options.bounds).overlaps(v)},_keyToBounds:function(o){return this._tileCoordsToBounds(this._keyToTileCoords(o))},_tileCoordsToNwSe:function(o){var c=this._map,p=this.getTileSize(),v=o.scaleBy(p),w=v.add(p);return[c.unproject(v,o.z),c.unproject(w,o.z)]},_tileCoordsToBounds:function(o){var c=this._tileCoordsToNwSe(o),p=new tn(c[0],c[1]);return this.options.noWrap||(p=this._map.wrapLatLngBounds(p)),p},_tileCoordsToKey:function(o){return o.x+":"+o.y+":"+o.z},_keyToTileCoords:function(o){var c=o.split(":"),p=new Be(+c[0],+c[1]);return p.z=+c[2],p},_removeTile:function(o){var c=this._tiles[o];!c||(Zt(c.el),delete this._tiles[o],this.fire("tileunload",{tile:c.el,coords:this._keyToTileCoords(o)}))},_initTile:function(o){Qe(o,"leaflet-tile");var c=this.getTileSize();o.style.width=c.x+"px",o.style.height=c.y+"px",o.onselectstart=Wt,o.onmousemove=Wt,ve.ielt9&&this.options.opacity<1&&zi(o,this.options.opacity)},_addTile:function(o,c){var p=this._getTilePos(o),v=this._tileCoordsToKey(o),w=this.createTile(this._wrapCoords(o),At(this._tileReady,this,o));this._initTile(w),this.createTile.length<2&&En(At(this._tileReady,this,o,null,w)),ft(w,p),this._tiles[v]={el:w,coords:o,current:!0},c.appendChild(w),this.fire("tileloadstart",{tile:w,coords:o})},_tileReady:function(o,c,p){c&&this.fire("tileerror",{error:c,tile:p,coords:o});var v=this._tileCoordsToKey(o);(p=this._tiles[v])&&(p.loaded=+new Date,this._map._fadeAnimated?(zi(p.el,0),Hi(this._fadeFrame),this._fadeFrame=En(this._updateOpacity,this)):(p.active=!0,this._pruneTiles()),c||(Qe(p.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:p.el,coords:o})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),ve.ielt9||!this._map._fadeAnimated?En(this._pruneTiles,this):setTimeout(At(this._pruneTiles,this),250)))},_getTilePos:function(o){return o.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(o){var c=new Be(this._wrapX?ms(o.x,this._wrapX):o.x,this._wrapY?ms(o.y,this._wrapY):o.y);return c.z=o.z,c},_pxBoundsToTileRange:function(o){var c=this.getTileSize();return new en(o.min.unscaleBy(c).floor(),o.max.unscaleBy(c).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var o in this._tiles)if(!this._tiles[o].loaded)return!1;return!0}});var Zn=Go.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(o,c){this._url=o,(c=Vt(this,c)).detectRetina&&ve.retina&&c.maxZoom>0&&(c.tileSize=Math.floor(c.tileSize/2),c.zoomReverse?(c.zoomOffset--,c.minZoom++):(c.zoomOffset++,c.maxZoom--),c.minZoom=Math.max(0,c.minZoom)),"string"==typeof c.subdomains&&(c.subdomains=c.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(o,c){return this._url===o&&void 0===c&&(c=!0),this._url=o,c||this.redraw(),this},createTile:function(o,c){var p=document.createElement("img");return tt(p,"load",At(this._tileOnLoad,this,c,p)),tt(p,"error",At(this._tileOnError,this,c,p)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(p.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),"string"==typeof this.options.referrerPolicy&&(p.referrerPolicy=this.options.referrerPolicy),p.alt="",p.setAttribute("role","presentation"),p.src=this.getTileUrl(o),p},getTileUrl:function(o){var c={r:ve.retina?"@2x":"",s:this._getSubdomain(o),x:o.x,y:o.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var p=this._globalTileRange.max.y-o.y;this.options.tms&&(c.y=p),c["-y"]=p}return ti(this._url,I(c,this.options))},_tileOnLoad:function(o,c){ve.ielt9?setTimeout(At(o,this,null,c),0):o(null,c)},_tileOnError:function(o,c,p){var v=this.options.errorTileUrl;v&&c.getAttribute("src")!==v&&(c.src=v),o(p,c)},_onTileRemove:function(o){o.tile.onload=null},_getZoomForUrl:function(){var o=this._tileZoom;return this.options.zoomReverse&&(o=this.options.maxZoom-o),o+this.options.zoomOffset},_getSubdomain:function(o){var c=Math.abs(o.x+o.y)%this.options.subdomains.length;return this.options.subdomains[c]},_abortLoading:function(){var o,c;for(o in this._tiles)if(this._tiles[o].coords.z!==this._tileZoom&&((c=this._tiles[o].el).onload=Wt,c.onerror=Wt,!c.complete)){c.src=Ei;var p=this._tiles[o].coords;Zt(c),delete this._tiles[o],this.fire("tileabort",{tile:c,coords:p})}},_removeTile:function(o){var c=this._tiles[o];if(c)return c.el.setAttribute("src",Ei),Go.prototype._removeTile.call(this,o)},_tileReady:function(o,c,p){if(this._map&&(!p||p.getAttribute("src")!==Ei))return Go.prototype._tileReady.call(this,o,c,p)}});function vl(o,c){return new Zn(o,c)}var Bh=Zn.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(o,c){this._url=o;var p=I({},this.defaultWmsParams);for(var v in c)v in this.options||(p[v]=c[v]);var w=(c=Vt(this,c)).detectRetina&&ve.retina?2:1,b=this.getTileSize();p.width=b.x*w,p.height=b.y*w,this.wmsParams=p},onAdd:function(o){this._crs=this.options.crs||o.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version),this.wmsParams[this._wmsVersion>=1.3?"crs":"srs"]=this._crs.code,Zn.prototype.onAdd.call(this,o)},getTileUrl:function(o){var c=this._tileCoordsToNwSe(o),p=this._crs,v=ui(p.project(c[0]),p.project(c[1])),w=v.min,b=v.max,P=(this._wmsVersion>=1.3&&this._crs===Kt?[w.y,w.x,b.y,b.x]:[w.x,w.y,b.x,b.y]).join(","),B=Zn.prototype.getTileUrl.call(this,o);return B+Ys(this.wmsParams,B,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+P},setParams:function(o,c){return I(this.wmsParams,o),c||this.redraw(),this}});Zn.WMS=Bh,vl.wms=function Ma(o,c){return new Bh(o,c)};var fr=mn.extend({options:{padding:.1},initialize:function(o){Vt(this,o),qe(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&Qe(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var o={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(o.zoomanim=this._onAnimZoom),o},_onAnimZoom:function(o){this._updateTransform(o.center,o.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(o,c){var p=this._map.getZoomScale(c,this._zoom),v=this._map.getSize().multiplyBy(.5+this.options.padding),w=this._map.project(this._center,c),b=v.multiplyBy(-p).add(w).subtract(this._map._getNewPixelOrigin(o,c));ve.any3d?Ae(this._container,b,p):ft(this._container,b)},_reset:function(){for(var o in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[o]._reset()},_onZoomEnd:function(){for(var o in this._layers)this._layers[o]._project()},_updatePaths:function(){for(var o in this._layers)this._layers[o]._update()},_update:function(){var o=this.options.padding,c=this._map.getSize(),p=this._map.containerPointToLayerPoint(c.multiplyBy(-o)).round();this._bounds=new en(p,p.add(c.multiplyBy(1+2*o)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),_l=fr.extend({options:{tolerance:0},getEvents:function(){var o=fr.prototype.getEvents.call(this);return o.viewprereset=this._onViewPreReset,o},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){fr.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var o=this._container=document.createElement("canvas");tt(o,"mousemove",this._onMouseMove,this),tt(o,"click dblclick mousedown mouseup contextmenu",this._onClick,this),tt(o,"mouseout",this._handleMouseOut,this),o._leaflet_disable_events=!0,this._ctx=o.getContext("2d")},_destroyContainer:function(){Hi(this._redrawRequest),delete this._ctx,Zt(this._container),qt(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var c in this._redrawBounds=null,this._layers)this._layers[c]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){fr.prototype._update.call(this);var o=this._bounds,c=this._container,p=o.getSize(),v=ve.retina?2:1;ft(c,o.min),c.width=v*p.x,c.height=v*p.y,c.style.width=p.x+"px",c.style.height=p.y+"px",ve.retina&&this._ctx.scale(2,2),this._ctx.translate(-o.min.x,-o.min.y),this.fire("update")}},_reset:function(){fr.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(o){this._updateDashArray(o),this._layers[qe(o)]=o;var c=o._order={layer:o,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=c),this._drawLast=c,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(o){this._requestRedraw(o)},_removePath:function(o){var c=o._order,p=c.next,v=c.prev;p?p.prev=v:this._drawLast=v,v?v.next=p:this._drawFirst=p,delete o._order,delete this._layers[qe(o)],this._requestRedraw(o)},_updatePath:function(o){this._extendRedrawBounds(o),o._project(),o._update(),this._requestRedraw(o)},_updateStyle:function(o){this._updateDashArray(o),this._requestRedraw(o)},_updateDashArray:function(o){if("string"==typeof o.options.dashArray){var v,w,c=o.options.dashArray.split(/[, ]+/),p=[];for(w=0;w')}}catch{}return function(o){return document.createElement("<"+o+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),Hh={_initContainer:function(){this._container=Ye("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(fr.prototype._update.call(this),this.fire("update"))},_initPath:function(o){var c=o._container=yl("shape");Qe(c,"leaflet-vml-shape "+(this.options.className||"")),c.coordsize="1 1",o._path=yl("path"),c.appendChild(o._path),this._updateStyle(o),this._layers[qe(o)]=o},_addPath:function(o){var c=o._container;this._container.appendChild(c),o.options.interactive&&o.addInteractiveTarget(c)},_removePath:function(o){var c=o._container;Zt(c),o.removeInteractiveTarget(c),delete this._layers[qe(o)]},_updateStyle:function(o){var c=o._stroke,p=o._fill,v=o.options,w=o._container;w.stroked=!!v.stroke,w.filled=!!v.fill,v.stroke?(c||(c=o._stroke=yl("stroke")),w.appendChild(c),c.weight=v.weight+"px",c.color=v.color,c.opacity=v.opacity,c.dashStyle=v.dashArray?un(v.dashArray)?v.dashArray.join(" "):v.dashArray.replace(/( *, *)/g," "):"",c.endcap=v.lineCap.replace("butt","flat"),c.joinstyle=v.lineJoin):c&&(w.removeChild(c),o._stroke=null),v.fill?(p||(p=o._fill=yl("fill")),w.appendChild(p),p.color=v.fillColor||v.color,p.opacity=v.fillOpacity):p&&(w.removeChild(p),o._fill=null)},_updateCircle:function(o){var c=o._point.round(),p=Math.round(o._radius),v=Math.round(o._radiusY||p);this._setPath(o,o._empty()?"M0 0":"AL "+c.x+","+c.y+" "+p+","+v+" 0,23592600")},_setPath:function(o,c){o._path.v=c},_bringToFront:function(o){ys(o._container)},_bringToBack:function(o){yt(o._container)}},$o=ve.vml?yl:Oc,Zo=fr.extend({_initContainer:function(){this._container=$o("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=$o("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){Zt(this._container),qt(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!this._map._animatingZoom||!this._bounds){fr.prototype._update.call(this);var o=this._bounds,c=o.getSize(),p=this._container;(!this._svgSize||!this._svgSize.equals(c))&&(this._svgSize=c,p.setAttribute("width",c.x),p.setAttribute("height",c.y)),ft(p,o.min),p.setAttribute("viewBox",[o.min.x,o.min.y,c.x,c.y].join(" ")),this.fire("update")}},_initPath:function(o){var c=o._path=$o("path");o.options.className&&Qe(c,o.options.className),o.options.interactive&&Qe(c,"leaflet-interactive"),this._updateStyle(o),this._layers[qe(o)]=o},_addPath:function(o){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(o._path),o.addInteractiveTarget(o._path)},_removePath:function(o){Zt(o._path),o.removeInteractiveTarget(o._path),delete this._layers[qe(o)]},_updatePath:function(o){o._project(),o._update()},_updateStyle:function(o){var c=o._path,p=o.options;!c||(p.stroke?(c.setAttribute("stroke",p.color),c.setAttribute("stroke-opacity",p.opacity),c.setAttribute("stroke-width",p.weight),c.setAttribute("stroke-linecap",p.lineCap),c.setAttribute("stroke-linejoin",p.lineJoin),p.dashArray?c.setAttribute("stroke-dasharray",p.dashArray):c.removeAttribute("stroke-dasharray"),p.dashOffset?c.setAttribute("stroke-dashoffset",p.dashOffset):c.removeAttribute("stroke-dashoffset")):c.setAttribute("stroke","none"),p.fill?(c.setAttribute("fill",p.fillColor||p.color),c.setAttribute("fill-opacity",p.fillOpacity),c.setAttribute("fill-rule",p.fillRule||"evenodd")):c.setAttribute("fill","none"))},_updatePoly:function(o,c){this._setPath(o,lr(o._parts,c))},_updateCircle:function(o){var c=o._point,p=Math.max(Math.round(o._radius),1),w="a"+p+","+(Math.max(Math.round(o._radiusY),1)||p)+" 0 1,0 ",b=o._empty()?"M0 0":"M"+(c.x-p)+","+c.y+w+2*p+",0 "+w+2*-p+",0 ";this._setPath(o,b)},_setPath:function(o,c){o._path.setAttribute("d",c)},_bringToFront:function(o){ys(o._path)},_bringToBack:function(o){yt(o._path)}});function wl(o){return ve.svg||ve.vml?new Zo(o):null}ve.vml&&Zo.include(Hh),pt.include({getRenderer:function(o){var c=o.options.renderer||this._getPaneRenderer(o.options.pane)||this.options.renderer||this._renderer;return c||(c=this._renderer=this._createRenderer()),this.hasLayer(c)||this.addLayer(c),c},_getPaneRenderer:function(o){if("overlayPane"===o||void 0===o)return!1;var c=this._paneRenderers[o];return void 0===c&&(c=this._createRenderer({pane:o}),this._paneRenderers[o]=c),c},_createRenderer:function(o){return this.options.preferCanvas&&Nt(o)||wl(o)}});var Uh=Wn.extend({initialize:function(o,c){Wn.prototype.initialize.call(this,this._boundsToLatLngs(o),c)},setBounds:function(o){return this.setLatLngs(this._boundsToLatLngs(o))},_boundsToLatLngs:function(o){return[(o=Oe(o)).getSouthWest(),o.getNorthWest(),o.getNorthEast(),o.getSouthEast()]}});Zo.create=$o,Zo.pointsToPath=lr,Pi.geometryToLayer=Or,Pi.coordsToLatLng=gt,Pi.coordsToLatLngs=oo,Pi.latLngToCoords=xu,Pi.latLngsToCoords=ao,Pi.getFeature=bs,Pi.asFeature=ki,pt.mergeOptions({boxZoom:!0});var Ts=cr.extend({initialize:function(o){this._map=o,this._container=o._container,this._pane=o._panes.overlayPane,this._resetStateTimeout=0,o.on("unload",this._destroy,this)},addHooks:function(){tt(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){qt(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){Zt(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(o){if(!o.shiftKey||1!==o.which&&1!==o.button)return!1;this._clearDeferredResetState(),this._resetState(),Uo(),ll(),this._startPoint=this._map.mouseEventToContainerPoint(o),tt(document,{contextmenu:es,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(o){this._moved||(this._moved=!0,this._box=Ye("div","leaflet-zoom-box",this._container),Qe(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(o);var c=new en(this._point,this._startPoint),p=c.getSize();ft(this._box,c.min),this._box.style.width=p.x+"px",this._box.style.height=p.y+"px"},_finish:function(){this._moved&&(Zt(this._box),Le(this._container,"leaflet-crosshair")),al(),Cs(),qt(document,{contextmenu:es,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(o){if((1===o.which||1===o.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(At(this._resetState,this),0);var c=new tn(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(c).fire("boxzoomend",{boxZoomBounds:c})}},_onKeyDown:function(o){27===o.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});pt.addInitHook("addHandler","boxZoom",Ts),pt.mergeOptions({doubleClickZoom:!0});var pr=cr.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(o){var c=this._map,p=c.getZoom(),v=c.options.zoomDelta,w=o.originalEvent.shiftKey?p-v:p+v;"center"===c.options.doubleClickZoom?c.setZoom(w):c.setZoomAround(o.containerPoint,w)}});pt.addInitHook("addHandler","doubleClickZoom",pr),pt.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var Cl=cr.extend({addHooks:function(){if(!this._draggable){var o=this._map;this._draggable=new Ss(o._mapPane,o._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),o.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),o.on("zoomend",this._onZoomEnd,this),o.whenReady(this._onZoomEnd,this))}Qe(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){Le(this._map._container,"leaflet-grab"),Le(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var o=this._map;if(o._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var c=Oe(this._map.options.maxBounds);this._offsetLimit=ui(this._map.latLngToContainerPoint(c.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(c.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;o.fire("movestart").fire("dragstart"),o.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(o){if(this._map.options.inertia){var c=this._lastTime=+new Date,p=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(p),this._times.push(c),this._prunePositions(c)}this._map.fire("move",o).fire("drag",o)},_prunePositions:function(o){for(;this._positions.length>1&&o-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var o=this._map.getSize().divideBy(2),c=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=c.subtract(o).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(o,c){return o-(o-c)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var o=this._draggable._newPos.subtract(this._draggable._startPos),c=this._offsetLimit;o.xc.max.x&&(o.x=this._viscousLimit(o.x,c.max.x)),o.y>c.max.y&&(o.y=this._viscousLimit(o.y,c.max.y)),this._draggable._newPos=this._draggable._startPos.add(o)}},_onPreDragWrap:function(){var o=this._worldWidth,c=Math.round(o/2),p=this._initialWorldOffset,v=this._draggable._newPos.x,w=(v-c+p)%o+c-p,b=(v+c+p)%o-c-p,P=Math.abs(w+p)0?b:-b))-c;this._delta=0,this._startTime=null,P&&("center"===o.options.scrollWheelZoom?o.setZoom(c+P):o.setZoomAround(this._lastMousePos,c+P))}});pt.addInitHook("addHandler","scrollWheelZoom",Dl);pt.mergeOptions({tapHold:ve.touchNative&&ve.safari&&ve.mobile,tapTolerance:15});var Ia=cr.extend({addHooks:function(){tt(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){qt(this._map._container,"touchstart",this._onDown,this)},_onDown:function(o){if(clearTimeout(this._holdTimeout),1===o.touches.length){var c=o.touches[0];this._startPos=this._newPos=new Be(c.clientX,c.clientY),this._holdTimeout=setTimeout(At(function(){this._cancel(),this._isTapValid()&&(tt(document,"touchend",Je),tt(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",c))},this),600),tt(document,"touchend touchcancel contextmenu",this._cancel,this),tt(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function o(){qt(document,"touchend",Je),qt(document,"touchend touchcancel",o)},_cancel:function(){clearTimeout(this._holdTimeout),qt(document,"touchend touchcancel contextmenu",this._cancel,this),qt(document,"touchmove",this._onMove,this)},_onMove:function(o){var c=o.touches[0];this._newPos=new Be(c.clientX,c.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(o,c){var p=new MouseEvent(o,{bubbles:!0,cancelable:!0,view:window,screenX:c.screenX,screenY:c.screenY,clientX:c.clientX,clientY:c.clientY});p._simulated=!0,c.target.dispatchEvent(p)}});pt.addInitHook("addHandler","tapHold",Ia),pt.mergeOptions({touchZoom:ve.touch,bounceAtZoomLimits:!0});var Sl=cr.extend({addHooks:function(){Qe(this._map._container,"leaflet-touch-zoom"),tt(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){Le(this._map._container,"leaflet-touch-zoom"),qt(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(o){var c=this._map;if(o.touches&&2===o.touches.length&&!c._animatingZoom&&!this._zooming){var p=c.mouseEventToContainerPoint(o.touches[0]),v=c.mouseEventToContainerPoint(o.touches[1]);this._centerPoint=c.getSize()._divideBy(2),this._startLatLng=c.containerPointToLatLng(this._centerPoint),"center"!==c.options.touchZoom&&(this._pinchStartLatLng=c.containerPointToLatLng(p.add(v)._divideBy(2))),this._startDist=p.distanceTo(v),this._startZoom=c.getZoom(),this._moved=!1,this._zooming=!0,c._stop(),tt(document,"touchmove",this._onTouchMove,this),tt(document,"touchend touchcancel",this._onTouchEnd,this),Je(o)}},_onTouchMove:function(o){if(o.touches&&2===o.touches.length&&this._zooming){var c=this._map,p=c.mouseEventToContainerPoint(o.touches[0]),v=c.mouseEventToContainerPoint(o.touches[1]),w=p.distanceTo(v)/this._startDist;if(this._zoom=c.getScaleZoom(w,this._startZoom),!c.options.bounceAtZoomLimits&&(this._zoomc.getMaxZoom()&&w>1)&&(this._zoom=c._limitZoom(this._zoom)),"center"===c.options.touchZoom){if(this._center=this._startLatLng,1===w)return}else{var b=p._add(v)._divideBy(2)._subtract(this._centerPoint);if(1===w&&0===b.x&&0===b.y)return;this._center=c.unproject(c.project(this._pinchStartLatLng,this._zoom).subtract(b),this._zoom)}this._moved||(c._moveStart(!0,!1),this._moved=!0),Hi(this._animRequest);var P=At(c._move,c,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=En(P,this,!0),Je(o)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,Hi(this._animRequest),qt(document,"touchmove",this._onTouchMove,this),qt(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});pt.addInitHook("addHandler","touchZoom",Sl),pt.BoxZoom=Ts,pt.DoubleClickZoom=pr,pt.Drag=Cl,pt.Keyboard=_n,pt.ScrollWheelZoom=Dl,pt.TapHold=Ia,pt.TouchZoom=Sl,ne.Bounds=en,ne.Browser=ve,ne.CRS=bt,ne.Canvas=_l,ne.Circle=Ke,ne.CircleMarker=ts,ne.Class=Kr,ne.Control=Te,ne.DivIcon=In,ne.DivOverlay=j,ne.DomEvent=hl,ne.DomUtil=Xc,ne.Draggable=Ss,ne.Evented=Za,ne.FeatureGroup=Bn,ne.GeoJSON=Pi,ne.GridLayer=Go,ne.Handler=cr,ne.Icon=Ue,ne.ImageOverlay=ml,ne.LatLng=Bt,ne.LatLngBounds=tn,ne.Layer=mn,ne.LayerGroup=ci,ne.LineUtil=nd,ne.Map=pt,ne.Marker=rn,ne.Mixin=td,ne.Path=Lt,ne.Point=Be,ne.PolyUtil=id,ne.Polygon=Wn,ne.Polyline=di,ne.Popup=H,ne.PosAnimation=fl,ne.Projection=so,ne.Rectangle=Uh,ne.Renderer=fr,ne.SVG=Zo,ne.SVGOverlay=Es,ne.TileLayer=Zn,ne.Tooltip=Ne,ne.Transformation=Xr,ne.Util=hu,ne.VideoOverlay=qi,ne.bind=At,ne.bounds=ui,ne.canvas=Nt,ne.circle=function gl(o,c,p){return new Ke(o,c,p)},ne.circleMarker=function Wo(o,c){return new ts(o,c)},ne.control=to,ne.divIcon=function $t(o){return new In(o)},ne.extend=I,ne.featureGroup=function(o,c){return new Bn(o,c)},ne.geoJSON=ns,ne.geoJson=$n,ne.gridLayer=function Cg(o){return new Go(o)},ne.icon=function Jt(o){return new Ue(o)},ne.imageOverlay=function(o,c,p){return new ml(o,c,p)},ne.latLng=nn,ne.latLngBounds=Oe,ne.layerGroup=function(o,c){return new ci(o,c)},ne.map=function Fh(o,c){return new pt(o,c)},ne.marker=function hr(o,c){return new rn(o,c)},ne.point=$e,ne.polygon=function hi(o,c){return new Wn(o,c)},ne.polyline=function Au(o,c){return new di(o,c)},ne.popup=function(o,c){return new H(o,c)},ne.rectangle=function Ru(o,c){return new Uh(o,c)},ne.setOptions=Vt,ne.stamp=qe,ne.svg=wl,ne.svgOverlay=function N(o,c,p){return new Es(o,c,p)},ne.tileLayer=vl,ne.tooltip=function(o,c){return new Ne(o,c)},ne.transformation=qa,ne.version="1.8.0",ne.videoOverlay=function Pu(o,c,p){return new qi(o,c,p)};var qo=window.L;ne.noConflict=function(){return window.L=qo,this},window.L=ne}(Lo)},489:function(gs,Lo,ne){var at;gs=ne.nmd(gs),function(){var I,qe="Expected a function",ms="__lodash_hash_undefined__",zn="__lodash_placeholder__",_t=1/0,$e=9007199254740991,tn=4294967295,nn=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],bt="[object Arguments]",Mt="[object Array]",lt="[object Boolean]",Xr="[object Date]",Qr="[object Error]",Ya="[object Function]",Oc="[object GeneratorFunction]",lr="[object Map]",Fo="[object Number]",vs="[object Object]",Ka="[object Promise]",Xs="[object RegExp]",Ui="[object Set]",Xa="[object String]",pu="[object Symbol]",ji="[object WeakMap]",Qa="[object ArrayBuffer]",Qs="[object DataView]",gu="[object Float32Array]",mu="[object Float64Array]",vu="[object Int8Array]",Ja="[object Int16Array]",_u="[object Int32Array]",Vc="[object Uint8Array]",Vo="[object Uint8ClampedArray]",Da="[object Uint16Array]",el="[object Uint32Array]",yu=/\b__p \+= '';/g,wu=/\b(__p \+=) '' \+/g,Cu=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Bc=/&(?:amp|lt|gt|quot|#39);/g,Du=/[&<>"']/g,Hc=RegExp(Bc.source),Uc=RegExp(Du.source),jc=/<%-([\s\S]+?)%>/g,Ti=/<%([\s\S]+?)%>/g,tl=/<%=([\s\S]+?)%>/g,Ah=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xh=/^\w*$/,xr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ve=/[\\^$.*+?()[\]{}|]/g,zc=RegExp(ve.source),nl=/^\s+/,Pr=/\s/,Wc=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Rr=/\{\n\/\* \[wrapped with (.+)\] \*/,Su=/,? & /,Jr=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Ph=/[()=,{}\[\]\/\s]/,Rh=/\\(\\)?/g,Gc=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,il=/\w*$/,$c=/^[-+]0x[0-9a-f]+$/i,Bo=/^0b[01]+$/i,kh=/^\[object .+?Constructor\]$/,Sa=/^0o[0-7]+$/i,Zc=/^(?:0|[1-9]\d*)$/,Oh=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,rl=/($^)/,Lh=/['\n\r\u2028\u2029\\]/g,sl="\\ud800-\\udfff",_s="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Nn="\\u2700-\\u27bf",Ye="a-z\\xdf-\\xf6\\xf8-\\xff",Ho="A-Z\\xc0-\\xd6\\xd8-\\xde",Qe="\\ufe0e\\ufe0f",Le="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ea="["+sl+"]",zi="["+Le+"]",ue="["+_s+"]",Js="\\d+",Ae="["+Nn+"]",ft="["+Ye+"]",ws="[^"+sl+Le+Js+Nn+Ye+Ho+"]",Uo="\\ud83c[\\udffb-\\udfff]",eo="[^"+sl+"]",Mn="(?:\\ud83c[\\udde6-\\uddff]){2}",ll="[\\ud800-\\udbff][\\udc00-\\udfff]",Cs="["+Ho+"]",Wi="(?:"+ft+"|"+ws+")",Yc="(?:"+Cs+"|"+ws+")",cl="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",Kc="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",bu="(?:"+ue+"|"+Uo+")?",Xc="["+Qe+"]?",ni=Xc+bu+"(?:\\u200d(?:"+[eo,Mn,ll].join("|")+")"+Xc+bu+")*",zt="(?:"+[Ae,Mn,ll].join("|")+")"+ni,Qc="(?:"+[eo+ue+"?",ue,Mn,ll,Ea].join("|")+")",Jc=RegExp("['\u2019]","g"),jo=RegExp(ue,"g"),oe=RegExp(Uo+"(?="+Uo+")|"+Qc+ni,"g"),dl=RegExp([Cs+"?"+ft+"+"+cl+"(?="+[zi,Cs,"$"].join("|")+")",Yc+"+"+Kc+"(?="+[zi,Cs+Wi,"$"].join("|")+")",Cs+"?"+Wi+"+"+cl,Cs+"+"+Kc,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Js,zt].join("|"),"g"),Je=RegExp("[\\u200d"+sl+_s+Qe+"]"),es=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Eu=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Nh=-1,Gt={};Gt[gu]=Gt[mu]=Gt[vu]=Gt[Ja]=Gt[_u]=Gt[Vc]=Gt[Vo]=Gt[Da]=Gt[el]=!0,Gt[bt]=Gt[Mt]=Gt[Qa]=Gt[lt]=Gt[Qs]=Gt[Xr]=Gt[Qr]=Gt[Ya]=Gt[lr]=Gt[Fo]=Gt[vs]=Gt[Xs]=Gt[Ui]=Gt[Xa]=Gt[ji]=!1;var kt={};kt[bt]=kt[Mt]=kt[Qa]=kt[Qs]=kt[lt]=kt[Xr]=kt[gu]=kt[mu]=kt[vu]=kt[Ja]=kt[_u]=kt[lr]=kt[Fo]=kt[vs]=kt[Xs]=kt[Ui]=kt[Xa]=kt[pu]=kt[Vc]=kt[Vo]=kt[Da]=kt[el]=!0,kt[Qr]=kt[Ya]=kt[ji]=!1;var Fh={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Te=parseFloat,to=parseInt,Tu="object"==typeof global&&global&&global.Object===Object&&global,Ds="object"==typeof self&&self&&self.Object===Object&&self,gn=Tu||Ds||Function("return this")(),Vh=Lo&&!Lo.nodeType&&Lo,Mi=Vh&&gs&&!gs.nodeType&&gs,Gi=Mi&&Mi.exports===Vh,ed=Gi&&Tu.process,Ii=function(){try{return Mi&&Mi.require&&Mi.require("util").types||ed&&ed.binding&&ed.binding("util")}catch{}}(),$i=Ii&&Ii.isArrayBuffer,cr=Ii&&Ii.isDate,td=Ii&&Ii.isMap,Mu=Ii&&Ii.isRegExp,Ss=Ii&&Ii.isSet,Pt=Ii&&Ii.isTypedArray;function Ai(N,j,H){switch(H.length){case 0:return N.call(j);case 1:return N.call(j,H[0]);case 2:return N.call(j,H[0],H[1]);case 3:return N.call(j,H[0],H[1],H[2])}return N.apply(j,H)}function wg(N,j,H,he){for(var Ne=-1,It=null==N?0:N.length;++Ne-1}function io(N,j,H){for(var he=-1,Ne=null==N?0:N.length;++he-1;);return H}function ts(N,j){for(var H=N.length;H--&&so(j,N[H],0)>-1;);return H}function Wo(N,j){for(var H=N.length,he=0;H--;)N[H]===j&&++he;return he}var Ke=ci({\u00c0:"A",\u00c1:"A",\u00c2:"A",\u00c3:"A",\u00c4:"A",\u00c5:"A",\u00e0:"a",\u00e1:"a",\u00e2:"a",\u00e3:"a",\u00e4:"a",\u00e5:"a",\u00c7:"C",\u00e7:"c",\u00d0:"D",\u00f0:"d",\u00c8:"E",\u00c9:"E",\u00ca:"E",\u00cb:"E",\u00e8:"e",\u00e9:"e",\u00ea:"e",\u00eb:"e",\u00cc:"I",\u00cd:"I",\u00ce:"I",\u00cf:"I",\u00ec:"i",\u00ed:"i",\u00ee:"i",\u00ef:"i",\u00d1:"N",\u00f1:"n",\u00d2:"O",\u00d3:"O",\u00d4:"O",\u00d5:"O",\u00d6:"O",\u00d8:"O",\u00f2:"o",\u00f3:"o",\u00f4:"o",\u00f5:"o",\u00f6:"o",\u00f8:"o",\u00d9:"U",\u00da:"U",\u00db:"U",\u00dc:"U",\u00f9:"u",\u00fa:"u",\u00fb:"u",\u00fc:"u",\u00dd:"Y",\u00fd:"y",\u00ff:"y",\u00c6:"Ae",\u00e6:"ae",\u00de:"Th",\u00fe:"th",\u00df:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010a:"C",\u010c:"C",\u0107:"c",\u0109:"c",\u010b:"c",\u010d:"c",\u010e:"D",\u0110:"D",\u010f:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011a:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011b:"e",\u011c:"G",\u011e:"G",\u0120:"G",\u0122:"G",\u011d:"g",\u011f:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012a:"I",\u012c:"I",\u012e:"I",\u0130:"I",\u0129:"i",\u012b:"i",\u012d:"i",\u012f:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013b:"L",\u013d:"L",\u013f:"L",\u0141:"L",\u013a:"l",\u013c:"l",\u013e:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014a:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014b:"n",\u014c:"O",\u014e:"O",\u0150:"O",\u014d:"o",\u014f:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015a:"S",\u015c:"S",\u015e:"S",\u0160:"S",\u015b:"s",\u015d:"s",\u015f:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016a:"U",\u016c:"U",\u016e:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016b:"u",\u016d:"u",\u016f:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017b:"Z",\u017d:"Z",\u017a:"z",\u017c:"z",\u017e:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017f:"s"}),gl=ci({"&":"&","<":"<",">":">",'"':""","'":"'"});function di(N){return"\\"+Fh[N]}function Wn(N){return Je.test(N)}function Or(N){var j=-1,H=Array(N.size);return N.forEach(function(he,Ne){H[++j]=[Ne,he]}),H}function Ri(N,j){return function(H){return N(j(H))}}function gt(N,j){for(var H=-1,he=N.length,Ne=0,It=[];++H",""":'"',"'":"'"}),Es=function N(j){var l,H=(j=null==j?gn:Es.defaults(gn.Object(),j,Es.pick(gn,Eu))).Array,he=j.Date,Ne=j.Error,It=j.Function,In=j.Math,$t=j.Object,Go=j.RegExp,Cg=j.String,Zn=j.TypeError,vl=H.prototype,Ma=$t.prototype,fr=j["__core-js_shared__"],_l=It.prototype.toString,Nt=Ma.hasOwnProperty,yl=0,Hh=(l=/[^.]+$/.exec(fr&&fr.keys&&fr.keys.IE_PROTO||""))?"Symbol(src)_1."+l:"",$o=Ma.toString,Zo=_l.call($t),wl=gn._,Uh=Go("^"+_l.call(Nt).replace(ve,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Ru=Gi?j.Buffer:I,Ts=j.Symbol,pr=j.Uint8Array,Cl=Ru?Ru.allocUnsafe:I,_n=Ri($t.getPrototypeOf,$t),Dl=$t.create,rd=Ma.propertyIsEnumerable,Ia=vl.splice,Sl=Ts?Ts.isConcatSpreadable:I,qo=Ts?Ts.iterator:I,o=Ts?Ts.toStringTag:I,c=function(){try{var l=ia($t,"defineProperty");return l({},"",{}),l}catch{}}(),p=j.clearTimeout!==gn.clearTimeout&&j.clearTimeout,v=he&&he.now!==gn.Date.now&&he.now,w=j.setTimeout!==gn.setTimeout&&j.setTimeout,b=In.ceil,P=In.floor,B=$t.getOwnPropertySymbols,W=Ru?Ru.isBuffer:I,Q=j.isFinite,pe=vl.join,nt=Ri($t.keys,$t),Ie=In.max,je=In.min,Ms=he.now,bl=j.parseInt,Ut=In.random,ku=vl.reverse,sd=ia(j,"DataView"),Is=ia(j,"Map"),fi=ia(j,"Promise"),lo=ia(j,"Set"),uo=ia(j,"WeakMap"),gr=ia($t,"create"),mt=uo&&new uo,Nr={},Ou=sa(sd),jh=sa(Is),As=sa(fi),El=sa(lo),Tl=sa(uo),Pe=Ts?Ts.prototype:I,od=Pe?Pe.valueOf:I,Dg=Pe?Pe.toString:I;function E(l){if(hn(l)&&!et(l)&&!(l instanceof wt)){if(l instanceof Fr)return l;if(Nt.call(l,"__wrapped__"))return Ul(l)}return new Fr(l)}var Ml=function(){function l(){}return function(d){if(!J(d))return{};if(Dl)return Dl(d);l.prototype=d;var g=new l;return l.prototype=I,g}}();function Lu(){}function Fr(l,d){this.__wrapped__=l,this.__actions__=[],this.__chain__=!!d,this.__index__=0,this.__values__=I}function wt(l){this.__wrapped__=l,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=tn,this.__views__=[]}function sn(l){var d=-1,g=null==l?0:l.length;for(this.clear();++d=d?l:d)),l}function Br(l,d,g,_,D,M){var A,k=1&d,V=2&d,$=4&d;if(g&&(A=D?g(l,_,D,M):g(l)),A!==I)return A;if(!J(l))return l;var Z=et(l);if(Z){if(A=function Hl(l){var d=l.length,g=new l.constructor(d);return d&&"string"==typeof l[0]&&Nt.call(l,"index")&&(g.index=l.index,g.input=l.input),g}(l),!k)return Xi(l,A)}else{var X=gi(l),ae=X==Ya||X==Oc;if(la(l))return Ug(l,k);if(X==vs||X==bt||ae&&!D){if(A=V||ae?{}:Qg(l),!k)return V?function Sy(l,d){return Ns(l,Xg(l),d)}(l,function hy(l,d){return l&&Ns(d,Ji(d),l)}(A,l)):function Dy(l,d){return Ns(l,Kg(l),d)}(l,dn(A,l))}else{if(!kt[X])return D?l:{};A=function Ay(l,d,g){var _=l.constructor;switch(d){case Qa:return ff(l);case lt:case Xr:return new _(+l);case Qs:return function CS(l,d){var g=d?ff(l.buffer):l.buffer;return new l.constructor(g,l.byteOffset,l.byteLength)}(l,g);case gu:case mu:case vu:case Ja:case _u:case Vc:case Vo:case Da:case el:return Ki(l,g);case lr:return new _;case Fo:case Xa:return new _(l);case Xs:return function DS(l){var d=new l.constructor(l.source,il.exec(l));return d.lastIndex=l.lastIndex,d}(l);case Ui:return new _;case pu:return function jg(l){return od?$t(od.call(l)):{}}(l)}}(l,X,k)}}M||(M=new Vr);var ye=M.get(l);if(ye)return ye;M.set(l,A),Zf(l)?l.forEach(function(ke){A.add(Br(ke,d,g,ke,l,M))}):Gf(l)&&l.forEach(function(ke,vt){A.set(vt,Br(ke,d,g,vt,l,M))});var ut=Z?I:($?V?Id:Bl:V?Ji:Un)(l);return Fn(ut||l,function(ke,vt){ut&&(ke=l[vt=ke]),Fu(A,vt,Br(ke,d,g,vt,l,M))}),A}function Vu(l,d,g){var _=g.length;if(null==l)return!_;for(l=$t(l);_--;){var D=g[_],A=l[D];if(A===I&&!(D in l)||!(0,d[D])(A))return!1}return!0}function Bu(l,d,g){if("function"!=typeof l)throw new Zn(qe);return Qu(function(){l.apply(I,g)},d)}function Xo(l,d,g,_){var D=-1,M=no,A=!0,k=l.length,V=[],$=d.length;if(!k)return V;g&&(d=ot(d,vn(g))),_?(M=io,A=!1):d.length>=200&&(M=hr,A=!1,d=new Aa(d));e:for(;++D-1},Yo.prototype.set=function co(l,d){var g=this.__data__,_=qn(g,l);return _<0?(++this.size,g.push([l,d])):g[_][1]=d,this},Ps.prototype.clear=function Il(){this.size=0,this.__data__={hash:new sn,map:new(Is||Yo),string:new sn}},Ps.prototype.delete=function ho(l){var d=xd(this,l).delete(l);return this.size-=d?1:0,d},Ps.prototype.get=function uy(l){return xd(this,l).get(l)},Ps.prototype.has=function bg(l){return xd(this,l).has(l)},Ps.prototype.set=function cy(l,d){var g=xd(this,l),_=g.size;return g.set(l,d),this.size+=g.size==_?0:1,this},Aa.prototype.add=Aa.prototype.push=function Gh(l){return this.__data__.set(l,ms),this},Aa.prototype.has=function $h(l){return this.__data__.has(l)},Vr.prototype.clear=function Zh(){this.__data__=new Yo,this.size=0},Vr.prototype.delete=function dy(l){var d=this.__data__,g=d.delete(l);return this.size=d.size,g},Vr.prototype.get=function Eg(l){return this.__data__.get(l)},Vr.prototype.has=function ud(l){return this.__data__.has(l)},Vr.prototype.set=function Tg(l,d){var g=this.__data__;if(g instanceof Yo){var _=g.__data__;if(!Is||_.length<199)return _.push([l,d]),this.size=++g.size,this;g=this.__data__=new Ps(_)}return g.set(l,d),this.size=g.size,this};var Rs=Sd(ks),Qh=Sd(Jh,!0);function py(l,d){var g=!0;return Rs(l,function(_,D,M){return g=!!d(_,D,M)}),g}function is(l,d,g){for(var _=-1,D=l.length;++_0&&g(k)?d>1?ii(k,d-1,g,_,D):Zi(D,k):_||(D[D.length]=k)}return D}var Pa=Gu(),dd=Gu(!0);function ks(l,d){return l&&Pa(l,d,Un)}function Jh(l,d){return l&&dd(l,d,Un)}function ef(l,d){return dr(d,function(g){return vo(l[g])})}function Al(l,d){for(var g=0,_=(d=po(d,l)).length;null!=l&&g<_;)l=l[mr(d[g++])];return g&&g==_?l:I}function Uu(l,d,g){var _=d(l);return et(l)?_:Zi(_,g(l))}function pi(l){return null==l?l===I?"[object Undefined]":"[object Null]":o&&o in $t(l)?function My(l){var d=Nt.call(l,o),g=l[o];try{l[o]=I;var _=!0}catch{}var D=$o.call(l);return _&&(d?l[o]=g:delete l[o]),D}(l):function ES(l){return $o.call(l)}(l)}function ju(l,d){return l>d}function hd(l,d){return null!=l&&Nt.call(l,d)}function Ag(l,d){return null!=l&&d in $t(l)}function Qo(l,d,g){for(var _=g?io:no,D=l[0].length,M=l.length,A=M,k=H(M),V=1/0,$=[];A--;){var Z=l[A];A&&d&&(Z=ot(Z,vn(d))),V=je(Z.length,V),k[A]=!g&&(d||D>=120&&Z.length>=120)?new Aa(A&&Z):I}Z=l[0];var X=-1,ae=k[0];e:for(;++X=k?V:V*("desc"==g[_]?-1:1)}return l.index-d.index}(M,A,g)})}function uf(l,d,g){for(var _=-1,D=d.length,M={};++_-1;)k!==l&&Ia.call(k,V,1),Ia.call(l,V,1);return l}function yd(l,d){for(var g=l?d.length:0,_=g-1;g--;){var D=d[g];if(g==_||D!==M){var M=D;as(D)?Ia.call(l,D,1):Vg(l,D)}}return l}function Wu(l,d){return l+P(Ut()*(d-l+1))}function Jo(l,d){var g="";if(!l||d<1||d>$e)return g;do{d%2&&(g+=l),(d=P(d/2))&&(l+=l)}while(d);return g}function Xe(l,d){return _f(ky(l,d,ri),l+"")}function Ng(l){return Yh(Co(l))}function cf(l,d){var g=Co(l);return yf(g,xa(d,0,g.length))}function Ls(l,d,g,_){if(!J(l))return l;for(var D=-1,M=(d=po(d,l)).length,A=M-1,k=l;null!=k&&++DD?0:D+d),(g=g>D?D:g)<0&&(g+=D),D=d>g?0:g-d>>>0,d>>>=0;for(var M=H(D);++_>>1,A=l[M];null!==A&&!_i(A)&&(g?A<=d:A=200){var $=d?null:Ey(l);if($)return oo($);A=!1,D=hr,V=new Aa}else V=d?[]:k;e:for(;++_=_?l:rs(l,d,g)}var hf=p||function(l){return gn.clearTimeout(l)};function Ug(l,d){if(d)return l.slice();var g=l.length,_=Cl?Cl(g):new l.constructor(g);return l.copy(_),_}function ff(l){var d=new l.constructor(l.byteLength);return new pr(d).set(new pr(l)),d}function Ki(l,d){var g=d?ff(l.buffer):l.buffer;return new l.constructor(g,l.byteOffset,l.length)}function Cd(l,d){if(l!==d){var g=l!==I,_=null===l,D=l==l,M=_i(l),A=d!==I,k=null===d,V=d==d,$=_i(d);if(!k&&!$&&!M&&l>d||M&&A&&V&&!k&&!$||_&&A&&V||!g&&V||!D)return 1;if(!_&&!M&&!$&&l1?g[D-1]:I,A=D>2?g[2]:I;for(M=l.length>3&&"function"==typeof M?(D--,M):I,A&&mi(g[0],g[1],A)&&(M=D<3?I:M,D=1),d=$t(d);++_-1?D[M?d[A]:A]:I}}function Wg(l){return ss(function(d){var g=d.length,_=g,D=Fr.prototype.thru;for(l&&d.reverse();_--;){var M=d[_];if("function"!=typeof M)throw new Zn(qe);if(D&&!A&&"wrapper"==Ad(M))var A=new Fr([],!0)}for(_=A?_:g;++_1&&Ct.reverse(),Z&&Vk))return!1;var $=M.get(l),Z=M.get(d);if($&&Z)return $==d&&Z==l;var X=-1,ae=!0,ye=2&g?new Aa:I;for(M.set(l,d),M.set(d,l);++X-1&&l%1==0&&l1?"& ":"")+d[_],d=d.join(g>2?", ":" "),l.replace(Wc,"{\n/* [wrapped with "+d+"] */\n")}(_,function Fs(l,d){return Fn(nn,function(g){var _="_."+g[0];d&g[1]&&!no(l,_)&&l.push(_)}),l.sort()}(function Pd(l){var d=l.match(Rr);return d?d[1].split(Su):[]}(_),g)))}function rm(l){var d=0,g=0;return function(){var _=Ms(),D=16-(_-g);if(g=_,D>0){if(++d>=800)return arguments[0]}else d=0;return l.apply(I,arguments)}}function yf(l,d){var g=-1,_=l.length,D=_-1;for(d=d===I?_:d;++g1?l[d-1]:I;return g="function"==typeof g?(l.pop(),g):I,ym(l,g)});function Cm(l){var d=E(l);return d.__chain__=!0,d}function Fd(l,d){return d(l)}var sw=ss(function(l){var d=l.length,g=d?l[0]:0,_=this.__wrapped__,D=function(M){return Xh(M,l)};return!(d>1||this.__actions__.length)&&_ instanceof wt&&as(g)?((_=_.slice(g,+g+(d?1:0))).__actions__.push({func:Fd,args:[D],thisArg:I}),new Fr(_,this.__chain__).thru(function(M){return d&&!M.length&&M.push(I),M})):this.thru(D)}),Dm=Dd(function(l,d,g){Nt.call(l,g)?++l[g]:fo(l,g,1)}),xf=zg(Sf),Pf=zg(um);function Rf(l,d){return(et(l)?Fn:Rs)(l,Me(d,3))}function kf(l,d){return(et(l)?Ot:Qh)(l,Me(d,3))}var Of=Dd(function(l,d,g){Nt.call(l,g)?l[g].push(d):fo(l,g,[d])}),bm=Xe(function(l,d,g){var _=-1,D="function"==typeof d,M=Qi(l)?H(l.length):[];return Rs(l,function(A){M[++_]=D?Ai(d,A,g):Os(A,d,g)}),M}),FS=Dd(function(l,d,g){fo(l,g,d)});function mo(l,d){return(et(l)?ot:af)(l,Me(d,3))}var Em=Dd(function(l,d,g){l[g?0:1].push(d)},function(){return[[],[]]}),Tm=Xe(function(l,d){if(null==l)return[];var g=d.length;return g>1&&mi(l,d[0],d[1])?d=[]:g>2&&mi(d[0],d[1],d[2])&&(d=[d[0]]),Og(l,ii(d,1),[])}),zl=v||function(){return gn.Date.now()};function Vd(l,d,g){return d=g?I:d,go(l,128,I,I,I,I,d=l&&null==d?l.length:d)}function Im(l,d){var g;if("function"!=typeof d)throw new Zn(qe);return l=st(l),function(){return--l>0&&(g=d.apply(this,arguments)),l<=1&&(d=I),g}}var Vf=Xe(function(l,d,g){var _=1;if(g.length){var D=gt(g,os(Vf));_|=32}return go(l,_,d,g,D)}),Bf=Xe(function(l,d,g){var _=3;if(g.length){var D=gt(g,os(Bf));_|=32}return go(d,_,l,g,D)});function Uf(l,d,g){var _,D,M,A,k,V,$=0,Z=!1,X=!1,ae=!0;if("function"!=typeof l)throw new Zn(qe);function ye(xn){var Gr=_,Hs=D;return _=D=I,$=xn,A=l.apply(Hs,Gr)}function Re(xn){return $=xn,k=Qu(vt,d),Z?ye(xn):A}function ke(xn){var Gr=xn-V;return V===I||Gr>=d||Gr<0||X&&xn-$>=M}function vt(){var xn=zl();if(ke(xn))return Ct(xn);k=Qu(vt,function ut(xn){var oC=d-(xn-V);return X?je(oC,M-(xn-$)):oC}(xn))}function Ct(xn){return k=I,ae&&_?ye(xn):(_=D=I,A)}function Ni(){var xn=zl(),Gr=ke(xn);if(_=arguments,D=this,V=xn,Gr){if(k===I)return Re(V);if(X)return hf(k),k=Qu(vt,d),ye(V)}return k===I&&(k=Qu(vt,d)),A}return d=cs(d)||0,J(g)&&(Z=!!g.leading,M=(X="maxWait"in g)?Ie(cs(g.maxWait)||0,d):M,ae="trailing"in g?!!g.trailing:ae),Ni.cancel=function Wr(){k!==I&&hf(k),$=0,_=V=D=k=I},Ni.flush=function er(){return k===I?A:Ct(zl())},Ni}var Am=Xe(function(l,d){return Bu(l,1,d)}),vw=Xe(function(l,d,g){return Bu(l,cs(d)||0,g)});function Hd(l,d){if("function"!=typeof l||null!=d&&"function"!=typeof d)throw new Zn(qe);var g=function(){var _=arguments,D=d?d.apply(this,_):_[0],M=g.cache;if(M.has(D))return M.get(D);var A=l.apply(this,_);return g.cache=M.set(D,A)||M,A};return g.cache=new(Hd.Cache||Ps),g}function ic(l){if("function"!=typeof l)throw new Zn(qe);return function(){var d=arguments;switch(d.length){case 0:return!l.call(this);case 1:return!l.call(this,d[0]);case 2:return!l.call(this,d[0],d[1]);case 3:return!l.call(this,d[0],d[1],d[2])}return!l.apply(this,d)}}Hd.Cache=Ps;var Pm=wd(function(l,d){var g=(d=1==d.length&&et(d[0])?ot(d[0],vn(Me())):ot(ii(d,1),vn(Me()))).length;return Xe(function(_){for(var D=-1,M=je(_.length,g);++D=d}),aa=fd(function(){return arguments}())?fd:function(l){return hn(l)&&Nt.call(l,"callee")&&!rd.call(l,"callee")},et=H.isArray,Fm=$i?vn($i):function pd(l){return hn(l)&&pi(l)==Qa};function Qi(l){return null!=l&&ze(l.length)&&!vo(l)}function An(l){return hn(l)&&Qi(l)}var la=W||mp,Vm=cr?vn(cr):function yS(l){return hn(l)&&pi(l)==Xr};function zd(l){if(!hn(l))return!1;var d=pi(l);return d==Qr||"[object DOMException]"==d||"string"==typeof l.message&&"string"==typeof l.name&&!Wl(l)}function vo(l){if(!J(l))return!1;var d=pi(l);return d==Ya||d==Oc||"[object AsyncFunction]"==d||"[object Proxy]"==d}function Bm(l){return"number"==typeof l&&l==st(l)}function ze(l){return"number"==typeof l&&l>-1&&l%1==0&&l<=$e}function J(l){var d=typeof l;return null!=l&&("object"==d||"function"==d)}function hn(l){return null!=l&&"object"==typeof l}var Gf=td?vn(td):function my(l){return hn(l)&&gi(l)==lr};function Gd(l){return"number"==typeof l||hn(l)&&pi(l)==Fo}function Wl(l){if(!hn(l)||pi(l)!=vs)return!1;var d=_n(l);if(null===d)return!0;var g=Nt.call(d,"constructor")&&d.constructor;return"function"==typeof g&&g instanceof g&&_l.call(g)==Zo}var oc=Mu?vn(Mu):function nf(l){return hn(l)&&pi(l)==Xs},Zf=Ss?vn(Ss):function rf(l){return hn(l)&&gi(l)==Ui};function qf(l){return"string"==typeof l||!et(l)&&hn(l)&&pi(l)==Xa}function _i(l){return"symbol"==typeof l||hn(l)&&pi(l)==pu}var yo=Pt?vn(Pt):function gd(l){return hn(l)&&ze(l.length)&&!!Gt[pi(l)]},HS=Zu(md),Mw=Zu(function(l,d){return l<=d});function Um(l){if(!l)return[];if(Qi(l))return qf(l)?Gn(l):Xi(l);if(qo&&l[qo])return function Pi(N){for(var j,H=[];!(j=N.next()).done;)H.push(j.value);return H}(l[qo]());var d=gi(l);return(d==lr?Or:d==Ui?oo:Co)(l)}function wo(l){return l?(l=cs(l))===_t||l===-_t?17976931348623157e292*(l<0?-1:1):l==l?l:0:0===l?l:0}function st(l){var d=wo(l),g=d%1;return d==d?g?d-g:d:0}function Qf(l){return l?xa(st(l),0,tn):0}function cs(l){if("number"==typeof l)return l;if(_i(l))return NaN;if(J(l)){var d="function"==typeof l.valueOf?l.valueOf():l;l=J(d)?d+"":d}if("string"!=typeof l)return 0===l?l:+l;l=Rn(l);var g=Bo.test(l);return g||Sa.test(l)?to(l.slice(2),g?2:8):$c.test(l)?NaN:+l}function jm(l){return Ns(l,Ji(l))}function Ft(l){return null==l?"":Hr(l)}var zm=Ra(function(l,d){if(Ku(d)||Qi(d))Ns(d,Un(d),l);else for(var g in d)Nt.call(d,g)&&Fu(l,g,d[g])}),Wm=Ra(function(l,d){Ns(d,Ji(d),l)}),Gl=Ra(function(l,d,g,_){Ns(d,Ji(d),l,_)}),jS=Ra(function(l,d,g,_){Ns(d,Un(d),l,_)}),zS=ss(Xh),GS=Xe(function(l,d){l=$t(l);var g=-1,_=d.length,D=_>2?d[2]:I;for(D&&mi(d[0],d[1],D)&&(_=1);++g<_;)for(var M=d[g],A=Ji(M),k=-1,V=A.length;++k1),M}),Ns(l,Id(l),g),_&&(g=Br(g,7,Zg));for(var D=d.length;D--;)Vg(g,d[D]);return g}),$l=ss(function(l,d){return null==l?{}:function Lg(l,d){return uf(l,d,function(g,_){return Zd(l,_)})}(l,d)});function qd(l,d){if(null==l)return{};var g=ot(Id(l),function(_){return[_]});return d=Me(d),uf(l,g,function(_,D){return d(_,D[0])})}var Zm=$g(Un),ip=$g(Ji);function Co(l){return null==l?[]:rn(l,Un(l))}var Qm=ea(function(l,d,g){return d=d.toLowerCase(),l+(g?Jm(d):d)});function Jm(l){return up(Ft(l).toLowerCase())}function op(l){return(l=Ft(l))&&l.replace(Oh,Ke).replace(jo,"")}var Lw=ea(function(l,d,g){return l+(g?"-":"")+d.toLowerCase()}),Nw=ea(function(l,d,g){return l+(g?" ":"")+d.toLowerCase()}),JS=Vl("toLowerCase"),Vw=ea(function(l,d,g){return l+(g?"_":"")+d.toLowerCase()}),Hw=ea(function(l,d,g){return l+(g?" ":"")+up(d)}),lp=ea(function(l,d,g){return l+(g?" ":"")+d.toUpperCase()}),up=Vl("toUpperCase");function ov(l,d,g){return l=Ft(l),(d=g?I:d)===I?function hi(N){return es.test(N)}(l)?function qi(N){return N.match(dl)||[]}(l):function id(N){return N.match(Jr)||[]}(l):l.match(d)||[]}var Gw=Xe(function(l,d){try{return Ai(l,I,d)}catch(g){return zd(g)?g:new Ne(g)}}),av=ss(function(l,d){return Fn(d,function(g){g=mr(g),fo(l,g,Vf(l[g],l))}),l});function cp(l){return function(){return l}}var qw=Wg(),Yw=Wg(!0);function ri(l){return l}function uc(l){return zu("function"==typeof l?l:Br(l,1))}var fp=Xe(function(l,d){return function(g){return Os(g,l,d)}}),lv=Xe(function(l,d){return function(g){return Os(l,g,d)}});function pp(l,d,g){var _=Un(d),D=ef(d,_);null==g&&(!J(d)||!D.length&&_.length)&&(g=d,d=l,l=this,D=ef(d,Un(d)));var M=!(J(g)&&"chain"in g&&!g.chain),A=vo(l);return Fn(D,function(k){var V=d[k];l[k]=V,A&&(l.prototype[k]=function(){var $=this.__chain__;if(M||$){var Z=l(this.__wrapped__),X=Z.__actions__=Xi(this.__actions__);return X.push({func:V,args:arguments,thisArg:l}),Z.__chain__=$,Z}return V.apply(l,Zi([this.value()],arguments))})}),l}function cc(){}var Qw=bd(ot),uv=bd(Ta),cv=bd(pl);function gp(l){return Od(l)?mn(mr(l)):function kl(l){return function(d){return Al(d,l)}}(l)}var hv=gf(),Do=gf(!0);function Yl(){return[]}function mp(){return!1}var eC=na(function(l,d){return l+d},0),yp=ka("ceil"),pv=na(function(l,d){return l/d},1),gv=ka("floor"),Kl=na(function(l,d){return l*d},1),_v=ka("round"),rC=na(function(l,d){return l-d},0);return E.after=function Mm(l,d){if("function"!=typeof d)throw new Zn(qe);return l=st(l),function(){if(--l<1)return d.apply(this,arguments)}},E.ary=Vd,E.assign=zm,E.assignIn=Wm,E.assignInWith=Gl,E.assignWith=jS,E.at=zS,E.before=Im,E.bind=Vf,E.bindAll=av,E.bindKey=Bf,E.castArray=function sc(){if(!arguments.length)return[];var l=arguments[0];return et(l)?l:[l]},E.chain=Cm,E.chunk=function om(l,d,g){d=(g?mi(l,d,g):d===I)?1:Ie(st(d),0);var _=null==l?0:l.length;if(!_||d<1)return[];for(var D=0,M=0,A=H(b(_/d));D<_;)A[M++]=rs(l,D,D+=d);return A},E.compact=function am(l){for(var d=-1,g=null==l?0:l.length,_=0,D=[];++dD?0:D+g),(_=_===I||_>D?D:st(_))<0&&(_+=D),_=g>_?0:Qf(_);g<_;)l[g++]=d;return l}(l,d,g,_)):[]},E.filter=function _r(l,d){return(et(l)?dr:Ig)(l,Me(d,3))},E.flatMap=function uw(l,d){return ii(mo(l,d),1)},E.flatMapDeep=function Sm(l,d){return ii(mo(l,d),_t)},E.flatMapDepth=function nc(l,d,g){return g=g===I?1:st(g),ii(mo(l,d),g)},E.flatten=cm,E.flattenDeep=function Ly(l){return null!=l&&l.length?ii(l,_t):[]},E.flattenDepth=function Ny(l,d){return null!=l&&l.length?ii(l,d=d===I?1:st(d)):[]},E.flip=function Bd(l){return go(l,512)},E.flow=qw,E.flowRight=Yw,E.fromPairs=function dm(l){for(var d=-1,g=null==l?0:l.length,_={};++d>>0)?(l=Ft(l))&&("string"==typeof d||null!=d&&!oc(d))&&!(d=Hr(d))&&Wn(l)?zr(Gn(l),0,g):l.split(d,g):[]},E.spread=function Rm(l,d){if("function"!=typeof l)throw new Zn(qe);return d=null==d?0:Ie(st(d),0),Xe(function(g){var _=g[d],D=zr(g,0,d);return _&&Zi(D,_),Ai(l,this,D)})},E.tail=function mm(l){var d=null==l?0:l.length;return d?rs(l,1,d):[]},E.take=function $y(l,d,g){return l&&l.length?rs(l,0,(d=g||d===I?1:st(d))<0?0:d):[]},E.takeRight=function vm(l,d,g){var _=null==l?0:l.length;return _?rs(l,(d=_-(d=g||d===I?1:st(d)))<0?0:d,_):[]},E.takeRightWhile=function Zy(l,d){return l&&l.length?Ll(l,Me(d,3),!1,!0):[]},E.takeWhile=function _m(l,d){return l&&l.length?Ll(l,Me(d,3)):[]},E.tap=function rw(l,d){return d(l),l},E.throttle=function zf(l,d,g){var _=!0,D=!0;if("function"!=typeof l)throw new Zn(qe);return J(g)&&(_="leading"in g?!!g.leading:_,D="trailing"in g?!!g.trailing:D),Uf(l,d,{leading:_,maxWait:d,trailing:D})},E.thru=Fd,E.toArray=Um,E.toPairs=Zm,E.toPairsIn=ip,E.toPath=function _p(l){return et(l)?ot(l,mr):_i(l)?[l]:Xi(sm(Ft(l)))},E.toPlainObject=jm,E.transform=function qm(l,d,g){var _=et(l),D=_||la(l)||yo(l);if(d=Me(d,4),null==g){var M=l&&l.constructor;g=D?_?new M:[]:J(l)&&vo(M)?Ml(_n(l)):{}}return(D?Fn:ks)(l,function(A,k,V){return d(g,A,k,V)}),g},E.unary=function km(l){return Vd(l,1)},E.union=qy,E.unionBy=Yy,E.unionWith=Mf,E.uniq=function Ky(l){return l&&l.length?Ur(l):[]},E.uniqBy=function Xy(l,d){return l&&l.length?Ur(l,Me(d,2)):[]},E.uniqWith=function If(l,d){return d="function"==typeof d?d:I,l&&l.length?Ur(l,I,d):[]},E.unset=function rp(l,d){return null==l||Vg(l,d)},E.unzip=Af,E.unzipWith=ym,E.update=function sp(l,d,g){return null==l?l:kn(l,d,jr(g))},E.updateWith=function Ym(l,d,g,_){return _="function"==typeof _?_:I,null==l?l:kn(l,d,jr(g),_)},E.values=Co,E.valuesIn=function Rw(l){return null==l?[]:rn(l,Ji(l))},E.without=tc,E.words=ov,E.wrap=function Wf(l,d){return rc(jr(d),l)},E.xor=Qy,E.xorBy=Jy,E.xorWith=ew,E.zip=tw,E.zipObject=function nw(l,d){return Hg(l||[],d||[],Fu)},E.zipObjectDeep=function wm(l,d){return Hg(l||[],d||[],Ls)},E.zipWith=iw,E.entries=Zm,E.entriesIn=ip,E.extend=Wm,E.extendWith=Gl,pp(E,E),E.add=eC,E.attempt=Gw,E.camelCase=Qm,E.capitalize=Jm,E.ceil=yp,E.clamp=function Km(l,d,g){return g===I&&(g=d,d=I),g!==I&&(g=(g=cs(g))==g?g:0),d!==I&&(d=(d=cs(d))==d?d:0),xa(cs(l),d,g)},E.clone=function _w(l){return Br(l,4)},E.cloneDeep=function yw(l){return Br(l,5)},E.cloneDeepWith=function ww(l,d){return Br(l,5,d="function"==typeof d?d:I)},E.cloneWith=function Om(l,d){return Br(l,4,d="function"==typeof d?d:I)},E.conformsTo=function Lm(l,d){return null==d||Vu(l,d,Un(d))},E.deburr=op,E.defaultTo=function dp(l,d){return null==l||l!=l?d:l},E.divide=pv,E.endsWith=function kw(l,d,g){l=Ft(l),d=Hr(d);var _=l.length,D=g=g===I?_:xa(st(g),0,_);return(g-=d.length)>=0&&l.slice(g,D)==d},E.eq=yr,E.escape=function Ow(l){return(l=Ft(l))&&Uc.test(l)?l.replace(Du,gl):l},E.escapeRegExp=function wr(l){return(l=Ft(l))&&zc.test(l)?l.replace(ve,"\\$&"):l},E.every=function NS(l,d,g){var _=et(l)?Ta:py;return g&&mi(l,d,g)&&(d=I),_(l,Me(d,3))},E.find=xf,E.findIndex=Sf,E.findKey=function ZS(l,d){return Ht(l,Me(d,3),ks)},E.findLast=Pf,E.findLastIndex=um,E.findLastKey=function qS(l,d){return Ht(l,Me(d,3),Jh)},E.floor=gv,E.forEach=Rf,E.forEachRight=kf,E.forIn=function YS(l,d){return null==l?l:Pa(l,Me(d,3),Ji)},E.forInRight=function KS(l,d){return null==l?l:dd(l,Me(d,3),Ji)},E.forOwn=function XS(l,d){return l&&ks(l,Me(d,3))},E.forOwnRight=function ua(l,d){return l&&Jh(l,Me(d,3))},E.get=$d,E.gt=Nm,E.gte=VS,E.has=function ep(l,d){return null!=l&&Rd(l,d,hd)},E.hasIn=Zd,E.head=Ju,E.identity=ri,E.includes=function Lf(l,d,g,_){l=Qi(l)?l:Co(l),g=g&&!_?st(g):0;var D=l.length;return g<0&&(g=Ie(D+g,0)),qf(l)?g<=D&&l.indexOf(d,g)>-1:!!D&&so(l,d,g)>-1},E.indexOf=function Fy(l,d,g){var _=null==l?0:l.length;if(!_)return-1;var D=null==g?0:st(g);return D<0&&(D=Ie(_+D,0)),so(l,d,D)},E.inRange=function QS(l,d,g){return d=wo(d),g===I?(g=d,d=0):g=wo(g),function xg(l,d,g){return l>=je(d,g)&&l=-$e&&l<=$e},E.isSet=Zf,E.isString=qf,E.isSymbol=_i,E.isTypedArray=yo,E.isUndefined=function Yf(l){return l===I},E.isWeakMap=function Kf(l){return hn(l)&&gi(l)==ji},E.isWeakSet=function Xf(l){return hn(l)&&"[object WeakSet]"==pi(l)},E.join=function By(l,d){return null==l?"":pe.call(l,d)},E.kebabCase=Lw,E.last=vr,E.lastIndexOf=function hm(l,d,g){var _=null==l?0:l.length;if(!_)return-1;var D=_;return g!==I&&(D=(D=st(g))<0?Ie(_+D,0):je(D,_-1)),d==d?function bs(N,j,H){for(var he=H+1;he--;)if(N[he]===j)return he;return he}(l,d,D):zo(l,Kt,D,!0)},E.lowerCase=Nw,E.lowerFirst=JS,E.lt=HS,E.lte=Mw,E.max=function mv(l){return l&&l.length?is(l,ri,ju):I},E.maxBy=function tC(l,d){return l&&l.length?is(l,Me(d,2),ju):I},E.mean=function wp(l){return Vn(l,ri)},E.meanBy=function nC(l,d){return Vn(l,Me(d,2))},E.min=function iC(l){return l&&l.length?is(l,ri,md):I},E.minBy=function vv(l,d){return l&&l.length?is(l,Me(d,2),md):I},E.stubArray=Yl,E.stubFalse=mp,E.stubObject=function Jw(){return{}},E.stubString=function ib(){return""},E.stubTrue=function vp(){return!0},E.multiply=Kl,E.nth=function Hy(l,d){return l&&l.length?Rl(l,st(d)):I},E.noConflict=function Xw(){return gn._===this&&(gn._=wl),this},E.noop=cc,E.now=zl,E.pad=function eb(l,d,g){l=Ft(l);var _=(d=st(d))?ki(l):0;if(!d||_>=d)return l;var D=(d-_)/2;return Ed(P(D),g)+l+Ed(b(D),g)},E.padEnd=function ev(l,d,g){l=Ft(l);var _=(d=st(d))?ki(l):0;return d&&_d){var _=l;l=d,d=_}if(g||l%1||d%1){var D=Ut();return je(l+D*(d-l+Te("1e-"+((D+"").length-1))),d)}return Wu(l,d)},E.reduce=function cw(l,d,g){var _=et(l)?ro:xi,D=arguments.length<3;return _(l,Me(d,4),g,D,Rs)},E.reduceRight=function Ff(l,d,g){var _=et(l)?Yt:xi,D=arguments.length<3;return _(l,Me(d,4),g,D,Qh)},E.repeat=function ap(l,d,g){return d=(g?mi(l,d,g):d===I)?1:st(d),Jo(Ft(l),d)},E.replace=function tv(){var l=arguments,d=Ft(l[0]);return l.length<3?d:d.replace(l[1],l[2])},E.result=function Zl(l,d,g){var _=-1,D=(d=po(d,l)).length;for(D||(D=1,l=I);++_$e)return[];var g=tn,_=je(l,tn);d=Me(d),l-=tn;for(var D=Ue(_,d);++g=M)return l;var k=g-ki(_);if(k<1)return _;var V=A?zr(A,0,k).join(""):l.slice(0,k);if(D===I)return V+_;if(A&&(k+=V.length-k),oc(D)){if(l.slice(k).search(D)){var $,Z=V;for(D.global||(D=Go(D.source,Ft(il.exec(D))+"g")),D.lastIndex=0;$=D.exec(Z);)var X=$.index;V=V.slice(0,X===I?k:X)}}else if(l.indexOf(Hr(D),k)!=k){var ae=V.lastIndexOf(D);ae>-1&&(V=V.slice(0,ae))}return V+_},E.unescape=function Bs(l){return(l=Ft(l))&&Hc.test(l)?l.replace(Bc,$n):l},E.uniqueId=function dc(l){var d=++yl;return Ft(l)+d},E.upperCase=lp,E.upperFirst=up,E.each=Rf,E.eachRight=kf,E.first=Ju,pp(E,function(){var l={};return ks(E,function(d,g){Nt.call(E.prototype,g)||(l[g]=d)}),l}(),{chain:!1}),E.VERSION="4.17.21",Fn(["bind","bindKey","curry","curryRight","partial","partialRight"],function(l){E[l].placeholder=E}),Fn(["drop","take"],function(l,d){wt.prototype[l]=function(g){g=g===I?1:Ie(st(g),0);var _=this.__filtered__&&!d?new wt(this):this.clone();return _.__filtered__?_.__takeCount__=je(g,_.__takeCount__):_.__views__.push({size:je(g,tn),type:l+(_.__dir__<0?"Right":"")}),_},wt.prototype[l+"Right"]=function(g){return this.reverse()[l](g).reverse()}}),Fn(["filter","map","takeWhile"],function(l,d){var g=d+1,_=1==g||3==g;wt.prototype[l]=function(D){var M=this.clone();return M.__iteratees__.push({iteratee:Me(D,3),type:g}),M.__filtered__=M.__filtered__||_,M}}),Fn(["head","last"],function(l,d){var g="take"+(d?"Right":"");wt.prototype[l]=function(){return this[g](1).value()[0]}}),Fn(["initial","tail"],function(l,d){var g="drop"+(d?"":"Right");wt.prototype[l]=function(){return this.__filtered__?new wt(this):this[g](1)}}),wt.prototype.compact=function(){return this.filter(ri)},wt.prototype.find=function(l){return this.filter(l).head()},wt.prototype.findLast=function(l){return this.reverse().find(l)},wt.prototype.invokeMap=Xe(function(l,d){return"function"==typeof l?new wt(this):this.map(function(g){return Os(g,l,d)})}),wt.prototype.reject=function(l){return this.filter(ic(Me(l)))},wt.prototype.slice=function(l,d){l=st(l);var g=this;return g.__filtered__&&(l>0||d<0)?new wt(g):(l<0?g=g.takeRight(-l):l&&(g=g.drop(l)),d!==I&&(g=(d=st(d))<0?g.dropRight(-d):g.take(d-l)),g)},wt.prototype.takeRightWhile=function(l){return this.reverse().takeWhile(l).reverse()},wt.prototype.toArray=function(){return this.take(tn)},ks(wt.prototype,function(l,d){var g=/^(?:filter|find|map|reject)|While$/.test(d),_=/^(?:head|last)$/.test(d),D=E[_?"take"+("last"==d?"Right":""):d],M=_||/^find/.test(d);!D||(E.prototype[d]=function(){var A=this.__wrapped__,k=_?[1]:arguments,V=A instanceof wt,$=k[0],Z=V||et(A),X=function(vt){var Ct=D.apply(E,Zi([vt],k));return _&&ae?Ct[0]:Ct};Z&&g&&"function"==typeof $&&1!=$.length&&(V=Z=!1);var ae=this.__chain__,ye=!!this.__actions__.length,Re=M&&!ae,ut=V&&!ye;if(!M&&Z){A=ut?A:new wt(this);var ke=l.apply(A,k);return ke.__actions__.push({func:Fd,args:[X],thisArg:I}),new Fr(ke,ae)}return Re&&ut?l.apply(this,k):(ke=this.thru(X),Re?_?ke.value()[0]:ke.value():ke)})}),Fn(["pop","push","shift","sort","splice","unshift"],function(l){var d=vl[l],g=/^(?:push|sort|unshift)$/.test(l)?"tap":"thru",_=/^(?:pop|shift)$/.test(l);E.prototype[l]=function(){var D=arguments;if(_&&!this.__chain__){var M=this.value();return d.apply(et(M)?M:[],D)}return this[g](function(A){return d.apply(et(A)?A:[],D)})}}),ks(wt.prototype,function(l,d){var g=E[d];if(g){var _=g.name+"";Nt.call(Nr,_)||(Nr[_]=[]),Nr[_].push({name:d,func:g})}}),Nr[$u(I,2).name]=[{name:"wrapper",func:I}],wt.prototype.clone=function K(){var l=new wt(this.__wrapped__);return l.__actions__=Xi(this.__actions__),l.__dir__=this.__dir__,l.__filtered__=this.__filtered__,l.__iteratees__=Xi(this.__iteratees__),l.__takeCount__=this.__takeCount__,l.__views__=Xi(this.__views__),l},wt.prototype.reverse=function Et(){if(this.__filtered__){var l=new wt(this);l.__dir__=-1,l.__filtered__=!0}else(l=this.clone()).__dir__*=-1;return l},wt.prototype.value=function _e(){var l=this.__wrapped__.value(),d=this.__dir__,g=et(l),_=d<0,D=g?l.length:0,M=function Iy(l,d,g){for(var _=-1,D=g.length;++_=this.__values__.length;return{done:l,value:l?I:this.__values__[this.__index__++]}},E.prototype.plant=function Vs(l){for(var d,g=this;g instanceof Lu;){var _=Ul(g);_.__index__=0,_.__values__=I,d?D.__wrapped__=_:d=_;var D=_;g=g.__wrapped__}return D.__wrapped__=l,d},E.prototype.reverse=function OS(){var l=this.__wrapped__;if(l instanceof wt){var d=l;return this.__actions__.length&&(d=new wt(this)),(d=d.reverse()).__actions__.push({func:Fd,args:[Oa],thisArg:I}),new Fr(d,this.__chain__)}return this.thru(Oa)},E.prototype.toJSON=E.prototype.valueOf=E.prototype.value=function LS(){return Nl(this.__wrapped__,this.__actions__)},E.prototype.first=E.prototype.head,qo&&(E.prototype[qo]=function jl(){return this}),E}();gn._=Es,(at=function(){return Es}.call(Lo,ne,Lo,gs))!==I&&(gs.exports=at)}.call(this)}},gs=>{gs(gs.s=242)}]); \ No newline at end of file diff --git a/Web/Resgrid.Web/wwwroot/js/ng/main.41cf6e57a0ec9523.js b/Web/Resgrid.Web/wwwroot/js/ng/main.41cf6e57a0ec9523.js deleted file mode 100644 index 4717ea17a..000000000 --- a/Web/Resgrid.Web/wwwroot/js/ng/main.41cf6e57a0ec9523.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkApps=self.webpackChunkApps||[]).push([[179],{682:(wc,Cc,B)=>{"use strict";function Re(n){return"function"==typeof n}function Xe(n){const e=n(i=>{Error.call(i),i.stack=(new Error).stack});return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}const Or=Xe(n=>function(e){n(this),this.message=e?`${e.length} errors occurred during unsubscription:\n${e.map((i,r)=>`${r+1}) ${i.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=e});function Qe(n,t){if(n){const e=n.indexOf(t);0<=e&&n.splice(e,1)}}class Nt{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;const{_parentage:e}=this;if(e)if(this._parentage=null,Array.isArray(e))for(const s of e)s.remove(this);else e.remove(this);const{initialTeardown:i}=this;if(Re(i))try{i()}catch(s){t=s instanceof Or?s.errors:[s]}const{_finalizers:r}=this;if(r){this._finalizers=null;for(const s of r)try{Nr(s)}catch(a){t=t??[],a instanceof Or?t=[...t,...a.errors]:t.push(a)}}if(t)throw new Or(t)}}add(t){var e;if(t&&t!==this)if(this.closed)Nr(t);else{if(t instanceof Nt){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(e=this._finalizers)&&void 0!==e?e:[]).push(t)}}_hasParent(t){const{_parentage:e}=this;return e===t||Array.isArray(e)&&e.includes(t)}_addParent(t){const{_parentage:e}=this;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t}_removeParent(t){const{_parentage:e}=this;e===t?this._parentage=null:Array.isArray(e)&&Qe(e,t)}remove(t){const{_finalizers:e}=this;e&&Qe(e,t),t instanceof Nt&&t._removeParent(this)}}Nt.EMPTY=(()=>{const n=new Nt;return n.closed=!0,n})();const Ue=Nt.EMPTY;function Da(n){return n instanceof Nt||n&&"closed"in n&&Re(n.remove)&&Re(n.add)&&Re(n.unsubscribe)}function Nr(n){Re(n)?n():n.unsubscribe()}const ct={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Mn={setTimeout(n,t,...e){const{delegate:i}=Mn;return(null==i?void 0:i.setTimeout)?i.setTimeout(n,t,...e):setTimeout(n,t,...e)},clearTimeout(n){const{delegate:t}=Mn;return((null==t?void 0:t.clearTimeout)||clearTimeout)(n)},delegate:void 0};function qs(n){Mn.setTimeout(()=>{const{onUnhandledError:t}=ct;if(!t)throw n;t(n)})}function Bi(){}const wt=Ys("C",void 0,void 0);function Ys(n,t,e){return{kind:n,value:t,error:e}}let rn=null;function Fr(n){if(ct.useDeprecatedSynchronousErrorHandling){const t=!rn;if(t&&(rn={errorThrown:!1,error:null}),n(),t){const{errorThrown:e,error:i}=rn;if(rn=null,e)throw i}}else n()}class ps extends Nt{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,Da(t)&&t.add(this)):this.destination=Si}static create(t,e,i){return new Lr(t,e,i)}next(t){this.isStopped?ba(function Dh(n){return Ys("N",n,void 0)}(t),this):this._next(t)}error(t){this.isStopped?ba(function Dc(n){return Ys("E",void 0,n)}(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?ba(wt,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const Sc=Function.prototype.bind;function Xs(n,t){return Sc.call(n,t)}class Sa{constructor(t){this.partialObserver=t}next(t){const{partialObserver:e}=this;if(e.next)try{e.next(t)}catch(i){$t(i)}}error(t){const{partialObserver:e}=this;if(e.error)try{e.error(t)}catch(i){$t(i)}else $t(t)}complete(){const{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(e){$t(e)}}}class Lr extends ps{constructor(t,e,i){let r;if(super(),Re(t)||!t)r={next:t??void 0,error:e??void 0,complete:i??void 0};else{let s;this&&ct.useDeprecatedNextContext?(s=Object.create(t),s.unsubscribe=()=>this.unsubscribe(),r={next:t.next&&Xs(t.next,s),error:t.error&&Xs(t.error,s),complete:t.complete&&Xs(t.complete,s)}):r=t}this.destination=new Sa(r)}}function $t(n){ct.useDeprecatedSynchronousErrorHandling?function Ks(n){ct.useDeprecatedSynchronousErrorHandling&&rn&&(rn.errorThrown=!0,rn.error=n)}(n):qs(n)}function ba(n,t){const{onStoppedNotification:e}=ct;e&&Mn.setTimeout(()=>e(n,t))}const Si={closed:!0,next:Bi,error:function Hn(n){throw n},complete:Bi},Ea="function"==typeof Symbol&&Symbol.observable||"@@observable";function Vt(n){return n}let nt=(()=>{class n{constructor(e){e&&(this._subscribe=e)}lift(e){const i=new n;return i.source=this,i.operator=e,i}subscribe(e,i,r){const s=function qn(n){return n&&n instanceof ps||function Ct(n){return n&&Re(n.next)&&Re(n.error)&&Re(n.complete)}(n)&&Da(n)}(e)?e:new Lr(e,i,r);return Fr(()=>{const{operator:a,source:l}=this;s.add(a?a.call(s,l):l?this._subscribe(s):this._trySubscribe(s))}),s}_trySubscribe(e){try{return this._subscribe(e)}catch(i){e.error(i)}}forEach(e,i){return new(i=xe(i))((r,s)=>{const a=new Lr({next:l=>{try{e(l)}catch(u){s(u),a.unsubscribe()}},error:s,complete:r});this.subscribe(a)})}_subscribe(e){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(e)}[Ea](){return this}pipe(...e){return function me(n){return 0===n.length?Vt:1===n.length?n[0]:function(e){return n.reduce((i,r)=>r(i),e)}}(e)(this)}toPromise(e){return new(e=xe(e))((i,r)=>{let s;this.subscribe(a=>s=a,a=>r(a),()=>i(s))})}}return n.create=t=>new n(t),n})();function xe(n){var t;return null!==(t=n??ct.Promise)&&void 0!==t?t:Promise}const wn=Xe(n=>function(){n(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let ve=(()=>{class n extends nt{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){const i=new Je(this,this);return i.operator=e,i}_throwIfClosed(){if(this.closed)throw new wn}next(e){Fr(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(e)}})}error(e){Fr(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=e;const{observers:i}=this;for(;i.length;)i.shift().error(e)}})}complete(){Fr(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:e}=this;for(;e.length;)e.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0}_trySubscribe(e){return this._throwIfClosed(),super._trySubscribe(e)}_subscribe(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)}_innerSubscribe(e){const{hasError:i,isStopped:r,observers:s}=this;return i||r?Ue:(this.currentObservers=null,s.push(e),new Nt(()=>{this.currentObservers=null,Qe(s,e)}))}_checkFinalizedStatuses(e){const{hasError:i,thrownError:r,isStopped:s}=this;i?e.error(r):s&&e.complete()}asObservable(){const e=new nt;return e.source=this,e}}return n.create=(t,e)=>new Je(t,e),n})();class Je extends ve{constructor(t,e){super(),this.destination=t,this.source=e}next(t){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===i||i.call(e,t)}error(t){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===i||i.call(e,t)}complete(){var t,e;null===(e=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===e||e.call(t)}_subscribe(t){var e,i;return null!==(i=null===(e=this.source)||void 0===e?void 0:e.subscribe(t))&&void 0!==i?i:Ue}}function ut(n){return t=>{if(function Dt(n){return Re(null==n?void 0:n.lift)}(t))return t.lift(function(e){try{return n(e,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function it(n,t,e,i,r){return new bc(n,t,e,i,r)}class bc extends ps{constructor(t,e,i,r,s,a){super(t),this.onFinalize=s,this.shouldUnsubscribe=a,this._next=e?function(l){try{e(l)}catch(u){t.error(u)}}:super._next,this._error=r?function(l){try{r(l)}catch(u){t.error(u)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(l){t.error(l)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:e}=this;super.unsubscribe(),!e&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}}}function He(n,t){return ut((e,i)=>{let r=0;e.subscribe(it(i,s=>{i.next(n.call(t,s,r++))}))})}var Vr=function(){return Vr=Object.assign||function(t){for(var e,i=1,r=arguments.length;i1||l(v,_)})})}function l(v,_){try{!function u(v){v.value instanceof Hi?Promise.resolve(v.value.v).then(d,f):g(s[0][2],v)}(i[v](_))}catch(w){g(s[0][3],w)}}function d(v){l("next",v)}function f(v){l("throw",v)}function g(v,_){v(_),s.shift(),s.length&&l(s[0][0],s[0][1])}}function Pc(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,t=n[Symbol.asyncIterator];return t?t.call(n):(n=function Ma(n){var t="function"==typeof Symbol&&Symbol.iterator,e=t&&n[t],i=0;if(e)return e.call(n);if(n&&"number"==typeof n.length)return{next:function(){return n&&i>=n.length&&(n=void 0),{value:n&&n[i++],done:!n}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(n),e={},i("next"),i("throw"),i("return"),e[Symbol.asyncIterator]=function(){return this},e);function i(s){e[s]=n[s]&&function(a){return new Promise(function(l,u){!function r(s,a,l,u){Promise.resolve(u).then(function(d){s({value:d,done:l})},a)}(l,u,(a=n[s](a)).done,a.value)})}}}const Ia=n=>n&&"number"==typeof n.length&&"function"!=typeof n;function xc(n){return Re(null==n?void 0:n.then)}function Aa(n){return Re(n[Ea])}function Pa(n){return Symbol.asyncIterator&&Re(null==n?void 0:n[Symbol.asyncIterator])}function ka(n){return new TypeError(`You provided ${null!==n&&"object"==typeof n?"an invalid object":`'${n}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const Rc=function Ph(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Oc(n){return Re(null==n?void 0:n[Rc])}function Nc(n){return Ac(this,arguments,function*(){const e=n.getReader();try{for(;;){const{value:i,done:r}=yield Hi(e.read());if(r)return yield Hi(void 0);yield yield Hi(i)}}finally{e.releaseLock()}})}function Fc(n){return Re(null==n?void 0:n.getReader)}function In(n){if(n instanceof nt)return n;if(null!=n){if(Aa(n))return function xa(n){return new nt(t=>{const e=n[Ea]();if(Re(e.subscribe))return e.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(n);if(Ia(n))return function kh(n){return new nt(t=>{for(let e=0;e{n.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,qs)})}(n);if(Pa(n))return ne(n);if(Oc(n))return function li(n){return new nt(t=>{for(const e of n)if(t.next(e),t.closed)return;t.complete()})}(n);if(Fc(n))return function Lc(n){return ne(Nc(n))}(n)}throw ka(n)}function ne(n){return new nt(t=>{(function Vc(n,t){var e,i,r,s;return function eo(n,t,e,i){return new(e||(e=Promise))(function(s,a){function l(f){try{d(i.next(f))}catch(g){a(g)}}function u(f){try{d(i.throw(f))}catch(g){a(g)}}function d(f){f.done?s(f.value):function r(s){return s instanceof e?s:new e(function(a){a(s)})}(f.value).then(l,u)}d((i=i.apply(n,t||[])).next())})}(this,void 0,void 0,function*(){try{for(e=Pc(n);!(i=yield e.next()).done;)if(t.next(i.value),t.closed)return}catch(a){r={error:a}}finally{try{i&&!i.done&&(s=e.return)&&(yield s.call(e))}finally{if(r)throw r.error}}t.complete()})})(n,t).catch(e=>t.error(e))})}function ci(n,t,e,i=0,r=!1){const s=t.schedule(function(){e(),r?n.add(this.schedule(null,i)):this.unsubscribe()},i);if(n.add(s),!r)return s}function ui(n,t,e=1/0){return Re(t)?ui((i,r)=>He((s,a)=>t(i,s,r,a))(In(n(i,r))),e):("number"==typeof t&&(e=t),ut((i,r)=>function Bc(n,t,e,i,r,s,a,l){const u=[];let d=0,f=0,g=!1;const v=()=>{g&&!u.length&&!d&&t.complete()},_=C=>d{s&&t.next(C),d++;let S=!1;In(e(C,f++)).subscribe(it(t,E=>{null==r||r(E),s?_(E):t.next(E)},()=>{S=!0},void 0,()=>{if(S)try{for(d--;u.length&&dw(E)):w(E)}v()}catch(E){t.error(E)}}))};return n.subscribe(it(t,_,()=>{g=!0,v()})),()=>{null==l||l()}}(i,r,n,e)))}function Ra(n=1/0){return ui(Vt,n)}const bi=new nt(n=>n.complete());function Hc(n){return n&&Re(n.schedule)}function Oa(n){return n[n.length-1]}function jc(n){return Re(Oa(n))?n.pop():void 0}function Br(n){return Hc(Oa(n))?n.pop():void 0}function ms(n,t=0){return ut((e,i)=>{e.subscribe(it(i,r=>ci(i,n,()=>i.next(r),t),()=>ci(i,n,()=>i.complete(),t),r=>ci(i,n,()=>i.error(r),t)))})}function Uc(n,t=0){return ut((e,i)=>{i.add(n.schedule(()=>e.subscribe(i),t))})}function no(n,t){if(!n)throw new Error("Iterable cannot be null");return new nt(e=>{ci(e,t,()=>{const i=n[Symbol.asyncIterator]();ci(e,t,()=>{i.next().then(r=>{r.done?e.complete():e.next(r.value)})},0,!0)})})}function pr(n,t){return t?function zc(n,t){if(null!=n){if(Aa(n))return function Fh(n,t){return In(n).pipe(Uc(t),ms(t))}(n,t);if(Ia(n))return function Vh(n,t){return new nt(e=>{let i=0;return t.schedule(function(){i===n.length?e.complete():(e.next(n[i++]),e.closed||this.schedule())})})}(n,t);if(xc(n))return function Lh(n,t){return In(n).pipe(Uc(t),ms(t))}(n,t);if(Pa(n))return no(n,t);if(Oc(n))return function Bh(n,t){return new nt(e=>{let i;return ci(e,t,()=>{i=n[Rc](),ci(e,t,()=>{let r,s;try{({value:r,done:s}=i.next())}catch(a){return void e.error(a)}s?e.complete():e.next(r)},0,!0)}),()=>Re(null==i?void 0:i.return)&&i.return()})}(n,t);if(Fc(n))return function vs(n,t){return no(Nc(n),t)}(n,t)}throw ka(n)}(n,t):In(n)}function sn(...n){const t=Br(n),e=function Nh(n,t){return"number"==typeof Oa(n)?n.pop():t}(n,1/0),i=n;return i.length?1===i.length?In(i[0]):Ra(e)(pr(i,t)):bi}function Se(n={}){const{connector:t=(()=>new ve),resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:r=!0}=n;return s=>{let a,l,u,d=0,f=!1,g=!1;const v=()=>{null==l||l.unsubscribe(),l=void 0},_=()=>{v(),a=u=void 0,f=g=!1},w=()=>{const C=a;_(),null==C||C.unsubscribe()};return ut((C,S)=>{d++,!g&&!f&&v();const E=u=u??t();S.add(()=>{d--,0===d&&!g&&!f&&(l=dt(w,r))}),E.subscribe(S),!a&&d>0&&(a=new Lr({next:b=>E.next(b),error:b=>{g=!0,v(),l=dt(_,e,b),E.error(b)},complete:()=>{f=!0,v(),l=dt(_,i),E.complete()}}),In(C).subscribe(a))})(s)}}function dt(n,t,...e){if(!0===t)return void n();if(!1===t)return;const i=new Lr({next:()=>{i.unsubscribe(),n()}});return t(...e).subscribe(i)}function $e(n){for(let t in n)if(n[t]===$e)return t;throw Error("Could not find renamed property on target object.")}function ji(n,t){for(const e in t)t.hasOwnProperty(e)&&!n.hasOwnProperty(e)&&(n[e]=t[e])}function Le(n){if("string"==typeof n)return n;if(Array.isArray(n))return"["+n.map(Le).join(", ")+"]";if(null==n)return""+n;if(n.overriddenName)return`${n.overriddenName}`;if(n.name)return`${n.name}`;const t=n.toString();if(null==t)return""+t;const e=t.indexOf("\n");return-1===e?t:t.substring(0,e)}function _s(n,t){return null==n||""===n?null===t?"":t:null==t||""===t?n:n+" "+t}const Ee=$e({__forward_ref__:$e});function fe(n){return n.__forward_ref__=fe,n.toString=function(){return Le(this())},n}function _e(n){return ys(n)?n():n}function ys(n){return"function"==typeof n&&n.hasOwnProperty(Ee)&&n.__forward_ref__===fe}class $ extends Error{constructor(t,e){super(function Hr(n,t){return`NG0${Math.abs(n)}${t?": "+t:""}`}(t,e)),this.code=t}}function le(n){return"string"==typeof n?n:null==n?"":String(n)}function Ve(n){return"function"==typeof n?n.name||n.toString():"object"==typeof n&&null!=n&&"function"==typeof n.type?n.type.name||n.type.toString():le(n)}function jr(n,t){const e=t?` in ${t}`:"";throw new $(-201,`No provider for ${Ve(n)} found${e}`)}function Cn(n,t){null==n&&function rt(n,t,e,i){throw new Error(`ASSERTION ERROR: ${n}`+(null==i?"":` [Expected=> ${e} ${i} ${t} <=Actual]`))}(t,n,null,"!=")}function q(n){return{token:n.token,providedIn:n.providedIn||null,factory:n.factory,value:void 0}}function be(n){return{providers:n.providers||[],imports:n.imports||[]}}function Ei(n){return Va(n,ao)||Va(n,Oe)}function Va(n,t){return n.hasOwnProperty(t)?n[t]:null}function oo(n){return n&&(n.hasOwnProperty(lo)||n.hasOwnProperty(zh))?n[lo]:null}const ao=$e({\u0275prov:$e}),lo=$e({\u0275inj:$e}),Oe=$e({ngInjectableDef:$e}),zh=$e({ngInjectorDef:$e});var oe=(()=>((oe=oe||{})[oe.Default=0]="Default",oe[oe.Host=1]="Host",oe[oe.Self=2]="Self",oe[oe.SkipSelf=4]="SkipSelf",oe[oe.Optional=8]="Optional",oe))();let mr;function Ui(n){const t=mr;return mr=n,t}function co(n,t,e){const i=Ei(n);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:e&oe.Optional?null:void 0!==t?t:void jr(Le(n),"Injector")}function Ti(n){return{toString:n}.toString()}var Xn=(()=>((Xn=Xn||{})[Xn.OnPush=0]="OnPush",Xn[Xn.Default=1]="Default",Xn))(),Qn=(()=>{return(n=Qn||(Qn={}))[n.Emulated=0]="Emulated",n[n.None=2]="None",n[n.ShadowDom=3]="ShadowDom",Qn;var n})();const hi=typeof globalThis<"u"&&globalThis,Wh=typeof window<"u"&&window,Qc=typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self,Ye=hi||typeof global<"u"&&global||Wh||Qc,zr={},Ke=[],uo=$e({\u0275cmp:$e}),ho=$e({\u0275dir:$e}),fo=$e({\u0275pipe:$e}),ws=$e({\u0275mod:$e}),gn=$e({\u0275fac:$e}),Cs=$e({__NG_ELEMENT_ID__:$e});let Ds=0;function ft(n){return Ti(()=>{const e={},i={type:n.type,providersResolver:null,decls:n.decls,vars:n.vars,factory:null,template:n.template||null,consts:n.consts||null,ngContentSelectors:n.ngContentSelectors,hostBindings:n.hostBindings||null,hostVars:n.hostVars||0,hostAttrs:n.hostAttrs||null,contentQueries:n.contentQueries||null,declaredInputs:e,inputs:null,outputs:null,exportAs:n.exportAs||null,onPush:n.changeDetection===Xn.OnPush,directiveDefs:null,pipeDefs:null,selectors:n.selectors||Ke,viewQuery:n.viewQuery||null,features:n.features||null,data:n.data||{},encapsulation:n.encapsulation||Qn.Emulated,id:"c",styles:n.styles||Ke,_:null,setInput:null,schemas:n.schemas||null,tView:null},r=n.directives,s=n.features,a=n.pipes;return i.id+=Ds++,i.inputs=nu(n.inputs,e),i.outputs=nu(n.outputs),s&&s.forEach(l=>l(i)),i.directiveDefs=r?()=>("function"==typeof r?r():r).map(eu):null,i.pipeDefs=a?()=>("function"==typeof a?a():a).map(Ba):null,i})}function eu(n){return on(n)||function Bt(n){return n[ho]||null}(n)}function Ba(n){return function jn(n){return n[fo]||null}(n)}const tu={};function st(n){return Ti(()=>{const t={type:n.type,bootstrap:n.bootstrap||Ke,declarations:n.declarations||Ke,imports:n.imports||Ke,exports:n.exports||Ke,transitiveCompileScopes:null,schemas:n.schemas||null,id:n.id||null};return null!=n.id&&(tu[n.id]=n.type),t})}function nu(n,t){if(null==n)return zr;const e={};for(const i in n)if(n.hasOwnProperty(i)){let r=n[i],s=r;Array.isArray(r)&&(s=r[1],r=r[0]),e[r]=i,t&&(t[r]=s)}return e}const ie=ft;function vt(n){return{type:n.type,name:n.name,factory:null,pure:!1!==n.pure,onDestroy:n.type.prototype.ngOnDestroy||null}}function on(n){return n[uo]||null}function Un(n,t){const e=n[ws]||null;if(!e&&!0===t)throw new Error(`Type ${Le(n)} does not have '\u0275mod' property.`);return e}function fi(n){return Array.isArray(n)&&"object"==typeof n[1]}function Wn(n){return Array.isArray(n)&&!0===n[1]}function za(n){return 0!=(8&n.flags)}function Ss(n){return 2==(2&n.flags)}function vo(n){return 1==(1&n.flags)}function xt(n){return null!==n.template}function _o(n){return 0!=(512&n[2])}function Ki(n,t){return n.hasOwnProperty(gn)?n[gn]:null}class Ga{constructor(t,e,i){this.previousValue=t,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}function Kt(){return $a}function $a(n){return n.type.prototype.ngOnChanges&&(n.setInput=iu),ef}function ef(){const n=ru(this),t=n?.current;if(t){const e=n.previous;if(e===zr)n.previous=t;else for(let i in t)e[i]=t[i];n.current=null,this.ngOnChanges(t)}}function iu(n,t,e,i){const r=ru(n)||function o(n,t){return n[Za]=t}(n,{previous:zr,current:null}),s=r.current||(r.current={}),a=r.previous,l=this.declaredInputs[e],u=a[l];s[l]=new Ga(u&&u.currentValue,t,a===zr),n[i]=t}Kt.ngInherit=!0;const Za="__ngSimpleChanges__";function ru(n){return n[Za]||null}const D="math";let O;function Me(){return void 0!==O?O:typeof document<"u"?document:void 0}function Ze(n){return!!n.listen}const Xi={createRenderer:(n,t)=>Me()};function ot(n){for(;Array.isArray(n);)n=n[0];return n}function bo(n,t){return ot(t[n])}function Gn(n,t){return ot(t[n.index])}function Ya(n,t){return n.data[t]}function wr(n,t){return n[t]}function ze(n,t){const e=t[n];return fi(e)?e:e[0]}function Es(n){return 4==(4&n[2])}function Ka(n){return 128==(128&n[2])}function Qi(n,t){return null==t?null:n[t]}function Eo(n){n[18]=0}function To(n,t){n[5]+=t;let e=n,i=n[3];for(;null!==i&&(1===t&&1===e[5]||-1===t&&0===e[5]);)i[5]+=t,e=i,i=i[3]}const pe={lFrame:t_(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function qv(){return pe.bindingsEnabled}function R(){return pe.lFrame.lView}function We(){return pe.lFrame.tView}function Q(n){return pe.lFrame.contextLView=n,n[8]}function Xt(){let n=Yv();for(;null!==n&&64===n.type;)n=n.parent;return n}function Yv(){return pe.lFrame.currentTNode}function Ji(n,t){const e=pe.lFrame;e.currentTNode=n,e.isParent=t}function nf(){return pe.lFrame.isParent}function ou(){return pe.isInCheckNoChangesMode}function au(n){pe.isInCheckNoChangesMode=n}function Pn(){const n=pe.lFrame;let t=n.bindingRootIndex;return-1===t&&(t=n.bindingRootIndex=n.tView.bindingStartIndex),t}function Mo(){return pe.lFrame.bindingIndex++}function XT(n,t){const e=pe.lFrame;e.bindingIndex=e.bindingRootIndex=n,sf(t)}function sf(n){pe.lFrame.currentDirectiveIndex=n}function Qv(){return pe.lFrame.currentQueryIndex}function lf(n){pe.lFrame.currentQueryIndex=n}function JT(n){const t=n[1];return 2===t.type?t.declTNode:1===t.type?n[6]:null}function Jv(n,t,e){if(e&oe.SkipSelf){let r=t,s=n;for(;!(r=r.parent,null!==r||e&oe.Host||(r=JT(s),null===r||(s=s[15],10&r.type))););if(null===r)return!1;t=r,n=s}const i=pe.lFrame=e_();return i.currentTNode=t,i.lView=n,!0}function lu(n){const t=e_(),e=n[1];pe.lFrame=t,t.currentTNode=e.firstChild,t.lView=n,t.tView=e,t.contextLView=n,t.bindingIndex=e.bindingStartIndex,t.inI18n=!1}function e_(){const n=pe.lFrame,t=null===n?null:n.child;return null===t?t_(n):t}function t_(n){const t={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:n,child:null,inI18n:!1};return null!==n&&(n.child=t),t}function n_(){const n=pe.lFrame;return pe.lFrame=n.parent,n.currentTNode=null,n.lView=null,n}const i_=n_;function cu(){const n=n_();n.isParent=!0,n.tView=null,n.selectedIndex=-1,n.contextLView=null,n.elementDepthCount=0,n.currentDirectiveIndex=-1,n.currentNamespace=null,n.bindingRootIndex=-1,n.bindingIndex=-1,n.currentQueryIndex=0}function kn(){return pe.lFrame.selectedIndex}function Zr(n){pe.lFrame.selectedIndex=n}function Rt(){const n=pe.lFrame;return Ya(n.tView,n.selectedIndex)}function uu(n,t){for(let e=t.directiveStart,i=t.directiveEnd;e=i)break}else t[u]<0&&(n[18]+=65536),(l>11>16&&(3&n[2])===t){n[2]+=2048;try{s.call(l)}finally{}}}else try{s.call(l)}finally{}}class Qa{constructor(t,e,i){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=i}}function fu(n,t,e){const i=Ze(n);let r=0;for(;rt){a=s-1;break}}}for(;s>16}(n),i=t;for(;e>0;)i=i[15],e--;return i}let hf=!0;function gu(n){const t=hf;return hf=n,t}let pM=0;function el(n,t){const e=pf(n,t);if(-1!==e)return e;const i=t[1];i.firstCreatePass&&(n.injectorIndex=t.length,ff(i.data,n),ff(t,null),ff(i.blueprint,null));const r=mu(n,t),s=n.injectorIndex;if(a_(r)){const a=Io(r),l=Ao(r,t),u=l[1].data;for(let d=0;d<8;d++)t[s+d]=l[a+d]|u[a+d]}return t[s+8]=r,s}function ff(n,t){n.push(0,0,0,0,0,0,0,0,t)}function pf(n,t){return-1===n.injectorIndex||n.parent&&n.parent.injectorIndex===n.injectorIndex||null===t[n.injectorIndex+8]?-1:n.injectorIndex}function mu(n,t){if(n.parent&&-1!==n.parent.injectorIndex)return n.parent.injectorIndex;let e=0,i=null,r=t;for(;null!==r;){const s=r[1],a=s.type;if(i=2===a?s.declTNode:1===a?r[6]:null,null===i)return-1;if(e++,r=r[15],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return-1}function vu(n,t,e){!function gM(n,t,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(Cs)&&(i=e[Cs]),null==i&&(i=e[Cs]=pM++);const r=255&i;t.data[n+(r>>5)]|=1<=0?255&t:vM:t}(e);if("function"==typeof s){if(!Jv(t,n,i))return i&oe.Host?u_(r,e,i):d_(t,e,i,r);try{const a=s(i);if(null!=a||i&oe.Optional)return a;jr(e)}finally{i_()}}else if("number"==typeof s){let a=null,l=pf(n,t),u=-1,d=i&oe.Host?t[16][6]:null;for((-1===l||i&oe.SkipSelf)&&(u=-1===l?mu(n,t):t[l+8],-1!==u&&g_(i,!1)?(a=t[1],l=Io(u),t=Ao(u,t)):l=-1);-1!==l;){const f=t[1];if(p_(s,l,f.data)){const g=_M(l,t,e,a,i,d);if(g!==f_)return g}u=t[l+8],-1!==u&&g_(i,t[1].data[l+8]===d)&&p_(s,l,t)?(a=f,l=Io(u),t=Ao(u,t)):l=-1}}}return d_(t,e,i,r)}const f_={};function vM(){return new Po(Xt(),R())}function _M(n,t,e,i,r,s){const a=t[1],l=a.data[n+8],f=_u(l,a,e,null==i?Ss(l)&&hf:i!=a&&0!=(3&l.type),r&oe.Host&&s===l);return null!==f?tl(t,a,f,l):f_}function _u(n,t,e,i,r){const s=n.providerIndexes,a=t.data,l=1048575&s,u=n.directiveStart,f=s>>20,v=r?l+f:n.directiveEnd;for(let _=i?l:l+f;_=u&&w.type===e)return _}if(r){const _=a[u];if(_&&xt(_)&&_.type===e)return u}return null}function tl(n,t,e,i){let r=n[e];const s=t.data;if(function cM(n){return n instanceof Qa}(r)){const a=r;a.resolving&&function gr(n,t){const e=t?`. Dependency path: ${t.join(" > ")} > ${n}`:"";throw new $(-200,`Circular dependency in DI detected for ${n}${e}`)}(Ve(s[e]));const l=gu(a.canSeeViewProviders);a.resolving=!0;const u=a.injectImpl?Ui(a.injectImpl):null;Jv(n,i,oe.Default);try{r=n[e]=a.factory(void 0,s,n,i),t.firstCreatePass&&e>=i.directiveStart&&function aM(n,t,e){const{ngOnChanges:i,ngOnInit:r,ngDoCheck:s}=t.type.prototype;if(i){const a=$a(t);(e.preOrderHooks||(e.preOrderHooks=[])).push(n,a),(e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n,a)}r&&(e.preOrderHooks||(e.preOrderHooks=[])).push(0-n,r),s&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n,s),(e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n,s))}(e,s[e],t)}finally{null!==u&&Ui(u),gu(l),a.resolving=!1,i_()}}return r}function p_(n,t,e){return!!(e[t+(n>>5)]&1<{const t=n.prototype.constructor,e=t[gn]||gf(t),i=Object.prototype;let r=Object.getPrototypeOf(n.prototype).constructor;for(;r&&r!==i;){const s=r[gn]||gf(r);if(s&&s!==e)return s;r=Object.getPrototypeOf(r)}return s=>new s})}function gf(n){return ys(n)?()=>{const t=gf(_e(n));return t&&t()}:Ki(n)}const xo="__parameters__";function Oo(n,t,e){return Ti(()=>{const i=function vf(n){return function(...e){if(n){const i=n(...e);for(const r in i)this[r]=i[r]}}}(t);function r(...s){if(this instanceof r)return i.apply(this,s),this;const a=new r(...s);return l.annotation=a,l;function l(u,d,f){const g=u.hasOwnProperty(xo)?u[xo]:Object.defineProperty(u,xo,{value:[]})[xo];for(;g.length<=f;)g.push(null);return(g[f]=g[f]||[]).push(a),u}}return e&&(r.prototype=Object.create(e.prototype)),r.prototype.ngMetadataName=n,r.annotationCls=r,r})}class Ie{constructor(t,e){this._desc=t,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\u0275prov=q({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}toString(){return`InjectionToken ${this._desc}`}}function pi(n,t){void 0===t&&(t=n);for(let e=0;eArray.isArray(e)?er(e,t):t(e))}function v_(n,t,e){t>=n.length?n.push(e):n.splice(t,0,e)}function yu(n,t){return t>=n.length-1?n.pop():n.splice(t,1)[0]}function ei(n,t,e){let i=No(n,t);return i>=0?n[1|i]=e:(i=~i,function SM(n,t,e,i){let r=n.length;if(r==t)n.push(e,i);else if(1===r)n.push(i,n[0]),n[0]=e;else{for(r--,n.push(n[r-1],n[r]);r>t;)n[r]=n[r-2],r--;n[t]=e,n[t+1]=i}}(n,i,t,e)),i}function yf(n,t){const e=No(n,t);if(e>=0)return n[1|e]}function No(n,t){return function w_(n,t,e){let i=0,r=n.length>>e;for(;r!==i;){const s=i+(r-i>>1),a=n[s<t?r=s:i=s+1}return~(r<n,createScript:n=>n,createScriptURL:n=>n})}catch{}return Eu}()?.createHTML(n)||n}function P_(n){return function Tf(){if(void 0===Tu&&(Tu=null,Ye.trustedTypes))try{Tu=Ye.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:n=>n,createScript:n=>n,createScriptURL:n=>n})}catch{}return Tu}()?.createHTML(n)||n}class R_{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see https://g.co/ng/security#xss)`}}function Yr(n){return n instanceof R_?n.changingThisBreaksApplicationSecurity:n}class JM{constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t=""+t;try{const e=(new window.DOMParser).parseFromString(Lo(t),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(t):(e.removeChild(e.firstChild),e)}catch{return null}}}class eI{constructor(t){if(this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),null==this.inertDocument.body){const e=this.inertDocument.createElement("html");this.inertDocument.appendChild(e);const i=this.inertDocument.createElement("body");e.appendChild(i)}}getInertBodyElement(t){const e=this.inertDocument.createElement("template");if("content"in e)return e.innerHTML=Lo(t),e;const i=this.inertDocument.createElement("body");return i.innerHTML=Lo(t),this.defaultDoc.documentMode&&this.stripCustomNsAttrs(i),i}stripCustomNsAttrs(t){const e=t.attributes;for(let r=e.length-1;0Mu(t.trim())).join(", ")}function tr(n){const t={};for(const e of n.split(","))t[e]=!0;return t}function ul(...n){const t={};for(const e of n)for(const i in e)e.hasOwnProperty(i)&&(t[i]=!0);return t}const F_=tr("area,br,col,hr,img,wbr"),L_=tr("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),V_=tr("rp,rt"),Mf=ul(F_,ul(L_,tr("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")),ul(V_,tr("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")),ul(V_,L_)),If=tr("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),Af=tr("srcset"),B_=ul(If,Af,tr("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,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),tr("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")),rI=tr("script,style,template");class sI{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(t){let e=t.firstChild,i=!0;for(;e;)if(e.nodeType===Node.ELEMENT_NODE?i=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,i&&e.firstChild)e=e.firstChild;else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let r=this.checkClobberedElement(e,e.nextSibling);if(r){e=r;break}e=this.checkClobberedElement(e,e.parentNode)}return this.buf.join("")}startElement(t){const e=t.nodeName.toLowerCase();if(!Mf.hasOwnProperty(e))return this.sanitizedSomething=!0,!rI.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const i=t.attributes;for(let r=0;r"),!0}endElement(t){const e=t.nodeName.toLowerCase();Mf.hasOwnProperty(e)&&!F_.hasOwnProperty(e)&&(this.buf.push(""))}chars(t){this.buf.push(H_(t))}checkClobberedElement(t,e){if(e&&(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`);return e}}const oI=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,aI=/([^\#-~ |!])/g;function H_(n){return n.replace(/&/g,"&").replace(oI,function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"}).replace(aI,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(//g,">")}let Iu;function Pf(n){return"content"in n&&function cI(n){return n.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===n.nodeName}(n)?n.content:null}var Ht=(()=>((Ht=Ht||{})[Ht.NONE=0]="NONE",Ht[Ht.HTML=1]="HTML",Ht[Ht.STYLE=2]="STYLE",Ht[Ht.SCRIPT=3]="SCRIPT",Ht[Ht.URL=4]="URL",Ht[Ht.RESOURCE_URL=5]="RESOURCE_URL",Ht))();function Au(n){const t=function dl(){const n=R();return n&&n[12]}();return t?P_(t.sanitize(Ht.HTML,n)||""):function cl(n,t){const e=function QM(n){return n instanceof R_&&n.getTypeName()||null}(n);if(null!=e&&e!==t){if("ResourceURL"===e&&"URL"===t)return!0;throw new Error(`Required a safe ${t}, got a ${e} (see https://g.co/ng/security#xss)`)}return e===t}(n,"HTML")?P_(Yr(n)):function lI(n,t){let e=null;try{Iu=Iu||function O_(n){const t=new eI(n);return function tI(){try{return!!(new window.DOMParser).parseFromString(Lo(""),"text/html")}catch{return!1}}()?new JM(t):t}(n);let i=t?String(t):"";e=Iu.getInertBodyElement(i);let r=5,s=i;do{if(0===r)throw new Error("Failed to sanitize html because the input is unstable");r--,i=s,s=e.innerHTML,e=Iu.getInertBodyElement(i)}while(i!==s);return Lo((new sI).sanitizeChildren(Pf(e)||e))}finally{if(e){const i=Pf(e)||e;for(;i.firstChild;)i.removeChild(i.firstChild)}}}(Me(),le(n))}const W_="__ngContext__";function bn(n,t){n[W_]=t}function xf(n){const t=function hl(n){return n[W_]||null}(n);return t?Array.isArray(t)?t:t.lView:null}function Of(n){return n.ngOriginalError}function EI(n,...t){n.error(...t)}class fl{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t),i=function bI(n){return n&&n.ngErrorLogger||EI}(t);i(this._console,"ERROR",t),e&&i(this._console,"ORIGINAL ERROR",e)}_findOriginalError(t){let e=t&&Of(t);for(;e&&Of(e);)e=Of(e);return e||null}}const NI=(()=>(typeof requestAnimationFrame<"u"&&requestAnimationFrame||setTimeout).bind(Ye))();function nr(n){return n instanceof Function?n():n}var ti=(()=>((ti=ti||{})[ti.Important=1]="Important",ti[ti.DashCase=2]="DashCase",ti))();function Ff(n,t){return undefined(n,t)}function pl(n){const t=n[3];return Wn(t)?t[3]:t}function Lf(n){return J_(n[13])}function Vf(n){return J_(n[4])}function J_(n){for(;null!==n&&!Wn(n);)n=n[4];return n}function Bo(n,t,e,i,r){if(null!=i){let s,a=!1;Wn(i)?s=i:fi(i)&&(a=!0,i=i[0]);const l=ot(i);0===n&&null!==e?null==r?sy(t,e,l):Ts(t,e,l,r||null,!0):1===n&&null!==e?Ts(t,e,l,r||null,!0):2===n?function hy(n,t,e){const i=Pu(n,t);i&&function YI(n,t,e,i){Ze(n)?n.removeChild(t,e,i):t.removeChild(e)}(n,i,t,e)}(t,l,a):3===n&&t.destroyNode(l),null!=s&&function QI(n,t,e,i,r){const s=e[7];s!==ot(e)&&Bo(t,n,i,s,r);for(let l=10;l0&&(n[e-1][4]=i[4]);const s=yu(n,10+t);!function jI(n,t){gl(n,t,t[11],2,null,null),t[0]=null,t[6]=null}(i[1],i);const a=s[19];null!==a&&a.detachView(s[1]),i[3]=null,i[4]=null,i[2]&=-129}return i}function ny(n,t){if(!(256&t[2])){const e=t[11];Ze(e)&&e.destroyNode&&gl(n,t,e,3,null,null),function WI(n){let t=n[13];if(!t)return Uf(n[1],n);for(;t;){let e=null;if(fi(t))e=t[13];else{const i=t[10];i&&(e=i)}if(!e){for(;t&&!t[4]&&t!==n;)fi(t)&&Uf(t[1],t),t=t[3];null===t&&(t=n),fi(t)&&Uf(t[1],t),e=t&&t[4]}t=e}}(t)}}function Uf(n,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function qI(n,t){let e;if(null!=n&&null!=(e=n.destroyHooks))for(let i=0;i=0?i[r=d]():i[r=-d].unsubscribe(),s+=2}else{const a=i[r=e[s+1]];e[s].call(a)}if(null!==i){for(let s=r+1;ss?"":r[g+1].toLowerCase();const _=8&i?v:null;if(_&&-1!==gy(_,d,0)||2&i&&d!==v){if(Mi(i))return!1;a=!0}}}}else{if(!a&&!Mi(i)&&!Mi(u))return!1;if(a&&Mi(u))continue;a=!1,i=u|1&i}}return Mi(i)||a}function Mi(n){return 0==(1&n)}function iA(n,t,e,i){if(null===t)return-1;let r=0;if(i||!e){let s=!1;for(;r-1)for(e++;e0?'="'+l+'"':"")+"]"}else 8&i?r+="."+a:4&i&&(r+=" "+a);else""!==r&&!Mi(a)&&(t+=yy(s,r),r=""),i=a,s=s||!Mi(i);e++}return""!==r&&(t+=yy(s,r)),t}const Ce={};function j(n){wy(We(),R(),kn()+n,ou())}function wy(n,t,e,i){if(!i)if(3==(3&t[2])){const s=n.preOrderCheckHooks;null!==s&&du(t,s,e)}else{const s=n.preOrderHooks;null!==s&&hu(t,s,0,e)}Zr(e)}function Ru(n,t){return n<<17|t<<2}function Ii(n){return n>>17&32767}function Zf(n){return 2|n}function Sr(n){return(131068&n)>>2}function qf(n,t){return-131069&n|t<<2}function Yf(n){return 1|n}function ky(n,t){const e=n.contentQueries;if(null!==e)for(let i=0;i20&&wy(n,t,20,ou()),e(i,r)}finally{Zr(s)}}function sp(n,t,e){!qv()||(function RA(n,t,e,i){const r=e.directiveStart,s=e.directiveEnd;n.firstCreatePass||el(e,t),bn(i,t);const a=e.initialInputs;for(let l=r;l0;){const e=n[--t];if("number"==typeof e&&e<0)return e}return 0})(l)!=u&&l.push(u),l.push(i,r,a)}}function jy(n,t){null!==n.hostBindings&&n.hostBindings(1,t)}function Uy(n,t){t.flags|=2,(n.components||(n.components=[])).push(t.index)}function LA(n,t,e){if(e){if(t.exportAs)for(let i=0;i0&&cp(e)}}function cp(n){for(let i=Lf(n);null!==i;i=Vf(i))for(let r=10;r0&&cp(s)}const e=n[1].components;if(null!==e)for(let i=0;i0&&cp(r)}}function WA(n,t){const e=ze(t,n),i=e[1];(function GA(n,t){for(let e=t.length;ePromise.resolve(null))();function Zy(n){return n[7]||(n[7]=[])}function qy(n){return n.cleanup||(n.cleanup=[])}function Ky(n,t){const e=n[9],i=e?e.get(fl,null):null;i&&i.handleError(t)}function Xy(n,t,e,i,r){for(let s=0;sthis.processProvider(l,t,e)),er([t],l=>this.processInjectorType(l,[],s)),this.records.set(pp,zo(void 0,this));const a=this.records.get(gp);this.scope=null!=a?a.value:null,this.source=r||("object"==typeof t?null:Le(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,e=sl,i=oe.Default){this.assertNotDestroyed();const r=S_(this),s=Ui(void 0);try{if(!(i&oe.SkipSelf)){let l=this.records.get(t);if(void 0===l){const u=function aP(n){return"function"==typeof n||"object"==typeof n&&n instanceof Ie}(t)&&Ei(t);l=u&&this.injectableDefInScope(u)?zo(vp(t),_l):null,this.records.set(t,l)}if(null!=l)return this.hydrate(t,l)}return(i&oe.Self?Jy():this.parent).get(t,e=i&oe.Optional&&e===sl?null:e)}catch(a){if("NullInjectorError"===a.name){if((a[Cu]=a[Cu]||[]).unshift(Le(t)),r)throw a;return function NM(n,t,e,i){const r=n[Cu];throw t[D_]&&r.unshift(t[D_]),n.message=function FM(n,t,e,i=null){n=n&&"\n"===n.charAt(0)&&"\u0275"==n.charAt(1)?n.substr(2):n;let r=Le(t);if(Array.isArray(t))r=t.map(Le).join(" -> ");else if("object"==typeof t){let s=[];for(let a in t)if(t.hasOwnProperty(a)){let l=t[a];s.push(a+":"+("string"==typeof l?JSON.stringify(l):Le(l)))}r=`{${s.join(", ")}}`}return`${e}${i?"("+i+")":""}[${r}]: ${n.replace(PM,"\n ")}`}("\n"+n.message,r,e,i),n.ngTokenPath=r,n[Cu]=null,n}(a,t,"R3InjectorError",this.source)}throw a}finally{Ui(s),S_(r)}}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(t=>this.get(t))}toString(){const t=[];return this.records.forEach((i,r)=>t.push(Le(r))),`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new $(205,!1)}processInjectorType(t,e,i){if(!(t=_e(t)))return!1;let r=oo(t);const s=null==r&&t.ngModule||void 0,a=void 0===s?t:s,l=-1!==i.indexOf(a);if(void 0!==s&&(r=oo(s)),null==r)return!1;if(null!=r.imports&&!l){let f;i.push(a);try{er(r.imports,g=>{this.processInjectorType(g,e,i)&&(void 0===f&&(f=[]),f.push(g))})}finally{}if(void 0!==f)for(let g=0;gthis.processProvider(w,v,_||Ke))}}this.injectorDefTypes.add(a);const u=Ki(a)||(()=>new a);this.records.set(a,zo(u,_l));const d=r.providers;if(null!=d&&!l){const f=t;er(d,g=>this.processProvider(g,f,d))}return void 0!==s&&void 0!==t.providers}processProvider(t,e,i){let r=Wo(t=_e(t))?t:_e(t&&t.provide);const s=function tP(n,t,e){return iw(n)?zo(void 0,n.useValue):zo(nw(n),_l)}(t);if(Wo(t)||!0!==t.multi)this.records.get(r);else{let a=this.records.get(r);a||(a=zo(void 0,_l,!0),a.factory=()=>Df(a.multi),this.records.set(r,a)),r=t,a.multi.push(t)}this.records.set(r,s)}hydrate(t,e){return e.value===_l&&(e.value=QA,e.value=e.factory()),"object"==typeof e.value&&e.value&&function oP(n){return null!==n&&"object"==typeof n&&"function"==typeof n.ngOnDestroy}(e.value)&&this.onDestroy.add(e.value),e.value}injectableDefInScope(t){if(!t.providedIn)return!1;const e=_e(t.providedIn);return"string"==typeof e?"any"===e||e===this.scope:this.injectorDefTypes.has(e)}}function vp(n){const t=Ei(n),e=null!==t?t.factory:Ki(n);if(null!==e)return e;if(n instanceof Ie)throw new $(204,!1);if(n instanceof Function)return function eP(n){const t=n.length;if(t>0)throw function rl(n,t){const e=[];for(let i=0;ie.factory(n):()=>new n}(n);throw new $(204,!1)}function nw(n,t,e){let i;if(Wo(n)){const r=_e(n);return Ki(r)||vp(r)}if(iw(n))i=()=>_e(n.useValue);else if(function iP(n){return!(!n||!n.useFactory)}(n))i=()=>n.useFactory(...Df(n.deps||[]));else if(function nP(n){return!(!n||!n.useExisting)}(n))i=()=>P(_e(n.useExisting));else{const r=_e(n&&(n.useClass||n.provide));if(!function sP(n){return!!n.deps}(n))return Ki(r)||vp(r);i=()=>new r(...Df(n.deps))}return i}function zo(n,t,e=!1){return{factory:n,value:t,multi:e?[]:void 0}}function iw(n){return null!==n&&"object"==typeof n&&xM in n}function Wo(n){return"function"==typeof n}let ln=(()=>{class n{static create(e,i){if(Array.isArray(e))return ew({name:""},i,e,"");{const r=e.name??"";return ew({name:r},e.parent,e.providers,r)}}}return n.THROW_IF_NOT_FOUND=sl,n.NULL=new Qy,n.\u0275prov=q({token:n,providedIn:"any",factory:()=>P(pp)}),n.__NG_ELEMENT_ID__=-1,n})();function gP(n,t){uu(xf(n)[1],Xt())}function at(n){let t=function gw(n){return Object.getPrototypeOf(n.prototype).constructor}(n.type),e=!0;const i=[n];for(;t;){let r;if(xt(n))r=t.\u0275cmp||t.\u0275dir;else{if(t.\u0275cmp)throw new $(903,"");r=t.\u0275dir}if(r){if(e){i.push(r);const a=n;a.inputs=wp(n.inputs),a.declaredInputs=wp(n.declaredInputs),a.outputs=wp(n.outputs);const l=r.hostBindings;l&&yP(n,l);const u=r.viewQuery,d=r.contentQueries;if(u&&vP(n,u),d&&_P(n,d),ji(n.inputs,r.inputs),ji(n.declaredInputs,r.declaredInputs),ji(n.outputs,r.outputs),xt(r)&&r.data.animation){const f=n.data;f.animation=(f.animation||[]).concat(r.data.animation)}}const s=r.features;if(s)for(let a=0;a=0;i--){const r=n[i];r.hostVars=t+=r.hostVars,r.hostAttrs=pu(r.hostAttrs,e=pu(e,r.hostAttrs))}}(i)}function wp(n){return n===zr?{}:n===Ke?[]:n}function vP(n,t){const e=n.viewQuery;n.viewQuery=e?(i,r)=>{t(i,r),e(i,r)}:t}function _P(n,t){const e=n.contentQueries;n.contentQueries=e?(i,r,s)=>{t(i,r,s),e(i,r,s)}:t}function yP(n,t){const e=n.hostBindings;n.hostBindings=e?(i,r)=>{t(i,r),e(i,r)}:t}let Bu=null;function Go(){if(!Bu){const n=Ye.Symbol;if(n&&n.iterator)Bu=n.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;el(ot(x[i.index])):i.index;if(Ze(e)){let x=null;if(!l&&u&&(x=function KP(n,t,e,i){const r=n.cleanup;if(null!=r)for(let s=0;su?l[u]:null}"string"==typeof a&&(s+=2)}return null}(n,t,r,i.index)),null!==x)(x.__ngLastListenerFn__||x).__ngNextListenerFn__=s,x.__ngLastListenerFn__=s,_=!1;else{s=Ap(i,t,g,s,!1);const H=e.listen(E,r,s);v.push(s,H),f&&f.push(r,A,b,b+1)}}else s=Ap(i,t,g,s,!0),E.addEventListener(r,s,a),v.push(s),f&&f.push(r,A,b,a)}else s=Ap(i,t,g,s,!1);const w=i.outputs;let C;if(_&&null!==w&&(C=w[r])){const S=C.length;if(S)for(let E=0;E0;)t=t[15],n--;return t}(n,pe.lFrame.contextLView))[8]}(n)}function Kw(n,t,e,i,r){const s=n[e+1],a=null===t;let l=i?Ii(s):Sr(s),u=!1;for(;0!==l&&(!1===u||a);){const f=n[l+1];nk(n[l],t)&&(u=!0,n[l+1]=i?Yf(f):Zf(f)),l=i?Ii(f):Sr(f)}u&&(n[e+1]=i?Zf(s):Yf(s))}function nk(n,t){return null===n||null==t||(Array.isArray(n)?n[1]:n)===t||!(!Array.isArray(n)||"string"!=typeof t)&&No(n,t)>=0}function Er(n,t,e){return Pi(n,t,e,!1),Er}function cn(n,t){return Pi(n,t,null,!0),cn}function Pi(n,t,e,i){const r=R(),s=We(),a=function Dr(n){const t=pe.lFrame,e=t.bindingIndex;return t.bindingIndex=t.bindingIndex+n,e}(2);s.firstUpdatePass&&function rC(n,t,e,i){const r=n.data;if(null===r[e+1]){const s=r[kn()],a=function iC(n,t){return t>=n.expandoStartIndex}(n,e);(function lC(n,t){return 0!=(n.flags&(t?16:32))})(s,i)&&null===t&&!a&&(t=!1),t=function dk(n,t,e,i){const r=function af(n){const t=pe.lFrame.currentDirectiveIndex;return-1===t?null:n[t]}(n);let s=i?t.residualClasses:t.residualStyles;if(null===r)0===(i?t.classBindings:t.styleBindings)&&(e=Cl(e=kp(null,n,t,e,i),t.attrs,i),s=null);else{const a=t.directiveStylingLast;if(-1===a||n[a]!==r)if(e=kp(r,n,t,e,i),null===s){let u=function hk(n,t,e){const i=e?t.classBindings:t.styleBindings;if(0!==Sr(i))return n[Ii(i)]}(n,t,i);void 0!==u&&Array.isArray(u)&&(u=kp(null,n,t,u[1],i),u=Cl(u,t.attrs,i),function fk(n,t,e,i){n[Ii(e?t.classBindings:t.styleBindings)]=i}(n,t,i,u))}else s=function pk(n,t,e){let i;const r=t.directiveEnd;for(let s=1+t.directiveStylingLast;s0)&&(d=!0)}else f=e;if(r)if(0!==u){const v=Ii(n[l+1]);n[i+1]=Ru(v,l),0!==v&&(n[v+1]=qf(n[v+1],i)),n[l+1]=function dA(n,t){return 131071&n|t<<17}(n[l+1],i)}else n[i+1]=Ru(l,0),0!==l&&(n[l+1]=qf(n[l+1],i)),l=i;else n[i+1]=Ru(u,0),0===l?l=i:n[u+1]=qf(n[u+1],i),u=i;d&&(n[i+1]=Zf(n[i+1])),Kw(n,f,i,!0),Kw(n,f,i,!1),function tk(n,t,e,i,r){const s=r?n.residualClasses:n.residualStyles;null!=s&&"string"==typeof t&&No(s,t)>=0&&(e[i+1]=Yf(e[i+1]))}(t,f,n,i,s),a=Ru(l,u),s?t.classBindings=a:t.styleBindings=a}(r,s,t,e,a,i)}}(s,n,a,i),t!==Ce&&En(r,a,t)&&function oC(n,t,e,i,r,s,a,l){if(!(3&t.type))return;const u=n.data,d=u[l+1];zu(function Sy(n){return 1==(1&n)}(d)?aC(u,t,e,r,Sr(d),a):void 0)||(zu(s)||function Dy(n){return 2==(2&n)}(d)&&(s=aC(u,null,e,r,l,a)),function JI(n,t,e,i,r){const s=Ze(n);if(t)r?s?n.addClass(e,i):e.classList.add(i):s?n.removeClass(e,i):e.classList.remove(i);else{let a=-1===i.indexOf("-")?void 0:ti.DashCase;if(null==r)s?n.removeStyle(e,i,a):e.style.removeProperty(i);else{const l="string"==typeof r&&r.endsWith("!important");l&&(r=r.slice(0,-10),a|=ti.Important),s?n.setStyle(e,i,r,a):e.style.setProperty(i,r,l?"important":"")}}}(i,a,bo(kn(),e),r,s))}(s,s.data[kn()],r,r[11],n,r[a+1]=function vk(n,t){return null==n||("string"==typeof t?n+=t:"object"==typeof n&&(n=Le(Yr(n)))),n}(t,e),i,a)}function kp(n,t,e,i,r){let s=null;const a=e.directiveEnd;let l=e.directiveStylingLast;for(-1===l?l=e.directiveStart:l++;l0;){const u=n[r],d=Array.isArray(u),f=d?u[1]:u,g=null===f;let v=e[r+1];v===Ce&&(v=g?Ke:void 0);let _=g?yf(v,i):f===i?v:void 0;if(d&&!zu(_)&&(_=yf(u,i)),zu(_)&&(l=_,a))return l;const w=n[r+1];r=a?Ii(w):Sr(w)}if(null!==t){let u=s?t.residualClasses:t.residualStyles;null!=u&&(l=yf(u,i))}return l}function zu(n){return void 0!==n}function bt(n,t=""){const e=R(),i=We(),r=n+20,s=i.firstCreatePass?Ho(i,r,1,t,null):i.data[r],a=e[r]=function Bf(n,t){return Ze(n)?n.createText(t):n.createTextNode(t)}(e[11],t);ku(i,e,a,s),Ji(s,!1)}function Is(n){return Dl("",n,""),Is}function Dl(n,t,e){const i=R(),r=function Zo(n,t,e,i){return En(n,Mo(),e)?t+le(e)+i:Ce}(i,n,t,e);return r!==Ce&&br(i,kn(),r),Dl}const As=void 0;var Lk=["en",[["a","p"],["AM","PM"],As],[["AM","PM"],As,As],[["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"]],As,[["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"]],As,[["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}",As,"{1} 'at' {0}",As],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function Fk(n){const e=Math.floor(Math.abs(n)),i=n.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===i?1:5}];let ia={};function Rn(n){const t=function Vk(n){return n.toLowerCase().replace(/_/g,"-")}(n);let e=AC(t);if(e)return e;const i=t.split("-")[0];if(e=AC(i),e)return e;if("en"===i)return Lk;throw new Error(`Missing locale data for the locale "${n}".`)}function AC(n){return n in ia||(ia[n]=Ye.ng&&Ye.ng.common&&Ye.ng.common.locales&&Ye.ng.common.locales[n]),ia[n]}var W=(()=>((W=W||{})[W.LocaleId=0]="LocaleId",W[W.DayPeriodsFormat=1]="DayPeriodsFormat",W[W.DayPeriodsStandalone=2]="DayPeriodsStandalone",W[W.DaysFormat=3]="DaysFormat",W[W.DaysStandalone=4]="DaysStandalone",W[W.MonthsFormat=5]="MonthsFormat",W[W.MonthsStandalone=6]="MonthsStandalone",W[W.Eras=7]="Eras",W[W.FirstDayOfWeek=8]="FirstDayOfWeek",W[W.WeekendRange=9]="WeekendRange",W[W.DateFormat=10]="DateFormat",W[W.TimeFormat=11]="TimeFormat",W[W.DateTimeFormat=12]="DateTimeFormat",W[W.NumberSymbols=13]="NumberSymbols",W[W.NumberFormats=14]="NumberFormats",W[W.CurrencyCode=15]="CurrencyCode",W[W.CurrencySymbol=16]="CurrencySymbol",W[W.CurrencyName=17]="CurrencyName",W[W.Currencies=18]="Currencies",W[W.Directionality=19]="Directionality",W[W.PluralCase=20]="PluralCase",W[W.ExtraData=21]="ExtraData",W))();const Wu="en-US";let PC=Wu;function Op(n,t,e,i,r){if(n=_e(n),Array.isArray(n))for(let s=0;s>20;if(Wo(n)||!n.multi){const _=new Qa(u,r,M),w=Fp(l,t,r?f:f+v,g);-1===w?(vu(el(d,a),s,l),Np(s,n,t.length),t.push(l),d.directiveStart++,d.directiveEnd++,r&&(d.providerIndexes+=1048576),e.push(_),a.push(_)):(e[w]=_,a[w]=_)}else{const _=Fp(l,t,f+v,g),w=Fp(l,t,f,f+v),C=_>=0&&e[_],S=w>=0&&e[w];if(r&&!S||!r&&!C){vu(el(d,a),s,l);const E=function Fx(n,t,e,i,r){const s=new Qa(n,e,M);return s.multi=[],s.index=t,s.componentProviders=0,eD(s,r,i&&!e),s}(r?Nx:Ox,e.length,r,i,u);!r&&S&&(e[w].providerFactory=E),Np(s,n,t.length,0),t.push(l),d.directiveStart++,d.directiveEnd++,r&&(d.providerIndexes+=1048576),e.push(E),a.push(E)}else Np(s,n,_>-1?_:w,eD(e[r?w:_],u,!r&&i));!r&&i&&S&&e[w].componentProviders++}}}function Np(n,t,e,i){const r=Wo(t),s=function rP(n){return!!n.useClass}(t);if(r||s){const u=(s?_e(t.useClass):t).prototype.ngOnDestroy;if(u){const d=n.destroyHooks||(n.destroyHooks=[]);if(!r&&t.multi){const f=d.indexOf(e);-1===f?d.push(e,[i,u]):d[f+1].push(i,u)}else d.push(e,u)}}}function eD(n,t,e){return e&&n.componentProviders++,n.multi.push(t)-1}function Fp(n,t,e,i){for(let r=e;r{e.providersResolver=(i,r)=>function Rx(n,t,e){const i=We();if(i.firstCreatePass){const r=xt(n);Op(e,i.data,i.blueprint,r,!0),Op(t,i.data,i.blueprint,r,!1)}}(i,r?r(n):n,t)}}class tD{}class Bx{resolveComponentFactory(t){throw function Vx(n){const t=Error(`No component factory found for ${Le(n)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=n,t}(t)}}let Qr=(()=>{class n{}return n.NULL=new Bx,n})();function Hx(){return sa(Xt(),R())}function sa(n,t){return new Tt(Gn(n,t))}let Tt=(()=>{class n{constructor(e){this.nativeElement=e}}return n.__NG_ELEMENT_ID__=Hx,n})();function jx(n){return n instanceof Tt?n.nativeElement:n}class Ml{}let $n=(()=>{class n{}return n.__NG_ELEMENT_ID__=()=>function zx(){const n=R(),e=ze(Xt().index,n);return function Ux(n){return n[11]}(fi(e)?e:n)}(),n})(),Wx=(()=>{class n{}return n.\u0275prov=q({token:n,providedIn:"root",factory:()=>null}),n})();class Il{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const Gx=new Il("13.3.0"),Vp={};function Yu(n,t,e,i,r=!1){for(;null!==e;){const s=t[e.index];if(null!==s&&i.push(ot(s)),Wn(s))for(let l=10;l-1&&(jf(t,i),yu(e,i))}this._attachedToViewContainer=!1}ny(this._lView[1],this._lView)}onDestroy(t){Ly(this._lView[1],this._lView,null,t)}markForCheck(){up(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){hp(this._lView[1],this._lView,this.context)}checkNoChanges(){!function ZA(n,t,e){au(!0);try{hp(n,t,e)}finally{au(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(){if(this._appRef)throw new $(902,"");this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function zI(n,t){gl(n,t,t[11],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new $(902,"");this._appRef=t}}class $x extends Al{constructor(t){super(t),this._view=t}detectChanges(){$y(this._view)}checkNoChanges(){!function qA(n){au(!0);try{$y(n)}finally{au(!1)}}(this._view)}get context(){return null}}class iD extends Qr{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=on(t);return new Bp(e,this.ngModule)}}function rD(n){const t=[];for(let e in n)n.hasOwnProperty(e)&&t.push({propName:n[e],templateName:e});return t}class Bp extends tD{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=function cA(n){return n.map(lA).join(",")}(t.selectors),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return rD(this.componentDef.inputs)}get outputs(){return rD(this.componentDef.outputs)}create(t,e,i,r){const s=(r=r||this.ngModule)?function qx(n,t){return{get:(e,i,r)=>{const s=n.get(e,Vp,r);return s!==Vp||i===Vp?s:t.get(e,i,r)}}}(t,r.injector):t,a=s.get(Ml,Xi),l=s.get(Wx,null),u=a.createRenderer(null,this.componentDef),d=this.componentDef.selectors[0][0]||"div",f=i?function Fy(n,t,e){if(Ze(n))return n.selectRootElement(t,e===Qn.ShadowDom);let i="string"==typeof t?n.querySelector(t):t;return i.textContent="",i}(u,i,this.componentDef.encapsulation):Hf(a.createRenderer(null,this.componentDef),d,function Zx(n){const t=n.toLowerCase();return"svg"===t?"svg":"math"===t?D:null}(d)),g=this.componentDef.onPush?576:528,v=function pw(n,t){return{components:[],scheduler:n||NI,clean:YA,playerHandler:t||null,flags:0}}(),_=Fu(0,null,null,1,0,null,null,null,null,null),w=ml(null,_,v,g,null,null,a,u,l,s);let C,S;lu(w);try{const E=function hw(n,t,e,i,r,s){const a=e[1];e[20]=n;const u=Ho(a,20,2,"#host",null),d=u.mergedAttrs=t.hostAttrs;null!==d&&(Vu(u,d,!0),null!==n&&(fu(r,n,d),null!==u.classes&&$f(r,n,u.classes),null!==u.styles&&py(r,n,u.styles)));const f=i.createRenderer(n,t),g=ml(e,Oy(t),null,t.onPush?64:16,e[20],u,i,f,s||null,null);return a.firstCreatePass&&(vu(el(u,e),a,t.type),Uy(a,u),zy(u,e.length,1)),Lu(e,g),e[20]=g}(f,this.componentDef,w,a,u);if(f)if(i)fu(u,f,["ng-version",Gx.full]);else{const{attrs:b,classes:A}=function uA(n){const t=[],e=[];let i=1,r=2;for(;i0&&$f(u,f,A.join(" "))}if(S=Ya(_,20),void 0!==e){const b=S.projection=[];for(let A=0;Au(a,t)),t.contentQueries){const u=Xt();t.contentQueries(1,a,u.directiveStart)}const l=Xt();return!s.firstCreatePass||null===t.hostBindings&&null===t.hostAttrs||(Zr(l.index),Hy(e[1],l,0,l.directiveStart,l.directiveEnd,t),jy(t,a)),a}(E,this.componentDef,w,v,[gP]),vl(_,w,null)}finally{cu()}return new Kx(this.componentType,C,sa(S,w),w,S)}}class Kx extends class Lx{}{constructor(t,e,i,r,s){super(),this.location=i,this._rootLView=r,this._tNode=s,this.instance=e,this.hostView=this.changeDetectorRef=new $x(r),this.componentType=t}get injector(){return new Po(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(t){this.hostView.onDestroy(t)}}class oa{}const aa=new Map;class aD extends oa{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new iD(this);const i=Un(t);this._bootstrapComponents=nr(i.bootstrap),this._r3Injector=tw(t,e,[{provide:oa,useValue:this},{provide:Qr,useValue:this.componentFactoryResolver}],Le(t)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(t)}get(t,e=ln.THROW_IF_NOT_FOUND,i=oe.Default){return t===ln||t===oa||t===pp?this:this._r3Injector.get(t,e,i)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Hp extends class Qx{}{constructor(t){super(),this.moduleType=t,null!==Un(t)&&function Jx(n){const t=new Set;!function e(i){const r=Un(i,!0),s=r.id;null!==s&&(function sD(n,t,e){if(t&&t!==e)throw new Error(`Duplicate module registered for ${n} - ${Le(t)} vs ${Le(t.name)}`)}(s,aa.get(s),i),aa.set(s,i));const a=nr(r.imports);for(const l of a)t.has(l)||(t.add(l),e(l))}(n)}(t)}create(t){return new aD(this.moduleType,t)}}function On(n,t,e){const i=Pn()+n,r=R();return r[i]===Ce?rr(r,i,e?t.call(e):t()):wl(r,i)}function Ps(n,t,e,i){return dD(R(),Pn(),n,t,e,i)}function un(n,t,e,i,r){return hD(R(),Pn(),n,t,e,i,r)}function jp(n,t,e,i,r,s){return fD(R(),Pn(),n,t,e,i,r,s)}function lD(n,t,e,i,r,s,a){return function pD(n,t,e,i,r,s,a,l,u){const d=t+e;return gi(n,d,r,s,a,l)?rr(n,d+4,u?i.call(u,r,s,a,l):i(r,s,a,l)):Pl(n,d+4)}(R(),Pn(),n,t,e,i,r,s,a)}function Up(n,t,e,i,r,s,a,l){const u=Pn()+n,d=R(),f=gi(d,u,e,i,r,s);return En(d,u+4,a)||f?rr(d,u+5,l?t.call(l,e,i,r,s,a):t(e,i,r,s,a)):wl(d,u+5)}function zp(n,t,e,i){return function gD(n,t,e,i,r,s){let a=t+e,l=!1;for(let u=0;u=0;e--){const i=t[e];if(n===i.name)return i}}(t,e.pipeRegistry),e.data[r]=i,i.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(r,i.onDestroy)):i=e.data[r];const s=i.factory||(i.factory=Ki(i.type)),a=Ui(M);try{const l=gu(!1),u=s();return gu(l),function MP(n,t,e,i){e>=n.data.length&&(n.data[e]=null,n.blueprint[e]=null),t[e]=i}(e,R(),r,u),u}finally{Ui(a)}}function Ku(n,t,e){const i=n+20,r=R(),s=wr(r,i);return kl(r,i)?dD(r,Pn(),t,s.transform,e,s):s.transform(e)}function xi(n,t,e,i){const r=n+20,s=R(),a=wr(s,r);return kl(s,r)?hD(s,Pn(),t,a.transform,e,i,a):a.transform(e,i)}function Ri(n,t,e,i,r){const s=n+20,a=R(),l=wr(a,s);return kl(a,s)?fD(a,Pn(),t,l.transform,e,i,r,l):l.transform(e,i,r)}function kl(n,t){return n[1].data[t].pure}function Wp(n){return t=>{setTimeout(n,void 0,t)}}const K=class s1 extends ve{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,i){let r=t,s=e||(()=>null),a=i;if(t&&"object"==typeof t){const u=t;r=u.next?.bind(u),s=u.error?.bind(u),a=u.complete?.bind(u)}this.__isAsync&&(s=Wp(s),r&&(r=Wp(r)),a&&(a=Wp(a)));const l=super.subscribe({next:r,error:s,complete:a});return t instanceof Nt&&t.add(l),l}};function o1(){return this._results[Go()]()}class Gp{constructor(t=!1){this._emitDistinctChangesOnly=t,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const e=Go(),i=Gp.prototype;i[e]||(i[e]=o1)}get changes(){return this._changes||(this._changes=new K)}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,e){return this._results.reduce(t,e)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,e){const i=this;i.dirty=!1;const r=pi(t);(this._changesDetected=!function CM(n,t,e){if(n.length!==t.length)return!1;for(let i=0;i{class n{}return n.__NG_ELEMENT_ID__=c1,n})();const a1=ar,l1=class extends a1{constructor(t,e,i){super(),this._declarationLView=t,this._declarationTContainer=e,this.elementRef=i}createEmbeddedView(t){const e=this._declarationTContainer.tViews,i=ml(this._declarationLView,e,t,16,null,e.declTNode,null,null,null,null);i[17]=this._declarationLView[this._declarationTContainer.index];const s=this._declarationLView[19];return null!==s&&(i[19]=s.createEmbeddedView(e)),vl(e,i,t),new Al(i)}};function c1(){return Xu(Xt(),R())}function Xu(n,t){return 4&n.type?new l1(t,n,sa(n,t)):null}let ii=(()=>{class n{}return n.__NG_ELEMENT_ID__=u1,n})();function u1(){return _D(Xt(),R())}const d1=ii,mD=class extends d1{constructor(t,e,i){super(),this._lContainer=t,this._hostTNode=e,this._hostLView=i}get element(){return sa(this._hostTNode,this._hostLView)}get injector(){return new Po(this._hostTNode,this._hostLView)}get parentInjector(){const t=mu(this._hostTNode,this._hostLView);if(a_(t)){const e=Ao(t,this._hostLView),i=Io(t);return new Po(e[1].data[i+8],e)}return new Po(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const e=vD(this._lContainer);return null!==e&&e[t]||null}get length(){return this._lContainer.length-10}createEmbeddedView(t,e,i){const r=t.createEmbeddedView(e||{});return this.insert(r,i),r}createComponent(t,e,i,r,s){const a=t&&!function il(n){return"function"==typeof n}(t);let l;if(a)l=e;else{const g=e||{};l=g.index,i=g.injector,r=g.projectableNodes,s=g.ngModuleRef}const u=a?t:new Bp(on(t)),d=i||this.parentInjector;if(!s&&null==u.ngModule){const v=(a?d:this.parentInjector).get(oa,null);v&&(s=v)}const f=u.create(d,r,void 0,s);return this.insert(f.hostView,l),f}insert(t,e){const i=t._lView,r=i[1];if(function tf(n){return Wn(n[3])}(i)){const f=this.indexOf(t);if(-1!==f)this.detach(f);else{const g=i[3],v=new mD(g,g[6],g[3]);v.detach(v.indexOf(t))}}const s=this._adjustIndex(e),a=this._lContainer;!function GI(n,t,e,i){const r=10+i,s=e.length;i>0&&(e[r-1][4]=t),i0)i.push(a[l/2]);else{const d=s[l+1],f=t[-u];for(let g=10;g{class n{constructor(e){this.appInits=e,this.resolve=ed,this.reject=ed,this.initialized=!1,this.done=!1,this.donePromise=new Promise((i,r)=>{this.resolve=i,this.reject=r})}runInitializers(){if(this.initialized)return;const e=[],i=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let r=0;r{s.subscribe({complete:l,error:u})});e.push(a)}}Promise.all(e).then(()=>{i()}).catch(r=>{this.reject(r)}),0===e.length&&i(),this.initialized=!0}}return n.\u0275fac=function(e){return new(e||n)(P(HD,8))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const Rl=new Ie("AppId",{providedIn:"root",factory:function jD(){return`${ag()}${ag()}${ag()}`}});function ag(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const UD=new Ie("Platform Initializer"),ca=new Ie("Platform ID"),L1=new Ie("appBootstrapListener");let V1=(()=>{class n{log(e){console.log(e)}warn(e){console.warn(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();const mi=new Ie("LocaleId",{providedIn:"root",factory:()=>E_(mi,oe.Optional|oe.SkipSelf)||function B1(){return typeof $localize<"u"&&$localize.locale||Wu}()}),z1=(()=>Promise.resolve(0))();function lg(n){typeof Zone>"u"?z1.then(()=>{n&&n.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",n)}class lt{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new K(!1),this.onMicrotaskEmpty=new K(!1),this.onStable=new K(!1),this.onError=new K(!1),typeof Zone>"u")throw new Error("In this configuration Angular requires Zone.js");Zone.assertZonePatched();const r=this;r._nesting=0,r._outer=r._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(r._inner=r._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(r._inner=r._inner.fork(Zone.longStackTraceZoneSpec)),r.shouldCoalesceEventChangeDetection=!i&&e,r.shouldCoalesceRunChangeDetection=i,r.lastRequestAnimationFrameId=-1,r.nativeRequestAnimationFrame=function W1(){let n=Ye.requestAnimationFrame,t=Ye.cancelAnimationFrame;if(typeof Zone<"u"&&n&&t){const e=n[Zone.__symbol__("OriginalDelegate")];e&&(n=e);const i=t[Zone.__symbol__("OriginalDelegate")];i&&(t=i)}return{nativeRequestAnimationFrame:n,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function Z1(n){const t=()=>{!function $1(n){n.isCheckStableRunning||-1!==n.lastRequestAnimationFrameId||(n.lastRequestAnimationFrameId=n.nativeRequestAnimationFrame.call(Ye,()=>{n.fakeTopEventTask||(n.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{n.lastRequestAnimationFrameId=-1,ug(n),n.isCheckStableRunning=!0,cg(n),n.isCheckStableRunning=!1},void 0,()=>{},()=>{})),n.fakeTopEventTask.invoke()}),ug(n))}(n)};n._inner=n._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(e,i,r,s,a,l)=>{try{return zD(n),e.invokeTask(r,s,a,l)}finally{(n.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||n.shouldCoalesceRunChangeDetection)&&t(),WD(n)}},onInvoke:(e,i,r,s,a,l,u)=>{try{return zD(n),e.invoke(r,s,a,l,u)}finally{n.shouldCoalesceRunChangeDetection&&t(),WD(n)}},onHasTask:(e,i,r,s)=>{e.hasTask(r,s),i===r&&("microTask"==s.change?(n._hasPendingMicrotasks=s.microTask,ug(n),cg(n)):"macroTask"==s.change&&(n.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,i,r,s)=>(e.handleError(r,s),n.runOutsideAngular(()=>n.onError.emit(s)),!1)})}(r)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!lt.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")}static assertNotInAngularZone(){if(lt.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")}run(t,e,i){return this._inner.run(t,e,i)}runTask(t,e,i,r){const s=this._inner,a=s.scheduleEventTask("NgZoneEvent: "+r,t,G1,ed,ed);try{return s.runTask(a,e,i)}finally{s.cancelTask(a)}}runGuarded(t,e,i){return this._inner.runGuarded(t,e,i)}runOutsideAngular(t){return this._outer.run(t)}}const G1={};function cg(n){if(0==n._nesting&&!n.hasPendingMicrotasks&&!n.isStable)try{n._nesting++,n.onMicrotaskEmpty.emit(null)}finally{if(n._nesting--,!n.hasPendingMicrotasks)try{n.runOutsideAngular(()=>n.onStable.emit(null))}finally{n.isStable=!0}}}function ug(n){n.hasPendingMicrotasks=!!(n._hasPendingMicrotasks||(n.shouldCoalesceEventChangeDetection||n.shouldCoalesceRunChangeDetection)&&-1!==n.lastRequestAnimationFrameId)}function zD(n){n._nesting++,n.isStable&&(n.isStable=!1,n.onUnstable.emit(null))}function WD(n){n._nesting--,cg(n)}class q1{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new K,this.onMicrotaskEmpty=new K,this.onStable=new K,this.onError=new K}run(t,e,i){return t.apply(e,i)}runGuarded(t,e,i){return t.apply(e,i)}runOutsideAngular(t){return t()}runTask(t,e,i,r){return t.apply(e,i)}}let dg=(()=>{class n{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.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:()=>{lt.assertNotInAngularZone(),lg(()=>{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())lg(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(e)||(clearTimeout(i.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,i,r){let s=-1;i&&i>0&&(s=setTimeout(()=>{this._callbacks=this._callbacks.filter(a=>a.timeoutId!==s),e(this._didWork,this.getPendingTasks())},i)),this._callbacks.push({doneCb:e,timeoutId:s,updateCb:r})}whenStable(e,i,r){if(r&&!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(e,i,r),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,i,r){return[]}}return n.\u0275fac=function(e){return new(e||n)(P(lt))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})(),GD=(()=>{class n{constructor(){this._applications=new Map,hg.addToWindow(this)}registerApplication(e,i){this._applications.set(e,i)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,i=!0){return hg.findTestabilityInTree(this,e,i)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();class Y1{addToWindow(t){}findTestabilityInTree(t,e,i){return null}}let Oi,hg=new Y1;const $D=new Ie("AllowMultipleToken");function ZD(n,t,e=[]){const i=`Platform: ${t}`,r=new Ie(i);return(s=[])=>{let a=qD();if(!a||a.injector.get($D,!1))if(n)n(e.concat(s).concat({provide:r,useValue:!0}));else{const l=e.concat(s).concat({provide:r,useValue:!0},{provide:gp,useValue:"platform"});!function J1(n){if(Oi&&!Oi.destroyed&&!Oi.injector.get($D,!1))throw new $(400,"");Oi=n.get(YD);const t=n.get(UD,null);t&&t.forEach(e=>e())}(ln.create({providers:l,name:i}))}return function eR(n){const t=qD();if(!t)throw new $(401,"");return t}()}}function qD(){return Oi&&!Oi.destroyed?Oi:null}let YD=(()=>{class n{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,i){const l=function tR(n,t){let e;return e="noop"===n?new q1:("zone.js"===n?void 0:n)||new lt({enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!!t?.ngZoneEventCoalescing,shouldCoalesceRunChangeDetection:!!t?.ngZoneRunCoalescing}),e}(i?i.ngZone:void 0,{ngZoneEventCoalescing:i&&i.ngZoneEventCoalescing||!1,ngZoneRunCoalescing:i&&i.ngZoneRunCoalescing||!1}),u=[{provide:lt,useValue:l}];return l.run(()=>{const d=ln.create({providers:u,parent:this.injector,name:e.moduleType.name}),f=e.create(d),g=f.injector.get(fl,null);if(!g)throw new $(402,"");return l.runOutsideAngular(()=>{const v=l.onError.subscribe({next:_=>{g.handleError(_)}});f.onDestroy(()=>{fg(this._modules,f),v.unsubscribe()})}),function nR(n,t,e){try{const i=e();return Uu(i)?i.catch(r=>{throw t.runOutsideAngular(()=>n.handleError(r)),r}):i}catch(i){throw t.runOutsideAngular(()=>n.handleError(i)),i}}(g,l,()=>{const v=f.injector.get(og);return v.runInitializers(),v.donePromise.then(()=>(function Uk(n){Cn(n,"Expected localeId to be defined"),"string"==typeof n&&(PC=n.toLowerCase().replace(/_/g,"-"))}(f.injector.get(mi,Wu)||Wu),this._moduleDoBootstrap(f),f))})})}bootstrapModule(e,i=[]){const r=KD({},i);return function X1(n,t,e){const i=new Hp(e);return Promise.resolve(i)}(0,0,e).then(s=>this.bootstrapModuleFactory(s,r))}_moduleDoBootstrap(e){const i=e.injector.get(td);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(r=>i.bootstrap(r));else{if(!e.instance.ngDoBootstrap)throw new $(403,"");e.instance.ngDoBootstrap(i)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new $(404,"");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return n.\u0275fac=function(e){return new(e||n)(P(ln))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();function KD(n,t){return Array.isArray(t)?t.reduce(KD,n):{...n,...t}}let td=(()=>{class n{constructor(e,i,r,s,a){this._zone=e,this._injector=i,this._exceptionHandler=r,this._componentFactoryResolver=s,this._initStatus=a,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const l=new nt(d=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{d.next(this._stable),d.complete()})}),u=new nt(d=>{let f;this._zone.runOutsideAngular(()=>{f=this._zone.onStable.subscribe(()=>{lt.assertNotInAngularZone(),lg(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,d.next(!0))})})});const g=this._zone.onUnstable.subscribe(()=>{lt.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{d.next(!1)}))});return()=>{f.unsubscribe(),g.unsubscribe()}});this.isStable=sn(l,u.pipe(Se()))}bootstrap(e,i){if(!this._initStatus.done)throw new $(405,"");let r;r=e instanceof tD?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(r.componentType);const s=function Q1(n){return n.isBoundToModule}(r)?void 0:this._injector.get(oa),l=r.create(ln.NULL,[],i||r.selector,s),u=l.location.nativeElement,d=l.injector.get(dg,null),f=d&&l.injector.get(GD);return d&&f&&f.registerApplication(u,d),l.onDestroy(()=>{this.detachView(l.hostView),fg(this.components,l),f&&f.unregisterApplication(u)}),this._loadComponent(l),l}tick(){if(this._runningTick)throw new $(101,"");try{this._runningTick=!0;for(let e of this._views)e.detectChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;fg(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(L1,[]).concat(this._bootstrapListeners).forEach(r=>r(e))}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}get viewCount(){return this._views.length}}return n.\u0275fac=function(e){return new(e||n)(P(lt),P(ln),P(fl),P(Qr),P(og))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function fg(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}let QD=!0,ua=(()=>{class n{}return n.__NG_ELEMENT_ID__=sR,n})();function sR(n){return function oR(n,t,e){if(Ss(n)&&!e){const i=ze(n.index,t);return new Al(i,i)}return 47&n.type?new Al(t[16],t):null}(Xt(),R(),16==(16&n))}class iS{constructor(){}supports(t){return yl(t)}create(t){return new hR(t)}}const dR=(n,t)=>t;class hR{constructor(t){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=t||dR}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,i=this._removalsHead,r=0,s=null;for(;e||i;){const a=!i||e&&e.currentIndex{a=this._trackByFn(r,l),null!==e&&Object.is(e.trackById,a)?(i&&(e=this._verifyReinsertion(e,l,a,r)),Object.is(e.item,l)||this._addIdentityChange(e,l)):(e=this._mismatch(e,l,a,r),i=!0),e=e._next,r++}),this.length=r;return this._truncate(e),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,i,r){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,s,r)):null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(i,r))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,s,r)):t=this._addAfter(new fR(e,i),s,r),t}_verifyReinsertion(t,e,i,r){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null);return null!==s?t=this._reinsertAfter(s,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}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(t,e,i){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const r=t._prevRemoved,s=t._nextRemoved;return null===r?this._removalsHead=s:r._nextRemoved=s,null===s?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(t,e,i),this._addToMoves(t,i),t}_moveAfter(t,e,i){return this._unlink(t),this._insertAfter(t,e,i),this._addToMoves(t,i),t}_addAfter(t,e,i){return this._insertAfter(t,e,i),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,i){const r=null===e?this._itHead:e._next;return t._next=r,t._prev=e,null===r?this._itTail=t:r._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new rS),this._linkedRecords.put(t),t.currentIndex=i,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,i=t._next;return null===e?this._itHead=i:e._next=i,null===i?this._itTail=e:i._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new rS),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class fR{constructor(t,e){this.item=t,this.trackById=e,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 pR{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let i;for(i=this._head;null!==i;i=i._nextDup)if((null===e||e<=i.currentIndex)&&Object.is(i.trackById,t))return i;return null}remove(t){const e=t._prevDup,i=t._nextDup;return null===e?this._head=i:e._nextDup=i,null===i?this._tail=e:i._prevDup=e,null===this._head}}class rS{constructor(){this.map=new Map}put(t){const e=t.trackById;let i=this.map.get(e);i||(i=new pR,this.map.set(e,i)),i.add(t)}get(t,e){const r=this.map.get(t);return r?r.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function sS(n,t,e){const i=n.previousIndex;if(null===i)return i;let r=0;return e&&i{if(e&&e.key===r)this._maybeAddToChanges(e,i),this._appendAfter=e,e=e._next;else{const s=this._getOrCreateRecordForKey(r,i);e=this._insertBeforeOrAppend(e,s)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let i=e;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const i=t._prev;return e._next=t,e._prev=i,t._prev=e,i&&(i._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const r=this._records.get(t);this._maybeAddToChanges(r,e);const s=r._prev,a=r._next;return s&&(s._next=a),a&&(a._prev=s),r._next=null,r._prev=null,r}const i=new mR(t);return this._records.set(t,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(i=>e(t[i],i))}}class mR{constructor(t){this.key=t,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 aS(){return new rd([new iS])}let rd=(()=>{class n{constructor(e){this.factories=e}static create(e,i){if(null!=i){const r=i.factories.slice();e=e.concat(r)}return new n(e)}static extend(e){return{provide:n,useFactory:i=>n.create(e,i||aS()),deps:[[n,new Su,new Du]]}}find(e){const i=this.factories.find(r=>r.supports(e));if(null!=i)return i;throw new $(901,"")}}return n.\u0275prov=q({token:n,providedIn:"root",factory:aS}),n})();function lS(){return new Ol([new oS])}let Ol=(()=>{class n{constructor(e){this.factories=e}static create(e,i){if(i){const r=i.factories.slice();e=e.concat(r)}return new n(e)}static extend(e){return{provide:n,useFactory:i=>n.create(e,i||lS()),deps:[[n,new Su,new Du]]}}find(e){const i=this.factories.find(s=>s.supports(e));if(i)return i;throw new $(901,"")}}return n.\u0275prov=q({token:n,providedIn:"root",factory:lS}),n})();const yR=ZD(null,"core",[{provide:ca,useValue:"unknown"},{provide:YD,deps:[ln]},{provide:GD,deps:[]},{provide:V1,deps:[]}]);let wR=(()=>{class n{constructor(e){}}return n.\u0275fac=function(e){return new(e||n)(P(td))},n.\u0275mod=st({type:n}),n.\u0275inj=be({}),n})(),sd=null;function lr(){return sd}const pt=new Ie("DocumentToken");let Nl=(()=>{class n{historyGo(e){throw new Error("Not implemented")}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=q({token:n,factory:function(){return function bR(){return P(cS)}()},providedIn:"platform"}),n})(),cS=(()=>{class n extends Nl{constructor(e){super(),this._doc=e,this._init()}_init(){this.location=window.location,this._history=window.history}getBaseHrefFromDOM(){return lr().getBaseHref(this._doc)}onPopState(e){const i=lr().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=lr().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",e,!1),()=>i.removeEventListener("hashchange",e)}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(e){this.location.pathname=e}pushState(e,i,r){uS()?this._history.pushState(e,i,r):this.location.hash=r}replaceState(e,i,r){uS()?this._history.replaceState(e,i,r):this.location.hash=r}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}}return n.\u0275fac=function(e){return new(e||n)(P(pt))},n.\u0275prov=q({token:n,factory:function(){return function ER(){return new cS(P(pt))}()},providedIn:"platform"}),n})();function uS(){return!!window.history.pushState}function dS(n,t){if(0==n.length)return t;if(0==t.length)return n;let e=0;return n.endsWith("/")&&e++,t.startsWith("/")&&e++,2==e?n+t.substring(1):1==e?n+t:n+"/"+t}function hS(n){const t=n.match(/#|\?|$/),e=t&&t.index||n.length;return n.slice(0,e-("/"===n[e-1]?1:0))+n.slice(e)}function xs(n){return n&&"?"!==n[0]?"?"+n:n}let _g=(()=>{class n{historyGo(e){throw new Error("Not implemented")}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=q({token:n,factory:function(){return function TR(n){const t=P(pt).location;return new IR(P(Nl),t&&t.origin||"")}()},providedIn:"root"}),n})();const MR=new Ie("appBaseHref");let IR=(()=>{class n extends _g{constructor(e,i){if(super(),this._platformLocation=e,this._removeListenerFns=[],null==i&&(i=this._platformLocation.getBaseHrefFromDOM()),null==i)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");this._baseHref=i}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return dS(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+xs(this._platformLocation.search),r=this._platformLocation.hash;return r&&e?`${i}${r}`:i}pushState(e,i,r,s){const a=this.prepareExternalUrl(r+xs(s));this._platformLocation.pushState(e,i,a)}replaceState(e,i,r,s){const a=this.prepareExternalUrl(r+xs(s));this._platformLocation.replaceState(e,i,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}historyGo(e=0){this._platformLocation.historyGo?.(e)}}return n.\u0275fac=function(e){return new(e||n)(P(Nl),P(MR,8))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})(),fS=(()=>{class n{constructor(e,i){this._subject=new K,this._urlChangeListeners=[],this._platformStrategy=e;const r=this._platformStrategy.getBaseHref();this._platformLocation=i,this._baseHref=hS(pS(r)),this._platformStrategy.onPopState(s=>{this._subject.emit({url:this.path(!0),pop:!0,state:s.state,type:s.type})})}path(e=!1){return this.normalize(this._platformStrategy.path(e))}getState(){return this._platformLocation.getState()}isCurrentPathEqualTo(e,i=""){return this.path()==this.normalize(e+xs(i))}normalize(e){return n.stripTrailingSlash(function PR(n,t){return n&&t.startsWith(n)?t.substring(n.length):t}(this._baseHref,pS(e)))}prepareExternalUrl(e){return e&&"/"!==e[0]&&(e="/"+e),this._platformStrategy.prepareExternalUrl(e)}go(e,i="",r=null){this._platformStrategy.pushState(r,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+xs(i)),r)}replaceState(e,i="",r=null){this._platformStrategy.replaceState(r,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+xs(i)),r)}forward(){this._platformStrategy.forward()}back(){this._platformStrategy.back()}historyGo(e=0){this._platformStrategy.historyGo?.(e)}onUrlChange(e){this._urlChangeListeners.push(e),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}))}_notifyUrlChangeListeners(e="",i){this._urlChangeListeners.forEach(r=>r(e,i))}subscribe(e,i,r){return this._subject.subscribe({next:e,error:i,complete:r})}}return n.normalizeQueryParams=xs,n.joinWithSlash=dS,n.stripTrailingSlash=hS,n.\u0275fac=function(e){return new(e||n)(P(_g),P(Nl))},n.\u0275prov=q({token:n,factory:function(){return function AR(){return new fS(P(_g),P(Nl))}()},providedIn:"root"}),n})();function pS(n){return n.replace(/\/index.html$/,"")}var Ut=(()=>((Ut=Ut||{})[Ut.Zero=0]="Zero",Ut[Ut.One=1]="One",Ut[Ut.Two=2]="Two",Ut[Ut.Few=3]="Few",Ut[Ut.Many=4]="Many",Ut[Ut.Other=5]="Other",Ut))(),Lt=(()=>((Lt=Lt||{})[Lt.Format=0]="Format",Lt[Lt.Standalone=1]="Standalone",Lt))(),Ne=(()=>((Ne=Ne||{})[Ne.Narrow=0]="Narrow",Ne[Ne.Abbreviated=1]="Abbreviated",Ne[Ne.Wide=2]="Wide",Ne[Ne.Short=3]="Short",Ne))(),kt=(()=>((kt=kt||{})[kt.Short=0]="Short",kt[kt.Medium=1]="Medium",kt[kt.Long=2]="Long",kt[kt.Full=3]="Full",kt))(),ce=(()=>((ce=ce||{})[ce.Decimal=0]="Decimal",ce[ce.Group=1]="Group",ce[ce.List=2]="List",ce[ce.PercentSign=3]="PercentSign",ce[ce.PlusSign=4]="PlusSign",ce[ce.MinusSign=5]="MinusSign",ce[ce.Exponential=6]="Exponential",ce[ce.SuperscriptingExponent=7]="SuperscriptingExponent",ce[ce.PerMille=8]="PerMille",ce[ce.Infinity=9]="Infinity",ce[ce.NaN=10]="NaN",ce[ce.TimeSeparator=11]="TimeSeparator",ce[ce.CurrencyDecimal=12]="CurrencyDecimal",ce[ce.CurrencyGroup=13]="CurrencyGroup",ce))();function od(n,t){return _i(Rn(n)[W.DateFormat],t)}function ad(n,t){return _i(Rn(n)[W.TimeFormat],t)}function ld(n,t){return _i(Rn(n)[W.DateTimeFormat],t)}function vi(n,t){const e=Rn(n),i=e[W.NumberSymbols][t];if(typeof i>"u"){if(t===ce.CurrencyDecimal)return e[W.NumberSymbols][ce.Decimal];if(t===ce.CurrencyGroup)return e[W.NumberSymbols][ce.Group]}return i}const LR=function IC(n){return Rn(n)[W.PluralCase]};function mS(n){if(!n[W.ExtraData])throw new Error(`Missing extra locale data for the locale "${n[W.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function _i(n,t){for(let e=t;e>-1;e--)if(typeof n[e]<"u")return n[e];throw new Error("Locale data API: locale data undefined")}function wg(n){const[t,e]=n.split(":");return{hours:+t,minutes:+e}}const zR=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Fl={},WR=/((?:[^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 tn=(()=>((tn=tn||{})[tn.Short=0]="Short",tn[tn.ShortGMT=1]="ShortGMT",tn[tn.Long=2]="Long",tn[tn.Extended=3]="Extended",tn))(),he=(()=>((he=he||{})[he.FullYear=0]="FullYear",he[he.Month=1]="Month",he[he.Date=2]="Date",he[he.Hours=3]="Hours",he[he.Minutes=4]="Minutes",he[he.Seconds=5]="Seconds",he[he.FractionalSeconds=6]="FractionalSeconds",he[he.Day=7]="Day",he))(),Ae=(()=>((Ae=Ae||{})[Ae.DayPeriods=0]="DayPeriods",Ae[Ae.Days=1]="Days",Ae[Ae.Months=2]="Months",Ae[Ae.Eras=3]="Eras",Ae))();function nn(n,t,e,i){let r=function JR(n){if(yS(n))return n;if("number"==typeof n&&!isNaN(n))return new Date(n);if("string"==typeof n){if(n=n.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(n)){const[r,s=1,a=1]=n.split("-").map(l=>+l);return cd(r,s-1,a)}const e=parseFloat(n);if(!isNaN(n-e))return new Date(e);let i;if(i=n.match(zR))return function eO(n){const t=new Date(0);let e=0,i=0;const r=n[8]?t.setUTCFullYear:t.setFullYear,s=n[8]?t.setUTCHours:t.setHours;n[9]&&(e=Number(n[9]+n[10]),i=Number(n[9]+n[11])),r.call(t,Number(n[1]),Number(n[2])-1,Number(n[3]));const a=Number(n[4]||0)-e,l=Number(n[5]||0)-i,u=Number(n[6]||0),d=Math.floor(1e3*parseFloat("0."+(n[7]||0)));return s.call(t,a,l,u,d),t}(i)}const t=new Date(n);if(!yS(t))throw new Error(`Unable to convert "${n}" into a date`);return t}(n);t=Tr(e,t)||t;let l,a=[];for(;t;){if(l=WR.exec(t),!l){a.push(t);break}{a=a.concat(l.slice(1));const f=a.pop();if(!f)break;t=f}}let u=r.getTimezoneOffset();i&&(u=_S(i,u),r=function QR(n,t,e){const i=e?-1:1,r=n.getTimezoneOffset();return function XR(n,t){return(n=new Date(n.getTime())).setMinutes(n.getMinutes()+t),n}(n,i*(_S(t,r)-r))}(r,i,!0));let d="";return a.forEach(f=>{const g=function KR(n){if(Dg[n])return Dg[n];let t;switch(n){case"G":case"GG":case"GGG":t=yt(Ae.Eras,Ne.Abbreviated);break;case"GGGG":t=yt(Ae.Eras,Ne.Wide);break;case"GGGGG":t=yt(Ae.Eras,Ne.Narrow);break;case"y":t=zt(he.FullYear,1,0,!1,!0);break;case"yy":t=zt(he.FullYear,2,0,!0,!0);break;case"yyy":t=zt(he.FullYear,3,0,!1,!0);break;case"yyyy":t=zt(he.FullYear,4,0,!1,!0);break;case"Y":t=fd(1);break;case"YY":t=fd(2,!0);break;case"YYY":t=fd(3);break;case"YYYY":t=fd(4);break;case"M":case"L":t=zt(he.Month,1,1);break;case"MM":case"LL":t=zt(he.Month,2,1);break;case"MMM":t=yt(Ae.Months,Ne.Abbreviated);break;case"MMMM":t=yt(Ae.Months,Ne.Wide);break;case"MMMMM":t=yt(Ae.Months,Ne.Narrow);break;case"LLL":t=yt(Ae.Months,Ne.Abbreviated,Lt.Standalone);break;case"LLLL":t=yt(Ae.Months,Ne.Wide,Lt.Standalone);break;case"LLLLL":t=yt(Ae.Months,Ne.Narrow,Lt.Standalone);break;case"w":t=Cg(1);break;case"ww":t=Cg(2);break;case"W":t=Cg(1,!0);break;case"d":t=zt(he.Date,1);break;case"dd":t=zt(he.Date,2);break;case"c":case"cc":t=zt(he.Day,1);break;case"ccc":t=yt(Ae.Days,Ne.Abbreviated,Lt.Standalone);break;case"cccc":t=yt(Ae.Days,Ne.Wide,Lt.Standalone);break;case"ccccc":t=yt(Ae.Days,Ne.Narrow,Lt.Standalone);break;case"cccccc":t=yt(Ae.Days,Ne.Short,Lt.Standalone);break;case"E":case"EE":case"EEE":t=yt(Ae.Days,Ne.Abbreviated);break;case"EEEE":t=yt(Ae.Days,Ne.Wide);break;case"EEEEE":t=yt(Ae.Days,Ne.Narrow);break;case"EEEEEE":t=yt(Ae.Days,Ne.Short);break;case"a":case"aa":case"aaa":t=yt(Ae.DayPeriods,Ne.Abbreviated);break;case"aaaa":t=yt(Ae.DayPeriods,Ne.Wide);break;case"aaaaa":t=yt(Ae.DayPeriods,Ne.Narrow);break;case"b":case"bb":case"bbb":t=yt(Ae.DayPeriods,Ne.Abbreviated,Lt.Standalone,!0);break;case"bbbb":t=yt(Ae.DayPeriods,Ne.Wide,Lt.Standalone,!0);break;case"bbbbb":t=yt(Ae.DayPeriods,Ne.Narrow,Lt.Standalone,!0);break;case"B":case"BB":case"BBB":t=yt(Ae.DayPeriods,Ne.Abbreviated,Lt.Format,!0);break;case"BBBB":t=yt(Ae.DayPeriods,Ne.Wide,Lt.Format,!0);break;case"BBBBB":t=yt(Ae.DayPeriods,Ne.Narrow,Lt.Format,!0);break;case"h":t=zt(he.Hours,1,-12);break;case"hh":t=zt(he.Hours,2,-12);break;case"H":t=zt(he.Hours,1);break;case"HH":t=zt(he.Hours,2);break;case"m":t=zt(he.Minutes,1);break;case"mm":t=zt(he.Minutes,2);break;case"s":t=zt(he.Seconds,1);break;case"ss":t=zt(he.Seconds,2);break;case"S":t=zt(he.FractionalSeconds,1);break;case"SS":t=zt(he.FractionalSeconds,2);break;case"SSS":t=zt(he.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":t=dd(tn.Short);break;case"ZZZZZ":t=dd(tn.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":t=dd(tn.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":t=dd(tn.Long);break;default:return null}return Dg[n]=t,t}(f);d+=g?g(r,e,u):"''"===f?"'":f.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),d}function cd(n,t,e){const i=new Date(0);return i.setFullYear(n,t,e),i.setHours(0,0,0),i}function Tr(n,t){const e=function kR(n){return Rn(n)[W.LocaleId]}(n);if(Fl[e]=Fl[e]||{},Fl[e][t])return Fl[e][t];let i="";switch(t){case"shortDate":i=od(n,kt.Short);break;case"mediumDate":i=od(n,kt.Medium);break;case"longDate":i=od(n,kt.Long);break;case"fullDate":i=od(n,kt.Full);break;case"shortTime":i=ad(n,kt.Short);break;case"mediumTime":i=ad(n,kt.Medium);break;case"longTime":i=ad(n,kt.Long);break;case"fullTime":i=ad(n,kt.Full);break;case"short":const r=Tr(n,"shortTime"),s=Tr(n,"shortDate");i=ud(ld(n,kt.Short),[r,s]);break;case"medium":const a=Tr(n,"mediumTime"),l=Tr(n,"mediumDate");i=ud(ld(n,kt.Medium),[a,l]);break;case"long":const u=Tr(n,"longTime"),d=Tr(n,"longDate");i=ud(ld(n,kt.Long),[u,d]);break;case"full":const f=Tr(n,"fullTime"),g=Tr(n,"fullDate");i=ud(ld(n,kt.Full),[f,g])}return i&&(Fl[e][t]=i),i}function ud(n,t){return t&&(n=n.replace(/\{([^}]+)}/g,function(e,i){return null!=t&&i in t?t[i]:e})),n}function Ni(n,t,e="-",i,r){let s="";(n<0||r&&n<=0)&&(r?n=1-n:(n=-n,s=e));let a=String(n);for(;a.length0||l>-e)&&(l+=e),n===he.Hours)0===l&&-12===e&&(l=12);else if(n===he.FractionalSeconds)return function GR(n,t){return Ni(n,3).substr(0,t)}(l,t);const u=vi(a,ce.MinusSign);return Ni(l,t,u,i,r)}}function yt(n,t,e=Lt.Format,i=!1){return function(r,s){return function ZR(n,t,e,i,r,s){switch(e){case Ae.Months:return function OR(n,t,e){const i=Rn(n),s=_i([i[W.MonthsFormat],i[W.MonthsStandalone]],t);return _i(s,e)}(t,r,i)[n.getMonth()];case Ae.Days:return function RR(n,t,e){const i=Rn(n),s=_i([i[W.DaysFormat],i[W.DaysStandalone]],t);return _i(s,e)}(t,r,i)[n.getDay()];case Ae.DayPeriods:const a=n.getHours(),l=n.getMinutes();if(s){const d=function VR(n){const t=Rn(n);return mS(t),(t[W.ExtraData][2]||[]).map(i=>"string"==typeof i?wg(i):[wg(i[0]),wg(i[1])])}(t),f=function BR(n,t,e){const i=Rn(n);mS(i);const s=_i([i[W.ExtraData][0],i[W.ExtraData][1]],t)||[];return _i(s,e)||[]}(t,r,i),g=d.findIndex(v=>{if(Array.isArray(v)){const[_,w]=v,C=a>=_.hours&&l>=_.minutes,S=a0?Math.floor(r/60):Math.ceil(r/60);switch(n){case tn.Short:return(r>=0?"+":"")+Ni(a,2,s)+Ni(Math.abs(r%60),2,s);case tn.ShortGMT:return"GMT"+(r>=0?"+":"")+Ni(a,1,s);case tn.Long:return"GMT"+(r>=0?"+":"")+Ni(a,2,s)+":"+Ni(Math.abs(r%60),2,s);case tn.Extended:return 0===i?"Z":(r>=0?"+":"")+Ni(a,2,s)+":"+Ni(Math.abs(r%60),2,s);default:throw new Error(`Unknown zone width "${n}"`)}}}function vS(n){return cd(n.getFullYear(),n.getMonth(),n.getDate()+(4-n.getDay()))}function Cg(n,t=!1){return function(e,i){let r;if(t){const s=new Date(e.getFullYear(),e.getMonth(),1).getDay()-1,a=e.getDate();r=1+Math.floor((a+s)/7)}else{const s=vS(e),a=function YR(n){const t=cd(n,0,1).getDay();return cd(n,0,1+(t<=4?4:11)-t)}(s.getFullYear()),l=s.getTime()-a.getTime();r=1+Math.round(l/6048e5)}return Ni(r,n,vi(i,ce.MinusSign))}}function fd(n,t=!1){return function(e,i){return Ni(vS(e).getFullYear(),n,vi(i,ce.MinusSign),t)}}const Dg={};function _S(n,t){n=n.replace(/:/g,"");const e=Date.parse("Jan 01, 1970 00:00:00 "+n)/6e4;return isNaN(e)?t:e}function yS(n){return n instanceof Date&&!isNaN(n.valueOf())}let Mg=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=q({token:n,factory:function(e){let i=null;return e?i=new e:(r=P(mi),i=new dO(r)),i;var r},providedIn:"root"}),n})();let dO=(()=>{class n extends Mg{constructor(e){super(),this.locale=e}getPluralCategory(e,i){switch(LR(i||this.locale)(e)){case Ut.Zero:return"zero";case Ut.One:return"one";case Ut.Two:return"two";case Ut.Few:return"few";case Ut.Many:return"many";default:return"other"}}}return n.\u0275fac=function(e){return new(e||n)(P(mi))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();function SS(n,t){t=encodeURIComponent(t);for(const e of n.split(";")){const i=e.indexOf("="),[r,s]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(r.trim()===t)return decodeURIComponent(s)}return null}let cr=(()=>{class n{constructor(e,i,r,s){this._iterableDiffers=e,this._keyValueDiffers=i,this._ngEl=r,this._renderer=s,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(e){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof e?e.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(e){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof e?e.split(/\s+/):e,this._rawClass&&(yl(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const e=this._iterableDiffer.diff(this._rawClass);e&&this._applyIterableChanges(e)}else if(this._keyValueDiffer){const e=this._keyValueDiffer.diff(this._rawClass);e&&this._applyKeyValueChanges(e)}}_applyKeyValueChanges(e){e.forEachAddedItem(i=>this._toggleClass(i.key,i.currentValue)),e.forEachChangedItem(i=>this._toggleClass(i.key,i.currentValue)),e.forEachRemovedItem(i=>{i.previousValue&&this._toggleClass(i.key,!1)})}_applyIterableChanges(e){e.forEachAddedItem(i=>{if("string"!=typeof i.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${Le(i.item)}`);this._toggleClass(i.item,!0)}),e.forEachRemovedItem(i=>this._toggleClass(i.item,!1))}_applyClasses(e){e&&(Array.isArray(e)||e instanceof Set?e.forEach(i=>this._toggleClass(i,!0)):Object.keys(e).forEach(i=>this._toggleClass(i,!!e[i])))}_removeClasses(e){e&&(Array.isArray(e)||e instanceof Set?e.forEach(i=>this._toggleClass(i,!1)):Object.keys(e).forEach(i=>this._toggleClass(i,!1)))}_toggleClass(e,i){(e=e.trim())&&e.split(/\s+/g).forEach(r=>{i?this._renderer.addClass(this._ngEl.nativeElement,r):this._renderer.removeClass(this._ngEl.nativeElement,r)})}}return n.\u0275fac=function(e){return new(e||n)(M(rd),M(Ol),M(Tt),M($n))},n.\u0275dir=ie({type:n,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"}}),n})();class fO{constructor(t,e,i,r){this.$implicit=t,this.ngForOf=e,this.index=i,this.count=r}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 Jr=(()=>{class n{constructor(e,i,r){this._viewContainer=e,this._template=i,this._differs=r,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(e){e&&(this._template=e)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const e=this._ngForOf;!this._differ&&e&&(this._differ=this._differs.find(e).create(this.ngForTrackBy))}if(this._differ){const e=this._differ.diff(this._ngForOf);e&&this._applyChanges(e)}}_applyChanges(e){const i=this._viewContainer;e.forEachOperation((r,s,a)=>{if(null==r.previousIndex)i.createEmbeddedView(this._template,new fO(r.item,this._ngForOf,-1,-1),null===a?void 0:a);else if(null==a)i.remove(null===s?void 0:s);else if(null!==s){const l=i.get(s);i.move(l,a),bS(l,r)}});for(let r=0,s=i.length;r{bS(i.get(r.currentIndex),r)})}static ngTemplateContextGuard(e,i){return!0}}return n.\u0275fac=function(e){return new(e||n)(M(ii),M(ar),M(rd))},n.\u0275dir=ie({type:n,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}}),n})();function bS(n,t){n.context.$implicit=t.item}let Mr=(()=>{class n{constructor(e,i){this._viewContainer=e,this._context=new pO,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){ES("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){ES("ngIfElse",e),this._elseTemplateRef=e,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(e,i){return!0}}return n.\u0275fac=function(e){return new(e||n)(M(ii),M(ar))},n.\u0275dir=ie({type:n,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}}),n})();class pO{constructor(){this.$implicit=null,this.ngIf=null}}function ES(n,t){if(t&&!t.createEmbeddedView)throw new Error(`${n} must be a TemplateRef, but received '${Le(t)}'.`)}class Ig{constructor(t,e){this._viewContainerRef=t,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(t){t&&!this._created?this.create():!t&&this._created&&this.destroy()}}let gd=(()=>{class n{constructor(){this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(e){this._ngSwitch=e,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(e){this._defaultViews||(this._defaultViews=[]),this._defaultViews.push(e)}_matchCase(e){const i=e==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||i,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),i}_updateDefaultCases(e){if(this._defaultViews&&e!==this._defaultUsed){this._defaultUsed=e;for(let i=0;i{class n{constructor(e,i,r){this.ngSwitch=r,r._addCase(),this._view=new Ig(e,i)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}}return n.\u0275fac=function(e){return new(e||n)(M(ii),M(ar),M(gd,9))},n.\u0275dir=ie({type:n,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"}}),n})(),Vl=(()=>{class n{constructor(e,i,r){this._ngEl=e,this._differs=i,this._renderer=r,this._ngStyle=null,this._differ=null}set ngStyle(e){this._ngStyle=e,!this._differ&&e&&(this._differ=this._differs.find(e).create())}ngDoCheck(){if(this._differ){const e=this._differ.diff(this._ngStyle);e&&this._applyChanges(e)}}_setStyle(e,i){const[r,s]=e.split(".");null!=(i=null!=i&&s?`${i}${s}`:i)?this._renderer.setStyle(this._ngEl.nativeElement,r,i):this._renderer.removeStyle(this._ngEl.nativeElement,r)}_applyChanges(e){e.forEachRemovedItem(i=>this._setStyle(i.key,null)),e.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),e.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}}return n.\u0275fac=function(e){return new(e||n)(M(Tt),M(Ol),M($n))},n.\u0275dir=ie({type:n,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}}),n})(),yi=(()=>{class n{constructor(e){this._viewContainerRef=e,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null}ngOnChanges(e){if(e.ngTemplateOutlet){const i=this._viewContainerRef;this._viewRef&&i.remove(i.indexOf(this._viewRef)),this._viewRef=this.ngTemplateOutlet?i.createEmbeddedView(this.ngTemplateOutlet,this.ngTemplateOutletContext):null}else this._viewRef&&e.ngTemplateOutletContext&&this.ngTemplateOutletContext&&(this._viewRef.context=this.ngTemplateOutletContext)}}return n.\u0275fac=function(e){return new(e||n)(M(ii))},n.\u0275dir=ie({type:n,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet"},features:[Kt]}),n})();function Fi(n,t){return new $(2100,"")}class vO{createSubscription(t,e){return t.subscribe({next:e,error:i=>{throw i}})}dispose(t){t.unsubscribe()}onDestroy(t){t.unsubscribe()}}class _O{createSubscription(t,e){return t.then(e,i=>{throw i})}dispose(t){}onDestroy(t){}}const yO=new _O,wO=new vO;let Ag=(()=>{class n{constructor(e){this._ref=e,this._latestValue=null,this._subscription=null,this._obj=null,this._strategy=null}ngOnDestroy(){this._subscription&&this._dispose()}transform(e){return this._obj?e!==this._obj?(this._dispose(),this.transform(e)):this._latestValue:(e&&this._subscribe(e),this._latestValue)}_subscribe(e){this._obj=e,this._strategy=this._selectStrategy(e),this._subscription=this._strategy.createSubscription(e,i=>this._updateLatestValue(e,i))}_selectStrategy(e){if(Uu(e))return yO;if(Fw(e))return wO;throw Fi()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(e,i){e===this._obj&&(this._latestValue=i,this._ref.markForCheck())}}return n.\u0275fac=function(e){return new(e||n)(M(ua,16))},n.\u0275pipe=vt({name:"async",type:n,pure:!1}),n})();const MO=/#/g;let Pg=(()=>{class n{constructor(e){this._localization=e}transform(e,i,r){if(null==e)return"";if("object"!=typeof i||null===i)throw Fi();return i[function DS(n,t,e,i){let r=`=${n}`;if(t.indexOf(r)>-1||(r=e.getPluralCategory(n,i),t.indexOf(r)>-1))return r;if(t.indexOf("other")>-1)return"other";throw new Error(`No plural message found for value "${n}"`)}(e,Object.keys(i),this._localization,r)].replace(MO,e.toString())}}return n.\u0275fac=function(e){return new(e||n)(M(Mg,16))},n.\u0275pipe=vt({name:"i18nPlural",type:n,pure:!0}),n})(),AS=(()=>{class n{transform(e,i,r){if(null==e)return null;if(!this.supports(e))throw Fi();return e.slice(i,r)}supports(e){return"string"==typeof e||Array.isArray(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275pipe=vt({name:"slice",type:n,pure:!1}),n})(),da=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({}),n})();const PS="browser";function kS(n){return n===PS}class RS{}class Rg extends class BO extends class SR{}{constructor(){super(...arguments),this.supportsDOMEvents=!0}}{static makeCurrent(){!function DR(n){sd||(sd=n)}(new Rg)}onAndCancel(t,e,i){return t.addEventListener(e,i,!1),()=>{t.removeEventListener(e,i,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){t.parentNode&&t.parentNode.removeChild(t)}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return"window"===e?window:"document"===e?t:"body"===e?t.body:null}getBaseHref(t){const e=function HO(){return Bl=Bl||document.querySelector("base"),Bl?Bl.getAttribute("href"):null}();return null==e?null:function jO(n){md=md||document.createElement("a"),md.setAttribute("href",n);const t=md.pathname;return"/"===t.charAt(0)?t:`/${t}`}(e)}resetBaseElement(){Bl=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return SS(document.cookie,t)}}let md,Bl=null;const OS=new Ie("TRANSITION_ID"),zO=[{provide:HD,useFactory:function UO(n,t,e){return()=>{e.get(og).donePromise.then(()=>{const i=lr(),r=t.querySelectorAll(`style[ng-transition="${n}"]`);for(let s=0;s{const s=t.findTestabilityInTree(i,r);if(null==s)throw new Error("Could not find testability for element.");return s},Ye.getAllAngularTestabilities=()=>t.getAllTestabilities(),Ye.getAllAngularRootElements=()=>t.getAllRootElements(),Ye.frameworkStabilizers||(Ye.frameworkStabilizers=[]),Ye.frameworkStabilizers.push(i=>{const r=Ye.getAllAngularTestabilities();let s=r.length,a=!1;const l=function(u){a=a||u,s--,0==s&&i(a)};r.forEach(function(u){u.whenStable(l)})})}findTestabilityInTree(t,e,i){return null==e?null:t.getTestability(e)??(i?lr().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null)}}let WO=(()=>{class n{build(){return new XMLHttpRequest}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();const vd=new Ie("EventManagerPlugins");let _d=(()=>{class n{constructor(e,i){this._zone=i,this._eventNameToPlugin=new Map,e.forEach(r=>r.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,i,r){return this._findPluginFor(i).addEventListener(e,i,r)}addGlobalEventListener(e,i,r){return this._findPluginFor(i).addGlobalEventListener(e,i,r)}getZone(){return this._zone}_findPluginFor(e){const i=this._eventNameToPlugin.get(e);if(i)return i;const r=this._plugins;for(let s=0;s{class n{constructor(){this._stylesSet=new Set}addStyles(e){const i=new Set;e.forEach(r=>{this._stylesSet.has(r)||(this._stylesSet.add(r),i.add(r))}),this.onStylesAdded(i)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})(),Hl=(()=>{class n extends FS{constructor(e){super(),this._doc=e,this._hostNodes=new Map,this._hostNodes.set(e.head,[])}_addStylesToHost(e,i,r){e.forEach(s=>{const a=this._doc.createElement("style");a.textContent=s,r.push(i.appendChild(a))})}addHost(e){const i=[];this._addStylesToHost(this._stylesSet,e,i),this._hostNodes.set(e,i)}removeHost(e){const i=this._hostNodes.get(e);i&&i.forEach(LS),this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach((i,r)=>{this._addStylesToHost(e,r,i)})}ngOnDestroy(){this._hostNodes.forEach(e=>e.forEach(LS))}}return n.\u0275fac=function(e){return new(e||n)(P(pt))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();function LS(n){lr().remove(n)}const Ng={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/"},Fg=/%COMP%/g;function yd(n,t,e){for(let i=0;i{if("__ngUnwrap__"===t)return n;!1===n(t)&&(t.preventDefault(),t.returnValue=!1)}}let wd=(()=>{class n{constructor(e,i,r){this.eventManager=e,this.sharedStylesHost=i,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new Lg(e)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;switch(i.encapsulation){case Qn.Emulated:{let r=this.rendererByCompId.get(i.id);return r||(r=new KO(this.eventManager,this.sharedStylesHost,i,this.appId),this.rendererByCompId.set(i.id,r)),r.applyToHost(e),r}case 1:case Qn.ShadowDom:return new XO(this.eventManager,this.sharedStylesHost,e,i);default:if(!this.rendererByCompId.has(i.id)){const r=yd(i.id,i.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(i.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return n.\u0275fac=function(e){return new(e||n)(P(_d),P(Hl),P(Rl))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();class Lg{constructor(t){this.eventManager=t,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(t,e){return e?document.createElementNS(Ng[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){t.appendChild(e)}insertBefore(t,e,i){t&&t.insertBefore(e,i)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let i="string"==typeof t?document.querySelector(t):t;if(!i)throw new Error(`The selector "${t}" did not match any elements`);return e||(i.textContent=""),i}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,i,r){if(r){e=r+":"+e;const s=Ng[r];s?t.setAttributeNS(s,e,i):t.setAttribute(e,i)}else t.setAttribute(e,i)}removeAttribute(t,e,i){if(i){const r=Ng[i];r?t.removeAttributeNS(r,e):t.removeAttribute(`${i}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,i,r){r&(ti.DashCase|ti.Important)?t.style.setProperty(e,i,r&ti.Important?"important":""):t.style[e]=i}removeStyle(t,e,i){i&ti.DashCase?t.style.removeProperty(e):t.style[e]=""}setProperty(t,e,i){t[e]=i}setValue(t,e){t.nodeValue=e}listen(t,e,i){return"string"==typeof t?this.eventManager.addGlobalEventListener(t,e,HS(i)):this.eventManager.addEventListener(t,e,HS(i))}}class KO extends Lg{constructor(t,e,i,r){super(t),this.component=i;const s=yd(r+"-"+i.id,i.styles,[]);e.addStyles(s),this.contentAttr=function ZO(n){return"_ngcontent-%COMP%".replace(Fg,n)}(r+"-"+i.id),this.hostAttr=function qO(n){return"_nghost-%COMP%".replace(Fg,n)}(r+"-"+i.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,"")}createElement(t,e){const i=super.createElement(t,e);return super.setAttribute(i,this.contentAttr,""),i}}class XO extends Lg{constructor(t,e,i,r){super(t),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=yd(r.id,r.styles,[]);for(let a=0;a{class n extends NS{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,r){return e.addEventListener(i,r,!1),()=>this.removeEventListener(e,i,r)}removeEventListener(e,i,r){return e.removeEventListener(i,r)}}return n.\u0275fac=function(e){return new(e||n)(P(pt))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();const US=["alt","control","meta","shift"],eN={"\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"},zS={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","\x90":"NumLock"},tN={alt:n=>n.altKey,control:n=>n.ctrlKey,meta:n=>n.metaKey,shift:n=>n.shiftKey};let nN=(()=>{class n extends NS{constructor(e){super(e)}supports(e){return null!=n.parseEventName(e)}addEventListener(e,i,r){const s=n.parseEventName(i),a=n.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>lr().onAndCancel(e,s.domEventName,a))}static parseEventName(e){const i=e.toLowerCase().split("."),r=i.shift();if(0===i.length||"keydown"!==r&&"keyup"!==r)return null;const s=n._normalizeKey(i.pop());let a="";if(US.forEach(u=>{const d=i.indexOf(u);d>-1&&(i.splice(d,1),a+=u+".")}),a+=s,0!=i.length||0===s.length)return null;const l={};return l.domEventName=r,l.fullKey=a,l}static getEventFullKey(e){let i="",r=function iN(n){let t=n.key;if(null==t){if(t=n.keyIdentifier,null==t)return"Unidentified";t.startsWith("U+")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===n.location&&zS.hasOwnProperty(t)&&(t=zS[t]))}return eN[t]||t}(e);return r=r.toLowerCase()," "===r?r="space":"."===r&&(r="dot"),US.forEach(s=>{s!=r&&tN[s](e)&&(i+=s+".")}),i+=r,i}static eventCallback(e,i,r){return s=>{n.getEventFullKey(s)===e&&r.runGuarded(()=>i(s))}}static _normalizeKey(e){return"esc"===e?"escape":e}}return n.\u0275fac=function(e){return new(e||n)(P(pt))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();const aN=ZD(yR,"browser",[{provide:ca,useValue:PS},{provide:UD,useValue:function rN(){Rg.makeCurrent(),Og.init()},multi:!0},{provide:pt,useFactory:function oN(){return function X(n){O=n}(document),document},deps:[]}]),lN=[{provide:gp,useValue:"root"},{provide:fl,useFactory:function sN(){return new fl},deps:[]},{provide:vd,useClass:QO,multi:!0,deps:[pt,lt,ca]},{provide:vd,useClass:nN,multi:!0,deps:[pt]},{provide:wd,useClass:wd,deps:[_d,Hl,Rl]},{provide:Ml,useExisting:wd},{provide:FS,useExisting:Hl},{provide:Hl,useClass:Hl,deps:[pt]},{provide:dg,useClass:dg,deps:[lt]},{provide:_d,useClass:_d,deps:[vd,lt]},{provide:RS,useClass:WO,deps:[]}];let WS=(()=>{class n{constructor(e){if(e)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}static withServerTransition(e){return{ngModule:n,providers:[{provide:Rl,useValue:e.appId},{provide:OS,useExisting:Rl},zO]}}}return n.\u0275fac=function(e){return new(e||n)(P(n,12))},n.\u0275mod=st({type:n}),n.\u0275inj=be({providers:lN,imports:[da,wR]}),n})();typeof window<"u"&&window;const Bg={now:()=>(Bg.delegate||Date).now(),delegate:void 0};class ZS extends ve{constructor(t=1/0,e=1/0,i=Bg){super(),this._bufferSize=t,this._windowTime=e,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=e===1/0,this._bufferSize=Math.max(1,t),this._windowTime=Math.max(1,e)}next(t){const{isStopped:e,_buffer:i,_infiniteTimeWindow:r,_timestampProvider:s,_windowTime:a}=this;e||(i.push(t),!r&&i.push(s.now()+a)),this._trimBuffer(),super.next(t)}_subscribe(t){this._throwIfClosed(),this._trimBuffer();const e=this._innerSubscribe(t),{_infiniteTimeWindow:i,_buffer:r}=this,s=r.slice();for(let a=0;a{let r=null,s=0,a=!1;const l=()=>a&&!r&&i.complete();e.subscribe(it(i,u=>{null==r||r.unsubscribe();let d=0;const f=s++;In(n(u,f)).subscribe(r=it(i,g=>i.next(t?t(u,g,f,d++):g),()=>{r=null,l()}))},()=>{a=!0,l()}))})}const Cd={schedule(n,t){const e=setTimeout(n,t);return()=>clearTimeout(e)},scheduleBeforeRender(n){if(typeof window>"u")return Cd.schedule(n,0);if(typeof window.requestAnimationFrame>"u")return Cd.schedule(n,16);const t=window.requestAnimationFrame(n);return()=>window.cancelAnimationFrame(t)}};let Hg;function MN(n,t,e){let i=e;return function wN(n){return!!n&&n.nodeType===Node.ELEMENT_NODE}(n)&&t.some((r,s)=>!("*"===r||!function DN(n,t){if(!Hg){const e=Element.prototype;Hg=e.matches||e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector}return n.nodeType===Node.ELEMENT_NODE&&Hg.call(n,t)}(n,r)||(i=s,0))),i}class AN{constructor(t,e){this.componentFactory=e.get(Qr).resolveComponentFactory(t)}create(t){return new PN(this.componentFactory,t)}}class PN{constructor(t,e){this.componentFactory=t,this.injector=e,this.eventEmitters=new ZS(1),this.events=this.eventEmitters.pipe(ts(i=>sn(...i))),this.componentRef=null,this.viewChangeDetectorRef=null,this.inputChanges=null,this.hasInputChanges=!1,this.implementsOnChanges=!1,this.scheduledChangeDetectionFn=null,this.scheduledDestroyFn=null,this.initialInputValues=new Map,this.unchangedInputs=new Set(this.componentFactory.inputs.map(({propName:i})=>i)),this.ngZone=this.injector.get(lt),this.elementZone=typeof Zone>"u"?null:this.ngZone.run(()=>Zone.current)}connect(t){this.runInZone(()=>{if(null!==this.scheduledDestroyFn)return this.scheduledDestroyFn(),void(this.scheduledDestroyFn=null);null===this.componentRef&&this.initializeComponent(t)})}disconnect(){this.runInZone(()=>{null===this.componentRef||null!==this.scheduledDestroyFn||(this.scheduledDestroyFn=Cd.schedule(()=>{null!==this.componentRef&&(this.componentRef.destroy(),this.componentRef=null,this.viewChangeDetectorRef=null)},10))})}getInputValue(t){return this.runInZone(()=>null===this.componentRef?this.initialInputValues.get(t):this.componentRef.instance[t])}setInputValue(t,e){this.runInZone(()=>{null!==this.componentRef?function SN(n,t){return n===t||n!=n&&t!=t}(e,this.getInputValue(t))&&(void 0!==e||!this.unchangedInputs.has(t))||(this.recordInputChange(t,e),this.unchangedInputs.delete(t),this.hasInputChanges=!0,this.componentRef.instance[t]=e,this.scheduleDetectChanges()):this.initialInputValues.set(t,e)})}initializeComponent(t){const e=ln.create({providers:[],parent:this.injector}),i=function TN(n,t){const e=n.childNodes,i=t.map(()=>[]);let r=-1;t.some((s,a)=>"*"===s&&(r=a,!0));for(let s=0,a=e.length;s{this.initialInputValues.has(t)&&this.setInputValue(t,this.initialInputValues.get(t))}),this.initialInputValues.clear()}initializeOutputs(t){const e=this.componentFactory.outputs.map(({propName:i,templateName:r})=>t.instance[i].pipe(He(a=>({name:r,value:a}))));this.eventEmitters.next(e)}callNgOnChanges(t){if(!this.implementsOnChanges||null===this.inputChanges)return;const e=this.inputChanges;this.inputChanges=null,t.instance.ngOnChanges(e)}markViewForCheck(t){this.hasInputChanges&&(this.hasInputChanges=!1,t.markForCheck())}scheduleDetectChanges(){this.scheduledChangeDetectionFn||(this.scheduledChangeDetectionFn=Cd.scheduleBeforeRender(()=>{this.scheduledChangeDetectionFn=null,this.detectChanges()}))}recordInputChange(t,e){if(!this.implementsOnChanges)return;null===this.inputChanges&&(this.inputChanges={});const i=this.inputChanges[t];if(i)return void(i.currentValue=e);const r=this.unchangedInputs.has(t),s=r?void 0:this.getInputValue(t);this.inputChanges[t]=new Ga(s,e,r)}detectChanges(){null!==this.componentRef&&(this.callNgOnChanges(this.componentRef),this.markViewForCheck(this.viewChangeDetectorRef),this.componentRef.changeDetectorRef.detectChanges())}runInZone(t){return this.elementZone&&Zone.current!==this.elementZone?this.ngZone.run(t):t()}}class kN extends HTMLElement{constructor(){super(...arguments),this.ngElementEventsSubscription=null}}function qS(n,t){const e=function EN(n,t){return t.get(Qr).resolveComponentFactory(n).inputs}(n,t.injector),i=t.strategyFactory||new AN(n,t.injector),r=function bN(n){const t={};return n.forEach(({propName:e,templateName:i})=>{t[function yN(n){return n.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}(i)]=e}),t}(e);class s extends kN{constructor(l){super(),this.injector=l}get ngElementStrategy(){if(!this._ngElementStrategy){const l=this._ngElementStrategy=i.create(this.injector||t.injector);e.forEach(({propName:u})=>{if(!this.hasOwnProperty(u))return;const d=this[u];delete this[u],l.setInputValue(u,d)})}return this._ngElementStrategy}attributeChangedCallback(l,u,d,f){this.ngElementStrategy.setInputValue(r[l],d)}connectedCallback(){let l=!1;this.ngElementStrategy.events&&(this.subscribeToEvents(),l=!0),this.ngElementStrategy.connect(this),l||this.subscribeToEvents()}disconnectedCallback(){this._ngElementStrategy&&this._ngElementStrategy.disconnect(),this.ngElementEventsSubscription&&(this.ngElementEventsSubscription.unsubscribe(),this.ngElementEventsSubscription=null)}subscribeToEvents(){this.ngElementEventsSubscription=this.ngElementStrategy.events.subscribe(l=>{const u=new CustomEvent(l.name,{detail:l.value});this.dispatchEvent(u)})}}return s.observedAttributes=Object.keys(r),e.forEach(({propName:a})=>{Object.defineProperty(s.prototype,a,{get(){return this.ngElementStrategy.getInputValue(a)},set(l){this.ngElementStrategy.setInputValue(a,l)},configurable:!0,enumerable:!0})}),s}class YS{}const Ir="*";function KS(n,t=null){return{type:4,styles:t,timings:n}}function XS(n,t=null){return{type:2,steps:n,options:t}}function Dd(n){return{type:6,styles:n,offset:null}}function QS(n,t,e){return{type:0,name:n,styles:t,options:e}}function JS(n,t,e=null){return{type:1,expr:n,animation:t,options:e}}function eb(n){Promise.resolve(null).then(n)}class jl{constructor(t=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=t+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}onStart(t){this._onStartFns.push(t)}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){eb(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this._started=!1}setPosition(t){this._position=this.totalTime?t*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class tb{constructor(t){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=t;let e=0,i=0,r=0;const s=this.players.length;0==s?eb(()=>this._onFinish()):this.players.forEach(a=>{a.onDone(()=>{++e==s&&this._onFinish()}),a.onDestroy(()=>{++i==s&&this._onDestroy()}),a.onStart(()=>{++r==s&&this._onStart()})}),this.totalTime=this.players.reduce((a,l)=>Math.max(a,l.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this.players.forEach(t=>t.init())}onStart(t){this._onStartFns.push(t)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(t=>t()),this._onStartFns=[])}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(t=>t.play())}pause(){this.players.forEach(t=>t.pause())}restart(){this.players.forEach(t=>t.restart())}finish(){this._onFinish(),this.players.forEach(t=>t.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(t=>t.destroy()),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this.players.forEach(t=>t.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(t){const e=t*this.totalTime;this.players.forEach(i=>{const r=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(r)})}getPosition(){const t=this.players.reduce((e,i)=>null===e||i.totalTime>e.totalTime?i:e,null);return null!=t?t.getPosition():0}beforeDestroy(){this.players.forEach(t=>{t.beforeDestroy&&t.beforeDestroy()})}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}const Be=!1;function nb(n){return new $(3e3,Be)}function fF(){return typeof window<"u"&&typeof window.document<"u"}function Ug(){return typeof process<"u"&&"[object process]"==={}.toString.call(process)}function ns(n){switch(n.length){case 0:return new jl;case 1:return n[0];default:return new tb(n)}}function ib(n,t,e,i,r={},s={}){const a=[],l=[];let u=-1,d=null;if(i.forEach(f=>{const g=f.offset,v=g==u,_=v&&d||{};Object.keys(f).forEach(w=>{let C=w,S=f[w];if("offset"!==w)switch(C=t.normalizePropertyName(C,a),S){case"!":S=r[w];break;case Ir:S=s[w];break;default:S=t.normalizeStyleValue(w,C,S,a)}_[C]=S}),v||l.push(_),d=_,u=g}),a.length)throw function nF(n){return new $(3502,Be)}();return l}function zg(n,t,e,i){switch(t){case"start":n.onStart(()=>i(e&&Wg(e,"start",n)));break;case"done":n.onDone(()=>i(e&&Wg(e,"done",n)));break;case"destroy":n.onDestroy(()=>i(e&&Wg(e,"destroy",n)))}}function Wg(n,t,e){const s=Gg(n.element,n.triggerName,n.fromState,n.toState,t||n.phaseName,e.totalTime??n.totalTime,!!e.disabled),a=n._data;return null!=a&&(s._data=a),s}function Gg(n,t,e,i,r="",s=0,a){return{element:n,triggerName:t,fromState:e,toState:i,phaseName:r,totalTime:s,disabled:!!a}}function si(n,t,e){let i;return n instanceof Map?(i=n.get(t),i||n.set(t,i=e)):(i=n[t],i||(i=n[t]=e)),i}function rb(n){const t=n.indexOf(":");return[n.substring(1,t),n.substr(t+1)]}let $g=(n,t)=>!1,sb=(n,t,e)=>[],ob=null;function Zg(n){const t=n.parentNode||n.host;return t===ob?null:t}(Ug()||typeof Element<"u")&&(fF()?(ob=(()=>document.documentElement)(),$g=(n,t)=>{for(;t;){if(t===n)return!0;t=Zg(t)}return!1}):$g=(n,t)=>n.contains(t),sb=(n,t,e)=>{if(e)return Array.from(n.querySelectorAll(t));const i=n.querySelector(t);return i?[i]:[]});let Rs=null,ab=!1;function lb(n){Rs||(Rs=function gF(){return typeof document<"u"?document.body:null}()||{},ab=!!Rs.style&&"WebkitAppearance"in Rs.style);let t=!0;return Rs.style&&!function pF(n){return"ebkit"==n.substring(1,6)}(n)&&(t=n in Rs.style,!t&&ab&&(t="Webkit"+n.charAt(0).toUpperCase()+n.substr(1)in Rs.style)),t}const cb=$g,ub=sb;let db=(()=>{class n{validateStyleProperty(e){return lb(e)}matchesElement(e,i){return!1}containsElement(e,i){return cb(e,i)}getParentElement(e){return Zg(e)}query(e,i,r){return ub(e,i,r)}computeStyle(e,i,r){return r||""}animate(e,i,r,s,a,l=[],u){return new jl(r,s)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})(),qg=(()=>{class n{}return n.NOOP=new db,n})();const Yg="ng-enter",bd="ng-leave",Ed="ng-trigger",Td=".ng-trigger",fb="ng-animating",Kg=".ng-animating";function Os(n){if("number"==typeof n)return n;const t=n.match(/^(-?[\.\d]+)(m?s)/);return!t||t.length<2?0:Xg(parseFloat(t[1]),t[2])}function Xg(n,t){return"s"===t?1e3*n:n}function Md(n,t,e){return n.hasOwnProperty("duration")?n:function _F(n,t,e){let r,s=0,a="";if("string"==typeof n){const l=n.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===l)return t.push(nb()),{duration:0,delay:0,easing:""};r=Xg(parseFloat(l[1]),l[2]);const u=l[3];null!=u&&(s=Xg(parseFloat(u),l[4]));const d=l[5];d&&(a=d)}else r=n;if(!e){let l=!1,u=t.length;r<0&&(t.push(function ON(){return new $(3100,Be)}()),l=!0),s<0&&(t.push(function NN(){return new $(3101,Be)}()),l=!0),l&&t.splice(u,0,nb())}return{duration:r,delay:s,easing:a}}(n,t,e)}function ha(n,t={}){return Object.keys(n).forEach(e=>{t[e]=n[e]}),t}function is(n,t,e={}){if(t)for(let i in n)e[i]=n[i];else ha(n,e);return e}function gb(n,t,e){return e?t+":"+e+";":""}function mb(n){let t="";for(let e=0;e{const r=Jg(i);e&&!e.hasOwnProperty(i)&&(e[i]=n.style[r]),n.style[r]=t[i]}),Ug()&&mb(n))}function Ns(n,t){n.style&&(Object.keys(t).forEach(e=>{const i=Jg(e);n.style[i]=""}),Ug()&&mb(n))}function Ul(n){return Array.isArray(n)?1==n.length?n[0]:XS(n):n}const Qg=new RegExp("{{\\s*(.+?)\\s*}}","g");function vb(n){let t=[];if("string"==typeof n){let e;for(;e=Qg.exec(n);)t.push(e[1]);Qg.lastIndex=0}return t}function Id(n,t,e){const i=n.toString(),r=i.replace(Qg,(s,a)=>{let l=t[a];return t.hasOwnProperty(a)||(e.push(function LN(n){return new $(3003,Be)}()),l=""),l.toString()});return r==i?n:r}function Ad(n){const t=[];let e=n.next();for(;!e.done;)t.push(e.value),e=n.next();return t}const wF=/-+([a-z0-9])/g;function Jg(n){return n.replace(wF,(...t)=>t[1].toUpperCase())}function CF(n){return n.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function oi(n,t,e){switch(t.type){case 7:return n.visitTrigger(t,e);case 0:return n.visitState(t,e);case 1:return n.visitTransition(t,e);case 2:return n.visitSequence(t,e);case 3:return n.visitGroup(t,e);case 4:return n.visitAnimate(t,e);case 5:return n.visitKeyframes(t,e);case 6:return n.visitStyle(t,e);case 8:return n.visitReference(t,e);case 9:return n.visitAnimateChild(t,e);case 10:return n.visitAnimateRef(t,e);case 11:return n.visitQuery(t,e);case 12:return n.visitStagger(t,e);default:throw function VN(n){return new $(3004,Be)}()}}function _b(n,t){return window.getComputedStyle(n)[t]}function MF(n,t){const e=[];return"string"==typeof n?n.split(/\s*,\s*/).forEach(i=>function IF(n,t,e){if(":"==n[0]){const u=function AF(n,t){switch(n){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}(n,e);if("function"==typeof u)return void t.push(u);n=u}const i=n.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function XN(n){return new $(3015,Be)}()),t;const r=i[1],s=i[2],a=i[3];t.push(yb(r,a));"<"==s[0]&&!("*"==r&&"*"==a)&&t.push(yb(a,r))}(i,e,t)):e.push(n),e}const Rd=new Set(["true","1"]),Od=new Set(["false","0"]);function yb(n,t){const e=Rd.has(n)||Od.has(n),i=Rd.has(t)||Od.has(t);return(r,s)=>{let a="*"==n||n==r,l="*"==t||t==s;return!a&&e&&"boolean"==typeof r&&(a=r?Rd.has(n):Od.has(n)),!l&&i&&"boolean"==typeof s&&(l=s?Rd.has(t):Od.has(t)),a&&l}}const PF=new RegExp("s*:selfs*,?","g");function em(n,t,e,i){return new kF(n).build(t,e,i)}class kF{constructor(t){this._driver=t}build(t,e,i){const r=new OF(e);this._resetContextStyleTimingState(r);const s=oi(this,Ul(t),r);return r.unsupportedCSSPropertiesFound.size&&r.unsupportedCSSPropertiesFound.keys(),s}_resetContextStyleTimingState(t){t.currentQuerySelector="",t.collectedStyles={},t.collectedStyles[""]={},t.currentTime=0}visitTrigger(t,e){let i=e.queryCount=0,r=e.depCount=0;const s=[],a=[];return"@"==t.name.charAt(0)&&e.errors.push(function HN(){return new $(3006,Be)}()),t.definitions.forEach(l=>{if(this._resetContextStyleTimingState(e),0==l.type){const u=l,d=u.name;d.toString().split(/\s*,\s*/).forEach(f=>{u.name=f,s.push(this.visitState(u,e))}),u.name=d}else if(1==l.type){const u=this.visitTransition(l,e);i+=u.queryCount,r+=u.depCount,a.push(u)}else e.errors.push(function jN(){return new $(3007,Be)}())}),{type:7,name:t.name,states:s,transitions:a,queryCount:i,depCount:r,options:null}}visitState(t,e){const i=this.visitStyle(t.styles,e),r=t.options&&t.options.params||null;if(i.containsDynamicStyles){const s=new Set,a=r||{};i.styles.forEach(l=>{if(Nd(l)){const u=l;Object.keys(u).forEach(d=>{vb(u[d]).forEach(f=>{a.hasOwnProperty(f)||s.add(f)})})}}),s.size&&(Ad(s.values()),e.errors.push(function UN(n,t){return new $(3008,Be)}()))}return{type:0,name:t.name,style:i,options:r?{params:r}:null}}visitTransition(t,e){e.queryCount=0,e.depCount=0;const i=oi(this,Ul(t.animation),e);return{type:1,matchers:MF(t.expr,e.errors),animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Fs(t.options)}}visitSequence(t,e){return{type:2,steps:t.steps.map(i=>oi(this,i,e)),options:Fs(t.options)}}visitGroup(t,e){const i=e.currentTime;let r=0;const s=t.steps.map(a=>{e.currentTime=i;const l=oi(this,a,e);return r=Math.max(r,e.currentTime),l});return e.currentTime=r,{type:3,steps:s,options:Fs(t.options)}}visitAnimate(t,e){const i=function FF(n,t){let e=null;if(n.hasOwnProperty("duration"))e=n;else if("number"==typeof n)return tm(Md(n,t).duration,0,"");const i=n;if(i.split(/\s+/).some(s=>"{"==s.charAt(0)&&"{"==s.charAt(1))){const s=tm(0,0,"");return s.dynamic=!0,s.strValue=i,s}return e=e||Md(i,t),tm(e.duration,e.delay,e.easing)}(t.timings,e.errors);e.currentAnimateTimings=i;let r,s=t.styles?t.styles:Dd({});if(5==s.type)r=this.visitKeyframes(s,e);else{let a=t.styles,l=!1;if(!a){l=!0;const d={};i.easing&&(d.easing=i.easing),a=Dd(d)}e.currentTime+=i.duration+i.delay;const u=this.visitStyle(a,e);u.isEmptyStep=l,r=u}return e.currentAnimateTimings=null,{type:4,timings:i,style:r,options:null}}visitStyle(t,e){const i=this._makeStyleAst(t,e);return this._validateStyleAst(i,e),i}_makeStyleAst(t,e){const i=[];Array.isArray(t.styles)?t.styles.forEach(a=>{"string"==typeof a?a==Ir?i.push(a):e.errors.push(function zN(n){return new $(3002,Be)}()):i.push(a)}):i.push(t.styles);let r=!1,s=null;return i.forEach(a=>{if(Nd(a)){const l=a,u=l.easing;if(u&&(s=u,delete l.easing),!r)for(let d in l)if(l[d].toString().indexOf("{{")>=0){r=!0;break}}}),{type:6,styles:i,easing:s,offset:t.offset,containsDynamicStyles:r,options:null}}_validateStyleAst(t,e){const i=e.currentAnimateTimings;let r=e.currentTime,s=e.currentTime;i&&s>0&&(s-=i.duration+i.delay),t.styles.forEach(a=>{"string"!=typeof a&&Object.keys(a).forEach(l=>{if(!this._driver.validateStyleProperty(l))return delete a[l],void e.unsupportedCSSPropertiesFound.add(l);const u=e.collectedStyles[e.currentQuerySelector],d=u[l];let f=!0;d&&(s!=r&&s>=d.startTime&&r<=d.endTime&&(e.errors.push(function WN(n,t,e,i,r){return new $(3010,Be)}()),f=!1),s=d.startTime),f&&(u[l]={startTime:s,endTime:r}),e.options&&function yF(n,t,e){const i=t.params||{},r=vb(n);r.length&&r.forEach(s=>{i.hasOwnProperty(s)||e.push(function FN(n){return new $(3001,Be)}())})}(a[l],e.options,e.errors)})})}visitKeyframes(t,e){const i={type:5,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function GN(){return new $(3011,Be)}()),i;let s=0;const a=[];let l=!1,u=!1,d=0;const f=t.steps.map(E=>{const b=this._makeStyleAst(E,e);let A=null!=b.offset?b.offset:function NF(n){if("string"==typeof n)return null;let t=null;if(Array.isArray(n))n.forEach(e=>{if(Nd(e)&&e.hasOwnProperty("offset")){const i=e;t=parseFloat(i.offset),delete i.offset}});else if(Nd(n)&&n.hasOwnProperty("offset")){const e=n;t=parseFloat(e.offset),delete e.offset}return t}(b.styles),x=0;return null!=A&&(s++,x=b.offset=A),u=u||x<0||x>1,l=l||x0&&s{const A=v>0?b==_?1:v*b:a[b],x=A*S;e.currentTime=w+C.delay+x,C.duration=x,this._validateStyleAst(E,e),E.offset=A,i.styles.push(E)}),i}visitReference(t,e){return{type:8,animation:oi(this,Ul(t.animation),e),options:Fs(t.options)}}visitAnimateChild(t,e){return e.depCount++,{type:9,options:Fs(t.options)}}visitAnimateRef(t,e){return{type:10,animation:this.visitReference(t.animation,e),options:Fs(t.options)}}visitQuery(t,e){const i=e.currentQuerySelector,r=t.options||{};e.queryCount++,e.currentQuery=t;const[s,a]=function xF(n){const t=!!n.split(/\s*,\s*/).find(e=>":self"==e);return t&&(n=n.replace(PF,"")),n=n.replace(/@\*/g,Td).replace(/@\w+/g,e=>Td+"-"+e.substr(1)).replace(/:animating/g,Kg),[n,t]}(t.selector);e.currentQuerySelector=i.length?i+" "+s:s,si(e.collectedStyles,e.currentQuerySelector,{});const l=oi(this,Ul(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:11,selector:s,limit:r.limit||0,optional:!!r.optional,includeSelf:a,animation:l,originalSelector:t.selector,options:Fs(t.options)}}visitStagger(t,e){e.currentQuery||e.errors.push(function YN(){return new $(3013,Be)}());const i="full"===t.timings?{duration:0,delay:0,easing:"full"}:Md(t.timings,e.errors,!0);return{type:12,animation:oi(this,Ul(t.animation),e),timings:i,options:null}}}class OF{constructor(t){this.errors=t,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles={},this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function Nd(n){return!Array.isArray(n)&&"object"==typeof n}function Fs(n){return n?(n=ha(n)).params&&(n.params=function RF(n){return n?ha(n):null}(n.params)):n={},n}function tm(n,t,e){return{duration:n,delay:t,easing:e}}function nm(n,t,e,i,r,s,a=null,l=!1){return{type:1,element:n,keyframes:t,preStyleProps:e,postStyleProps:i,duration:r,delay:s,totalTime:r+s,easing:a,subTimeline:l}}class Fd{constructor(){this._map=new Map}get(t){return this._map.get(t)||[]}append(t,e){let i=this._map.get(t);i||this._map.set(t,i=[]),i.push(...e)}has(t){return this._map.has(t)}clear(){this._map.clear()}}const BF=new RegExp(":enter","g"),jF=new RegExp(":leave","g");function im(n,t,e,i,r,s={},a={},l,u,d=[]){return(new UF).buildKeyframes(n,t,e,i,r,s,a,l,u,d)}class UF{buildKeyframes(t,e,i,r,s,a,l,u,d,f=[]){d=d||new Fd;const g=new rm(t,e,d,r,s,f,[]);g.options=u,g.currentTimeline.setStyles([a],null,g.errors,u),oi(this,i,g);const v=g.timelines.filter(_=>_.containsAnimation());if(Object.keys(l).length){let _;for(let w=v.length-1;w>=0;w--){const C=v[w];if(C.element===e){_=C;break}}_&&!_.allowOnlyTimelineStyles()&&_.setStyles([l],null,g.errors,u)}return v.length?v.map(_=>_.buildKeyframes()):[nm(e,[],[],[],0,0,"",!1)]}visitTrigger(t,e){}visitState(t,e){}visitTransition(t,e){}visitAnimateChild(t,e){const i=e.subInstructions.get(e.element);if(i){const r=e.createSubContext(t.options),s=e.currentTimeline.currentTime,a=this._visitSubInstructions(i,r,r.options);s!=a&&e.transformIntoNewTimeline(a)}e.previousNode=t}visitAnimateRef(t,e){const i=e.createSubContext(t.options);i.transformIntoNewTimeline(),this.visitReference(t.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=t}_visitSubInstructions(t,e,i){let s=e.currentTimeline.currentTime;const a=null!=i.duration?Os(i.duration):null,l=null!=i.delay?Os(i.delay):null;return 0!==a&&t.forEach(u=>{const d=e.appendInstructionToTimeline(u,a,l);s=Math.max(s,d.duration+d.delay)}),s}visitReference(t,e){e.updateOptions(t.options,!0),oi(this,t.animation,e),e.previousNode=t}visitSequence(t,e){const i=e.subContextCount;let r=e;const s=t.options;if(s&&(s.params||s.delay)&&(r=e.createSubContext(s),r.transformIntoNewTimeline(),null!=s.delay)){6==r.previousNode.type&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=Ld);const a=Os(s.delay);r.delayNextStep(a)}t.steps.length&&(t.steps.forEach(a=>oi(this,a,r)),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>i&&r.transformIntoNewTimeline()),e.previousNode=t}visitGroup(t,e){const i=[];let r=e.currentTimeline.currentTime;const s=t.options&&t.options.delay?Os(t.options.delay):0;t.steps.forEach(a=>{const l=e.createSubContext(t.options);s&&l.delayNextStep(s),oi(this,a,l),r=Math.max(r,l.currentTimeline.currentTime),i.push(l.currentTimeline)}),i.forEach(a=>e.currentTimeline.mergeTimelineCollectedStyles(a)),e.transformIntoNewTimeline(r),e.previousNode=t}_visitTiming(t,e){if(t.dynamic){const i=t.strValue;return Md(e.params?Id(i,e.params,e.errors):i,e.errors)}return{duration:t.duration,delay:t.delay,easing:t.easing}}visitAnimate(t,e){const i=e.currentAnimateTimings=this._visitTiming(t.timings,e),r=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),r.snapshotCurrentStyles());const s=t.style;5==s.type?this.visitKeyframes(s,e):(e.incrementTime(i.duration),this.visitStyle(s,e),r.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t}visitStyle(t,e){const i=e.currentTimeline,r=e.currentAnimateTimings;!r&&i.getCurrentStyleProperties().length&&i.forwardFrame();const s=r&&r.easing||t.easing;t.isEmptyStep?i.applyEmptyStep(s):i.setStyles(t.styles,s,e.errors,e.options),e.previousNode=t}visitKeyframes(t,e){const i=e.currentAnimateTimings,r=e.currentTimeline.duration,s=i.duration,l=e.createSubContext().currentTimeline;l.easing=i.easing,t.styles.forEach(u=>{l.forwardTime((u.offset||0)*s),l.setStyles(u.styles,u.easing,e.errors,e.options),l.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(l),e.transformIntoNewTimeline(r+s),e.previousNode=t}visitQuery(t,e){const i=e.currentTimeline.currentTime,r=t.options||{},s=r.delay?Os(r.delay):0;s&&(6===e.previousNode.type||0==i&&e.currentTimeline.getCurrentStyleProperties().length)&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=Ld);let a=i;const l=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!r.optional,e.errors);e.currentQueryTotal=l.length;let u=null;l.forEach((d,f)=>{e.currentQueryIndex=f;const g=e.createSubContext(t.options,d);s&&g.delayNextStep(s),d===e.element&&(u=g.currentTimeline),oi(this,t.animation,g),g.currentTimeline.applyStylesToKeyframe(),a=Math.max(a,g.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(a),u&&(e.currentTimeline.mergeTimelineCollectedStyles(u),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t}visitStagger(t,e){const i=e.parentContext,r=e.currentTimeline,s=t.timings,a=Math.abs(s.duration),l=a*(e.currentQueryTotal-1);let u=a*e.currentQueryIndex;switch(s.duration<0?"reverse":s.easing){case"reverse":u=l-u;break;case"full":u=i.currentStaggerTime}const f=e.currentTimeline;u&&f.delayNextStep(u);const g=f.currentTime;oi(this,t.animation,e),e.previousNode=t,i.currentStaggerTime=r.currentTime-g+(r.startTime-i.currentTimeline.startTime)}}const Ld={};class rm{constructor(t,e,i,r,s,a,l,u){this._driver=t,this.element=e,this.subInstructions=i,this._enterClassName=r,this._leaveClassName=s,this.errors=a,this.timelines=l,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=Ld,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=u||new Vd(this._driver,e,0),l.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(t,e){if(!t)return;const i=t;let r=this.options;null!=i.duration&&(r.duration=Os(i.duration)),null!=i.delay&&(r.delay=Os(i.delay));const s=i.params;if(s){let a=r.params;a||(a=this.options.params={}),Object.keys(s).forEach(l=>{(!e||!a.hasOwnProperty(l))&&(a[l]=Id(s[l],a,this.errors))})}}_copyOptions(){const t={};if(this.options){const e=this.options.params;if(e){const i=t.params={};Object.keys(e).forEach(r=>{i[r]=e[r]})}}return t}createSubContext(t=null,e,i){const r=e||this.element,s=new rm(this._driver,r,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(r,i||0));return s.previousNode=this.previousNode,s.currentAnimateTimings=this.currentAnimateTimings,s.options=this._copyOptions(),s.updateOptions(t),s.currentQueryIndex=this.currentQueryIndex,s.currentQueryTotal=this.currentQueryTotal,s.parentContext=this,this.subContextCount++,s}transformIntoNewTimeline(t){return this.previousNode=Ld,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(t,e,i){const r={duration:e??t.duration,delay:this.currentTimeline.currentTime+(i??0)+t.delay,easing:""},s=new zF(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,r,t.stretchStartingKeyframe);return this.timelines.push(s),r}incrementTime(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)}delayNextStep(t){t>0&&this.currentTimeline.delayNextStep(t)}invokeQuery(t,e,i,r,s,a){let l=[];if(r&&l.push(this.element),t.length>0){t=(t=t.replace(BF,"."+this._enterClassName)).replace(jF,"."+this._leaveClassName);let d=this._driver.query(this.element,t,1!=i);0!==i&&(d=i<0?d.slice(d.length+i,d.length):d.slice(0,i)),l.push(...d)}return!s&&0==l.length&&a.push(function KN(n){return new $(3014,Be)}()),l}}class Vd{constructor(t,e,i,r){this._driver=t,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=r,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.getCurrentStyleProperties().length>0;default:return!0}}getCurrentStyleProperties(){return Object.keys(this._currentKeyframe)}get currentTime(){return this.startTime+this.duration}delayNextStep(t){const e=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t}fork(t,e){return this.applyStylesToKeyframe(),new Vd(this._driver,t,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=Object.create(this._backFill,{}),this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()}_updateStyle(t,e){this._localTimelineStyles[t]=e,this._globalTimelineStyles[t]=e,this._styleSummary[t]={time:this.currentTime,value:e}}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(t){t&&(this._previousKeyframe.easing=t),Object.keys(this._globalTimelineStyles).forEach(e=>{this._backFill[e]=this._globalTimelineStyles[e]||Ir,this._currentKeyframe[e]=Ir}),this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(t,e,i,r){e&&(this._previousKeyframe.easing=e);const s=r&&r.params||{},a=function WF(n,t){const e={};let i;return n.forEach(r=>{"*"===r?(i=i||Object.keys(t),i.forEach(s=>{e[s]=Ir})):is(r,!1,e)}),e}(t,this._globalTimelineStyles);Object.keys(a).forEach(l=>{const u=Id(a[l],s,i);this._pendingStyles[l]=u,this._localTimelineStyles.hasOwnProperty(l)||(this._backFill[l]=this._globalTimelineStyles.hasOwnProperty(l)?this._globalTimelineStyles[l]:Ir),this._updateStyle(l,u)})}applyStylesToKeyframe(){const t=this._pendingStyles,e=Object.keys(t);0!=e.length&&(this._pendingStyles={},e.forEach(i=>{this._currentKeyframe[i]=t[i]}),Object.keys(this._localTimelineStyles).forEach(i=>{this._currentKeyframe.hasOwnProperty(i)||(this._currentKeyframe[i]=this._localTimelineStyles[i])}))}snapshotCurrentStyles(){Object.keys(this._localTimelineStyles).forEach(t=>{const e=this._localTimelineStyles[t];this._pendingStyles[t]=e,this._updateStyle(t,e)})}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const t=[];for(let e in this._currentKeyframe)t.push(e);return t}mergeTimelineCollectedStyles(t){Object.keys(t._styleSummary).forEach(e=>{const i=this._styleSummary[e],r=t._styleSummary[e];(!i||r.time>i.time)&&this._updateStyle(e,r.value)})}buildKeyframes(){this.applyStylesToKeyframe();const t=new Set,e=new Set,i=1===this._keyframes.size&&0===this.duration;let r=[];this._keyframes.forEach((l,u)=>{const d=is(l,!0);Object.keys(d).forEach(f=>{const g=d[f];"!"==g?t.add(f):g==Ir&&e.add(f)}),i||(d.offset=u/this.duration),r.push(d)});const s=t.size?Ad(t.values()):[],a=e.size?Ad(e.values()):[];if(i){const l=r[0],u=ha(l);l.offset=0,u.offset=1,r=[l,u]}return nm(this.element,r,s,a,this.duration,this.startTime,this.easing,!1)}}class zF extends Vd{constructor(t,e,i,r,s,a,l=!1){super(t,e,a.delay),this.keyframes=i,this.preStyleProps=r,this.postStyleProps=s,this._stretchStartingKeyframe=l,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let t=this.keyframes,{delay:e,duration:i,easing:r}=this.timings;if(this._stretchStartingKeyframe&&e){const s=[],a=i+e,l=e/a,u=is(t[0],!1);u.offset=0,s.push(u);const d=is(t[0],!1);d.offset=Db(l),s.push(d);const f=t.length-1;for(let g=1;g<=f;g++){let v=is(t[g],!1);v.offset=Db((e+v.offset*i)/a),s.push(v)}i=a,e=0,r="",t=s}return nm(this.element,t,this.preStyleProps,this.postStyleProps,i,e,r,!0)}}function Db(n,t=3){const e=Math.pow(10,t-1);return Math.round(n*e)/e}class sm{}class GF extends sm{normalizePropertyName(t,e){return Jg(t)}normalizeStyleValue(t,e,i,r){let s="";const a=i.toString().trim();if($F[e]&&0!==i&&"0"!==i)if("number"==typeof i)s="px";else{const l=i.match(/^[+-]?[\d\.]+([a-z]*)$/);l&&0==l[1].length&&r.push(function BN(n,t){return new $(3005,Be)}())}return a+s}}const $F=(()=>function ZF(n){const t={};return n.forEach(e=>t[e]=!0),t}("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".split(",")))();function Sb(n,t,e,i,r,s,a,l,u,d,f,g,v){return{type:0,element:n,triggerName:t,isRemovalTransition:r,fromState:e,fromStyles:s,toState:i,toStyles:a,timelines:l,queriedElements:u,preStyleProps:d,postStyleProps:f,totalTime:g,errors:v}}const om={};class bb{constructor(t,e,i){this._triggerName=t,this.ast=e,this._stateStyles=i}match(t,e,i,r){return function qF(n,t,e,i,r){return n.some(s=>s(t,e,i,r))}(this.ast.matchers,t,e,i,r)}buildStyles(t,e,i){const r=this._stateStyles["*"],s=this._stateStyles[t],a=r?r.buildStyles(e,i):{};return s?s.buildStyles(e,i):a}build(t,e,i,r,s,a,l,u,d,f){const g=[],v=this.ast.options&&this.ast.options.params||om,w=this.buildStyles(i,l&&l.params||om,g),C=u&&u.params||om,S=this.buildStyles(r,C,g),E=new Set,b=new Map,A=new Map,x="void"===r,H={params:{...v,...C}},J=f?[]:im(t,e,this.ast.animation,s,a,w,S,H,d,g);let ge=0;if(J.forEach(ee=>{ge=Math.max(ee.duration+ee.delay,ge)}),g.length)return Sb(e,this._triggerName,i,r,x,w,S,[],[],b,A,ge,g);J.forEach(ee=>{const re=ee.element,G=si(b,re,{});ee.preStyleProps.forEach(ke=>G[ke]=!0);const V=si(A,re,{});ee.postStyleProps.forEach(ke=>V[ke]=!0),re!==e&&E.add(re)});const ue=Ad(E.values());return Sb(e,this._triggerName,i,r,x,w,S,J,ue,b,A,ge)}}class YF{constructor(t,e,i){this.styles=t,this.defaultParams=e,this.normalizer=i}buildStyles(t,e){const i={},r=ha(this.defaultParams);return Object.keys(t).forEach(s=>{const a=t[s];null!=a&&(r[s]=a)}),this.styles.styles.forEach(s=>{if("string"!=typeof s){const a=s;Object.keys(a).forEach(l=>{let u=a[l];u.length>1&&(u=Id(u,r,e));const d=this.normalizer.normalizePropertyName(l,e);u=this.normalizer.normalizeStyleValue(l,d,u,e),i[d]=u})}}),i}}class XF{constructor(t,e,i){this.name=t,this.ast=e,this._normalizer=i,this.transitionFactories=[],this.states={},e.states.forEach(r=>{this.states[r.name]=new YF(r.style,r.options&&r.options.params||{},i)}),Eb(this.states,"true","1"),Eb(this.states,"false","0"),e.transitions.forEach(r=>{this.transitionFactories.push(new bb(t,r,this.states))}),this.fallbackTransition=function QF(n,t,e){return new bb(n,{type:1,animation:{type:2,steps:[],options:null},matchers:[(a,l)=>!0],options:null,queryCount:0,depCount:0},t)}(t,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(t,e,i,r){return this.transitionFactories.find(a=>a.match(t,e,i,r))||null}matchStyles(t,e,i){return this.fallbackTransition.buildStyles(t,e,i)}}function Eb(n,t,e){n.hasOwnProperty(t)?n.hasOwnProperty(e)||(n[e]=n[t]):n.hasOwnProperty(e)&&(n[t]=n[e])}const JF=new Fd;class eL{constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i,this._animations={},this._playersById={},this.players=[]}register(t,e){const i=[],s=em(this._driver,e,i,[]);if(i.length)throw function iF(n){return new $(3503,Be)}();this._animations[t]=s}_buildPlayer(t,e,i){const r=t.element,s=ib(0,this._normalizer,0,t.keyframes,e,i);return this._driver.animate(r,s,t.duration,t.delay,t.easing,[],!0)}create(t,e,i={}){const r=[],s=this._animations[t];let a;const l=new Map;if(s?(a=im(this._driver,e,s,Yg,bd,{},{},i,JF,r),a.forEach(f=>{const g=si(l,f.element,{});f.postStyleProps.forEach(v=>g[v]=null)})):(r.push(function rF(){return new $(3300,Be)}()),a=[]),r.length)throw function sF(n){return new $(3504,Be)}();l.forEach((f,g)=>{Object.keys(f).forEach(v=>{f[v]=this._driver.computeStyle(g,v,Ir)})});const d=ns(a.map(f=>{const g=l.get(f.element);return this._buildPlayer(f,{},g)}));return this._playersById[t]=d,d.onDestroy(()=>this.destroy(t)),this.players.push(d),d}destroy(t){const e=this._getPlayer(t);e.destroy(),delete this._playersById[t];const i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(t){const e=this._playersById[t];if(!e)throw function oF(n){return new $(3301,Be)}();return e}listen(t,e,i,r){const s=Gg(e,"","","");return zg(this._getPlayer(t),i,s,r),()=>{}}command(t,e,i,r){if("register"==i)return void this.register(t,r[0]);if("create"==i)return void this.create(t,e,r[0]||{});const s=this._getPlayer(t);switch(i){case"play":s.play();break;case"pause":s.pause();break;case"reset":s.reset();break;case"restart":s.restart();break;case"finish":s.finish();break;case"init":s.init();break;case"setPosition":s.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(t)}}}const Tb="ng-animate-queued",am="ng-animate-disabled",sL=[],Mb={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},oL={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},wi="__ng_removed";class lm{constructor(t,e=""){this.namespaceId=e;const i=t&&t.hasOwnProperty("value");if(this.value=function uL(n){return n??null}(i?t.value:t),i){const s=ha(t);delete s.value,this.options=s}else this.options={};this.options.params||(this.options.params={})}get params(){return this.options.params}absorbOptions(t){const e=t.params;if(e){const i=this.options.params;Object.keys(e).forEach(r=>{null==i[r]&&(i[r]=e[r])})}}}const zl="void",cm=new lm(zl);class aL{constructor(t,e,i){this.id=t,this.hostElement=e,this._engine=i,this.players=[],this._triggers={},this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+t,Ci(e,this._hostClassName)}listen(t,e,i,r){if(!this._triggers.hasOwnProperty(e))throw function aF(n,t){return new $(3302,Be)}();if(null==i||0==i.length)throw function lF(n){return new $(3303,Be)}();if(!function dL(n){return"start"==n||"done"==n}(i))throw function cF(n,t){return new $(3400,Be)}();const s=si(this._elementListeners,t,[]),a={name:e,phase:i,callback:r};s.push(a);const l=si(this._engine.statesByElement,t,{});return l.hasOwnProperty(e)||(Ci(t,Ed),Ci(t,Ed+"-"+e),l[e]=cm),()=>{this._engine.afterFlush(()=>{const u=s.indexOf(a);u>=0&&s.splice(u,1),this._triggers[e]||delete l[e]})}}register(t,e){return!this._triggers[t]&&(this._triggers[t]=e,!0)}_getTrigger(t){const e=this._triggers[t];if(!e)throw function uF(n){return new $(3401,Be)}();return e}trigger(t,e,i,r=!0){const s=this._getTrigger(e),a=new um(this.id,e,t);let l=this._engine.statesByElement.get(t);l||(Ci(t,Ed),Ci(t,Ed+"-"+e),this._engine.statesByElement.set(t,l={}));let u=l[e];const d=new lm(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&u&&d.absorbOptions(u.options),l[e]=d,u||(u=cm),d.value!==zl&&u.value===d.value){if(!function pL(n,t){const e=Object.keys(n),i=Object.keys(t);if(e.length!=i.length)return!1;for(let r=0;r{Ns(t,S),ur(t,E)})}return}const v=si(this._engine.playersByElement,t,[]);v.forEach(C=>{C.namespaceId==this.id&&C.triggerName==e&&C.queued&&C.destroy()});let _=s.matchTransition(u.value,d.value,t,d.params),w=!1;if(!_){if(!r)return;_=s.fallbackTransition,w=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:_,fromState:u,toState:d,player:a,isFallbackTransition:w}),w||(Ci(t,Tb),a.onStart(()=>{fa(t,Tb)})),a.onDone(()=>{let C=this.players.indexOf(a);C>=0&&this.players.splice(C,1);const S=this._engine.playersByElement.get(t);if(S){let E=S.indexOf(a);E>=0&&S.splice(E,1)}}),this.players.push(a),v.push(a),a}deregister(t){delete this._triggers[t],this._engine.statesByElement.forEach((e,i)=>{delete e[t]}),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(r=>r.name!=t))})}clearElementCache(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);const e=this._engine.playersByElement.get(t);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(t))}_signalRemovalForInnerTriggers(t,e){const i=this._engine.driver.query(t,Td,!0);i.forEach(r=>{if(r[wi])return;const s=this._engine.fetchNamespacesByElement(r);s.size?s.forEach(a=>a.triggerLeaveAnimation(r,e,!1,!0)):this.clearElementCache(r)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(r=>this.clearElementCache(r)))}triggerLeaveAnimation(t,e,i,r){const s=this._engine.statesByElement.get(t),a=new Map;if(s){const l=[];if(Object.keys(s).forEach(u=>{if(a.set(u,s[u].value),this._triggers[u]){const d=this.trigger(t,u,zl,r);d&&l.push(d)}}),l.length)return this._engine.markElementAsRemoved(this.id,t,!0,e,a),i&&ns(l).onDone(()=>this._engine.processLeaveNode(t)),!0}return!1}prepareLeaveAnimationListeners(t){const e=this._elementListeners.get(t),i=this._engine.statesByElement.get(t);if(e&&i){const r=new Set;e.forEach(s=>{const a=s.name;if(r.has(a))return;r.add(a);const u=this._triggers[a].fallbackTransition,d=i[a]||cm,f=new lm(zl),g=new um(this.id,a,t);this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:a,transition:u,fromState:d,toState:f,player:g,isFallbackTransition:!0})})}}removeNode(t,e){const i=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,e),this.triggerLeaveAnimation(t,e,!0))return;let r=!1;if(i.totalAnimations){const s=i.players.length?i.playersByQueriedElement.get(t):[];if(s&&s.length)r=!0;else{let a=t;for(;a=a.parentNode;)if(i.statesByElement.get(a)){r=!0;break}}}if(this.prepareLeaveAnimationListeners(t),r)i.markElementAsRemoved(this.id,t,!1,e);else{const s=t[wi];(!s||s===Mb)&&(i.afterFlush(()=>this.clearElementCache(t)),i.destroyInnerAnimations(t),i._onRemovalComplete(t,e))}}insertNode(t,e){Ci(t,this._hostClassName)}drainQueuedTransitions(t){const e=[];return this._queue.forEach(i=>{const r=i.player;if(r.destroyed)return;const s=i.element,a=this._elementListeners.get(s);a&&a.forEach(l=>{if(l.name==i.triggerName){const u=Gg(s,i.triggerName,i.fromState.value,i.toState.value);u._data=t,zg(i.player,l.phase,u,l.callback)}}),r.markedForDestroy?this._engine.afterFlush(()=>{r.destroy()}):e.push(i)}),this._queue=[],e.sort((i,r)=>{const s=i.transition.ast.depCount,a=r.transition.ast.depCount;return 0==s||0==a?s-a:this._engine.driver.containsElement(i.element,r.element)?1:-1})}destroy(t){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,t)}elementContainsData(t){let e=!1;return this._elementListeners.has(t)&&(e=!0),e=!!this._queue.find(i=>i.element===t)||e,e}}class lL{constructor(t,e,i){this.bodyNode=t,this.driver=e,this._normalizer=i,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=(r,s)=>{}}_onRemovalComplete(t,e){this.onRemovalComplete(t,e)}get queuedPlayers(){const t=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&t.push(i)})}),t}createNamespace(t,e){const i=new aL(t,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[t]=i}_balanceNamespaceList(t,e){const i=this._namespaceList,r=this.namespacesByHostElement,s=i.length-1;if(s>=0){let a=!1;if(void 0!==this.driver.getParentElement){let l=this.driver.getParentElement(e);for(;l;){const u=r.get(l);if(u){const d=i.indexOf(u);i.splice(d+1,0,t),a=!0;break}l=this.driver.getParentElement(l)}}else for(let l=s;l>=0;l--)if(this.driver.containsElement(i[l].hostElement,e)){i.splice(l+1,0,t),a=!0;break}a||i.unshift(t)}else i.push(t);return r.set(e,t),t}register(t,e){let i=this._namespaceLookup[t];return i||(i=this.createNamespace(t,e)),i}registerTrigger(t,e,i){let r=this._namespaceLookup[t];r&&r.register(e,i)&&this.totalAnimations++}destroy(t,e){if(!t)return;const i=this._fetchNamespace(t);this.afterFlush(()=>{this.namespacesByHostElement.delete(i.hostElement),delete this._namespaceLookup[t];const r=this._namespaceList.indexOf(i);r>=0&&this._namespaceList.splice(r,1)}),this.afterFlushAnimationsDone(()=>i.destroy(e))}_fetchNamespace(t){return this._namespaceLookup[t]}fetchNamespacesByElement(t){const e=new Set,i=this.statesByElement.get(t);if(i){const r=Object.keys(i);for(let s=0;s=0&&this.collectedLeaveElements.splice(a,1)}if(t){const a=this._fetchNamespace(t);a&&a.insertNode(e,i)}r&&this.collectEnterElement(e)}collectEnterElement(t){this.collectedEnterElements.push(t)}markElementAsDisabled(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),Ci(t,am)):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),fa(t,am))}removeNode(t,e,i,r){if(Bd(e)){const s=t?this._fetchNamespace(t):null;if(s?s.removeNode(e,r):this.markElementAsRemoved(t,e,!1,r),i){const a=this.namespacesByHostElement.get(e);a&&a.id!==t&&a.removeNode(e,r)}}else this._onRemovalComplete(e,r)}markElementAsRemoved(t,e,i,r,s){this.collectedLeaveElements.push(e),e[wi]={namespaceId:t,setForRemoval:r,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:s}}listen(t,e,i,r,s){return Bd(e)?this._fetchNamespace(t).listen(e,i,r,s):()=>{}}_buildInstruction(t,e,i,r,s){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,i,r,t.fromState.options,t.toState.options,e,s)}destroyInnerAnimations(t){let e=this.driver.query(t,Td,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(t,Kg,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(t){const e=this.playersByElement.get(t);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(t){const e=this.playersByQueriedElement.get(t);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(t=>{if(this.players.length)return ns(this.players).onDone(()=>t());t()})}processLeaveNode(t){const e=t[wi];if(e&&e.setForRemoval){if(t[wi]=Mb,e.namespaceId){this.destroyInnerAnimations(t);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(t)}this._onRemovalComplete(t,e.setForRemoval)}t.classList?.contains(am)&&this.markElementAsDisabled(t,!1),this.driver.query(t,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(t=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,r)=>this._balanceNamespaceList(i,r)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],e.length?ns(e).onDone(()=>{i.forEach(r=>r())}):i.forEach(r=>r())}}reportError(t){throw function dF(n){return new $(3402,Be)}()}_flushAnimations(t,e){const i=new Fd,r=[],s=new Map,a=[],l=new Map,u=new Map,d=new Map,f=new Set;this.disabledNodes.forEach(z=>{f.add(z);const te=this.driver.query(z,".ng-animate-queued",!0);for(let ae=0;ae{const ae=Yg+C++;w.set(te,ae),z.forEach(Fe=>Ci(Fe,ae))});const S=[],E=new Set,b=new Set;for(let z=0;zE.add(Fe)):b.add(te))}const A=new Map,x=Pb(v,Array.from(E));x.forEach((z,te)=>{const ae=bd+C++;A.set(te,ae),z.forEach(Fe=>Ci(Fe,ae))}),t.push(()=>{_.forEach((z,te)=>{const ae=w.get(te);z.forEach(Fe=>fa(Fe,ae))}),x.forEach((z,te)=>{const ae=A.get(te);z.forEach(Fe=>fa(Fe,ae))}),S.forEach(z=>{this.processLeaveNode(z)})});const H=[],J=[];for(let z=this._namespaceList.length-1;z>=0;z--)this._namespaceList[z].drainQueuedTransitions(e).forEach(ae=>{const Fe=ae.player,Ge=ae.element;if(H.push(Fe),this.collectedEnterElements.length){const Bn=Ge[wi];if(Bn&&Bn.setForMove){if(Bn.previousTriggersValues&&Bn.previousTriggersValues.has(ae.triggerName)){const $s=Bn.previousTriggersValues.get(ae.triggerName),fs=this.statesByElement.get(ae.element);fs&&fs[ae.triggerName]&&(fs[ae.triggerName].value=$s)}return void Fe.destroy()}}const At=!g||!this.driver.containsElement(g,Ge),pn=A.get(Ge),Di=w.get(Ge),mt=this._buildInstruction(ae,i,Di,pn,At);if(mt.errors&&mt.errors.length)return void J.push(mt);if(At)return Fe.onStart(()=>Ns(Ge,mt.fromStyles)),Fe.onDestroy(()=>ur(Ge,mt.toStyles)),void r.push(Fe);if(ae.isFallbackTransition)return Fe.onStart(()=>Ns(Ge,mt.fromStyles)),Fe.onDestroy(()=>ur(Ge,mt.toStyles)),void r.push(Fe);const yc=[];mt.timelines.forEach(Bn=>{Bn.stretchStartingKeyframe=!0,this.disabledNodes.has(Bn.element)||yc.push(Bn)}),mt.timelines=yc,i.append(Ge,mt.timelines),a.push({instruction:mt,player:Fe,element:Ge}),mt.queriedElements.forEach(Bn=>si(l,Bn,[]).push(Fe)),mt.preStyleProps.forEach((Bn,$s)=>{const fs=Object.keys(Bn);if(fs.length){let Zs=u.get($s);Zs||u.set($s,Zs=new Set),fs.forEach(xv=>Zs.add(xv))}}),mt.postStyleProps.forEach((Bn,$s)=>{const fs=Object.keys(Bn);let Zs=d.get($s);Zs||d.set($s,Zs=new Set),fs.forEach(xv=>Zs.add(xv))})});if(J.length){const z=[];J.forEach(te=>{z.push(function hF(n,t){return new $(3505,Be)}())}),H.forEach(te=>te.destroy()),this.reportError(z)}const ge=new Map,ue=new Map;a.forEach(z=>{const te=z.element;i.has(te)&&(ue.set(te,te),this._beforeAnimationBuild(z.player.namespaceId,z.instruction,ge))}),r.forEach(z=>{const te=z.element;this._getPreviousPlayers(te,!1,z.namespaceId,z.triggerName,null).forEach(Fe=>{si(ge,te,[]).push(Fe),Fe.destroy()})});const ee=S.filter(z=>xb(z,u,d)),re=new Map;Ab(re,this.driver,b,d,Ir).forEach(z=>{xb(z,u,d)&&ee.push(z)});const V=new Map;_.forEach((z,te)=>{Ab(V,this.driver,new Set(z),u,"!")}),ee.forEach(z=>{const te=re.get(z),ae=V.get(z);re.set(z,{...te,...ae})});const ke=[],Pe=[],Vn={};a.forEach(z=>{const{element:te,player:ae,instruction:Fe}=z;if(i.has(te)){if(f.has(te))return ae.onDestroy(()=>ur(te,Fe.toStyles)),ae.disabled=!0,ae.overrideTotalTime(Fe.totalTime),void r.push(ae);let Ge=Vn;if(ue.size>1){let pn=te;const Di=[];for(;pn=pn.parentNode;){const mt=ue.get(pn);if(mt){Ge=mt;break}Di.push(pn)}Di.forEach(mt=>ue.set(mt,Ge))}const At=this._buildAnimation(ae.namespaceId,Fe,ge,s,V,re);if(ae.setRealPlayer(At),Ge===Vn)ke.push(ae);else{const pn=this.playersByElement.get(Ge);pn&&pn.length&&(ae.parentPlayer=ns(pn)),r.push(ae)}}else Ns(te,Fe.fromStyles),ae.onDestroy(()=>ur(te,Fe.toStyles)),Pe.push(ae),f.has(te)&&r.push(ae)}),Pe.forEach(z=>{const te=s.get(z.element);if(te&&te.length){const ae=ns(te);z.setRealPlayer(ae)}}),r.forEach(z=>{z.parentPlayer?z.syncPlayerEvents(z.parentPlayer):z.destroy()});for(let z=0;z!At.destroyed);Ge.length?hL(this,te,Ge):this.processLeaveNode(te)}return S.length=0,ke.forEach(z=>{this.players.push(z),z.onDone(()=>{z.destroy();const te=this.players.indexOf(z);this.players.splice(te,1)}),z.play()}),ke}elementContainsData(t,e){let i=!1;const r=e[wi];return r&&r.setForRemoval&&(i=!0),this.playersByElement.has(e)&&(i=!0),this.playersByQueriedElement.has(e)&&(i=!0),this.statesByElement.has(e)&&(i=!0),this._fetchNamespace(t).elementContainsData(e)||i}afterFlush(t){this._flushFns.push(t)}afterFlushAnimationsDone(t){this._whenQuietFns.push(t)}_getPreviousPlayers(t,e,i,r,s){let a=[];if(e){const l=this.playersByQueriedElement.get(t);l&&(a=l)}else{const l=this.playersByElement.get(t);if(l){const u=!s||s==zl;l.forEach(d=>{d.queued||!u&&d.triggerName!=r||a.push(d)})}}return(i||r)&&(a=a.filter(l=>!(i&&i!=l.namespaceId||r&&r!=l.triggerName))),a}_beforeAnimationBuild(t,e,i){const s=e.element,a=e.isRemovalTransition?void 0:t,l=e.isRemovalTransition?void 0:e.triggerName;for(const u of e.timelines){const d=u.element,f=d!==s,g=si(i,d,[]);this._getPreviousPlayers(d,f,a,l,e.toState).forEach(_=>{const w=_.getRealPlayer();w.beforeDestroy&&w.beforeDestroy(),_.destroy(),g.push(_)})}Ns(s,e.fromStyles)}_buildAnimation(t,e,i,r,s,a){const l=e.triggerName,u=e.element,d=[],f=new Set,g=new Set,v=e.timelines.map(w=>{const C=w.element;f.add(C);const S=C[wi];if(S&&S.removedBeforeQueried)return new jl(w.duration,w.delay);const E=C!==u,b=function fL(n){const t=[];return kb(n,t),t}((i.get(C)||sL).map(ge=>ge.getRealPlayer())).filter(ge=>!!ge.element&&ge.element===C),A=s.get(C),x=a.get(C),H=ib(0,this._normalizer,0,w.keyframes,A,x),J=this._buildPlayer(w,H,b);if(w.subTimeline&&r&&g.add(C),E){const ge=new um(t,l,C);ge.setRealPlayer(J),d.push(ge)}return J});d.forEach(w=>{si(this.playersByQueriedElement,w.element,[]).push(w),w.onDone(()=>function cL(n,t,e){let i;if(n instanceof Map){if(i=n.get(t),i){if(i.length){const r=i.indexOf(e);i.splice(r,1)}0==i.length&&n.delete(t)}}else if(i=n[t],i){if(i.length){const r=i.indexOf(e);i.splice(r,1)}0==i.length&&delete n[t]}return i}(this.playersByQueriedElement,w.element,w))}),f.forEach(w=>Ci(w,fb));const _=ns(v);return _.onDestroy(()=>{f.forEach(w=>fa(w,fb)),ur(u,e.toStyles)}),g.forEach(w=>{si(r,w,[]).push(_)}),_}_buildPlayer(t,e,i){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,i):new jl(t.duration,t.delay)}}class um{constructor(t,e,i){this.namespaceId=t,this.triggerName=e,this.element=i,this._player=new jl,this._containsRealPlayer=!1,this._queuedCallbacks={},this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(t){this._containsRealPlayer||(this._player=t,Object.keys(this._queuedCallbacks).forEach(e=>{this._queuedCallbacks[e].forEach(i=>zg(t,e,void 0,i))}),this._queuedCallbacks={},this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(t){this.totalTime=t}syncPlayerEvents(t){const e=this._player;e.triggerCallback&&t.onStart(()=>e.triggerCallback("start")),t.onDone(()=>this.finish()),t.onDestroy(()=>this.destroy())}_queueEvent(t,e){si(this._queuedCallbacks,t,[]).push(e)}onDone(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)}onStart(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)}onDestroy(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)}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(t){this.queued||this._player.setPosition(t)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(t){const e=this._player;e.triggerCallback&&e.triggerCallback(t)}}function Bd(n){return n&&1===n.nodeType}function Ib(n,t){const e=n.style.display;return n.style.display=t??"none",e}function Ab(n,t,e,i,r){const s=[];e.forEach(u=>s.push(Ib(u)));const a=[];i.forEach((u,d)=>{const f={};u.forEach(g=>{const v=f[g]=t.computeStyle(d,g,r);(!v||0==v.length)&&(d[wi]=oL,a.push(d))}),n.set(d,f)});let l=0;return e.forEach(u=>Ib(u,s[l++])),a}function Pb(n,t){const e=new Map;if(n.forEach(l=>e.set(l,[])),0==t.length)return e;const r=new Set(t),s=new Map;function a(l){if(!l)return 1;let u=s.get(l);if(u)return u;const d=l.parentNode;return u=e.has(d)?d:r.has(d)?1:a(d),s.set(l,u),u}return t.forEach(l=>{const u=a(l);1!==u&&e.get(u).push(l)}),e}function Ci(n,t){n.classList?.add(t)}function fa(n,t){n.classList?.remove(t)}function hL(n,t,e){ns(e).onDone(()=>n.processLeaveNode(t))}function kb(n,t){for(let e=0;er.add(s)):t.set(n,i),e.delete(n),!0}class Hd{constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(r,s)=>{},this._transitionEngine=new lL(t,e,i),this._timelineEngine=new eL(t,e,i),this._transitionEngine.onRemovalComplete=(r,s)=>this.onRemovalComplete(r,s)}registerTrigger(t,e,i,r,s){const a=t+"-"+r;let l=this._triggerCache[a];if(!l){const u=[],f=em(this._driver,s,u,[]);if(u.length)throw function tF(n,t){return new $(3404,Be)}();l=function KF(n,t,e){return new XF(n,t,e)}(r,f,this._normalizer),this._triggerCache[a]=l}this._transitionEngine.registerTrigger(e,r,l)}register(t,e){this._transitionEngine.register(t,e)}destroy(t,e){this._transitionEngine.destroy(t,e)}onInsert(t,e,i,r){this._transitionEngine.insertNode(t,e,i,r)}onRemove(t,e,i,r){this._transitionEngine.removeNode(t,e,r||!1,i)}disableAnimations(t,e){this._transitionEngine.markElementAsDisabled(t,e)}process(t,e,i,r){if("@"==i.charAt(0)){const[s,a]=rb(i);this._timelineEngine.command(s,e,a,r)}else this._transitionEngine.trigger(t,e,i,r)}listen(t,e,i,r,s){if("@"==i.charAt(0)){const[a,l]=rb(i);return this._timelineEngine.listen(a,e,l,s)}return this._transitionEngine.listen(t,e,i,r,s)}flush(t=-1){this._transitionEngine.flush(t)}get players(){return this._transitionEngine.players.concat(this._timelineEngine.players)}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}}let mL=(()=>{class n{constructor(e,i,r){this._element=e,this._startStyles=i,this._endStyles=r,this._state=0;let s=n.initialStylesByElement.get(e);s||n.initialStylesByElement.set(e,s={}),this._initialStyles=s}start(){this._state<1&&(this._startStyles&&ur(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(ur(this._element,this._initialStyles),this._endStyles&&(ur(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(n.initialStylesByElement.delete(this._element),this._startStyles&&(Ns(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Ns(this._element,this._endStyles),this._endStyles=null),ur(this._element,this._initialStyles),this._state=3)}}return n.initialStylesByElement=new WeakMap,n})();function dm(n){let t=null;const e=Object.keys(n);for(let i=0;it()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const t=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=t.length?t[t.length-1]:{},this.domPlayer.addEventListener("finish",()=>this._onFinish())}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_triggerWebAnimation(t,e,i){return t.animate(e,i)}onStart(t){this._onStartFns.push(t)}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(t=>t()),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}_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(t=>t()),this._onDestroyFns=[])}setPosition(t){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=t*this.time}getPosition(){return this.domPlayer.currentTime/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const t={};if(this.hasStarted()){const e=this._finalKeyframe;Object.keys(e).forEach(i=>{"offset"!=i&&(t[i]=this._finished?e[i]:_b(this.element,i))})}this.currentSnapshot=t}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class _L{validateStyleProperty(t){return lb(t)}matchesElement(t,e){return!1}containsElement(t,e){return cb(t,e)}getParentElement(t){return Zg(t)}query(t,e,i){return ub(t,e,i)}computeStyle(t,e,i){return window.getComputedStyle(t)[e]}animate(t,e,i,r,s,a=[]){const u={duration:i,delay:r,fill:0==r?"both":"forwards"};s&&(u.easing=s);const d={},f=a.filter(v=>v instanceof Rb);(function DF(n,t){return 0===n||0===t})(i,r)&&f.forEach(v=>{let _=v.currentSnapshot;Object.keys(_).forEach(w=>d[w]=_[w])}),e=function SF(n,t,e){const i=Object.keys(e);if(i.length&&t.length){let s=t[0],a=[];if(i.forEach(l=>{s.hasOwnProperty(l)||a.push(l),s[l]=e[l]}),a.length)for(var r=1;ris(v,!1)),d);const g=function gL(n,t){let e=null,i=null;return Array.isArray(t)&&t.length?(e=dm(t[0]),t.length>1&&(i=dm(t[t.length-1]))):t&&(e=dm(t)),e||i?new mL(n,e,i):null}(t,e);return new Rb(t,e,u,g)}}let yL=(()=>{class n extends YS{constructor(e,i){super(),this._nextAnimationId=0,this._renderer=e.createRenderer(i.body,{id:"0",encapsulation:Qn.None,styles:[],data:{animation:[]}})}build(e){const i=this._nextAnimationId.toString();this._nextAnimationId++;const r=Array.isArray(e)?XS(e):e;return Ob(this._renderer,null,i,"register",[r]),new wL(i,this._renderer)}}return n.\u0275fac=function(e){return new(e||n)(P(Ml),P(pt))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();class wL extends class xN{}{constructor(t,e){super(),this._id=t,this._renderer=e}create(t,e){return new CL(this._id,t,e||{},this._renderer)}}class CL{constructor(t,e,i,r){this.id=t,this.element=e,this._renderer=r,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",i)}_listen(t,e){return this._renderer.listen(this.element,`@@${this.id}:${t}`,e)}_command(t,...e){return Ob(this._renderer,this.element,this.id,t,e)}onDone(t){this._listen("done",t)}onStart(t){this._listen("start",t)}onDestroy(t){this._listen("destroy",t)}init(){this._command("init")}hasStarted(){return this._started}play(){this._command("play"),this._started=!0}pause(){this._command("pause")}restart(){this._command("restart")}finish(){this._command("finish")}destroy(){this._command("destroy")}reset(){this._command("reset"),this._started=!1}setPosition(t){this._command("setPosition",t)}getPosition(){return this._renderer.engine.players[+this.id]?.getPosition()??0}}function Ob(n,t,e,i,r){return n.setProperty(t,`@@${e}:${i}`,r)}const Nb="@.disabled";let DL=(()=>{class n{constructor(e,i,r){this.delegate=e,this.engine=i,this._zone=r,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,this.promise=Promise.resolve(0),i.onRemovalComplete=(s,a)=>{const l=a?.parentNode(s);l&&a.removeChild(l,s)}}createRenderer(e,i){const s=this.delegate.createRenderer(e,i);if(!(e&&i&&i.data&&i.data.animation)){let f=this._rendererCache.get(s);return f||(f=new Fb("",s,this.engine),this._rendererCache.set(s,f)),f}const a=i.id,l=i.id+"-"+this._currentId;this._currentId++,this.engine.register(l,e);const u=f=>{Array.isArray(f)?f.forEach(u):this.engine.registerTrigger(a,l,e,f.name,f)};return i.data.animation.forEach(u),new SL(this,l,s,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){this.promise.then(()=>{this._microtaskId++})}scheduleListenerCallback(e,i,r){e>=0&&ei(r)):(0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(()=>{this._zone.run(()=>{this._animationCallbacksBuffer.forEach(s=>{const[a,l]=s;a(l)}),this._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([i,r]))}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()}}return n.\u0275fac=function(e){return new(e||n)(P(Ml),P(Hd),P(lt))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();class Fb{constructor(t,e,i){this.namespaceId=t,this.delegate=e,this.engine=i,this.destroyNode=this.delegate.destroyNode?r=>e.destroyNode(r):null}get data(){return this.delegate.data}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}appendChild(t,e){this.delegate.appendChild(t,e),this.engine.onInsert(this.namespaceId,e,t,!1)}insertBefore(t,e,i,r=!0){this.delegate.insertBefore(t,e,i),this.engine.onInsert(this.namespaceId,e,t,r)}removeChild(t,e,i){this.engine.onRemove(this.namespaceId,e,this.delegate,i)}selectRootElement(t,e){return this.delegate.selectRootElement(t,e)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setAttribute(t,e,i,r){this.delegate.setAttribute(t,e,i,r)}removeAttribute(t,e,i){this.delegate.removeAttribute(t,e,i)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,i,r){this.delegate.setStyle(t,e,i,r)}removeStyle(t,e,i){this.delegate.removeStyle(t,e,i)}setProperty(t,e,i){"@"==e.charAt(0)&&e==Nb?this.disableAnimations(t,!!i):this.delegate.setProperty(t,e,i)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,i){return this.delegate.listen(t,e,i)}disableAnimations(t,e){this.engine.disableAnimations(t,e)}}class SL extends Fb{constructor(t,e,i,r){super(e,i,r),this.factory=t,this.namespaceId=e}setProperty(t,e,i){"@"==e.charAt(0)?"."==e.charAt(1)&&e==Nb?this.disableAnimations(t,i=void 0===i||!!i):this.engine.process(this.namespaceId,t,e.substr(1),i):this.delegate.setProperty(t,e,i)}listen(t,e,i){if("@"==e.charAt(0)){const r=function bL(n){switch(n){case"body":return document.body;case"document":return document;case"window":return window;default:return n}}(t);let s=e.substr(1),a="";return"@"!=s.charAt(0)&&([s,a]=function EL(n){const t=n.indexOf(".");return[n.substring(0,t),n.substr(t+1)]}(s)),this.engine.listen(this.namespaceId,r,s,a,l=>{this.factory.scheduleListenerCallback(l._data||-1,i,l)})}return this.delegate.listen(t,e,i)}}let TL=(()=>{class n extends Hd{constructor(e,i,r){super(e.body,i,r)}ngOnDestroy(){this.flush()}}return n.\u0275fac=function(e){return new(e||n)(P(pt),P(qg),P(sm))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();const Lb=new Ie("AnimationModuleType"),Vb=[{provide:YS,useClass:yL},{provide:sm,useFactory:function ML(){return new GF}},{provide:Hd,useClass:TL},{provide:Ml,useFactory:function IL(n,t,e){return new DL(n,t,e)},deps:[wd,Hd,lt]}],Bb=[{provide:qg,useFactory:()=>new _L},{provide:Lb,useValue:"BrowserAnimations"},...Vb],AL=[{provide:qg,useClass:db},{provide:Lb,useValue:"NoopAnimations"},...Vb];let PL=(()=>{class n{static withConfig(e){return{ngModule:n,providers:e.disableAnimations?AL:Bb}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({providers:Bb,imports:[WS]}),n})();function rs(...n){return pr(n,Br(n))}class kL extends Nt{constructor(t,e){super()}schedule(t,e=0){return this}}const Ud={setInterval(n,t,...e){const{delegate:i}=Ud;return(null==i?void 0:i.setInterval)?i.setInterval(n,t,...e):setInterval(n,t,...e)},clearInterval(n){const{delegate:t}=Ud;return((null==t?void 0:t.clearInterval)||clearInterval)(n)},delegate:void 0};class hm extends kL{constructor(t,e){super(t,e),this.scheduler=t,this.work=e,this.pending=!1}schedule(t,e=0){if(this.closed)return this;this.state=t;const i=this.id,r=this.scheduler;return null!=i&&(this.id=this.recycleAsyncId(r,i,e)),this.pending=!0,this.delay=e,this.id=this.id||this.requestAsyncId(r,this.id,e),this}requestAsyncId(t,e,i=0){return Ud.setInterval(t.flush.bind(t,this),i)}recycleAsyncId(t,e,i=0){if(null!=i&&this.delay===i&&!1===this.pending)return e;Ud.clearInterval(e)}execute(t,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(t,e);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(t,e){let r,i=!1;try{this.work(t)}catch(s){i=!0,r=s||new Error("Scheduled action threw falsy error")}if(i)return this.unsubscribe(),r}unsubscribe(){if(!this.closed){const{id:t,scheduler:e}=this,{actions:i}=e;this.work=this.state=this.scheduler=null,this.pending=!1,Qe(i,this),null!=t&&(this.id=this.recycleAsyncId(e,t,null)),this.delay=null,super.unsubscribe()}}}class Wl{constructor(t,e=Wl.now){this.schedulerActionCtor=t,this.now=e}schedule(t,e=0,i){return new this.schedulerActionCtor(this,t).schedule(i,e)}}Wl.now=Bg.now;class fm extends Wl{constructor(t,e=Wl.now){super(t,e),this.actions=[],this._active=!1,this._scheduled=void 0}flush(t){const{actions:e}=this;if(this._active)return void e.push(t);let i;this._active=!0;do{if(i=t.execute(t.state,t.delay))break}while(t=e.shift());if(this._active=!1,i){for(;t=e.shift();)t.unsubscribe();throw i}}}const pm=new fm(hm),xL=pm;function zd(n=0,t,e=xL){let i=-1;return null!=t&&(Hc(t)?e=t:i=t),new nt(r=>{let s=function RL(n){return n instanceof Date&&!isNaN(n)}(n)?+n-e.now():n;s<0&&(s=0);let a=0;return e.schedule(function(){r.closed||(r.next(a++),0<=i?this.schedule(void 0,i):r.complete())},s)})}class Gl extends ve{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const e=super._subscribe(t);return!e.closed&&t.next(this._value),e}getValue(){const{hasError:t,thrownError:e,_value:i}=this;if(t)throw e;return this._throwIfClosed(),i}next(t){super.next(this._value=t)}}function Hb(n=0,t=pm){return n<0&&(n=0),zd(n,n,t)}function Ar(n){return ut((t,e)=>{In(n).subscribe(it(e,()=>e.complete(),Bi)),!e.closed&&t.subscribe(e)})}function jb(...n){return function OL(){return Ra(1)}()(pr(n,Br(n)))}function Ub(...n){const t=Br(n);return ut((e,i)=>{(t?jb(n,e,t):jb(n,e)).subscribe(i)})}var FL=function(){function n(){}return n.prototype.getAllStyles=function(t){return window.getComputedStyle(t)},n.prototype.getStyle=function(t,e){return this.getAllStyles(t)[e]},n.prototype.isStaticPositioned=function(t){return"static"===(this.getStyle(t,"position")||"static")},n.prototype.offsetParent=function(t){for(var e=t.offsetParent||document.documentElement;e&&e!==document.documentElement&&this.isStaticPositioned(e);)e=e.offsetParent;return e||document.documentElement},n.prototype.position=function(t,e){void 0===e&&(e=!0);var i,r={width:0,height:0,top:0,bottom:0,left:0,right:0};if("fixed"===this.getStyle(t,"position"))i={top:(i=t.getBoundingClientRect()).top,bottom:i.bottom,left:i.left,right:i.right,height:i.height,width:i.width};else{var s=this.offsetParent(t);i=this.offset(t,!1),s!==document.documentElement&&(r=this.offset(s,!1)),r.top+=s.clientTop,r.left+=s.clientLeft}return i.top-=r.top,i.bottom-=r.top,i.left-=r.left,i.right-=r.left,e&&(i.top=Math.round(i.top),i.bottom=Math.round(i.bottom),i.left=Math.round(i.left),i.right=Math.round(i.right)),i},n.prototype.offset=function(t,e){void 0===e&&(e=!0);var i=t.getBoundingClientRect(),r_top=window.pageYOffset-document.documentElement.clientTop,r_left=window.pageXOffset-document.documentElement.clientLeft,s={height:i.height||t.offsetHeight,width:i.width||t.offsetWidth,top:i.top+r_top,bottom:i.bottom+r_top,left:i.left+r_left,right:i.right+r_left};return e&&(s.height=Math.round(s.height),s.width=Math.round(s.width),s.top=Math.round(s.top),s.bottom=Math.round(s.bottom),s.left=Math.round(s.left),s.right=Math.round(s.right)),s},n.prototype.positionElements=function(t,e,i,r){var s=i.split("-"),a=s[0],l=void 0===a?"top":a,u=s[1],d=void 0===u?"center":u,f=r?this.offset(t,!1):this.position(t,!1),g=this.getAllStyles(e),v=parseFloat(g.marginTop),_=parseFloat(g.marginBottom),w=parseFloat(g.marginLeft),C=parseFloat(g.marginRight),S=0,E=0;switch(l){case"top":S=f.top-(e.offsetHeight+v+_);break;case"bottom":S=f.top+f.height;break;case"left":E=f.left-(e.offsetWidth+w+C);break;case"right":E=f.left+f.width}switch(d){case"top":S=f.top;break;case"bottom":S=f.top+f.height-e.offsetHeight;break;case"left":E=f.left;break;case"right":E=f.left+f.width-e.offsetWidth;break;case"center":"top"===l||"bottom"===l?E=f.left+f.width/2-e.offsetWidth/2:S=f.top+f.height/2-e.offsetHeight/2}e.style.transform="translate("+Math.round(E)+"px, "+Math.round(S)+"px)";var b=e.getBoundingClientRect(),A=document.documentElement,x=window.innerHeight||A.clientHeight,H=window.innerWidth||A.clientWidth;return b.left>=0&&b.top>=0&&b.right<=H&&b.bottom<=x},n}(),LL=/\s+/,zb=new FL,Li=function(){return Li=Object.assign||function(n){for(var t,e=1,i=arguments.length;e{return(n=$l||($l={}))[n.SUNDAY=0]="SUNDAY",n[n.MONDAY=1]="MONDAY",n[n.TUESDAY=2]="TUESDAY",n[n.WEDNESDAY=3]="WEDNESDAY",n[n.THURSDAY=4]="THURSDAY",n[n.FRIDAY=5]="FRIDAY",n[n.SATURDAY=6]="SATURDAY",$l;var n})(),BL=[$l.SUNDAY,$l.SATURDAY],ss=86400;function Gb(n,t){var e=t.startDate,r=t.excluded,s=t.precision;if(r.length<1)return 0;for(var l=n.getDay,u=n.addDays,d=(0,n.addSeconds)(e,t.seconds-1),f=l(e),g=l(d),v=0,_=e,w=function(){var C=l(_);r.some(function(S){return S===C})&&(v+=function HL(n,t){var i=t.day,s=t.dayEnd,a=t.startDate,l=t.endDate,u=n.differenceInSeconds,f=n.startOfDay;if("minutes"===t.precision){if(i===t.dayStart)return u((0,n.endOfDay)(a),a)+1;if(i===s)return u(l,f(l))+1}return ss}(n,{dayStart:f,dayEnd:g,day:C,precision:s,startDate:e,endDate:d})),_=u(_,1)};_i&&ai&&lr||s(a,i)||s(a,r)||s(l,i)||s(l,r))}(n,{event:s,periodStart:i,periodEnd:r})})}function $b(n,t){var e=t.date,i=t.weekendDays,r=void 0===i?BL:i,a=n.isSameDay,l=n.getDay,u=(0,n.startOfDay)(new Date),d=l(e);return{date:e,day:d,isPast:eu,isWeekend:r.indexOf(d)>-1}}function vm(n,t){for(var r=t.excluded,s=void 0===r?[]:r,a=t.weekendDays,l=t.viewStart,u=void 0===l?n.startOfWeek(t.viewDate,{weekStartsOn:t.weekStartsOn}):l,d=t.viewEnd,f=void 0===d?n.addDays(u,7):d,g=n.addDays,v=n.getDay,_=[],w=u;wE&&(_=E-C),(_-=Gb(n,{startDate:w,seconds:_,excluded:s,precision:a}))/ss}(n,{event:A,offset:x,startOfWeekDate:f,excluded:s,precision:l,totalDaysInView:C});return{event:A,offset:x,span:H}}).filter(function(A){return A.offset0}).map(function(A){return{event:A.event,offset:A.offset,span:A.span,startsBeforeWeek:A.event.startg}}).sort(function(A,x){var H=v(A.event.start,x.event.start);return 0===H?v(x.event.end||x.event.start,A.event.end||A.event.start):H}),E=[],b=[];return S.forEach(function(A,x){if(-1===b.indexOf(A)){b.push(A);var H=A.span+A.offset,J=S.slice(x+1).filter(function(ee){if(ee.offset>=H&&H+ee.span<=C&&-1===b.indexOf(ee)){var re=ee.offset-H;return d||(ee.offset=re),H+=ee.span+re,b.push(ee),!0}}),ge=Wb([A],J),ue=ge.filter(function(ee){return ee.event.id}).map(function(ee){return ee.event.id}).join("-");E.push(Li({row:ge},ue?{id:ue}:{}))}}),E}function $L(n,t){var e=t.events,i=t.viewDate,r=t.hourSegments,s=t.hourDuration,a=t.dayStart,l=t.dayEnd,u=t.weekStartsOn,d=t.excluded,f=t.weekendDays,g=t.segmentHeight,v=t.viewStart,_=t.viewEnd,w=t.minimumEventHeight,C=function KL(n,t){var e=t.viewDate,i=t.hourSegments,r=t.hourDuration,s=t.dayStart,a=t.dayEnd,l=n.setMinutes,u=n.setHours,d=n.startOfDay,f=n.startOfMinute,g=n.endOfDay,v=n.addMinutes,w=n.addDays,C=[],S=l(u(d(e),$d(s.hour)),Zd(s.minute)),E=l(u(f(g(e)),$d(a.hour)),Zd(a.minute)),b=(r||60)/i,A=d(e),x=g(e),H=function(G){return G};n.getTimezoneOffset(A)!==n.getTimezoneOffset(x)&&(A=w(A,1),S=w(S,1),E=w(E,1),H=function(G){return w(G,-1)});for(var J=r?1440/r:60,ge=0;ge=S&&re0&&C.push({segments:ue})}return C}(n,{viewDate:i,hourSegments:r,hourDuration:s,dayStart:a,dayEnd:l}),S=vm(n,{viewDate:i,weekStartsOn:u,excluded:d,weekendDays:f,viewStart:v,viewEnd:_}),E=n.setHours,b=n.setMinutes,A=n.getHours,x=n.getMinutes;return S.map(function(H){var J=function YL(n,t){var e=t.events,i=t.viewDate,r=t.hourSegments,s=t.dayStart,a=t.dayEnd,l=t.eventWidth,u=t.segmentHeight,d=t.hourDuration,f=t.minimumEventHeight,g=n.setMinutes,v=n.setHours,_=n.startOfDay,w=n.startOfMinute,C=n.endOfDay,S=n.differenceInMinutes,E=g(v(_(i),$d(s.hour)),Zd(s.minute)),b=g(v(w(C(i)),$d(a.hour)),Zd(a.minute));b.setSeconds(59,999);var A=[],x=Zl(n,{events:e.filter(function(ue){return!ue.allDay}),periodStart:E,periodEnd:b}),H=x.sort(function(ue,ee){return ue.start.valueOf()-ee.start.valueOf()}).map(function(ue){var ee=ue.start,re=ue.end||ee,G=eeb,ke=r*u/(d||60),Pe=0;if(ee>E){var Vn=n.getTimezoneOffset(ee),te=n.getTimezoneOffset(E)-Vn;Pe+=S(ee,E)+te}Pe*=ke,Pe=Math.floor(Pe);var ae=G?E:ee,Fe=V?b:re,Ge=n.getTimezoneOffset(ae)-n.getTimezoneOffset(Fe),At=S(Fe,ae)+Ge;ue.end?At*=ke:At=u,f&&At=V}).filter(function(Pe){return Gd(G,Pe.top,Pe.top+Pe.height).length>0});return ke.length>0?ue(re,ke):V}var ee=J.events.map(function(re){var V=100/ue(J.events,Gd(J.events,re.top,re.top+re.height));return Li(Li({},re),{left:re.left*V,width:V})});return{hours:ge,date:H.date,events:ee.map(function(re){var G=Gd(ee.filter(function(V){return V.left>re.left}),re.top,re.top+re.height);return G.length>0?Li(Li({},re),{width:Math.min.apply(Math,G.map(function(V){return V.left}))-re.left}):re})}})}function Gd(n,t,e){return n.filter(function(i){var r=i.top,s=i.top+i.height;return t{return(n=os||(os={})).NotArray="Events must be an array",n.StartPropertyMissing="Event is missing the `start` property",n.StartPropertyNotDate="Event `start` property should be a javascript date object. Do `new Date(event.start)` to fix it.",n.EndPropertyNotDate="Event `end` property should be a javascript date object. Do `new Date(event.end)` to fix it.",n.EndsBeforeStart="Event `start` property occurs after the `end`",os;var n})();const{isArray:QL}=Array,{getPrototypeOf:JL,prototype:eV,keys:tV}=Object;function Zb(n){if(1===n.length){const t=n[0];if(QL(t))return{args:t,keys:null};if(function nV(n){return n&&"object"==typeof n&&JL(n)===eV}(t)){const e=tV(t);return{args:e.map(i=>t[i]),keys:e}}}return{args:n,keys:null}}const{isArray:iV}=Array;function _m(n){return He(t=>function rV(n,t){return iV(t)?n(...t):n(t)}(n,t))}function qb(n,t){return n.reduce((e,i,r)=>(e[i]=t[r],e),{})}function Yb(n,t,e){n?ci(e,n,t):t()}const aV=["addListener","removeListener"],lV=["addEventListener","removeEventListener"],cV=["on","off"];function pa(n,t,e,i){if(Re(e)&&(i=e,e=void 0),i)return pa(n,t,e).pipe(_m(i));const[r,s]=function hV(n){return Re(n.addEventListener)&&Re(n.removeEventListener)}(n)?lV.map(a=>l=>n[a](t,l,e)):function uV(n){return Re(n.addListener)&&Re(n.removeListener)}(n)?aV.map(Kb(n,t)):function dV(n){return Re(n.on)&&Re(n.off)}(n)?cV.map(Kb(n,t)):[];if(!r&&Ia(n))return ui(a=>pa(a,t,e))(In(n));if(!r)throw new TypeError("Invalid event target");return new nt(a=>{const l=(...u)=>a.next(1s(l)})}function Kb(n,t){return e=>i=>n[e](t,i)}function vn(n,t){return ut((e,i)=>{let r=0;e.subscribe(it(i,s=>n.call(t,s,r++)&&i.next(s)))})}function Pr(n){return n<=0?()=>bi:ut((t,e)=>{let i=0;t.subscribe(it(e,r=>{++i<=n&&(e.next(r),n<=i&&e.complete())}))})}function pV(n,t,e,i,r){return(s,a)=>{let l=e,u=t,d=0;s.subscribe(it(a,f=>{const g=d++;u=l?n(u,f,g):(l=!0,f),i&&a.next(u)},r&&(()=>{l&&a.next(u),a.complete()})))}}function ym(){return ut((n,t)=>{let e,i=!1;n.subscribe(it(t,r=>{const s=e;e=r,i&&t.next([s,r]),i=!0}))})}function _V(n,t){return n===t}function wm(n,t){return n=function yV(n,t){return typeof n>"u"?typeof t>"u"?n:t:n}(n,t),"function"==typeof n?function(){for(var i=arguments,r=arguments.length,s=Array(r),a=0;a"u"?"undefined":Cm(n))&&1===n.nodeType&&"object"===Cm(n.style)&&"object"===Cm(n.ownerDocument)};function Qb(n,t){if(t=Sm(t,!0),!Xb(t))return-1;for(var e=0;e0;)e[i]=t[i+1];return wV(n,e=e.map(Sm))}function DV(n){for(var t=arguments,e=[],i=arguments.length-1;i-- >0;)e[i]=t[i+1];return e.map(Sm).reduce(function(r,s){var a=Qb(n,s);return-1!==a?r.concat(n.splice(a,1)):r},[])}function Sm(n,t){if("string"==typeof n)try{return document.querySelector(n)}catch(e){throw e}if(!Xb(n)&&!t)throw new TypeError(n+" is not a DOM element.");return n}function Jb(n){if(n===window)return function bV(){var n={top:{value:0,enumerable:!0},left:{value:0,enumerable:!0},right:{value:window.innerWidth,enumerable:!0},bottom:{value:window.innerHeight,enumerable:!0},width:{value:window.innerWidth,enumerable:!0},height:{value:window.innerHeight,enumerable:!0},x:{value:0,enumerable:!0},y:{value:0,enumerable:!0}};if(Object.create)return Object.create({},n);var t={};return Object.defineProperties(t,n),t}();try{var t=n.getBoundingClientRect();return void 0===t.x&&(t.x=t.left,t.y=t.top),t}catch{throw new TypeError("Can't call getBoundingClientRect on "+n)}}var t,bm=void 0;"function"!=typeof Object.create?(t=function(){},bm=function(e,i){if(e!==Object(e)&&null!==e)throw TypeError("Argument must be an object, or null");t.prototype=e||{};var r=new t;return t.prototype=null,void 0!==i&&Object.defineProperties(r,i),null===e&&(r.__proto__=null),r}):bm=Object.create;var TV=bm,Ls=["altKey","button","buttons","clientX","clientY","ctrlKey","metaKey","movementX","movementY","offsetX","offsetY","pageX","pageY","region","relatedTarget","screenX","screenY","shiftKey","which","x","y"];function Em(n,t){t=t||{};for(var e=TV(n),i=0;i"u")return function(){};for(var n=0,t=ql.length;n"u")return function(){};for(var n=0,t=ql.length;nV.right-e.margin.right?Math.ceil(Math.min(1,(a.x-V.right)/e.margin.right+1)*e.maxSpeed.right):0,Pe=a.yV.bottom-e.margin.bottom?Math.ceil(Math.min(1,(a.y-V.bottom)/e.margin.bottom+1)*e.maxSpeed.bottom):0,e.syncMove()&&u.dispatch(G,{pageX:a.pageX+ke,pageY:a.pageY+Pe,clientX:a.x+ke,clientY:a.y+Pe}),setTimeout(function(){Pe&&function ee(G,V){G===window?window.scrollTo(G.pageXOffset,G.pageYOffset+V):G.scrollTop+=V}(G,Pe),ke&&function re(G,V){G===window?window.scrollTo(G.pageXOffset+V,G.pageYOffset):G.scrollLeft+=V}(G,ke)})}window.addEventListener("mousedown",C,!1),window.addEventListener("touchstart",C,!1),window.addEventListener("mouseup",S,!1),window.addEventListener("touchend",S,!1),window.addEventListener("pointerup",S,!1),window.addEventListener("mousemove",H,!1),window.addEventListener("touchmove",H,!1),window.addEventListener("mouseleave",b,!1),window.addEventListener("scroll",w,!0)}function e0(n,t,e){return e?n.y>e.top&&n.ye.left&&n.xe.top&&n.ye.left&&n.xn.addClass(t.nativeElement,i))}function qd(n,t,e){e&&e.split(" ").forEach(i=>n.removeClass(t.nativeElement,i))}let t0=(()=>{class n{constructor(){this.currentDrag=new ve}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),n0=(()=>{class n{constructor(e){this.elementRef=e}}return n.\u0275fac=function(e){return new(e||n)(M(Tt))},n.\u0275dir=ie({type:n,selectors:[["","mwlDraggableScrollContainer",""]]}),n})(),Im=(()=>{class n{constructor(e,i,r,s,a,l,u){this.element=e,this.renderer=i,this.draggableHelper=r,this.zone=s,this.vcr=a,this.scrollContainer=l,this.document=u,this.dragAxis={x:!0,y:!0},this.dragSnapGrid={},this.ghostDragEnabled=!0,this.showOriginalElementWhileDragging=!1,this.dragCursor="",this.autoScroll={margin:20},this.dragPointerDown=new K,this.dragStart=new K,this.ghostElementCreated=new K,this.dragging=new K,this.dragEnd=new K,this.pointerDown$=new ve,this.pointerMove$=new ve,this.pointerUp$=new ve,this.eventListenerSubscriptions={},this.destroy$=new ve,this.timeLongPress={timerBegin:0,timerEnd:0}}ngOnInit(){this.checkEventListeners();const e=this.pointerDown$.pipe(vn(()=>this.canDrag()),ui(i=>{i.event.stopPropagation&&!this.scrollContainer&&i.event.stopPropagation();const r=this.renderer.createElement("style");this.renderer.setAttribute(r,"type","text/css"),this.renderer.appendChild(r,this.renderer.createText("\n body * {\n -moz-user-select: none;\n -ms-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n }\n ")),requestAnimationFrame(()=>{this.document.head.appendChild(r)});const s=this.getScrollPosition(),a=new nt(_=>this.renderer.listen(this.scrollContainer?this.scrollContainer.elementRef.nativeElement:"window","scroll",C=>_.next(C))).pipe(Ub(s),He(()=>this.getScrollPosition())),l=new ve,u=new ZS;this.dragPointerDown.observers.length>0&&this.zone.run(()=>{this.dragPointerDown.next({x:0,y:0})});const d=sn(this.pointerUp$,this.pointerDown$,u,this.destroy$).pipe(Se()),f=function sV(...n){const t=Br(n),e=jc(n),{args:i,keys:r}=Zb(n);if(0===i.length)return pr([],t);const s=new nt(function oV(n,t,e=Vt){return i=>{Yb(t,()=>{const{length:r}=n,s=new Array(r);let a=r,l=r;for(let u=0;u{const d=pr(n[u],t);let f=!1;d.subscribe(it(i,g=>{s[u]=g,f||(f=!0,l--),l||i.next(e(s.slice()))},()=>{--a||i.complete()}))},i)},i)}}(i,t,r?a=>qb(r,a):Vt));return e?s.pipe(_m(e)):s}([this.pointerMove$,a]).pipe(He(([_,w])=>({currentDrag$:l,transformX:_.clientX-i.clientX,transformY:_.clientY-i.clientY,clientX:_.clientX,clientY:_.clientY,scrollLeft:w.left,scrollTop:w.top,target:_.event.target})),He(_=>(this.dragSnapGrid.x&&(_.transformX=Math.round(_.transformX/this.dragSnapGrid.x)*this.dragSnapGrid.x),this.dragSnapGrid.y&&(_.transformY=Math.round(_.transformY/this.dragSnapGrid.y)*this.dragSnapGrid.y),_)),He(_=>(this.dragAxis.x||(_.transformX=0),this.dragAxis.y||(_.transformY=0),_)),He(_=>{const w=_.scrollLeft-s.left,C=_.scrollTop-s.top;return Object.assign(Object.assign({},_),{x:_.transformX+w,y:_.transformY+C})}),vn(({x:_,y:w,transformX:C,transformY:S})=>!this.validateDrag||this.validateDrag({x:_,y:w,transform:{x:C,y:S}})),Ar(d),Se()),g=f.pipe(Pr(1),Se()),v=f.pipe(function fV(n){return n<=0?()=>bi:ut((t,e)=>{let i=[];t.subscribe(it(e,r=>{i.push(r),n{for(const r of i)e.next(r);e.complete()},void 0,()=>{i=null}))})}(1),Se());return g.subscribe(({clientX:_,clientY:w,x:C,y:S})=>{if(this.dragStart.observers.length>0&&this.zone.run(()=>{this.dragStart.next({cancelDrag$:u})}),this.scroller=function AV(n,t){return new IV(n,t)}([this.scrollContainer?this.scrollContainer.elementRef.nativeElement:this.document.defaultView],Object.assign(Object.assign({},this.autoScroll),{autoScroll:()=>!0})),Mm(this.renderer,this.element,this.dragActiveClass),this.ghostDragEnabled){const E=this.element.nativeElement.getBoundingClientRect(),b=this.element.nativeElement.cloneNode(!0);if(this.showOriginalElementWhileDragging||this.renderer.setStyle(this.element.nativeElement,"visibility","hidden"),this.ghostElementAppendTo?this.ghostElementAppendTo.appendChild(b):this.element.nativeElement.parentNode.insertBefore(b,this.element.nativeElement.nextSibling),this.ghostElement=b,this.document.body.style.cursor=this.dragCursor,this.setElementStyles(b,{position:"fixed",top:`${E.top}px`,left:`${E.left}px`,width:`${E.width}px`,height:`${E.height}px`,cursor:this.dragCursor,margin:"0",willChange:"transform",pointerEvents:"none"}),this.ghostElementTemplate){const A=this.vcr.createEmbeddedView(this.ghostElementTemplate);b.innerHTML="",A.rootNodes.filter(x=>x instanceof Node).forEach(x=>{b.appendChild(x)}),v.subscribe(()=>{this.vcr.remove(this.vcr.indexOf(A))})}this.ghostElementCreated.observers.length>0&&this.zone.run(()=>{this.ghostElementCreated.emit({clientX:_-C,clientY:w-S,element:b})}),v.subscribe(()=>{b.parentElement.removeChild(b),this.ghostElement=null,this.renderer.setStyle(this.element.nativeElement,"visibility","")})}this.draggableHelper.currentDrag.next(l)}),v.pipe(ui(_=>{const w=u.pipe(function mV(n){return function gV(n,t){return ut(pV(n,t,arguments.length>=2,!1,!0))}((t,e,i)=>!n||n(e,i)?t+1:t,0)}(),Pr(1),He(C=>Object.assign(Object.assign({},_),{dragCancelled:C>0})));return u.complete(),w})).subscribe(({x:_,y:w,dragCancelled:C})=>{this.scroller.destroy(),this.dragEnd.observers.length>0&&this.zone.run(()=>{this.dragEnd.next({x:_,y:w,dragCancelled:C})}),qd(this.renderer,this.element,this.dragActiveClass),l.complete()}),sn(d,v).pipe(Pr(1)).subscribe(()=>{requestAnimationFrame(()=>{this.document.head.removeChild(r)})}),f}),Se());sn(e.pipe(Pr(1),He(i=>[,i])),e.pipe(ym())).pipe(vn(([i,r])=>!i||i.x!==r.x||i.y!==r.y),He(([i,r])=>r)).subscribe(({x:i,y:r,currentDrag$:s,clientX:a,clientY:l,transformX:u,transformY:d,target:f})=>{this.dragging.observers.length>0&&this.zone.run(()=>{this.dragging.next({x:i,y:r})}),requestAnimationFrame(()=>{if(this.ghostElement){const g=`translate3d(${u}px, ${d}px, 0px)`;this.setElementStyles(this.ghostElement,{transform:g,"-webkit-transform":g,"-ms-transform":g,"-moz-transform":g,"-o-transform":g})}}),s.next({clientX:a,clientY:l,dropData:this.dropData,target:f})})}ngOnChanges(e){e.dragAxis&&this.checkEventListeners()}ngOnDestroy(){this.unsubscribeEventListeners(),this.pointerDown$.complete(),this.pointerMove$.complete(),this.pointerUp$.complete(),this.destroy$.next()}checkEventListeners(){const e=this.canDrag(),i=Object.keys(this.eventListenerSubscriptions).length>0;e&&!i?this.zone.runOutsideAngular(()=>{this.eventListenerSubscriptions.mousedown=this.renderer.listen(this.element.nativeElement,"mousedown",r=>{this.onMouseDown(r)}),this.eventListenerSubscriptions.mouseup=this.renderer.listen("document","mouseup",r=>{this.onMouseUp(r)}),this.eventListenerSubscriptions.touchstart=this.renderer.listen(this.element.nativeElement,"touchstart",r=>{this.onTouchStart(r)}),this.eventListenerSubscriptions.touchend=this.renderer.listen("document","touchend",r=>{this.onTouchEnd(r)}),this.eventListenerSubscriptions.touchcancel=this.renderer.listen("document","touchcancel",r=>{this.onTouchEnd(r)}),this.eventListenerSubscriptions.mouseenter=this.renderer.listen(this.element.nativeElement,"mouseenter",()=>{this.onMouseEnter()}),this.eventListenerSubscriptions.mouseleave=this.renderer.listen(this.element.nativeElement,"mouseleave",()=>{this.onMouseLeave()})}):!e&&i&&this.unsubscribeEventListeners()}onMouseDown(e){0===e.button&&(this.eventListenerSubscriptions.mousemove||(this.eventListenerSubscriptions.mousemove=this.renderer.listen("document","mousemove",i=>{this.pointerMove$.next({event:i,clientX:i.clientX,clientY:i.clientY})})),this.pointerDown$.next({event:e,clientX:e.clientX,clientY:e.clientY}))}onMouseUp(e){0===e.button&&(this.eventListenerSubscriptions.mousemove&&(this.eventListenerSubscriptions.mousemove(),delete this.eventListenerSubscriptions.mousemove),this.pointerUp$.next({event:e,clientX:e.clientX,clientY:e.clientY}))}onTouchStart(e){let i,r,s;if(this.touchStartLongPress&&(this.timeLongPress.timerBegin=Date.now(),r=!1,s=this.hasScrollbar(),i=this.getScrollPosition()),!this.eventListenerSubscriptions.touchmove){const a=pa(this.document,"contextmenu").subscribe(u=>{u.preventDefault()}),l=pa(this.document,"touchmove",{passive:!1}).subscribe(u=>{this.touchStartLongPress&&!r&&s&&(r=this.shouldBeginDrag(e,u,i)),(!this.touchStartLongPress||!s||r)&&(u.preventDefault(),this.pointerMove$.next({event:u,clientX:u.targetTouches[0].clientX,clientY:u.targetTouches[0].clientY}))});this.eventListenerSubscriptions.touchmove=()=>{a.unsubscribe(),l.unsubscribe()}}this.pointerDown$.next({event:e,clientX:e.touches[0].clientX,clientY:e.touches[0].clientY})}onTouchEnd(e){this.eventListenerSubscriptions.touchmove&&(this.eventListenerSubscriptions.touchmove(),delete this.eventListenerSubscriptions.touchmove,this.touchStartLongPress&&this.enableScroll()),this.pointerUp$.next({event:e,clientX:e.changedTouches[0].clientX,clientY:e.changedTouches[0].clientY})}onMouseEnter(){this.setCursor(this.dragCursor)}onMouseLeave(){this.setCursor("")}canDrag(){return this.dragAxis.x||this.dragAxis.y}setCursor(e){this.eventListenerSubscriptions.mousemove||this.renderer.setStyle(this.element.nativeElement,"cursor",e)}unsubscribeEventListeners(){Object.keys(this.eventListenerSubscriptions).forEach(e=>{this.eventListenerSubscriptions[e](),delete this.eventListenerSubscriptions[e]})}setElementStyles(e,i){Object.keys(i).forEach(r=>{this.renderer.setStyle(e,r,i[r])})}getScrollElement(){return this.scrollContainer?this.scrollContainer.elementRef.nativeElement:this.document.body}getScrollPosition(){return this.scrollContainer?{top:this.scrollContainer.elementRef.nativeElement.scrollTop,left:this.scrollContainer.elementRef.nativeElement.scrollLeft}:{top:window.pageYOffset||this.document.documentElement.scrollTop,left:window.pageXOffset||this.document.documentElement.scrollLeft}}shouldBeginDrag(e,i,r){const s=this.getScrollPosition(),a_top=Math.abs(s.top-r.top),a_left=Math.abs(s.left-r.left),l=Math.abs(i.targetTouches[0].clientX-e.touches[0].clientX)-a_left,u=Math.abs(i.targetTouches[0].clientY-e.touches[0].clientY)-a_top,f=this.touchStartLongPress;return(l+u>f.delta||a_top>0||a_left>0)&&(this.timeLongPress.timerBegin=Date.now()),this.timeLongPress.timerEnd=Date.now(),this.timeLongPress.timerEnd-this.timeLongPress.timerBegin>=f.delay&&(this.disableScroll(),!0)}enableScroll(){this.scrollContainer&&this.renderer.setStyle(this.scrollContainer.elementRef.nativeElement,"overflow",""),this.renderer.setStyle(this.document.body,"overflow","")}disableScroll(){this.scrollContainer&&this.renderer.setStyle(this.scrollContainer.elementRef.nativeElement,"overflow","hidden"),this.renderer.setStyle(this.document.body,"overflow","hidden")}hasScrollbar(){const e=this.getScrollElement();return e.scrollWidth>e.clientWidth||e.scrollHeight>e.clientHeight}}return n.\u0275fac=function(e){return new(e||n)(M(Tt),M($n),M(t0),M(lt),M(ii),M(n0,8),M(pt))},n.\u0275dir=ie({type:n,selectors:[["","mwlDraggable",""]],inputs:{dropData:"dropData",dragAxis:"dragAxis",dragSnapGrid:"dragSnapGrid",ghostDragEnabled:"ghostDragEnabled",showOriginalElementWhileDragging:"showOriginalElementWhileDragging",validateDrag:"validateDrag",dragCursor:"dragCursor",dragActiveClass:"dragActiveClass",ghostElementAppendTo:"ghostElementAppendTo",ghostElementTemplate:"ghostElementTemplate",touchStartLongPress:"touchStartLongPress",autoScroll:"autoScroll"},outputs:{dragPointerDown:"dragPointerDown",dragStart:"dragStart",ghostElementCreated:"ghostElementCreated",dragging:"dragging",dragEnd:"dragEnd"},features:[Kt]}),n})();function r0(n,t,e){return n>=e.left&&n<=e.right&&t>=e.top&&t<=e.bottom}let Am=(()=>{class n{constructor(e,i,r,s,a){this.element=e,this.draggableHelper=i,this.zone=r,this.renderer=s,this.scrollContainer=a,this.dragEnter=new K,this.dragLeave=new K,this.dragOver=new K,this.drop=new K}ngOnInit(){this.currentDragSubscription=this.draggableHelper.currentDrag.subscribe(e=>{Mm(this.renderer,this.element,this.dragActiveClass);const i={updateCache:!0},r=this.renderer.listen(this.scrollContainer?this.scrollContainer.elementRef.nativeElement:"window","scroll",()=>{i.updateCache=!0});let s;const a=e.pipe(He(({clientX:d,clientY:f,dropData:g,target:v})=>{s={clientX:d,clientY:f,dropData:g,target:v},i.updateCache&&(i.rect=this.element.nativeElement.getBoundingClientRect(),this.scrollContainer&&(i.scrollContainerRect=this.scrollContainer.elementRef.nativeElement.getBoundingClientRect()),i.updateCache=!1);const _=r0(d,f,i.rect),w=!this.validateDrop||this.validateDrop({clientX:d,clientY:f,target:v,dropData:g});return i.scrollContainerRect?_&&w&&r0(d,f,i.scrollContainerRect):_&&w})),l=a.pipe(function vV(n,t=Vt){return n=n??_V,ut((e,i)=>{let r,s=!0;e.subscribe(it(i,a=>{const l=t(a);(s||!n(r,l))&&(s=!1,r=l,i.next(a))}))})}());let u;l.pipe(vn(d=>d)).subscribe(()=>{u=!0,Mm(this.renderer,this.element,this.dragOverClass),this.dragEnter.observers.length>0&&this.zone.run(()=>{this.dragEnter.next(s)})}),a.pipe(vn(d=>d)).subscribe(()=>{this.dragOver.observers.length>0&&this.zone.run(()=>{this.dragOver.next(s)})}),l.pipe(ym(),vn(([d,f])=>d&&!f)).subscribe(()=>{u=!1,qd(this.renderer,this.element,this.dragOverClass),this.dragLeave.observers.length>0&&this.zone.run(()=>{this.dragLeave.next(s)})}),e.subscribe({complete:()=>{r(),qd(this.renderer,this.element,this.dragActiveClass),u&&(qd(this.renderer,this.element,this.dragOverClass),this.drop.observers.length>0&&this.zone.run(()=>{this.drop.next(s)}))}})})}ngOnDestroy(){this.currentDragSubscription&&this.currentDragSubscription.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(M(Tt),M(t0),M(lt),M($n),M(n0,8))},n.\u0275dir=ie({type:n,selectors:[["","mwlDroppable",""]],inputs:{dragOverClass:"dragOverClass",dragActiveClass:"dragActiveClass",validateDrop:"validateDrop"},outputs:{dragEnter:"dragEnter",dragLeave:"dragLeave",dragOver:"dragOver",drop:"drop"}}),n})(),Yd=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({}),n})();function s0(n,t,e){const i=Re(n)||t||e?{next:n,error:t,complete:e}:n;return i?ut((r,s)=>{var a;null===(a=i.subscribe)||void 0===a||a.call(i);let l=!0;r.subscribe(it(s,u=>{var d;null===(d=i.next)||void 0===d||d.call(i,u),s.next(u)},()=>{var u;l=!1,null===(u=i.complete)||void 0===u||u.call(i),s.complete()},u=>{var d;l=!1,null===(d=i.error)||void 0===d||d.call(i,u),s.error(u)},()=>{var u,d;l&&(null===(u=i.unsubscribe)||void 0===u||u.call(i)),null===(d=i.finalize)||void 0===d||d.call(i)}))}):Vt}const Vs=!(typeof window>"u")&&("ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0);function o0(n,t,e,i){const r=t.querySelectorAll(n);if(r.length){const s=e.querySelectorAll(n);for(let a=0;a{i[r]=(e[r]||0)-(t[r]||0)}),i}const h0="resize-active";let f0=(()=>{class n{constructor(e,i,r,s){this.platformId=e,this.renderer=i,this.elm=r,this.zone=s,this.enableGhostResize=!1,this.resizeSnapGrid={},this.resizeCursors=u0,this.ghostElementPositioning="fixed",this.allowNegativeResizes=!1,this.mouseMoveThrottleMS=50,this.resizeStart=new K,this.resizing=new K,this.resizeEnd=new K,this.mouseup=new ve,this.mousedown=new ve,this.mousemove=new ve,this.destroy$=new ve,this.pointerEventListeners=ma.getInstance(i,s)}ngOnInit(){const e=sn(this.pointerEventListeners.pointerDown,this.mousedown),i=sn(this.pointerEventListeners.pointerMove,this.mousemove).pipe(s0(({event:d})=>{if(s)try{d.preventDefault()}catch{}}),Se()),r=sn(this.pointerEventListeners.pointerUp,this.mouseup);let s;const a=()=>{s&&s.clonedNode&&(this.elm.nativeElement.parentElement.removeChild(s.clonedNode),this.renderer.setStyle(this.elm.nativeElement,"visibility","inherit"))},l=()=>Object.assign(Object.assign({},u0),this.resizeCursors);e.pipe(ui(d=>{function f(_){return{clientX:_.clientX-d.clientX,clientY:_.clientY-d.clientY}}const g=()=>{const _={x:1,y:1};return s&&(this.resizeSnapGrid.left&&s.edges.left?_.x=+this.resizeSnapGrid.left:this.resizeSnapGrid.right&&s.edges.right&&(_.x=+this.resizeSnapGrid.right),this.resizeSnapGrid.top&&s.edges.top?_.y=+this.resizeSnapGrid.top:this.resizeSnapGrid.bottom&&s.edges.bottom&&(_.y=+this.resizeSnapGrid.bottom)),_};function v(_,w){return{x:Math.ceil(_.clientX/w.x),y:Math.ceil(_.clientY/w.y)}}return sn(i.pipe(Pr(1)).pipe(He(_=>[,_])),i.pipe(ym())).pipe(He(([_,w])=>[_&&f(_),f(w)])).pipe(vn(([_,w])=>{if(!_)return!0;const C=g(),S=v(_,C),E=v(w,C);return S.x!==E.x||S.y!==E.y})).pipe(He(([,_])=>{const w=g();return{clientX:Math.round(_.clientX/w.x)*w.x,clientY:Math.round(_.clientY/w.y)*w.y}})).pipe(Ar(sn(r,e)))})).pipe(vn(()=>!!s)).pipe(He(({clientX:d,clientY:f})=>c0(s.startingRect,s.edges,d,f))).pipe(vn(d=>this.allowNegativeResizes||!!(d.height&&d.width&&d.height>0&&d.width>0))).pipe(vn(d=>!this.validateResize||this.validateResize({rectangle:d,edges:Kd({edges:s.edges,initialRectangle:s.startingRect,newRectangle:d})})),Ar(this.destroy$)).subscribe(d=>{s&&s.clonedNode&&(this.renderer.setStyle(s.clonedNode,"height",`${d.height}px`),this.renderer.setStyle(s.clonedNode,"width",`${d.width}px`),this.renderer.setStyle(s.clonedNode,"top",`${d.top}px`),this.renderer.setStyle(s.clonedNode,"left",`${d.left}px`)),this.resizing.observers.length>0&&this.zone.run(()=>{this.resizing.emit({edges:Kd({edges:s.edges,initialRectangle:s.startingRect,newRectangle:d}),rectangle:d})}),s.currentRect=d}),e.pipe(He(({edges:d})=>d||{}),vn(d=>Object.keys(d).length>0),Ar(this.destroy$)).subscribe(d=>{s&&a();const f=function RV(n,t){let e=0,i=0;const r=n.nativeElement.style,a=["transform","-ms-transform","-moz-transform","-o-transform"].map(l=>r[l]).find(l=>!!l);if(a&&a.includes("translate")&&(e=a.replace(/.*translate3?d?\((-?[0-9]*)px, (-?[0-9]*)px.*/,"$1"),i=a.replace(/.*translate3?d?\((-?[0-9]*)px, (-?[0-9]*)px.*/,"$2")),"absolute"===t)return{height:n.nativeElement.offsetHeight,width:n.nativeElement.offsetWidth,top:n.nativeElement.offsetTop-i,bottom:n.nativeElement.offsetHeight+n.nativeElement.offsetTop-i,left:n.nativeElement.offsetLeft-e,right:n.nativeElement.offsetWidth+n.nativeElement.offsetLeft-e};{const l=n.nativeElement.getBoundingClientRect();return{height:l.height,width:l.width,top:l.top-i,bottom:l.bottom-i,left:l.left-e,right:l.right-e,scrollTop:n.nativeElement.scrollTop,scrollLeft:n.nativeElement.scrollLeft}}}(this.elm,this.ghostElementPositioning);s={edges:d,startingRect:f,currentRect:f};const g=l(),v=d0(s.edges,g);this.renderer.setStyle(document.body,"cursor",v),this.setElementClass(this.elm,h0,!0),this.enableGhostResize&&(s.clonedNode=function kV(n){const t=n.cloneNode(!0),e=t.querySelectorAll("[id]"),i=n.nodeName.toLowerCase();return t.removeAttribute("id"),e.forEach(r=>{r.removeAttribute("id")}),"canvas"===i?l0(n,t):("input"===i||"select"===i||"textarea"===i)&&a0(n,t),o0("canvas",n,t,l0),o0("input, textarea, select",n,t,a0),t}(this.elm.nativeElement),this.elm.nativeElement.parentElement.appendChild(s.clonedNode),this.renderer.setStyle(this.elm.nativeElement,"visibility","hidden"),this.renderer.setStyle(s.clonedNode,"position",this.ghostElementPositioning),this.renderer.setStyle(s.clonedNode,"left",`${s.startingRect.left}px`),this.renderer.setStyle(s.clonedNode,"top",`${s.startingRect.top}px`),this.renderer.setStyle(s.clonedNode,"height",`${s.startingRect.height}px`),this.renderer.setStyle(s.clonedNode,"width",`${s.startingRect.width}px`),this.renderer.setStyle(s.clonedNode,"cursor",d0(s.edges,g)),this.renderer.addClass(s.clonedNode,"resize-ghost-element"),s.clonedNode.scrollTop=s.startingRect.scrollTop,s.clonedNode.scrollLeft=s.startingRect.scrollLeft),this.resizeStart.observers.length>0&&this.zone.run(()=>{this.resizeStart.emit({edges:Kd({edges:d,initialRectangle:f,newRectangle:f}),rectangle:c0(f,{},0,0)})})}),r.pipe(Ar(this.destroy$)).subscribe(()=>{s&&(this.renderer.removeClass(this.elm.nativeElement,h0),this.renderer.setStyle(document.body,"cursor",""),this.renderer.setStyle(this.elm.nativeElement,"cursor",""),this.resizeEnd.observers.length>0&&this.zone.run(()=>{this.resizeEnd.emit({edges:Kd({edges:s.edges,initialRectangle:s.startingRect,newRectangle:s.currentRect}),rectangle:s.currentRect})}),a(),s=null)})}ngOnDestroy(){kS(this.platformId)&&this.renderer.setStyle(document.body,"cursor",""),this.mousedown.complete(),this.mouseup.complete(),this.mousemove.complete(),this.destroy$.next()}setElementClass(e,i,r){r?this.renderer.addClass(e.nativeElement,i):this.renderer.removeClass(e.nativeElement,i)}}return n.\u0275fac=function(e){return new(e||n)(M(ca),M($n),M(Tt),M(lt))},n.\u0275dir=ie({type:n,selectors:[["","mwlResizable",""]],inputs:{validateResize:"validateResize",enableGhostResize:"enableGhostResize",resizeSnapGrid:"resizeSnapGrid",resizeCursors:"resizeCursors",ghostElementPositioning:"ghostElementPositioning",allowNegativeResizes:"allowNegativeResizes",mouseMoveThrottleMS:"mouseMoveThrottleMS"},outputs:{resizeStart:"resizeStart",resizing:"resizing",resizeEnd:"resizeEnd"},exportAs:["mwlResizable"]}),n})();class ma{constructor(t,e){this.pointerDown=new nt(i=>{let r,s;return e.runOutsideAngular(()=>{r=t.listen("document","mousedown",a=>{i.next({clientX:a.clientX,clientY:a.clientY,event:a})}),Vs&&(s=t.listen("document","touchstart",a=>{i.next({clientX:a.touches[0].clientX,clientY:a.touches[0].clientY,event:a})}))}),()=>{r(),Vs&&s()}}).pipe(Se()),this.pointerMove=new nt(i=>{let r,s;return e.runOutsideAngular(()=>{r=t.listen("document","mousemove",a=>{i.next({clientX:a.clientX,clientY:a.clientY,event:a})}),Vs&&(s=t.listen("document","touchmove",a=>{i.next({clientX:a.targetTouches[0].clientX,clientY:a.targetTouches[0].clientY,event:a})}))}),()=>{r(),Vs&&s()}}).pipe(Se()),this.pointerUp=new nt(i=>{let r,s,a;return e.runOutsideAngular(()=>{r=t.listen("document","mouseup",l=>{i.next({clientX:l.clientX,clientY:l.clientY,event:l})}),Vs&&(s=t.listen("document","touchend",l=>{i.next({clientX:l.changedTouches[0].clientX,clientY:l.changedTouches[0].clientY,event:l})}),a=t.listen("document","touchcancel",l=>{i.next({clientX:l.changedTouches[0].clientX,clientY:l.changedTouches[0].clientY,event:l})}))}),()=>{r(),Vs&&(s(),a())}}).pipe(Se())}static getInstance(t,e){return ma.instance||(ma.instance=new ma(t,e)),ma.instance}}let FV=(()=>{class n{constructor(e,i,r,s){this.renderer=e,this.element=i,this.zone=r,this.resizableDirective=s,this.resizeEdges={},this.eventListeners={},this.destroy$=new ve}ngOnInit(){this.zone.runOutsideAngular(()=>{this.listenOnTheHost("mousedown").subscribe(e=>{this.onMousedown(e,e.clientX,e.clientY)}),this.listenOnTheHost("mouseup").subscribe(e=>{this.onMouseup(e.clientX,e.clientY)}),Vs&&(this.listenOnTheHost("touchstart").subscribe(e=>{this.onMousedown(e,e.touches[0].clientX,e.touches[0].clientY)}),sn(this.listenOnTheHost("touchend"),this.listenOnTheHost("touchcancel")).subscribe(e=>{this.onMouseup(e.changedTouches[0].clientX,e.changedTouches[0].clientY)}))})}ngOnDestroy(){this.destroy$.next(),this.unsubscribeEventListeners()}onMousedown(e,i,r){e.preventDefault(),this.eventListeners.touchmove||(this.eventListeners.touchmove=this.renderer.listen(this.element.nativeElement,"touchmove",s=>{this.onMousemove(s,s.targetTouches[0].clientX,s.targetTouches[0].clientY)})),this.eventListeners.mousemove||(this.eventListeners.mousemove=this.renderer.listen(this.element.nativeElement,"mousemove",s=>{this.onMousemove(s,s.clientX,s.clientY)})),this.resizable.mousedown.next({clientX:i,clientY:r,edges:this.resizeEdges})}onMouseup(e,i){this.unsubscribeEventListeners(),this.resizable.mouseup.next({clientX:e,clientY:i,edges:this.resizeEdges})}get resizable(){return this.resizableDirective||this.resizableContainer}onMousemove(e,i,r){this.resizable.mousemove.next({clientX:i,clientY:r,edges:this.resizeEdges,event:e})}unsubscribeEventListeners(){Object.keys(this.eventListeners).forEach(e=>{this.eventListeners[e](),delete this.eventListeners[e]})}listenOnTheHost(e){return pa(this.element.nativeElement,e).pipe(Ar(this.destroy$))}}return n.\u0275fac=function(e){return new(e||n)(M($n),M(Tt),M(lt),M(f0,8))},n.\u0275dir=ie({type:n,selectors:[["","mwlResizeHandle",""]],inputs:{resizeEdges:"resizeEdges",resizableContainer:"resizableContainer"}}),n})(),p0=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({}),n})();const LV=function(n){return{action:n}};function VV(n,t){if(1&n){const e=jt();Z(0,"a",5),de("mwlClick",function(r){const a=Q(e).$implicit,l=N(2).event;return a.onClick({event:l,sourceEvent:r})})("mwlKeydownEnter",function(r){const a=Q(e).$implicit,l=N(2).event;return a.onClick({event:l,sourceEvent:r})}),Mt(1,"calendarA11y"),Y()}if(2&n){const e=t.$implicit;F("ngClass",e.cssClass)("innerHtml",e.label,Au),Jt("aria-label",xi(1,3,Ps(6,LV,e),"actionButtonLabel"))}}function BV(n,t){if(1&n&&(Z(0,"span",3),se(1,VV,2,8,"a",4),Y()),2&n){const e=N(),i=e.event,r=e.trackByActionId;j(1),F("ngForOf",i.actions)("ngForTrackBy",r)}}function HV(n,t){1&n&&se(0,BV,2,2,"span",2),2&n&&F("ngIf",t.event.actions)}function jV(n,t){}const UV=function(n,t){return{event:n,trackByActionId:t}},va=function(){return{}};function zV(n,t){if(1&n&&(St(0,"span",2),Mt(1,"calendarEventTitle"),Mt(2,"calendarA11y")),2&n){const e=t.event;F("innerHTML",Ri(1,2,e.title,t.view,e),Au),Jt("aria-hidden",xi(2,6,On(9,va),"hideEventTitle"))}}function WV(n,t){}const GV=function(n,t){return{event:n,view:t}};function $V(n,t){if(1&n&&(Z(0,"div",2),St(1,"div",3)(2,"div",4),Y()),2&n){const e=t.contents;F("ngClass","cal-tooltip-"+t.placement),j(2),F("innerHtml",e,Au)}}function ZV(n,t){}const qV=function(n,t,e){return{contents:n,placement:t,event:e}};function YV(n,t){if(1&n){const e=jt();Z(0,"div",4),de("click",function(r){const a=Q(e).$implicit;return N(2).columnHeaderClicked.emit({isoDayNumber:a.day,sourceEvent:r})}),bt(1),Mt(2,"calendarDate"),Y()}if(2&n){const e=t.$implicit,i=N().locale;cn("cal-past",e.isPast)("cal-today",e.isToday)("cal-future",e.isFuture)("cal-weekend",e.isWeekend),F("ngClass",e.cssClass),j(1),Dl(" ",Ri(2,10,e.date,"monthViewColumnHeader",i)," ")}}function KV(n,t){if(1&n&&(Z(0,"div",2),se(1,YV,3,14,"div",3),Y()),2&n){const e=t.days,i=t.trackByWeekDayHeaderDate;j(1),F("ngForOf",e)("ngForTrackBy",i)}}function XV(n,t){}const QV=function(n,t,e){return{days:n,locale:t,trackByWeekDayHeaderDate:e}};function JV(n,t){if(1&n&&(Z(0,"span",7),bt(1),Y()),2&n){const e=N().day;j(1),Is(e.badgeTotal)}}const Pm=function(n){return{backgroundColor:n}},e2=function(n,t){return{event:n,draggedFrom:t}},Kl=function(n,t){return{x:n,y:t}},Xd=function(){return{delay:300,delta:30}};function t2(n,t){if(1&n){const e=jt();Z(0,"div",10),de("mouseenter",function(){const s=Q(e).$implicit;return N(2).highlightDay.emit({event:s})})("mouseleave",function(){const s=Q(e).$implicit;return N(2).unhighlightDay.emit({event:s})})("mwlClick",function(r){const a=Q(e).$implicit;return N(2).eventClicked.emit({event:a,sourceEvent:r})}),Mt(1,"calendarEventTitle"),Mt(2,"calendarA11y"),Y()}if(2&n){const e=t.$implicit,i=N(2),r=i.tooltipPlacement,s=i.tooltipTemplate,a=i.tooltipAppendToBody,l=i.tooltipDelay,u=i.day,d=i.validateDrag;cn("cal-draggable",e.draggable),F("ngStyle",Ps(22,Pm,null==e.color?null:e.color.primary))("ngClass",null==e?null:e.cssClass)("mwlCalendarTooltip",Ri(1,15,e.title,"monthTooltip",e))("tooltipPlacement",r)("tooltipEvent",e)("tooltipTemplate",s)("tooltipAppendToBody",a)("tooltipDelay",l)("dropData",un(24,e2,e,u))("dragAxis",un(27,Kl,e.draggable,e.draggable))("validateDrag",d)("touchStartLongPress",On(30,Xd)),Jt("aria-hidden",xi(2,19,On(31,va),"hideMonthCellEvents"))}}function n2(n,t){if(1&n&&(Z(0,"div",8),se(1,t2,3,32,"div",9),Y()),2&n){const e=N(),i=e.day,r=e.trackByEventId;j(1),F("ngForOf",i.events)("ngForTrackBy",r)}}const r2=function(n,t){return{day:n,locale:t}};function s2(n,t){if(1&n&&(Z(0,"div",2),Mt(1,"calendarA11y"),Z(2,"span",3),se(3,JV,2,1,"span",4),Z(4,"span",5),bt(5),Mt(6,"calendarDate"),Y()()(),se(7,n2,2,2,"div",6)),2&n){const e=t.day,i=t.locale;Jt("aria-label",xi(1,4,un(11,r2,e,i),"monthCell")),j(3),F("ngIf",e.badgeTotal>0),j(2),Is(Ri(6,7,e.date,"monthViewDayNumber",i)),j(2),F("ngIf",e.events.length>0)}}function o2(n,t){}const a2=function(n,t,e,i,r,s,a,l,u,d,f,g){return{day:n,openDay:t,locale:e,tooltipPlacement:i,highlightDay:r,unhighlightDay:s,eventClicked:a,tooltipTemplate:l,tooltipAppendToBody:u,tooltipDelay:d,trackByEventId:f,validateDrag:g}},l2=function(n){return{event:n}},g0=function(n,t){return{event:n,locale:t}};function c2(n,t){if(1&n){const e=jt();Z(0,"div",7),St(1,"span",8),bt(2," "),Z(3,"mwl-calendar-event-title",9),de("mwlClick",function(r){const a=Q(e).$implicit;return N(2).eventClicked.emit({event:a,sourceEvent:r})})("mwlKeydownEnter",function(r){const a=Q(e).$implicit;return N(2).eventClicked.emit({event:a,sourceEvent:r})}),Mt(4,"calendarA11y"),Y(),bt(5," "),St(6,"mwl-calendar-event-actions",10),Y()}if(2&n){const e=t.$implicit,i=N(2).validateDrag,r=N();cn("cal-draggable",e.draggable),F("ngClass",null==e?null:e.cssClass)("dropData",Ps(16,l2,e))("dragAxis",un(18,Kl,e.draggable,e.draggable))("validateDrag",i)("touchStartLongPress",On(21,Xd)),j(1),F("ngStyle",Ps(22,Pm,null==e.color?null:e.color.primary)),j(2),F("event",e)("customTemplate",r.eventTitleTemplate),Jt("aria-label",xi(4,13,un(24,g0,e,r.locale),"eventDescription")),j(3),F("event",e)("customTemplate",r.eventActionsTemplate)}}const m0=function(n,t){return{date:n,locale:t}};function u2(n,t){if(1&n&&(Z(0,"div",3),St(1,"span",4),Mt(2,"calendarA11y"),St(3,"span",5),Mt(4,"calendarA11y"),se(5,c2,7,27,"div",6),Y()),2&n){const e=N(),i=e.events,r=e.trackByEventId,s=N();F("@collapse",void 0),j(1),Jt("aria-label",xi(2,5,un(11,m0,s.date,s.locale),"openDayEventsAlert")),j(2),Jt("aria-label",xi(4,8,un(14,m0,s.date,s.locale),"openDayEventsLandmark")),j(2),F("ngForOf",i)("ngForTrackBy",r)}}function d2(n,t){1&n&&se(0,u2,6,17,"div",2),2&n&&F("ngIf",t.isOpen)}function h2(n,t){}const f2=function(n,t,e,i,r){return{events:n,eventClicked:t,isOpen:e,trackByEventId:i,validateDrag:r}};function p2(n,t){if(1&n){const e=jt();Z(0,"mwl-calendar-month-cell",7),de("mwlClick",function(r){const a=Q(e).$implicit;return N(2).dayClicked.emit({day:a,sourceEvent:r})})("mwlKeydownEnter",function(r){const a=Q(e).$implicit;return N(2).dayClicked.emit({day:a,sourceEvent:r})})("highlightDay",function(r){return Q(e),N(2).toggleDayHighlight(r.event,!0)})("unhighlightDay",function(r){return Q(e),N(2).toggleDayHighlight(r.event,!1)})("drop",function(r){const a=Q(e).$implicit;return N(2).eventDropped(a,r.dropData.event,r.dropData.draggedFrom)})("eventClicked",function(r){return Q(e),N(2).eventClicked.emit({event:r.event,sourceEvent:r.sourceEvent})}),Mt(1,"calendarA11y"),Y()}if(2&n){const e=t.$implicit,i=N(2);F("ngClass",null==e?null:e.cssClass)("day",e)("openDay",i.openDay)("locale",i.locale)("tooltipPlacement",i.tooltipPlacement)("tooltipAppendToBody",i.tooltipAppendToBody)("tooltipTemplate",i.tooltipTemplate)("tooltipDelay",i.tooltipDelay)("customTemplate",i.cellTemplate)("ngStyle",Ps(15,Pm,e.backgroundColor))("clickListenerDisabled",0===i.dayClicked.observers.length),Jt("tabindex",xi(1,12,On(17,va),"monthCellTabIndex"))}}function g2(n,t){if(1&n){const e=jt();Z(0,"div")(1,"div",4),se(2,p2,2,18,"mwl-calendar-month-cell",5),Mt(3,"slice"),Y(),Z(4,"mwl-calendar-open-day-events",6),de("eventClicked",function(r){return Q(e),N().eventClicked.emit({event:r.event,sourceEvent:r.sourceEvent})})("drop",function(r){Q(e);const s=N();return s.eventDropped(s.openDay,r.dropData.event,r.dropData.draggedFrom)}),Y()()}if(2&n){const e=t.$implicit,i=N();j(2),F("ngForOf",Ri(3,9,i.view.days,e,e+i.view.totalDaysVisibleInWeek))("ngForTrackBy",i.trackByDate),j(2),F("locale",i.locale)("isOpen",i.openRowIndex===e)("events",null==i.openDay?null:i.openDay.events)("date",null==i.openDay?null:i.openDay.date)("customTemplate",i.openDayEventsTemplate)("eventTitleTemplate",i.eventTitleTemplate)("eventActionsTemplate",i.eventActionsTemplate)}}function m2(n,t){if(1&n){const e=jt();Z(0,"div",4),de("mwlClick",function(r){const a=Q(e).$implicit;return N().dayHeaderClicked.emit({day:a,sourceEvent:r})})("drop",function(r){const a=Q(e).$implicit;return N().eventDropped.emit({event:r.dropData.event,newStart:a.date})})("dragEnter",function(){const s=Q(e).$implicit;return N().dragEnter.emit({date:s.date})}),Z(1,"b"),bt(2),Mt(3,"calendarDate"),Y(),St(4,"br"),Z(5,"span"),bt(6),Mt(7,"calendarDate"),Y()()}if(2&n){const e=t.$implicit,i=N().locale;cn("cal-past",e.isPast)("cal-today",e.isToday)("cal-future",e.isFuture)("cal-weekend",e.isWeekend),F("ngClass",e.cssClass),j(2),Is(Ri(3,11,e.date,"weekViewColumnHeader",i)),j(4),Is(Ri(7,15,e.date,"weekViewColumnSubHeader",i))}}function v2(n,t){if(1&n&&(Z(0,"div",2),se(1,m2,8,19,"div",3),Y()),2&n){const e=t.days,i=t.trackByWeekDayHeaderDate;j(1),F("ngForOf",e)("ngForTrackBy",i)}}function _2(n,t){}const y2=function(n,t,e,i,r,s){return{days:n,locale:t,dayHeaderClicked:e,eventDropped:i,dragEnter:r,trackByWeekDayHeaderDate:s}},w2=function(n,t){return{backgroundColor:n,borderColor:t}};function C2(n,t){if(1&n){const e=jt();Z(0,"div",2),de("mwlClick",function(r){return Q(e).eventClicked.emit({sourceEvent:r})})("mwlKeydownEnter",function(r){return Q(e).eventClicked.emit({sourceEvent:r})}),Mt(1,"calendarEventTitle"),Mt(2,"calendarA11y"),St(3,"mwl-calendar-event-actions",3),bt(4," "),St(5,"mwl-calendar-event-title",4),Y()}if(2&n){const e=t.weekEvent,i=t.tooltipPlacement,r=t.tooltipTemplate,s=t.tooltipAppendToBody,a=t.tooltipDisabled,l=t.tooltipDelay,u=t.daysInWeek,d=N();F("ngStyle",un(20,w2,null==e.event.color?null:e.event.color.secondary,null==e.event.color?null:e.event.color.primary))("mwlCalendarTooltip",a?"":Ri(1,13,e.event.title,1===u?"dayTooltip":"weekTooltip",e.tempEvent||e.event))("tooltipPlacement",i)("tooltipEvent",e.tempEvent||e.event)("tooltipTemplate",r)("tooltipAppendToBody",s)("tooltipDelay",l),Jt("aria-label",xi(2,17,un(23,g0,e.tempEvent||e.event,d.locale),"eventDescription")),j(3),F("event",e.tempEvent||e.event)("customTemplate",d.eventActionsTemplate),j(2),F("event",e.tempEvent||e.event)("customTemplate",d.eventTitleTemplate)("view",1===u?"day":"week")}}function D2(n,t){}const S2=function(n,t,e,i,r,s,a,l,u){return{weekEvent:n,tooltipPlacement:t,eventClicked:e,tooltipTemplate:i,tooltipAppendToBody:r,tooltipDisabled:s,tooltipDelay:a,column:l,daysInWeek:u}};function b2(n,t){if(1&n&&(Z(0,"div",4),bt(1),Mt(2,"calendarDate"),Y()),2&n){const e=N(),i=e.segment,r=e.daysInWeek,s=e.locale;j(1),Dl(" ",Ri(2,1,i.displayDate,1===r?"dayViewHour":"weekViewHour",s)," ")}}function E2(n,t){if(1&n&&(Z(0,"div",2),Mt(1,"calendarA11y"),se(2,b2,3,5,"div",3),Y()),2&n){const e=t.segment,r=t.isTimeLabel,s=t.daysInWeek;Er("height",t.segmentHeight,"px"),cn("cal-hour-start",e.isStart)("cal-after-hour-start",!e.isStart),F("ngClass",e.cssClass),Jt("aria-hidden",xi(1,9,On(12,va),1===s?"hideDayHourSegment":"hideWeekHourSegment")),j(2),F("ngIf",r)}}function T2(n,t){}const M2=function(n,t,e,i,r){return{segment:n,locale:t,segmentHeight:e,isTimeLabel:i,daysInWeek:r}};function I2(n,t){1&n&&St(0,"div",3),2&n&&Er("top",N().topPx,"px")}function A2(n,t){1&n&&se(0,I2,1,2,"div",2),2&n&&F("ngIf",t.isVisible)}function P2(n,t){}const k2=function(n,t,e,i,r,s,a){return{columnDate:n,dayStartHour:t,dayStartMinute:e,dayEndHour:i,dayEndMinute:r,isVisible:s,topPx:a}};function x2(n,t){if(1&n){const e=jt();Z(0,"div",13),de("drop",function(r){const a=Q(e).$implicit;return N(2).eventDropped(r,a.date,!0)})("dragEnter",function(){const s=Q(e).$implicit;return N(2).dateDragEnter(s.date)}),Y()}}const R2=function(){return{left:!0}};function O2(n,t){1&n&&St(0,"div",22),2&n&&F("resizeEdges",On(1,R2))}const N2=function(){return{right:!0}};function F2(n,t){1&n&&St(0,"div",23),2&n&&F("resizeEdges",On(1,N2))}const L2=function(n,t){return{left:n,right:t}},v0=function(n,t){return{event:n,calendarId:t}},V2=function(n){return{x:n}};function B2(n,t){if(1&n){const e=jt();Z(0,"div",17,18),de("resizeStart",function(r){const a=Q(e).$implicit;N();const l=Ft(1);return N(2).allDayEventResizeStarted(l,a,r)})("resizing",function(r){const a=Q(e).$implicit,l=N(3);return l.allDayEventResizing(a,r,l.dayColumnWidth)})("resizeEnd",function(){const s=Q(e).$implicit;return N(3).allDayEventResizeEnded(s)})("dragStart",function(){const s=Q(e).$implicit,a=Ft(1);N();const l=Ft(1);return N(2).dragStarted(l,a,s,!1)})("dragging",function(){return Q(e),N(3).allDayEventDragMove()})("dragEnd",function(r){const a=Q(e).$implicit,l=N(3);return l.dragEnded(a,r,l.dayColumnWidth)}),se(2,O2,1,2,"div",19),Z(3,"mwl-calendar-week-view-event",20),de("eventClicked",function(r){const a=Q(e).$implicit;return N(3).eventClicked.emit({event:a.event,sourceEvent:r.sourceEvent})}),Y(),se(4,F2,1,2,"div",21),Y()}if(2&n){const e=t.$implicit,i=N(3);Er("width",100/i.days.length*e.span,"%")("margin-left",i.rtl?null:100/i.days.length*e.offset,"%")("margin-right",i.rtl?100/i.days.length*(i.days.length-e.offset)*-1:null,"%"),cn("cal-draggable",e.event.draggable&&0===i.allDayEventResizes.size)("cal-starts-within-week",!e.startsBeforeWeek)("cal-ends-within-week",!e.endsAfterWeek),F("ngClass",null==e.event?null:e.event.cssClass)("resizeSnapGrid",un(32,L2,i.dayColumnWidth,i.dayColumnWidth))("validateResize",i.validateResize)("dropData",un(35,v0,e.event,i.calendarId))("dragAxis",un(38,Kl,e.event.draggable&&0===i.allDayEventResizes.size,!i.snapDraggedEvents&&e.event.draggable&&0===i.allDayEventResizes.size))("dragSnapGrid",i.snapDraggedEvents?Ps(41,V2,i.dayColumnWidth):On(43,va))("validateDrag",i.validateDrag)("touchStartLongPress",On(44,Xd)),j(2),F("ngIf",(null==e.event||null==e.event.resizable?null:e.event.resizable.beforeStart)&&!e.startsBeforeWeek),j(1),F("locale",i.locale)("weekEvent",e)("tooltipPlacement",i.tooltipPlacement)("tooltipTemplate",i.tooltipTemplate)("tooltipAppendToBody",i.tooltipAppendToBody)("tooltipDelay",i.tooltipDelay)("customTemplate",i.eventTemplate)("eventTitleTemplate",i.eventTitleTemplate)("eventActionsTemplate",i.eventActionsTemplate)("daysInWeek",i.daysInWeek),j(1),F("ngIf",(null==e.event||null==e.event.resizable?null:e.event.resizable.afterEnd)&&!e.endsAfterWeek)}}function H2(n,t){if(1&n&&(Z(0,"div",14,15),se(2,B2,5,45,"div",16),Y()),2&n){const e=t.$implicit,i=N(2);j(2),F("ngForOf",e.row)("ngForTrackBy",i.trackByWeekAllDayEvent)}}function j2(n,t){if(1&n){const e=jt();Z(0,"div",8,9),de("dragEnter",function(){return Q(e),N().dragEnter("allDay")})("dragLeave",function(){return Q(e),N().dragLeave("allDay")}),Z(2,"div",5),St(3,"div",10),se(4,x2,1,0,"div",11),Y(),se(5,H2,3,2,"div",12),Y()}if(2&n){const e=N();j(3),F("ngTemplateOutlet",e.allDayEventsLabelTemplate),j(1),F("ngForOf",e.days)("ngForTrackBy",e.trackByWeekDayHeaderDate),j(1),F("ngForOf",e.view.allDayEventRows)("ngForTrackBy",e.trackById)}}function U2(n,t){if(1&n&&St(0,"mwl-calendar-week-view-hour-segment",28),2&n){const e=t.$implicit,i=N(3);Er("height",i.hourSegmentHeight,"px"),F("segment",e)("segmentHeight",i.hourSegmentHeight)("locale",i.locale)("customTemplate",i.hourSegmentTemplate)("isTimeLabel",!0)("daysInWeek",i.daysInWeek)}}function z2(n,t){if(1&n&&(Z(0,"div",26),se(1,U2,1,8,"mwl-calendar-week-view-hour-segment",27),Y()),2&n){const e=t.$implicit,i=t.odd,r=N(2);cn("cal-hour-odd",i),j(1),F("ngForOf",e.segments)("ngForTrackBy",r.trackByHourSegment)}}function W2(n,t){if(1&n&&(Z(0,"div",24),se(1,z2,2,4,"div",25),Y()),2&n){const e=N();j(1),F("ngForOf",e.view.hourColumns[0].hours)("ngForTrackBy",e.trackByHour)}}const G2=function(){return{left:!0,top:!0}};function $2(n,t){1&n&&St(0,"div",22),2&n&&F("resizeEdges",On(1,G2))}function Z2(n,t){}function q2(n,t){if(1&n){const e=jt();Z(0,"mwl-calendar-week-view-event",36),de("eventClicked",function(r){Q(e);const s=N().$implicit;return N(2).eventClicked.emit({event:s.event,sourceEvent:r.sourceEvent})}),Y()}if(2&n){const e=N().$implicit,i=N().$implicit,r=N();F("locale",r.locale)("weekEvent",e)("tooltipPlacement",r.tooltipPlacement)("tooltipTemplate",r.tooltipTemplate)("tooltipAppendToBody",r.tooltipAppendToBody)("tooltipDisabled",r.dragActive||r.timeEventResizes.size>0)("tooltipDelay",r.tooltipDelay)("customTemplate",r.eventTemplate)("eventTitleTemplate",r.eventTitleTemplate)("eventActionsTemplate",r.eventActionsTemplate)("column",i)("daysInWeek",r.daysInWeek)}}const Y2=function(){return{right:!0,bottom:!0}};function K2(n,t){1&n&&St(0,"div",23),2&n&&F("resizeEdges",On(1,Y2))}const X2=function(n,t,e,i){return{left:n,right:t,top:e,bottom:i}};function Q2(n,t){if(1&n){const e=jt();Z(0,"div",33,18),de("resizeStart",function(r){const a=Q(e).$implicit,l=N(2),u=Ft(6);return l.timeEventResizeStarted(u,a,r)})("resizing",function(r){const a=Q(e).$implicit;return N(2).timeEventResizing(a,r)})("resizeEnd",function(){const s=Q(e).$implicit;return N(2).timeEventResizeEnded(s)})("dragStart",function(){const s=Q(e).$implicit,a=Ft(1),l=N(2),u=Ft(6);return l.dragStarted(u,a,s,!0)})("dragging",function(r){const a=Q(e).$implicit;return N(2).dragMove(a,r)})("dragEnd",function(r){const a=Q(e).$implicit,l=N(2);return l.dragEnded(a,r,l.dayColumnWidth,!0)}),se(2,$2,1,2,"div",19),se(3,Z2,0,0,"ng-template",34),se(4,q2,1,12,"ng-template",null,35,ri),se(6,K2,1,2,"div",21),Y()}if(2&n){const e=t.$implicit,i=Ft(5),r=N(2);Er("top",e.top,"px")("height",e.height,"px")("left",e.left,"%")("width",e.width,"%"),cn("cal-draggable",e.event.draggable&&0===r.timeEventResizes.size)("cal-starts-within-day",!e.startsBeforeDay)("cal-ends-within-day",!e.endsAfterDay),F("ngClass",e.event.cssClass)("hidden",0===e.height&&0===e.width)("resizeSnapGrid",lD(29,X2,r.dayColumnWidth,r.dayColumnWidth,r.eventSnapSize||r.hourSegmentHeight,r.eventSnapSize||r.hourSegmentHeight))("validateResize",r.validateResize)("allowNegativeResizes",!0)("dropData",un(34,v0,e.event,r.calendarId))("dragAxis",un(37,Kl,e.event.draggable&&0===r.timeEventResizes.size,e.event.draggable&&0===r.timeEventResizes.size))("dragSnapGrid",r.snapDraggedEvents?un(40,Kl,r.dayColumnWidth,r.eventSnapSize||r.hourSegmentHeight):On(43,va))("touchStartLongPress",On(44,Xd))("ghostDragEnabled",!r.snapDraggedEvents)("ghostElementTemplate",i)("validateDrag",r.validateDrag),j(2),F("ngIf",(null==e.event||null==e.event.resizable?null:e.event.resizable.beforeStart)&&!e.startsBeforeDay),j(1),F("ngTemplateOutlet",i),j(3),F("ngIf",(null==e.event||null==e.event.resizable?null:e.event.resizable.afterEnd)&&!e.endsAfterDay)}}function J2(n,t){if(1&n){const e=jt();Z(0,"mwl-calendar-week-view-hour-segment",38),de("mwlClick",function(r){const a=Q(e).$implicit;return N(3).hourSegmentClicked.emit({date:a.date,sourceEvent:r})})("drop",function(r){const a=Q(e).$implicit;return N(3).eventDropped(r,a.date,!1)})("dragEnter",function(){const s=Q(e).$implicit;return N(3).dateDragEnter(s.date)}),Y()}if(2&n){const e=t.$implicit,i=N(3);Er("height",i.hourSegmentHeight,"px"),F("segment",e)("segmentHeight",i.hourSegmentHeight)("locale",i.locale)("customTemplate",i.hourSegmentTemplate)("daysInWeek",i.daysInWeek)("clickListenerDisabled",0===i.hourSegmentClicked.observers.length)("dragOverClass",i.dragActive&&i.snapDraggedEvents?null:"cal-drag-over")("isTimeLabel",1===i.daysInWeek)}}function eB(n,t){if(1&n&&(Z(0,"div",26),se(1,J2,1,10,"mwl-calendar-week-view-hour-segment",37),Y()),2&n){const e=t.$implicit,i=t.odd,r=N(2);cn("cal-hour-odd",i),j(1),F("ngForOf",e.segments)("ngForTrackBy",r.trackByHourSegment)}}function tB(n,t){if(1&n&&(Z(0,"div",29),St(1,"mwl-calendar-week-view-current-time-marker",30),Z(2,"div",31),se(3,Q2,7,45,"div",32),Y(),se(4,eB,2,4,"div",25),Y()),2&n){const e=t.$implicit,i=N();j(1),F("columnDate",e.date)("dayStartHour",i.dayStartHour)("dayStartMinute",i.dayStartMinute)("dayEndHour",i.dayEndHour)("dayEndMinute",i.dayEndMinute)("hourSegments",i.hourSegments)("hourDuration",i.hourDuration)("hourSegmentHeight",i.hourSegmentHeight)("customTemplate",i.currentTimeMarkerTemplate),j(2),F("ngForOf",e.events)("ngForTrackBy",i.trackByWeekTimeEvent),j(1),F("ngForOf",e.hours)("ngForTrackBy",i.trackByHour)}}let Bs=(()=>{class n{constructor(e,i,r){this.renderer=e,this.elm=i,this.document=r,this.clickListenerDisabled=!1,this.click=new K,this.destroy$=new ve}ngOnInit(){this.clickListenerDisabled||this.listen().pipe(Ar(this.destroy$)).subscribe(e=>{e.stopPropagation(),this.click.emit(e)})}ngOnDestroy(){this.destroy$.next()}listen(){return new nt(e=>this.renderer.listen(this.elm.nativeElement,"click",i=>{e.next(i)}))}}return n.\u0275fac=function(e){return new(e||n)(M($n),M(Tt),M(pt))},n.\u0275dir=ie({type:n,selectors:[["","mwlClick",""]],inputs:{clickListenerDisabled:"clickListenerDisabled"},outputs:{click:"mwlClick"}}),n})(),Qd=(()=>{class n{constructor(e,i,r){this.host=e,this.ngZone=i,this.renderer=r,this.keydown=new K,this.keydownListener=null}ngOnInit(){this.ngZone.runOutsideAngular(()=>{this.keydownListener=this.renderer.listen(this.host.nativeElement,"keydown",e=>{(13===e.keyCode||13===e.which||"Enter"===e.key)&&(e.preventDefault(),e.stopPropagation(),this.ngZone.run(()=>{this.keydown.emit(e)}))})})}ngOnDestroy(){null!==this.keydownListener&&(this.keydownListener(),this.keydownListener=null)}}return n.\u0275fac=function(e){return new(e||n)(M(Tt),M(lt),M($n))},n.\u0275dir=ie({type:n,selectors:[["","mwlKeydownEnter",""]],outputs:{keydown:"mwlKeydownEnter"}}),n})(),Jd=(()=>{class n{constructor(e){this.i18nPlural=e}monthCell({day:e,locale:i}){return e.badgeTotal>0?`\n ${nn(e.date,"EEEE MMMM d",i)},\n ${this.i18nPlural.transform(e.badgeTotal,{"=0":"No events","=1":"One event",other:"# events"})},\n click to expand\n `:`${nn(e.date,"EEEE MMMM d",i)}`}openDayEventsLandmark({date:e,locale:i}){return`\n Beginning of expanded view for ${nn(e,"EEEE MMMM dd",i)}\n `}openDayEventsAlert({date:e,locale:i}){return`${nn(e,"EEEE MMMM dd",i)} expanded`}eventDescription({event:e,locale:i}){if(!0===e.allDay)return this.allDayEventDescription({event:e,locale:i});const r=`\n ${nn(e.start,"EEEE MMMM dd",i)},\n ${e.title}, from ${nn(e.start,"hh:mm a",i)}\n `;return e.end?r+` to ${nn(e.end,"hh:mm a",i)}`:r}allDayEventDescription({event:e,locale:i}){const r=`\n ${e.title}, event spans multiple days:\n start time ${nn(e.start,"MMMM dd hh:mm a",i)}\n `;return e.end?r+`, stop time ${nn(e.end,"MMMM d hh:mm a",i)}`:r+", no stop time"}actionButtonLabel({action:e}){return e.a11yLabel}monthCellTabIndex(){return 0}hideMonthCellEvents(){return!0}hideEventTitle(){return!0}hideWeekHourSegment(){return!0}hideDayHourSegment(){return!0}}return n.\u0275fac=function(e){return new(e||n)(P(Pg))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})(),Hs=(()=>{class n{constructor(e,i){this.calendarA11y=e,this.locale=i}transform(e,i){if(e.locale=e.locale||this.locale,typeof this.calendarA11y[i]>"u"){const r=Object.getOwnPropertyNames(Object.getPrototypeOf(Jd.prototype)).filter(s=>"constructor"!==s);throw new Error(`${i} is not a valid a11y method. Can only be one of ${r.join(", ")}`)}return this.calendarA11y[i](e)}}return n.\u0275fac=function(e){return new(e||n)(M(Jd,16),M(mi,16))},n.\u0275pipe=vt({name:"calendarA11y",type:n,pure:!0}),n})(),_0=(()=>{class n{constructor(){this.trackByActionId=(e,i)=>i.id?i.id:i}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=ft({type:n,selectors:[["mwl-calendar-event-actions"]],inputs:{event:"event",customTemplate:"customTemplate"},decls:3,vars:5,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["class","cal-event-actions",4,"ngIf"],[1,"cal-event-actions"],["class","cal-event-action","href","javascript:;","tabindex","0","role","button",3,"ngClass","innerHtml","mwlClick","mwlKeydownEnter",4,"ngFor","ngForOf","ngForTrackBy"],["href","javascript:;","tabindex","0","role","button",1,"cal-event-action",3,"ngClass","innerHtml","mwlClick","mwlKeydownEnter"]],template:function(e,i){if(1&e&&(se(0,HV,1,1,"ng-template",null,0,ri),se(2,jV,0,0,"ng-template",1)),2&e){const r=Ft(1);j(2),F("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",un(2,UV,i.event,i.trackByActionId))}},directives:[Mr,Jr,cr,Bs,Qd,yi],pipes:[Hs],encapsulation:2}),n})();class km{month(t,e){return t.title}monthTooltip(t,e){return t.title}week(t,e){return t.title}weekTooltip(t,e){return t.title}day(t,e){return t.title}dayTooltip(t,e){return t.title}}let xm=(()=>{class n{constructor(e){this.calendarEventTitle=e}transform(e,i,r){return this.calendarEventTitle[i](r,e)}}return n.\u0275fac=function(e){return new(e||n)(M(km,16))},n.\u0275pipe=vt({name:"calendarEventTitle",type:n,pure:!0}),n})(),y0=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=ft({type:n,selectors:[["mwl-calendar-event-title"]],inputs:{event:"event",customTemplate:"customTemplate",view:"view"},decls:3,vars:5,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"cal-event-title",3,"innerHTML"]],template:function(e,i){if(1&e&&(se(0,zV,3,10,"ng-template",null,0,ri),se(2,WV,0,0,"ng-template",1)),2&e){const r=Ft(1);j(2),F("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",un(2,GV,i.event,i.view))}},directives:[yi],pipes:[xm,Hs],encapsulation:2}),n})(),nB=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=ft({type:n,selectors:[["mwl-calendar-tooltip-window"]],inputs:{contents:"contents",placement:"placement",event:"event",customTemplate:"customTemplate"},decls:3,vars:6,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"cal-tooltip",3,"ngClass"],[1,"cal-tooltip-arrow"],[1,"cal-tooltip-inner",3,"innerHtml"]],template:function(e,i){if(1&e&&(se(0,$V,3,2,"ng-template",null,0,ri),se(2,ZV,0,0,"ng-template",1)),2&e){const r=Ft(1);j(2),F("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",jp(2,qV,i.contents,i.placement,i.event))}},directives:[cr,yi],encapsulation:2}),n})(),w0=(()=>{class n{constructor(e,i,r,s,a,l){this.elementRef=e,this.injector=i,this.renderer=r,this.viewContainerRef=a,this.document=l,this.placement="auto",this.delay=null,this.cancelTooltipDelay$=new ve,this.tooltipFactory=s.resolveComponentFactory(nB)}ngOnChanges(e){this.tooltipRef&&(e.contents||e.customTemplate||e.event)&&(this.tooltipRef.instance.contents=this.contents,this.tooltipRef.instance.customTemplate=this.customTemplate,this.tooltipRef.instance.event=this.event,this.tooltipRef.changeDetectorRef.markForCheck(),this.contents||this.hide())}ngOnDestroy(){this.hide()}onMouseOver(){(null===this.delay?rs("now"):zd(this.delay)).pipe(Ar(this.cancelTooltipDelay$)).subscribe(()=>{this.show()})}onMouseOut(){this.hide()}show(){!this.tooltipRef&&this.contents&&(this.tooltipRef=this.viewContainerRef.createComponent(this.tooltipFactory,0,this.injector,[]),this.tooltipRef.instance.contents=this.contents,this.tooltipRef.instance.customTemplate=this.customTemplate,this.tooltipRef.instance.event=this.event,this.appendToBody&&this.document.body.appendChild(this.tooltipRef.location.nativeElement),requestAnimationFrame(()=>{this.positionTooltip()}))}hide(){this.tooltipRef&&(this.viewContainerRef.remove(this.viewContainerRef.indexOf(this.tooltipRef.hostView)),this.tooltipRef=null),this.cancelTooltipDelay$.next()}positionTooltip(e=[]){this.tooltipRef&&(this.tooltipRef.changeDetectorRef.detectChanges(),this.tooltipRef.instance.placement=function VL(n,t,e,i,r){var s=Array.isArray(e)?e:e.split(LL),a=["top","bottom","left","right","top-left","top-right","bottom-left","bottom-right","left-top","left-bottom","right-top","right-bottom"],l=t.classList,u=function(S){var E=S.split("-"),b=E[0],A=E[1],x=[];return r&&(x.push(r+"-"+b),A&&x.push(r+"-"+b+"-"+A),x.forEach(function(H){l.add(H)})),x};r&&a.forEach(function(S){l.remove(r+"-"+S)});var d=s.findIndex(function(S){return"auto"===S});d>=0&&a.forEach(function(S){null==s.find(function(E){return-1!==E.search("^"+S)})&&s.splice(d++,1,S)});var f=t.style;f.position="absolute",f.top="0",f.left="0",f["will-change"]="transform";for(var g,v=!1,_=0,w=s;_{return(n=kr||(kr={})).Month="month",n.Week="week",n.Day="day",kr;var n})();const C0=n=>function XL(n,t){var e=!0;function i(r,s){t(r,s),e=!1}return Array.isArray(n)?(n.forEach(function(r){r.start?r.start instanceof Date||i(os.StartPropertyNotDate,r):i(os.StartPropertyMissing,r),r.end&&(r.end instanceof Date||i(os.EndPropertyNotDate,r),r.start>r.end&&i(os.EndsBeforeStart,r))}),e):(t(os.NotArray,n),!1)}(n,(...e)=>console.warn("angular-calendar",...e));function D0(n,t){return Math.floor(n.left)<=Math.ceil(t.left)&&Math.floor(t.left)<=Math.ceil(n.right)&&Math.floor(n.left)<=Math.ceil(t.right)&&Math.floor(t.right)<=Math.ceil(n.right)}function S0(n,t){return Math.round(n/t)*t}const b0=(n,t)=>t.id?t.id:t,Rm=(n,t)=>t.date.toISOString(),sB=(n,t)=>t.date.toISOString(),oB=(n,t)=>t.segments[0].date.toISOString(),aB=(n,t)=>t.event.id?t.event.id:t.event,lB=(n,t)=>t.event.id?t.event.id:t.event;function Om(n,t,e,i,r){const s=S0(n,i||e),a=function uB(n,t,e){return(e||60)/(n*t)}(t,e,r);return s*a}function E0(n,t,e){return t.end?t.end:n.addMinutes(t.start,e)}function Vi(n,t,e,i){let r=0,s=0;const a=e<0?n.subDays:n.addDays;let l=t;for(;s<=Math.abs(e);){l=a(t,r);const u=n.getDay(l);-1===i.indexOf(u)&&s++,r++}return l}function Nm(n,t,e,i=[],r){let s=r?n.startOfDay(t):n.startOfWeek(t,{weekStartsOn:e});const a=n.endOfWeek(t,{weekStartsOn:e});for(;i.indexOf(n.getDay(s))>-1&&s-1&&l>s;)l=n.subDays(l,1);return{viewStart:s,viewEnd:l}}}function Fm({x:n,y:t}){return Math.abs(n)>1||Math.abs(t)>1}class xr{}let fB=(()=>{class n{constructor(e){this.dateAdapter=e,this.excludeDays=[],this.viewDateChange=new K}onClick(){const e={day:this.dateAdapter.subDays,week:this.dateAdapter.subWeeks,month:this.dateAdapter.subMonths}[this.view];this.viewDateChange.emit(this.view===kr.Day?Vi(this.dateAdapter,this.viewDate,-1,this.excludeDays):this.view===kr.Week&&this.daysInWeek?Vi(this.dateAdapter,this.viewDate,-this.daysInWeek,this.excludeDays):e(this.viewDate,1))}}return n.\u0275fac=function(e){return new(e||n)(M(xr))},n.\u0275dir=ie({type:n,selectors:[["","mwlCalendarPreviousView",""]],hostBindings:function(e,i){1&e&&de("click",function(){return i.onClick()})},inputs:{view:"view",viewDate:"viewDate",excludeDays:"excludeDays",daysInWeek:"daysInWeek"},outputs:{viewDateChange:"viewDateChange"}}),n})(),pB=(()=>{class n{constructor(e){this.dateAdapter=e,this.excludeDays=[],this.viewDateChange=new K}onClick(){const e={day:this.dateAdapter.addDays,week:this.dateAdapter.addWeeks,month:this.dateAdapter.addMonths}[this.view];this.viewDateChange.emit(this.view===kr.Day?Vi(this.dateAdapter,this.viewDate,1,this.excludeDays):this.view===kr.Week&&this.daysInWeek?Vi(this.dateAdapter,this.viewDate,this.daysInWeek,this.excludeDays):e(this.viewDate,1))}}return n.\u0275fac=function(e){return new(e||n)(M(xr))},n.\u0275dir=ie({type:n,selectors:[["","mwlCalendarNextView",""]],hostBindings:function(e,i){1&e&&de("click",function(){return i.onClick()})},inputs:{view:"view",viewDate:"viewDate",excludeDays:"excludeDays",daysInWeek:"daysInWeek"},outputs:{viewDateChange:"viewDateChange"}}),n})(),gB=(()=>{class n{constructor(e){this.dateAdapter=e,this.viewDateChange=new K}onClick(){this.viewDateChange.emit(this.dateAdapter.startOfDay(new Date))}}return n.\u0275fac=function(e){return new(e||n)(M(xr))},n.\u0275dir=ie({type:n,selectors:[["","mwlCalendarToday",""]],hostBindings:function(e,i){1&e&&de("click",function(){return i.onClick()})},inputs:{viewDate:"viewDate"},outputs:{viewDateChange:"viewDateChange"}}),n})(),mB=(()=>{class n{constructor(e){this.dateAdapter=e}monthViewColumnHeader({date:e,locale:i}){return nn(e,"EEEE",i)}monthViewDayNumber({date:e,locale:i}){return nn(e,"d",i)}monthViewTitle({date:e,locale:i}){return nn(e,"LLLL y",i)}weekViewColumnHeader({date:e,locale:i}){return nn(e,"EEEE",i)}weekViewColumnSubHeader({date:e,locale:i}){return nn(e,"MMM d",i)}weekViewTitle({date:e,locale:i,weekStartsOn:r,excludeDays:s,daysInWeek:a}){const{viewStart:l,viewEnd:u}=Nm(this.dateAdapter,e,r,s,a),d=(f,g)=>nn(f,"MMM d"+(g?", yyyy":""),i);return`${d(l,l.getUTCFullYear()!==u.getUTCFullYear())} - ${d(u,!0)}`}weekViewHour({date:e,locale:i}){return nn(e,"h a",i)}dayViewHour({date:e,locale:i}){return nn(e,"h a",i)}dayViewTitle({date:e,locale:i}){return nn(e,"EEEE, MMMM d, y",i)}}return n.\u0275fac=function(e){return new(e||n)(P(xr))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})(),eh=(()=>{class n extends mB{}return n.\u0275fac=function(){let t;return function(i){return(t||(t=mn(n)))(i||n)}}(),n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})(),Xl=(()=>{class n{constructor(e,i){this.dateFormatter=e,this.locale=i}transform(e,i,r=this.locale,s=0,a=[],l){if(typeof this.dateFormatter[i]>"u"){const u=Object.getOwnPropertyNames(Object.getPrototypeOf(eh.prototype)).filter(d=>"constructor"!==d);throw new Error(`${i} is not a valid date formatter. Can only be one of ${u.join(", ")}`)}return this.dateFormatter[i]({date:e,locale:r,weekStartsOn:s,excludeDays:a,daysInWeek:l})}}return n.\u0275fac=function(e){return new(e||n)(M(eh,16),M(mi,16))},n.\u0275pipe=vt({name:"calendarDate",type:n,pure:!0}),n})(),th=(()=>{class n{constructor(e){this.dateAdapter=e}getMonthView(e){return function qL(n,t){var e=t.events,i=void 0===e?[]:e,r=t.viewDate,s=t.weekStartsOn,a=t.excluded,l=void 0===a?[]:a,u=t.viewStart,d=void 0===u?n.startOfMonth(r):u,f=t.viewEnd,g=void 0===f?n.endOfMonth(r):f,v=t.weekendDays;i||(i=[]);for(var re,w=n.endOfWeek,C=n.differenceInDays,S=n.startOfDay,E=n.addHours,b=n.endOfDay,A=n.isSameMonth,x=n.getDay,J=(0,n.startOfWeek)(d,{weekStartsOn:s}),ge=w(g,{weekStartsOn:s}),ue=Zl(n,{events:i,periodStart:J,periodEnd:ge}),ee=[],G=function(Fe){var Ge;if(re?(Ge=S(E(re,24)),re.getTime()===Ge.getTime()&&(Ge=S(E(re,25))),re=Ge):Ge=re=J,!l.some(function(Di){return x(Ge)===Di})){var At=$b(n,{date:Ge,weekendDays:v}),pn=Zl(n,{events:ue,periodStart:S(Ge),periodEnd:b(Ge)});At.inMonth=A(Ge,r),At.events=pn,At.badgeTotal=pn.length,ee.push(At)}},V=0;V{return(n=dr||(dr={})).Drag="drag",n.Drop="drop",n.Resize="resize",dr;var n})();let Ql=(()=>{class n{static forRoot(e,i={}){return{ngModule:n,providers:[e,i.eventTitleFormatter||km,i.dateFormatter||eh,i.utils||th,i.a11y||Jd]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({providers:[Pg],imports:[[da]]}),n})(),vB=(()=>{class n{constructor(){this.columnHeaderClicked=new K,this.trackByWeekDayHeaderDate=Rm}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=ft({type:n,selectors:[["mwl-calendar-month-view-header"]],inputs:{days:"days",locale:"locale",customTemplate:"customTemplate"},outputs:{columnHeaderClicked:"columnHeaderClicked"},decls:3,vars:6,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["role","row",1,"cal-cell-row","cal-header"],["class","cal-cell","tabindex","0","role","columnheader",3,"cal-past","cal-today","cal-future","cal-weekend","ngClass","click",4,"ngFor","ngForOf","ngForTrackBy"],["tabindex","0","role","columnheader",1,"cal-cell",3,"ngClass","click"]],template:function(e,i){if(1&e&&(se(0,KV,2,2,"ng-template",null,0,ri),se(2,XV,0,0,"ng-template",1)),2&e){const r=Ft(1);j(2),F("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",jp(2,QV,i.days,i.locale,i.trackByWeekDayHeaderDate))}},directives:[Jr,cr,yi],pipes:[Xl],encapsulation:2}),n})(),_B=(()=>{class n{constructor(){this.highlightDay=new K,this.unhighlightDay=new K,this.eventClicked=new K,this.trackByEventId=b0,this.validateDrag=Fm}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=ft({type:n,selectors:[["mwl-calendar-month-cell"]],hostAttrs:[1,"cal-cell","cal-day-cell"],hostVars:18,hostBindings:function(e,i){2&e&&cn("cal-past",i.day.isPast)("cal-today",i.day.isToday)("cal-future",i.day.isFuture)("cal-weekend",i.day.isWeekend)("cal-in-month",i.day.inMonth)("cal-out-month",!i.day.inMonth)("cal-has-events",i.day.events.length>0)("cal-open",i.day===i.openDay)("cal-event-highlight",!!i.day.backgroundColor)},inputs:{day:"day",openDay:"openDay",locale:"locale",tooltipPlacement:"tooltipPlacement",tooltipAppendToBody:"tooltipAppendToBody",customTemplate:"customTemplate",tooltipTemplate:"tooltipTemplate",tooltipDelay:"tooltipDelay"},outputs:{highlightDay:"highlightDay",unhighlightDay:"unhighlightDay",eventClicked:"eventClicked"},decls:3,vars:15,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"cal-cell-top"],["aria-hidden","true"],["class","cal-day-badge",4,"ngIf"],[1,"cal-day-number"],["class","cal-events",4,"ngIf"],[1,"cal-day-badge"],[1,"cal-events"],["class","cal-event","mwlDraggable","","dragActiveClass","cal-drag-active",3,"ngStyle","ngClass","mwlCalendarTooltip","tooltipPlacement","tooltipEvent","tooltipTemplate","tooltipAppendToBody","tooltipDelay","cal-draggable","dropData","dragAxis","validateDrag","touchStartLongPress","mouseenter","mouseleave","mwlClick",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDraggable","","dragActiveClass","cal-drag-active",1,"cal-event",3,"ngStyle","ngClass","mwlCalendarTooltip","tooltipPlacement","tooltipEvent","tooltipTemplate","tooltipAppendToBody","tooltipDelay","dropData","dragAxis","validateDrag","touchStartLongPress","mouseenter","mouseleave","mwlClick"]],template:function(e,i){if(1&e&&(se(0,s2,8,14,"ng-template",null,0,ri),se(2,o2,0,0,"ng-template",1)),2&e){const r=Ft(1);j(2),F("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",zp(2,a2,[i.day,i.openDay,i.locale,i.tooltipPlacement,i.highlightDay,i.unhighlightDay,i.eventClicked,i.tooltipTemplate,i.tooltipAppendToBody,i.tooltipDelay,i.trackByEventId,i.validateDrag]))}},directives:[Mr,Jr,Im,Vl,cr,w0,Bs,yi],pipes:[Hs,Xl,xm],encapsulation:2}),n})();const yB=function RN(n,t){return{type:7,name:n,definitions:t,options:{}}}("collapse",[QS("void",Dd({height:0,overflow:"hidden","padding-top":0,"padding-bottom":0})),QS("*",Dd({height:"*",overflow:"hidden","padding-top":"*","padding-bottom":"*"})),JS("* => void",KS("150ms ease-out")),JS("void => *",KS("150ms ease-in"))]);let wB=(()=>{class n{constructor(){this.isOpen=!1,this.eventClicked=new K,this.trackByEventId=b0,this.validateDrag=Fm}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=ft({type:n,selectors:[["mwl-calendar-open-day-events"]],inputs:{locale:"locale",isOpen:"isOpen",events:"events",customTemplate:"customTemplate",eventTitleTemplate:"eventTitleTemplate",eventActionsTemplate:"eventActionsTemplate",date:"date"},outputs:{eventClicked:"eventClicked"},decls:3,vars:8,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["class","cal-open-day-events","role","application",4,"ngIf"],["role","application",1,"cal-open-day-events"],["tabindex","-1","role","alert"],["tabindex","0","role","landmark"],["mwlDraggable","","dragActiveClass","cal-drag-active",3,"ngClass","cal-draggable","dropData","dragAxis","validateDrag","touchStartLongPress",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDraggable","","dragActiveClass","cal-drag-active",3,"ngClass","dropData","dragAxis","validateDrag","touchStartLongPress"],[1,"cal-event",3,"ngStyle"],["view","month","tabindex","0",3,"event","customTemplate","mwlClick","mwlKeydownEnter"],[3,"event","customTemplate"]],template:function(e,i){if(1&e&&(se(0,d2,1,1,"ng-template",null,0,ri),se(2,h2,0,0,"ng-template",1)),2&e){const r=Ft(1);j(2),F("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",Up(2,f2,i.events,i.eventClicked,i.isOpen,i.trackByEventId,i.validateDrag))}},directives:[y0,_0,Mr,Jr,Im,cr,Vl,Bs,Qd,yi],pipes:[Hs],encapsulation:2,data:{animation:[yB]}}),n})(),CB=(()=>{class n{constructor(e,i,r,s){this.cdr=e,this.utils=i,this.dateAdapter=s,this.events=[],this.excludeDays=[],this.activeDayIsOpen=!1,this.tooltipPlacement="auto",this.tooltipAppendToBody=!0,this.tooltipDelay=null,this.beforeViewRender=new K,this.dayClicked=new K,this.eventClicked=new K,this.columnHeaderClicked=new K,this.eventTimesChanged=new K,this.trackByRowOffset=(a,l)=>this.view.days.slice(l,this.view.totalDaysVisibleInWeek).map(u=>u.date.toISOString()).join("-"),this.trackByDate=(a,l)=>l.date.toISOString(),this.locale=r}ngOnInit(){this.refresh&&(this.refreshSubscription=this.refresh.subscribe(()=>{this.refreshAll(),this.cdr.markForCheck()}))}ngOnChanges(e){const i=e.viewDate||e.excludeDays||e.weekendDays,r=e.viewDate||e.events||e.excludeDays||e.weekendDays;i&&this.refreshHeader(),e.events&&C0(this.events),r&&this.refreshBody(),(i||r)&&this.emitBeforeViewRender(),(e.activeDayIsOpen||e.viewDate||e.events||e.excludeDays||e.activeDay)&&this.checkActiveDayIsOpen()}ngOnDestroy(){this.refreshSubscription&&this.refreshSubscription.unsubscribe()}toggleDayHighlight(e,i){this.view.days.forEach(r=>{i&&r.events.indexOf(e)>-1?r.backgroundColor=e.color&&e.color.secondary||"#D1E8FF":delete r.backgroundColor})}eventDropped(e,i,r){if(e!==r){const s=this.dateAdapter.getYear(e.date),a=this.dateAdapter.getMonth(e.date),l=this.dateAdapter.getDate(e.date),u=this.dateAdapter.setDate(this.dateAdapter.setMonth(this.dateAdapter.setYear(i.start,s),a),l);let d;if(i.end){const f=this.dateAdapter.differenceInSeconds(u,i.start);d=this.dateAdapter.addSeconds(i.end,f)}this.eventTimesChanged.emit({event:i,newStart:u,newEnd:d,day:e,type:dr.Drop})}}refreshHeader(){this.columnHeaders=this.utils.getWeekViewHeader({viewDate:this.viewDate,weekStartsOn:this.weekStartsOn,excluded:this.excludeDays,weekendDays:this.weekendDays})}refreshBody(){this.view=this.utils.getMonthView({events:this.events,viewDate:this.viewDate,weekStartsOn:this.weekStartsOn,excluded:this.excludeDays,weekendDays:this.weekendDays})}checkActiveDayIsOpen(){if(!0===this.activeDayIsOpen){const e=this.activeDay||this.viewDate;this.openDay=this.view.days.find(r=>this.dateAdapter.isSameDay(r.date,e));const i=this.view.days.indexOf(this.openDay);this.openRowIndex=Math.floor(i/this.view.totalDaysVisibleInWeek)*this.view.totalDaysVisibleInWeek}else this.openRowIndex=null,this.openDay=null}refreshAll(){this.refreshHeader(),this.refreshBody(),this.emitBeforeViewRender(),this.checkActiveDayIsOpen()}emitBeforeViewRender(){this.columnHeaders&&this.view&&this.beforeViewRender.emit({header:this.columnHeaders,body:this.view.days,period:this.view.period})}}return n.\u0275fac=function(e){return new(e||n)(M(ua),M(th),M(mi),M(xr))},n.\u0275cmp=ft({type:n,selectors:[["mwl-calendar-month-view"]],inputs:{viewDate:"viewDate",events:"events",excludeDays:"excludeDays",activeDayIsOpen:"activeDayIsOpen",activeDay:"activeDay",refresh:"refresh",locale:"locale",tooltipPlacement:"tooltipPlacement",tooltipTemplate:"tooltipTemplate",tooltipAppendToBody:"tooltipAppendToBody",tooltipDelay:"tooltipDelay",weekStartsOn:"weekStartsOn",headerTemplate:"headerTemplate",cellTemplate:"cellTemplate",openDayEventsTemplate:"openDayEventsTemplate",eventTitleTemplate:"eventTitleTemplate",eventActionsTemplate:"eventActionsTemplate",weekendDays:"weekendDays"},outputs:{beforeViewRender:"beforeViewRender",dayClicked:"dayClicked",eventClicked:"eventClicked",columnHeaderClicked:"columnHeaderClicked",eventTimesChanged:"eventTimesChanged"},features:[Kt],decls:4,vars:5,consts:[["role","grid",1,"cal-month-view"],[3,"days","locale","customTemplate","columnHeaderClicked"],[1,"cal-days"],[4,"ngFor","ngForOf","ngForTrackBy"],["role","row",1,"cal-cell-row"],["role","gridcell","mwlDroppable","","dragOverClass","cal-drag-over",3,"ngClass","day","openDay","locale","tooltipPlacement","tooltipAppendToBody","tooltipTemplate","tooltipDelay","customTemplate","ngStyle","clickListenerDisabled","mwlClick","mwlKeydownEnter","highlightDay","unhighlightDay","drop","eventClicked",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDroppable","","dragOverClass","cal-drag-over",3,"locale","isOpen","events","date","customTemplate","eventTitleTemplate","eventActionsTemplate","eventClicked","drop"],["role","gridcell","mwlDroppable","","dragOverClass","cal-drag-over",3,"ngClass","day","openDay","locale","tooltipPlacement","tooltipAppendToBody","tooltipTemplate","tooltipDelay","customTemplate","ngStyle","clickListenerDisabled","mwlClick","mwlKeydownEnter","highlightDay","unhighlightDay","drop","eventClicked"]],template:function(e,i){1&e&&(Z(0,"div",0)(1,"mwl-calendar-month-view-header",1),de("columnHeaderClicked",function(s){return i.columnHeaderClicked.emit(s)}),Y(),Z(2,"div",2),se(3,g2,5,13,"div",3),Y()()),2&e&&(j(1),F("days",i.columnHeaders)("locale",i.locale)("customTemplate",i.headerTemplate),j(2),F("ngForOf",i.view.rowOffsets)("ngForTrackBy",i.trackByRowOffset))},directives:[vB,_B,wB,Jr,Am,cr,Vl,Bs,Qd],pipes:[Hs,AS],encapsulation:2}),n})(),T0=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({imports:[[da,Yd,Ql],Yd]}),n})();class DB{constructor(t,e){this.dragContainerElement=t,this.startPosition=e.getBoundingClientRect()}validateDrag({x:t,y:e,snapDraggedEvents:i,dragAlreadyMoved:r,transform:s}){const a=Fm({x:t,y:e})||r;if(i){const l=Object.assign({},this.startPosition,{left:this.startPosition.left+s.x,right:this.startPosition.right+s.x,top:this.startPosition.top+s.y,bottom:this.startPosition.bottom+s.y});if(a){const u=this.dragContainerElement.getBoundingClientRect(),d=u.top{class n{constructor(){this.dayHeaderClicked=new K,this.eventDropped=new K,this.dragEnter=new K,this.trackByWeekDayHeaderDate=Rm}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=ft({type:n,selectors:[["mwl-calendar-week-view-header"]],inputs:{days:"days",locale:"locale",customTemplate:"customTemplate"},outputs:{dayHeaderClicked:"dayHeaderClicked",eventDropped:"eventDropped",dragEnter:"dragEnter"},decls:3,vars:9,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["role","row",1,"cal-day-headers"],["class","cal-header","mwlDroppable","","dragOverClass","cal-drag-over","tabindex","0","role","columnheader",3,"cal-past","cal-today","cal-future","cal-weekend","ngClass","mwlClick","drop","dragEnter",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDroppable","","dragOverClass","cal-drag-over","tabindex","0","role","columnheader",1,"cal-header",3,"ngClass","mwlClick","drop","dragEnter"]],template:function(e,i){if(1&e&&(se(0,v2,2,2,"ng-template",null,0,ri),se(2,_2,0,0,"ng-template",1)),2&e){const r=Ft(1);j(2),F("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",function cD(n,t,e,i,r,s,a,l,u){const d=Pn()+n,f=R(),g=gi(f,d,e,i,r,s);return Ms(f,d+4,a,l)||g?rr(f,d+6,u?t.call(u,e,i,r,s,a,l):t(e,i,r,s,a,l)):wl(f,d+6)}(2,y2,i.days,i.locale,i.dayHeaderClicked,i.eventDropped,i.dragEnter,i.trackByWeekDayHeaderDate))}},directives:[Jr,Am,cr,Bs,yi],pipes:[Xl],encapsulation:2}),n})(),EB=(()=>{class n{constructor(){this.eventClicked=new K}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=ft({type:n,selectors:[["mwl-calendar-week-view-event"]],inputs:{locale:"locale",weekEvent:"weekEvent",tooltipPlacement:"tooltipPlacement",tooltipAppendToBody:"tooltipAppendToBody",tooltipDisabled:"tooltipDisabled",tooltipDelay:"tooltipDelay",customTemplate:"customTemplate",eventTitleTemplate:"eventTitleTemplate",eventActionsTemplate:"eventActionsTemplate",tooltipTemplate:"tooltipTemplate",column:"column",daysInWeek:"daysInWeek"},outputs:{eventClicked:"eventClicked"},decls:3,vars:12,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["tabindex","0","role","application",1,"cal-event",3,"ngStyle","mwlCalendarTooltip","tooltipPlacement","tooltipEvent","tooltipTemplate","tooltipAppendToBody","tooltipDelay","mwlClick","mwlKeydownEnter"],[3,"event","customTemplate"],[3,"event","customTemplate","view"]],template:function(e,i){if(1&e&&(se(0,C2,6,26,"ng-template",null,0,ri),se(2,D2,0,0,"ng-template",1)),2&e){const r=Ft(1);j(2),F("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",zp(2,S2,[i.weekEvent,i.tooltipPlacement,i.eventClicked,i.tooltipTemplate,i.tooltipAppendToBody,i.tooltipDisabled,i.tooltipDelay,i.column,i.daysInWeek]))}},directives:[_0,y0,Vl,w0,Bs,Qd,yi],pipes:[xm,Hs],encapsulation:2}),n})(),TB=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=ft({type:n,selectors:[["mwl-calendar-week-view-hour-segment"]],inputs:{segment:"segment",segmentHeight:"segmentHeight",locale:"locale",isTimeLabel:"isTimeLabel",daysInWeek:"daysInWeek",customTemplate:"customTemplate"},decls:3,vars:8,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"cal-hour-segment",3,"ngClass"],["class","cal-time",4,"ngIf"],[1,"cal-time"]],template:function(e,i){if(1&e&&(se(0,E2,3,13,"ng-template",null,0,ri),se(2,T2,0,0,"ng-template",1)),2&e){const r=Ft(1);j(2),F("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",Up(2,M2,i.segment,i.locale,i.segmentHeight,i.isTimeLabel,i.daysInWeek))}},directives:[cr,Mr,yi],pipes:[Hs,Xl],encapsulation:2}),n})(),MB=(()=>{class n{constructor(e,i){this.dateAdapter=e,this.zone=i,this.columnDate$=new Gl(void 0),this.marker$=this.zone.onStable.pipe(ts(()=>Hb(6e4)),Ub(0),function NL(n,t){return Re(t)?ts(()=>n,t):ts(()=>n)}(this.columnDate$),He(r=>{const s=this.dateAdapter.setMinutes(this.dateAdapter.setHours(r,this.dayStartHour),this.dayStartMinute),a=this.dateAdapter.setMinutes(this.dateAdapter.setHours(r,this.dayEndHour),this.dayEndMinute),l=this.hourSegments*this.hourSegmentHeight/(this.hourDuration||60),u=new Date;return{isVisible:this.dateAdapter.isSameDay(r,u)&&u>=s&&u<=a,top:this.dateAdapter.differenceInMinutes(u,s)*l}}))}ngOnChanges(e){e.columnDate&&this.columnDate$.next(e.columnDate.currentValue)}}return n.\u0275fac=function(e){return new(e||n)(M(xr),M(lt))},n.\u0275cmp=ft({type:n,selectors:[["mwl-calendar-week-view-current-time-marker"]],inputs:{columnDate:"columnDate",dayStartHour:"dayStartHour",dayStartMinute:"dayStartMinute",dayEndHour:"dayEndHour",dayEndMinute:"dayEndMinute",hourSegments:"hourSegments",hourDuration:"hourDuration",hourSegmentHeight:"hourSegmentHeight",customTemplate:"customTemplate"},features:[Kt],decls:5,vars:14,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["class","cal-current-time-marker",3,"top",4,"ngIf"],[1,"cal-current-time-marker"]],template:function(e,i){if(1&e&&(se(0,A2,1,1,"ng-template",null,0,ri),se(2,P2,0,0,"ng-template",1),Mt(3,"async"),Mt(4,"async")),2&e){const r=Ft(1);let s;j(2),F("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",function uD(n,t,e,i,r,s,a,l,u,d){const f=Pn()+n,g=R();let v=gi(g,f,e,i,r,s);return Hu(g,f+4,a,l,u)||v?rr(g,f+7,d?t.call(d,e,i,r,s,a,l,u):t(e,i,r,s,a,l,u)):wl(g,f+7)}(6,k2,i.columnDate,i.dayStartHour,i.dayStartMinute,i.dayEndHour,i.dayEndMinute,null==(s=Ku(3,2,i.marker$))?null:s.isVisible,null==(s=Ku(4,4,i.marker$))?null:s.top))}},directives:[Mr,yi],pipes:[Ag],encapsulation:2}),n})(),M0=(()=>{class n{constructor(e,i,r,s,a){this.cdr=e,this.utils=i,this.dateAdapter=s,this.element=a,this.events=[],this.excludeDays=[],this.tooltipPlacement="auto",this.tooltipAppendToBody=!0,this.tooltipDelay=null,this.precision="days",this.snapDraggedEvents=!0,this.hourSegments=2,this.hourSegmentHeight=30,this.minimumEventHeight=30,this.dayStartHour=0,this.dayStartMinute=0,this.dayEndHour=23,this.dayEndMinute=59,this.dayHeaderClicked=new K,this.eventClicked=new K,this.eventTimesChanged=new K,this.beforeViewRender=new K,this.hourSegmentClicked=new K,this.allDayEventResizes=new Map,this.timeEventResizes=new Map,this.eventDragEnterByType={allDay:0,time:0},this.dragActive=!1,this.dragAlreadyMoved=!1,this.calendarId=Symbol("angular calendar week view id"),this.rtl=!1,this.trackByWeekDayHeaderDate=Rm,this.trackByHourSegment=sB,this.trackByHour=oB,this.trackByWeekAllDayEvent=aB,this.trackByWeekTimeEvent=lB,this.trackByHourColumn=(l,u)=>u.hours[0]?u.hours[0].segments[0].date.toISOString():u,this.trackById=(l,u)=>u.id,this.locale=r}ngOnInit(){this.refresh&&(this.refreshSubscription=this.refresh.subscribe(()=>{this.refreshAll(),this.cdr.markForCheck()}))}ngOnChanges(e){const i=e.viewDate||e.excludeDays||e.weekendDays||e.daysInWeek||e.weekStartsOn,r=e.viewDate||e.dayStartHour||e.dayStartMinute||e.dayEndHour||e.dayEndMinute||e.hourSegments||e.hourDuration||e.weekStartsOn||e.weekendDays||e.excludeDays||e.hourSegmentHeight||e.events||e.daysInWeek||e.minimumEventHeight;i&&this.refreshHeader(),e.events&&C0(this.events),r&&this.refreshBody(),(i||r)&&this.emitBeforeViewRender()}ngOnDestroy(){this.refreshSubscription&&this.refreshSubscription.unsubscribe()}ngAfterViewInit(){this.rtl=typeof window<"u"&&"rtl"===getComputedStyle(this.element.nativeElement).direction,this.cdr.detectChanges()}timeEventResizeStarted(e,i,r){this.timeEventResizes.set(i.event,r),this.resizeStarted(e,i)}timeEventResizing(e,i){this.timeEventResizes.set(e.event,i);const r=new Map,s=[...this.events];this.timeEventResizes.forEach((a,l)=>{const u=this.getTimeEventResizedDates(l,a),d=Object.assign(Object.assign({},l),u);r.set(d,l);const f=s.indexOf(l);s[f]=d}),this.restoreOriginalEvents(s,r,!0)}timeEventResizeEnded(e){this.view=this.getWeekView(this.events);const i=this.timeEventResizes.get(e.event);if(i){this.timeEventResizes.delete(e.event);const r=this.getTimeEventResizedDates(e.event,i);this.eventTimesChanged.emit({newStart:r.start,newEnd:r.end,event:e.event,type:dr.Resize})}}allDayEventResizeStarted(e,i,r){this.allDayEventResizes.set(i,{originalOffset:i.offset,originalSpan:i.span,edge:typeof r.edges.left<"u"?"left":"right"}),this.resizeStarted(e,i,this.getDayColumnWidth(e))}allDayEventResizing(e,i,r){const s=this.allDayEventResizes.get(e),a=this.rtl?-1:1;if(typeof i.edges.left<"u"){const l=Math.round(+i.edges.left/r)*a;e.offset=s.originalOffset+l,e.span=s.originalSpan-l}else if(typeof i.edges.right<"u"){const l=Math.round(+i.edges.right/r)*a;e.span=s.originalSpan+l}}allDayEventResizeEnded(e){const i=this.allDayEventResizes.get(e);if(i){const r="left"===i.edge;let s;s=r?e.offset-i.originalOffset:e.span-i.originalSpan,e.offset=i.originalOffset,e.span=i.originalSpan;const a=this.getAllDayEventResizedDates(e.event,s,r);this.eventTimesChanged.emit({newStart:a.start,newEnd:a.end,event:e.event,type:dr.Resize}),this.allDayEventResizes.delete(e)}}getDayColumnWidth(e){return Math.floor(e.offsetWidth/this.days.length)}dateDragEnter(e){this.lastDragEnterDate=e}eventDropped(e,i,r){(function hB(n,t,e,i){return n.dropData&&n.dropData.event&&(n.dropData.calendarId!==i||n.dropData.event.allDay&&!e||!n.dropData.event.allDay&&e)})(e,0,r,this.calendarId)&&this.lastDragEnterDate.getTime()===i.getTime()&&(!this.snapDraggedEvents||e.dropData.event!==this.lastDraggedEvent)&&this.eventTimesChanged.emit({type:dr.Drop,event:e.dropData.event,newStart:i,allDay:r}),this.lastDraggedEvent=null}dragEnter(e){this.eventDragEnterByType[e]++}dragLeave(e){this.eventDragEnterByType[e]--}dragStarted(e,i,r,s){this.dayColumnWidth=this.getDayColumnWidth(e);const a=new DB(e,i);this.validateDrag=({x:l,y:u,transform:d})=>{const f=0===this.allDayEventResizes.size&&0===this.timeEventResizes.size&&a.validateDrag({x:l,y:u,snapDraggedEvents:this.snapDraggedEvents,dragAlreadyMoved:this.dragAlreadyMoved,transform:d});if(f&&this.validateEventTimesChanged){const g=this.getDragMovedEventTimes(r,{x:l,y:u},this.dayColumnWidth,s);return this.validateEventTimesChanged({type:dr.Drag,event:r.event,newStart:g.start,newEnd:g.end})}return f},this.dragActive=!0,this.dragAlreadyMoved=!1,this.lastDraggedEvent=null,this.eventDragEnterByType={allDay:0,time:0},!this.snapDraggedEvents&&s&&this.view.hourColumns.forEach(l=>{const u=l.events.find(d=>d.event===r.event&&d!==r);u&&(u.width=0,u.height=0)}),this.cdr.markForCheck()}dragMove(e,i){const r=this.getDragMovedEventTimes(e,i,this.dayColumnWidth,!0),s=e.event,a=Object.assign(Object.assign({},s),r),l=this.events.map(u=>u===s?a:u);this.restoreOriginalEvents(l,new Map([[a,s]]),this.snapDraggedEvents),this.dragAlreadyMoved=!0}allDayEventDragMove(){this.dragAlreadyMoved=!0}dragEnded(e,i,r,s=!1){this.view=this.getWeekView(this.events),this.dragActive=!1,this.validateDrag=null;const{start:a,end:l}=this.getDragMovedEventTimes(e,i,r,s);(this.snapDraggedEvents||this.eventDragEnterByType[s?"time":"allDay"]>0)&&function dB(n,t,e){const i=t||n;return e.start<=n&&n<=e.end||e.start<=i&&i<=e.end}(a,l,this.view.period)&&(this.lastDraggedEvent=e.event,this.eventTimesChanged.emit({newStart:a,newEnd:l,event:e.event,type:dr.Drag,allDay:!s}))}refreshHeader(){this.days=this.utils.getWeekViewHeader(Object.assign({viewDate:this.viewDate,weekStartsOn:this.weekStartsOn,excluded:this.excludeDays,weekendDays:this.weekendDays},Nm(this.dateAdapter,this.viewDate,this.weekStartsOn,this.excludeDays,this.daysInWeek)))}refreshBody(){this.view=this.getWeekView(this.events)}refreshAll(){this.refreshHeader(),this.refreshBody(),this.emitBeforeViewRender()}emitBeforeViewRender(){this.days&&this.view&&this.beforeViewRender.emit(Object.assign({header:this.days},this.view))}getWeekView(e){return this.utils.getWeekView(Object.assign({events:e,viewDate:this.viewDate,weekStartsOn:this.weekStartsOn,excluded:this.excludeDays,precision:this.precision,absolutePositionedEvents:!0,hourSegments:this.hourSegments,hourDuration:this.hourDuration,dayStart:{hour:this.dayStartHour,minute:this.dayStartMinute},dayEnd:{hour:this.dayEndHour,minute:this.dayEndMinute},segmentHeight:this.hourSegmentHeight,weekendDays:this.weekendDays,minimumEventHeight:this.minimumEventHeight},Nm(this.dateAdapter,this.viewDate,this.weekStartsOn,this.excludeDays,this.daysInWeek)))}getDragMovedEventTimes(e,i,r,s){const a=S0(i.x,r)/r*(this.rtl?-1:1),l=s?Om(i.y,this.hourSegments,this.hourSegmentHeight,this.eventSnapSize,this.hourDuration):0,u=this.dateAdapter.addMinutes(Vi(this.dateAdapter,e.event.start,a,this.excludeDays),l);let d;return e.event.end&&(d=this.dateAdapter.addMinutes(Vi(this.dateAdapter,e.event.end,a,this.excludeDays),l)),{start:u,end:d}}restoreOriginalEvents(e,i,r=!0){const s=this.view;r&&(this.view=this.getWeekView(e));const a=e.filter(l=>i.has(l));this.view.hourColumns.forEach((l,u)=>{s.hourColumns[u].hours.forEach((d,f)=>{d.segments.forEach((g,v)=>{l.hours[f].segments[v].cssClass=g.cssClass})}),a.forEach(d=>{const f=i.get(d),g=l.events.find(v=>v.event===(r?d:f));g?(g.event=f,g.tempEvent=d,r||(g.height=0,g.width=0)):l.events.push({event:f,left:0,top:0,height:0,width:0,startsBeforeDay:!1,endsAfterDay:!1,tempEvent:d})})}),i.clear()}getTimeEventResizedDates(e,i){const r={start:e.start,end:E0(this.dateAdapter,e,this.minimumEventHeight)},a=function Sh(n,t){var e={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&t.indexOf(i)<0&&(e[i]=n[i]);if(null!=n&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(n);rl.end?f:l.end}if(typeof i.edges.top<"u"){const d=Om(i.edges.top,this.hourSegments,this.hourSegmentHeight,this.eventSnapSize,this.hourDuration),f=this.dateAdapter.addMinutes(r.start,d);r.start=fl.end?f:l.end}return r}resizeStarted(e,i,r){this.dayColumnWidth=this.getDayColumnWidth(e);const s=new SB(e,r,this.rtl);this.validateResize=({rectangle:a,edges:l})=>{const u=s.validateResize({rectangle:Object.assign({},a),edges:l});if(u&&this.validateEventTimesChanged){let d;if(r){const f=this.rtl?-1:1;if(typeof l.left<"u"){const g=Math.round(+l.left/r)*f;d=this.getAllDayEventResizedDates(i.event,g,!this.rtl)}else{const g=Math.round(+l.right/r)*f;d=this.getAllDayEventResizedDates(i.event,g,this.rtl)}}else d=this.getTimeEventResizedDates(i.event,{rectangle:a,edges:l});return this.validateEventTimesChanged({type:dr.Resize,event:i.event,newStart:d.start,newEnd:d.end})}return u},this.cdr.markForCheck()}getAllDayEventResizedDates(e,i,r){let s=e.start,a=e.end||e.start;return r?s=Vi(this.dateAdapter,s,i,this.excludeDays):a=Vi(this.dateAdapter,a,i,this.excludeDays),{start:s,end:a}}}return n.\u0275fac=function(e){return new(e||n)(M(ua),M(th),M(mi),M(xr),M(Tt))},n.\u0275cmp=ft({type:n,selectors:[["mwl-calendar-week-view"]],inputs:{viewDate:"viewDate",events:"events",excludeDays:"excludeDays",refresh:"refresh",locale:"locale",tooltipPlacement:"tooltipPlacement",tooltipTemplate:"tooltipTemplate",tooltipAppendToBody:"tooltipAppendToBody",tooltipDelay:"tooltipDelay",weekStartsOn:"weekStartsOn",headerTemplate:"headerTemplate",eventTemplate:"eventTemplate",eventTitleTemplate:"eventTitleTemplate",eventActionsTemplate:"eventActionsTemplate",precision:"precision",weekendDays:"weekendDays",snapDraggedEvents:"snapDraggedEvents",hourSegments:"hourSegments",hourDuration:"hourDuration",hourSegmentHeight:"hourSegmentHeight",minimumEventHeight:"minimumEventHeight",dayStartHour:"dayStartHour",dayStartMinute:"dayStartMinute",dayEndHour:"dayEndHour",dayEndMinute:"dayEndMinute",hourSegmentTemplate:"hourSegmentTemplate",eventSnapSize:"eventSnapSize",allDayEventsLabelTemplate:"allDayEventsLabelTemplate",daysInWeek:"daysInWeek",currentTimeMarkerTemplate:"currentTimeMarkerTemplate",validateEventTimesChanged:"validateEventTimesChanged"},outputs:{dayHeaderClicked:"dayHeaderClicked",eventClicked:"eventClicked",eventTimesChanged:"eventTimesChanged",beforeViewRender:"beforeViewRender",hourSegmentClicked:"hourSegmentClicked"},features:[Kt],decls:8,vars:9,consts:[["role","grid",1,"cal-week-view"],[3,"days","locale","customTemplate","dayHeaderClicked","eventDropped","dragEnter"],["class","cal-all-day-events","mwlDroppable","",3,"dragEnter","dragLeave",4,"ngIf"],["mwlDroppable","",1,"cal-time-events",3,"dragEnter","dragLeave"],["class","cal-time-label-column",4,"ngIf"],[1,"cal-day-columns"],["dayColumns",""],["class","cal-day-column",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDroppable","",1,"cal-all-day-events",3,"dragEnter","dragLeave"],["allDayEventsContainer",""],[1,"cal-time-label-column",3,"ngTemplateOutlet"],["class","cal-day-column","mwlDroppable","","dragOverClass","cal-drag-over",3,"drop","dragEnter",4,"ngFor","ngForOf","ngForTrackBy"],["class","cal-events-row",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDroppable","","dragOverClass","cal-drag-over",1,"cal-day-column",3,"drop","dragEnter"],[1,"cal-events-row"],["eventRowContainer",""],["class","cal-event-container","mwlResizable","","mwlDraggable","","dragActiveClass","cal-drag-active",3,"cal-draggable","cal-starts-within-week","cal-ends-within-week","ngClass","width","marginLeft","marginRight","resizeSnapGrid","validateResize","dropData","dragAxis","dragSnapGrid","validateDrag","touchStartLongPress","resizeStart","resizing","resizeEnd","dragStart","dragging","dragEnd",4,"ngFor","ngForOf","ngForTrackBy"],["mwlResizable","","mwlDraggable","","dragActiveClass","cal-drag-active",1,"cal-event-container",3,"ngClass","resizeSnapGrid","validateResize","dropData","dragAxis","dragSnapGrid","validateDrag","touchStartLongPress","resizeStart","resizing","resizeEnd","dragStart","dragging","dragEnd"],["event",""],["class","cal-resize-handle cal-resize-handle-before-start","mwlResizeHandle","",3,"resizeEdges",4,"ngIf"],[3,"locale","weekEvent","tooltipPlacement","tooltipTemplate","tooltipAppendToBody","tooltipDelay","customTemplate","eventTitleTemplate","eventActionsTemplate","daysInWeek","eventClicked"],["class","cal-resize-handle cal-resize-handle-after-end","mwlResizeHandle","",3,"resizeEdges",4,"ngIf"],["mwlResizeHandle","",1,"cal-resize-handle","cal-resize-handle-before-start",3,"resizeEdges"],["mwlResizeHandle","",1,"cal-resize-handle","cal-resize-handle-after-end",3,"resizeEdges"],[1,"cal-time-label-column"],["class","cal-hour",3,"cal-hour-odd",4,"ngFor","ngForOf","ngForTrackBy"],[1,"cal-hour"],[3,"height","segment","segmentHeight","locale","customTemplate","isTimeLabel","daysInWeek",4,"ngFor","ngForOf","ngForTrackBy"],[3,"segment","segmentHeight","locale","customTemplate","isTimeLabel","daysInWeek"],[1,"cal-day-column"],[3,"columnDate","dayStartHour","dayStartMinute","dayEndHour","dayEndMinute","hourSegments","hourDuration","hourSegmentHeight","customTemplate"],[1,"cal-events-container"],["class","cal-event-container","mwlResizable","","mwlDraggable","","dragActiveClass","cal-drag-active",3,"cal-draggable","cal-starts-within-day","cal-ends-within-day","ngClass","hidden","top","height","left","width","resizeSnapGrid","validateResize","allowNegativeResizes","dropData","dragAxis","dragSnapGrid","touchStartLongPress","ghostDragEnabled","ghostElementTemplate","validateDrag","resizeStart","resizing","resizeEnd","dragStart","dragging","dragEnd",4,"ngFor","ngForOf","ngForTrackBy"],["mwlResizable","","mwlDraggable","","dragActiveClass","cal-drag-active",1,"cal-event-container",3,"ngClass","hidden","resizeSnapGrid","validateResize","allowNegativeResizes","dropData","dragAxis","dragSnapGrid","touchStartLongPress","ghostDragEnabled","ghostElementTemplate","validateDrag","resizeStart","resizing","resizeEnd","dragStart","dragging","dragEnd"],[3,"ngTemplateOutlet"],["weekEventTemplate",""],[3,"locale","weekEvent","tooltipPlacement","tooltipTemplate","tooltipAppendToBody","tooltipDisabled","tooltipDelay","customTemplate","eventTitleTemplate","eventActionsTemplate","column","daysInWeek","eventClicked"],["mwlDroppable","","dragActiveClass","cal-drag-active",3,"height","segment","segmentHeight","locale","customTemplate","daysInWeek","clickListenerDisabled","dragOverClass","isTimeLabel","mwlClick","drop","dragEnter",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDroppable","","dragActiveClass","cal-drag-active",3,"segment","segmentHeight","locale","customTemplate","daysInWeek","clickListenerDisabled","dragOverClass","isTimeLabel","mwlClick","drop","dragEnter"]],template:function(e,i){1&e&&(Z(0,"div",0)(1,"mwl-calendar-week-view-header",1),de("dayHeaderClicked",function(s){return i.dayHeaderClicked.emit(s)})("eventDropped",function(s){return i.eventDropped({dropData:s},s.newStart,!0)})("dragEnter",function(s){return i.dateDragEnter(s.date)}),Y(),se(2,j2,6,5,"div",2),Z(3,"div",3),de("dragEnter",function(){return i.dragEnter("time")})("dragLeave",function(){return i.dragLeave("time")}),se(4,W2,2,2,"div",4),Z(5,"div",5,6),se(7,tB,5,13,"div",7),Y()()()),2&e&&(j(1),F("days",i.days)("locale",i.locale)("customTemplate",i.headerTemplate),j(1),F("ngIf",i.view.allDayEventRows.length>0),j(2),F("ngIf",i.view.hourColumns.length>0&&1!==i.daysInWeek),j(1),cn("cal-resize-active",i.timeEventResizes.size>0),j(2),F("ngForOf",i.view.hourColumns)("ngForTrackBy",i.trackByHourColumn))},directives:[bB,EB,TB,MB,Mr,Am,yi,Jr,f0,Im,cr,FV,Bs],encapsulation:2}),n})(),Lm=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({imports:[[da,p0,Yd,Ql],p0,Yd]}),n})(),IB=(()=>{class n{constructor(){this.events=[],this.hourSegments=2,this.hourSegmentHeight=30,this.minimumEventHeight=30,this.dayStartHour=0,this.dayStartMinute=0,this.dayEndHour=23,this.dayEndMinute=59,this.tooltipPlacement="auto",this.tooltipAppendToBody=!0,this.tooltipDelay=null,this.snapDraggedEvents=!0,this.eventClicked=new K,this.hourSegmentClicked=new K,this.eventTimesChanged=new K,this.beforeViewRender=new K}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=ft({type:n,selectors:[["mwl-calendar-day-view"]],inputs:{viewDate:"viewDate",events:"events",hourSegments:"hourSegments",hourSegmentHeight:"hourSegmentHeight",hourDuration:"hourDuration",minimumEventHeight:"minimumEventHeight",dayStartHour:"dayStartHour",dayStartMinute:"dayStartMinute",dayEndHour:"dayEndHour",dayEndMinute:"dayEndMinute",refresh:"refresh",locale:"locale",eventSnapSize:"eventSnapSize",tooltipPlacement:"tooltipPlacement",tooltipTemplate:"tooltipTemplate",tooltipAppendToBody:"tooltipAppendToBody",tooltipDelay:"tooltipDelay",hourSegmentTemplate:"hourSegmentTemplate",eventTemplate:"eventTemplate",eventTitleTemplate:"eventTitleTemplate",eventActionsTemplate:"eventActionsTemplate",snapDraggedEvents:"snapDraggedEvents",allDayEventsLabelTemplate:"allDayEventsLabelTemplate",currentTimeMarkerTemplate:"currentTimeMarkerTemplate",validateEventTimesChanged:"validateEventTimesChanged"},outputs:{eventClicked:"eventClicked",hourSegmentClicked:"hourSegmentClicked",eventTimesChanged:"eventTimesChanged",beforeViewRender:"beforeViewRender"},decls:1,vars:26,consts:[[1,"cal-day-view",3,"daysInWeek","viewDate","events","hourSegments","hourDuration","hourSegmentHeight","minimumEventHeight","dayStartHour","dayStartMinute","dayEndHour","dayEndMinute","refresh","locale","eventSnapSize","tooltipPlacement","tooltipTemplate","tooltipAppendToBody","tooltipDelay","hourSegmentTemplate","eventTemplate","eventTitleTemplate","eventActionsTemplate","snapDraggedEvents","allDayEventsLabelTemplate","currentTimeMarkerTemplate","validateEventTimesChanged","eventClicked","hourSegmentClicked","eventTimesChanged","beforeViewRender"]],template:function(e,i){1&e&&(Z(0,"mwl-calendar-week-view",0),de("eventClicked",function(s){return i.eventClicked.emit(s)})("hourSegmentClicked",function(s){return i.hourSegmentClicked.emit(s)})("eventTimesChanged",function(s){return i.eventTimesChanged.emit(s)})("beforeViewRender",function(s){return i.beforeViewRender.emit(s)}),Y()),2&e&&F("daysInWeek",1)("viewDate",i.viewDate)("events",i.events)("hourSegments",i.hourSegments)("hourDuration",i.hourDuration)("hourSegmentHeight",i.hourSegmentHeight)("minimumEventHeight",i.minimumEventHeight)("dayStartHour",i.dayStartHour)("dayStartMinute",i.dayStartMinute)("dayEndHour",i.dayEndHour)("dayEndMinute",i.dayEndMinute)("refresh",i.refresh)("locale",i.locale)("eventSnapSize",i.eventSnapSize)("tooltipPlacement",i.tooltipPlacement)("tooltipTemplate",i.tooltipTemplate)("tooltipAppendToBody",i.tooltipAppendToBody)("tooltipDelay",i.tooltipDelay)("hourSegmentTemplate",i.hourSegmentTemplate)("eventTemplate",i.eventTemplate)("eventTitleTemplate",i.eventTitleTemplate)("eventActionsTemplate",i.eventActionsTemplate)("snapDraggedEvents",i.snapDraggedEvents)("allDayEventsLabelTemplate",i.allDayEventsLabelTemplate)("currentTimeMarkerTemplate",i.currentTimeMarkerTemplate)("validateEventTimesChanged",i.validateEventTimesChanged)},directives:[M0],encapsulation:2}),n})(),I0=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({imports:[[da,Ql,Lm]]}),n})(),AB=(()=>{class n{static forRoot(e,i={}){return{ngModule:n,providers:[e,i.eventTitleFormatter||km,i.dateFormatter||eh,i.utils||th,i.a11y||Jd]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({imports:[[Ql,T0,Lm,I0],Ql,T0,Lm,I0]}),n})();function _n(n){if(null===n||!0===n||!1===n)return NaN;var t=Number(n);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function De(n,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function qe(n){De(1,arguments);var t=Object.prototype.toString.call(n);return n instanceof Date||"object"==typeof n&&"[object Date]"===t?new Date(n.getTime()):"number"==typeof n||"[object Number]"===t?new Date(n):(("string"==typeof n||"[object String]"===t)&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}function Vm(n,t){De(2,arguments);var e=qe(n),i=_n(t);return isNaN(i)?new Date(NaN):(i&&e.setDate(e.getDate()+i),e)}function Bm(n,t){De(2,arguments);var e=qe(n).getTime(),i=_n(t);return new Date(e+i)}function kB(n,t){De(2,arguments);var e=_n(t);return Bm(n,36e5*e)}function RB(n,t){De(2,arguments);var e=_n(t);return Bm(n,6e4*e)}function OB(n,t){De(2,arguments);var e=_n(t);return Bm(n,1e3*e)}function A0(n){var t=new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds()));return t.setUTCFullYear(n.getFullYear()),n.getTime()-t.getTime()}function Jl(n){De(1,arguments);var t=qe(n);return t.setHours(0,0,0,0),t}function FB(n,t){De(2,arguments);var e=Jl(n),i=Jl(t),r=e.getTime()-A0(e),s=i.getTime()-A0(i);return Math.round((r-s)/864e5)}function P0(n,t){var e=n.getFullYear()-t.getFullYear()||n.getMonth()-t.getMonth()||n.getDate()-t.getDate()||n.getHours()-t.getHours()||n.getMinutes()-t.getMinutes()||n.getSeconds()-t.getSeconds()||n.getMilliseconds()-t.getMilliseconds();return e<0?-1:e>0?1:e}function LB(n,t){De(2,arguments);var e=qe(n),i=qe(t),r=P0(e,i),s=Math.abs(FB(e,i));e.setDate(e.getDate()-r*s);var a=Number(P0(e,i)===-r),l=r*(s-a);return 0===l?0:l}function x0(n,t){return De(2,arguments),qe(n).getTime()-qe(t).getTime()}Math.pow(10,8);var R0={ceil:Math.ceil,round:Math.round,floor:Math.floor,trunc:function(n){return n<0?Math.ceil(n):Math.floor(n)}};function O0(n){return n?R0[n]:R0.trunc}function GB(n,t,e){De(2,arguments);var i=x0(n,t)/6e4;return O0(null==e?void 0:e.roundingMethod)(i)}function $B(n,t,e){De(2,arguments);var i=x0(n,t)/1e3;return O0(null==e?void 0:e.roundingMethod)(i)}function ZB(n){De(1,arguments);var t=qe(n);return t.setHours(23,59,59,999),t}function qB(n){De(1,arguments);var t=qe(n),e=t.getMonth();return t.setFullYear(t.getFullYear(),e+1,0),t.setHours(23,59,59,999),t}var N0={};function F0(){return N0}function YB(n,t){var e,i,r,s,a,l,u,d;De(1,arguments);var f=F0(),g=_n(null!==(e=null!==(i=null!==(r=null!==(s=null==t?void 0:t.weekStartsOn)&&void 0!==s?s:null==t||null===(a=t.locale)||void 0===a||null===(l=a.options)||void 0===l?void 0:l.weekStartsOn)&&void 0!==r?r:f.weekStartsOn)&&void 0!==i?i:null===(u=f.locale)||void 0===u||null===(d=u.options)||void 0===d?void 0:d.weekStartsOn)&&void 0!==e?e:0);if(!(g>=0&&g<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var v=qe(n),_=v.getDay(),w=6+(_=0&&g<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var v=qe(n),_=v.getDay(),w=(_=a?s:(e.setFullYear(s.getFullYear(),s.getMonth(),r),e)}function lH(n,t){De(2,arguments);var e=_n(t);return Vm(n,-e)}function cH(n,t){De(2,arguments);var e=_n(t);return j0(n,-e)}function uH(n,t){De(2,arguments);var e=_n(t);return U0(n,-e)}function nh(n){return De(1,arguments),H0(n,{weekStartsOn:1})}function dH(n){De(1,arguments);var t=qe(n),e=t.getFullYear(),i=new Date(0);i.setFullYear(e+1,0,4),i.setHours(0,0,0,0);var r=nh(i),s=new Date(0);s.setFullYear(e,0,4),s.setHours(0,0,0,0);var a=nh(s);return t.getTime()>=r.getTime()?e+1:t.getTime()>=a.getTime()?e:e-1}function hH(n){De(1,arguments);var t=dH(n),e=new Date(0);e.setFullYear(t,0,4),e.setHours(0,0,0,0);var i=nh(e);return i}var fH=6048e5;function pH(n){De(1,arguments);var t=qe(n),e=nh(t).getTime()-hH(t).getTime();return Math.round(e/fH)+1}function gH(n,t){De(2,arguments);var e=qe(n),i=_n(t);return e.setDate(i),e}function mH(n){De(1,arguments);var t=qe(n),e=t.getFullYear(),i=t.getMonth(),r=new Date(0);return r.setFullYear(e,i+1,0),r.setHours(0,0,0,0),r.getDate()}function vH(n,t){De(2,arguments);var e=qe(n),i=_n(t),r=e.getFullYear(),s=e.getDate(),a=new Date(0);a.setFullYear(r,i,15),a.setHours(0,0,0,0);var l=mH(a);return e.setMonth(i,Math.min(s,l)),e}function _H(n,t){De(2,arguments);var e=qe(n),i=_n(t);return isNaN(e.getTime())?new Date(NaN):(e.setFullYear(i),e)}function yH(n){De(1,arguments);var t=qe(n),e=t.getDate();return e}function wH(n){return De(1,arguments),qe(n).getFullYear()}function CH(){return Vr(Vr({},function aH(){return{addDays:Vm,addHours:kB,addMinutes:RB,addSeconds:OB,differenceInDays:LB,differenceInMinutes:GB,differenceInSeconds:$B,endOfDay:ZB,endOfMonth:qB,endOfWeek:YB,getDay:KB,getMonth:XB,isSameDay:L0,isSameMonth:V0,isSameSecond:QB,max:JB,setHours:eH,setMinutes:tH,startOfDay:Jl,startOfMinute:nH,startOfMonth:iH,startOfWeek:H0,getHours:rH,getMinutes:sH,getTimezoneOffset:oH}}()),{addWeeks:j0,addMonths:U0,subDays:lH,subWeeks:cH,subMonths:uH,getISOWeek:pH,setDate:gH,setMonth:vH,setYear:_H,getDate:yH,getYear:wH})}class z0{}class W0{}class hr{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit="string"==typeof t?()=>{this.headers=new Map,t.split("\n").forEach(e=>{const i=e.indexOf(":");if(i>0){const r=e.slice(0,i),s=r.toLowerCase(),a=e.slice(i+1).trim();this.maybeSetNormalizedName(r,s),this.headers.has(s)?this.headers.get(s).push(a):this.headers.set(s,[a])}})}:()=>{this.headers=new Map,Object.keys(t).forEach(e=>{let i=t[e];const r=e.toLowerCase();"string"==typeof i&&(i=[i]),i.length>0&&(this.headers.set(r,i),this.maybeSetNormalizedName(e,r))})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const e=this.headers.get(t.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,e){return this.clone({name:t,value:e,op:"a"})}set(t,e){return this.clone({name:t,value:e,op:"s"})}delete(t,e){return this.clone({name:t,value:e,op:"d"})}maybeSetNormalizedName(t,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,t)}init(){this.lazyInit&&(this.lazyInit instanceof hr?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(e=>{this.headers.set(e,t.headers.get(e)),this.normalizedNames.set(e,t.normalizedNames.get(e))})}clone(t){const e=new hr;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof hr?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([t]),e}applyUpdate(t){const e=t.name.toLowerCase();switch(t.op){case"a":case"s":let i=t.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(t.name,e);const r=("a"===t.op?this.headers.get(e):void 0)||[];r.push(...i),this.headers.set(e,r);break;case"d":const s=t.value;if(s){let a=this.headers.get(e);if(!a)return;a=a.filter(l=>-1===s.indexOf(l)),0===a.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,a)}else this.headers.delete(e),this.normalizedNames.delete(e)}}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>t(this.normalizedNames.get(e),this.headers.get(e)))}}class SH{encodeKey(t){return G0(t)}encodeValue(t){return G0(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}const EH=/%(\d[a-f0-9])/gi,TH={40:"@","3A":":",24:"$","2C":",","3B":";","2B":"+","3D":"=","3F":"?","2F":"/"};function G0(n){return encodeURIComponent(n).replace(EH,(t,e)=>TH[e]??t)}function $0(n){return`${n}`}class Rr{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new SH,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function bH(n,t){const e=new Map;return n.length>0&&n.replace(/^\?/,"").split("&").forEach(r=>{const s=r.indexOf("="),[a,l]=-1==s?[t.decodeKey(r),""]:[t.decodeKey(r.slice(0,s)),t.decodeValue(r.slice(s+1))],u=e.get(a)||[];u.push(l),e.set(a,u)}),e}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(e=>{const i=t.fromObject[e];this.map.set(e,Array.isArray(i)?i:[i])})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const e=this.map.get(t);return e?e[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,e){return this.clone({param:t,value:e,op:"a"})}appendAll(t){const e=[];return Object.keys(t).forEach(i=>{const r=t[i];Array.isArray(r)?r.forEach(s=>{e.push({param:i,value:s,op:"a"})}):e.push({param:i,value:r,op:"a"})}),this.clone(e)}set(t,e){return this.clone({param:t,value:e,op:"s"})}delete(t,e){return this.clone({param:t,value:e,op:"d"})}toString(){return this.init(),this.keys().map(t=>{const e=this.encoder.encodeKey(t);return this.map.get(t).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(t=>""!==t).join("&")}clone(t){const e=new Rr({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(t),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":const e=("a"===t.op?this.map.get(t.param):void 0)||[];e.push($0(t.value)),this.map.set(t.param,e);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let i=this.map.get(t.param)||[];const r=i.indexOf($0(t.value));-1!==r&&i.splice(r,1),i.length>0?this.map.set(t.param,i):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}class MH{constructor(){this.map=new Map}set(t,e){return this.map.set(t,e),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}}function Z0(n){return typeof ArrayBuffer<"u"&&n instanceof ArrayBuffer}function q0(n){return typeof Blob<"u"&&n instanceof Blob}function Y0(n){return typeof FormData<"u"&&n instanceof FormData}class ec{constructor(t,e,i,r){let s;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function IH(n){switch(n){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||r?(this.body=void 0!==i?i:null,s=r):s=i,s&&(this.reportProgress=!!s.reportProgress,this.withCredentials=!!s.withCredentials,s.responseType&&(this.responseType=s.responseType),s.headers&&(this.headers=s.headers),s.context&&(this.context=s.context),s.params&&(this.params=s.params)),this.headers||(this.headers=new hr),this.context||(this.context=new MH),this.params){const a=this.params.toString();if(0===a.length)this.urlWithParams=e;else{const l=e.indexOf("?");this.urlWithParams=e+(-1===l?"?":lg.set(v,t.setHeaders[v]),u)),t.setParams&&(d=Object.keys(t.setParams).reduce((g,v)=>g.set(v,t.setParams[v]),d)),new ec(e,i,s,{params:d,headers:u,context:f,reportProgress:l,responseType:r,withCredentials:a})}}var Wt=(()=>((Wt=Wt||{})[Wt.Sent=0]="Sent",Wt[Wt.UploadProgress=1]="UploadProgress",Wt[Wt.ResponseHeader=2]="ResponseHeader",Wt[Wt.DownloadProgress=3]="DownloadProgress",Wt[Wt.Response=4]="Response",Wt[Wt.User=5]="User",Wt))();class Hm{constructor(t,e=200,i="OK"){this.headers=t.headers||new hr,this.status=void 0!==t.status?t.status:e,this.statusText=t.statusText||i,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class jm extends Hm{constructor(t={}){super(t),this.type=Wt.ResponseHeader}clone(t={}){return new jm({headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class ih extends Hm{constructor(t={}){super(t),this.type=Wt.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new ih({body:void 0!==t.body?t.body:this.body,headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class Um extends Hm{constructor(t){super(t,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${t.url||"(unknown url)"}`:`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}}function zm(n,t){return{body:t,headers:n.headers,context:n.context,observe:n.observe,params:n.params,reportProgress:n.reportProgress,responseType:n.responseType,withCredentials:n.withCredentials}}let as=(()=>{class n{constructor(e){this.handler=e}request(e,i,r={}){let s;if(e instanceof ec)s=e;else{let u,d;u=r.headers instanceof hr?r.headers:new hr(r.headers),r.params&&(d=r.params instanceof Rr?r.params:new Rr({fromObject:r.params})),s=new ec(e,i,void 0!==r.body?r.body:null,{headers:u,context:r.context,params:d,reportProgress:r.reportProgress,responseType:r.responseType||"json",withCredentials:r.withCredentials})}const a=rs(s).pipe(function DH(n,t){return Re(t)?ui(n,t,1):ui(n,1)}(u=>this.handler.handle(u)));if(e instanceof ec||"events"===r.observe)return a;const l=a.pipe(vn(u=>u instanceof ih));switch(r.observe||"body"){case"body":switch(s.responseType){case"arraybuffer":return l.pipe(He(u=>{if(null!==u.body&&!(u.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return u.body}));case"blob":return l.pipe(He(u=>{if(null!==u.body&&!(u.body instanceof Blob))throw new Error("Response is not a Blob.");return u.body}));case"text":return l.pipe(He(u=>{if(null!==u.body&&"string"!=typeof u.body)throw new Error("Response is not a string.");return u.body}));default:return l.pipe(He(u=>u.body))}case"response":return l;default:throw new Error(`Unreachable: unhandled observe type ${r.observe}}`)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:(new Rr).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,r={}){return this.request("PATCH",e,zm(r,i))}post(e,i,r={}){return this.request("POST",e,zm(r,i))}put(e,i,r={}){return this.request("PUT",e,zm(r,i))}}return n.\u0275fac=function(e){return new(e||n)(P(z0))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();class K0{constructor(t,e){this.next=t,this.interceptor=e}handle(t){return this.interceptor.intercept(t,this.next)}}const Wm=new Ie("HTTP_INTERCEPTORS");let PH=(()=>{class n{intercept(e,i){return i.handle(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();const kH=/^\)\]\}',?\n/;let X0=(()=>{class n{constructor(e){this.xhrFactory=e}handle(e){if("JSONP"===e.method)throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");return new nt(i=>{const r=this.xhrFactory.build();if(r.open(e.method,e.urlWithParams),e.withCredentials&&(r.withCredentials=!0),e.headers.forEach((_,w)=>r.setRequestHeader(_,w.join(","))),e.headers.has("Accept")||r.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){const _=e.detectContentTypeHeader();null!==_&&r.setRequestHeader("Content-Type",_)}if(e.responseType){const _=e.responseType.toLowerCase();r.responseType="json"!==_?_:"text"}const s=e.serializeBody();let a=null;const l=()=>{if(null!==a)return a;const _=r.statusText||"OK",w=new hr(r.getAllResponseHeaders()),C=function xH(n){return"responseURL"in n&&n.responseURL?n.responseURL:/^X-Request-URL:/m.test(n.getAllResponseHeaders())?n.getResponseHeader("X-Request-URL"):null}(r)||e.url;return a=new jm({headers:w,status:r.status,statusText:_,url:C}),a},u=()=>{let{headers:_,status:w,statusText:C,url:S}=l(),E=null;204!==w&&(E=typeof r.response>"u"?r.responseText:r.response),0===w&&(w=E?200:0);let b=w>=200&&w<300;if("json"===e.responseType&&"string"==typeof E){const A=E;E=E.replace(kH,"");try{E=""!==E?JSON.parse(E):null}catch(x){E=A,b&&(b=!1,E={error:x,text:E})}}b?(i.next(new ih({body:E,headers:_,status:w,statusText:C,url:S||void 0})),i.complete()):i.error(new Um({error:E,headers:_,status:w,statusText:C,url:S||void 0}))},d=_=>{const{url:w}=l(),C=new Um({error:_,status:r.status||0,statusText:r.statusText||"Unknown Error",url:w||void 0});i.error(C)};let f=!1;const g=_=>{f||(i.next(l()),f=!0);let w={type:Wt.DownloadProgress,loaded:_.loaded};_.lengthComputable&&(w.total=_.total),"text"===e.responseType&&!!r.responseText&&(w.partialText=r.responseText),i.next(w)},v=_=>{let w={type:Wt.UploadProgress,loaded:_.loaded};_.lengthComputable&&(w.total=_.total),i.next(w)};return r.addEventListener("load",u),r.addEventListener("error",d),r.addEventListener("timeout",d),r.addEventListener("abort",d),e.reportProgress&&(r.addEventListener("progress",g),null!==s&&r.upload&&r.upload.addEventListener("progress",v)),r.send(s),i.next({type:Wt.Sent}),()=>{r.removeEventListener("error",d),r.removeEventListener("abort",d),r.removeEventListener("load",u),r.removeEventListener("timeout",d),e.reportProgress&&(r.removeEventListener("progress",g),null!==s&&r.upload&&r.upload.removeEventListener("progress",v)),r.readyState!==r.DONE&&r.abort()}})}}return n.\u0275fac=function(e){return new(e||n)(P(RS))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();const Gm=new Ie("XSRF_COOKIE_NAME"),$m=new Ie("XSRF_HEADER_NAME");class Q0{}let RH=(()=>{class n{constructor(e,i,r){this.doc=e,this.platform=i,this.cookieName=r,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=SS(e,this.cookieName),this.lastCookieString=e),this.lastToken}}return n.\u0275fac=function(e){return new(e||n)(P(pt),P(ca),P(Gm))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})(),Zm=(()=>{class n{constructor(e,i){this.tokenService=e,this.headerName=i}intercept(e,i){const r=e.url.toLowerCase();if("GET"===e.method||"HEAD"===e.method||r.startsWith("http://")||r.startsWith("https://"))return i.handle(e);const s=this.tokenService.getToken();return null!==s&&!e.headers.has(this.headerName)&&(e=e.clone({headers:e.headers.set(this.headerName,s)})),i.handle(e)}}return n.\u0275fac=function(e){return new(e||n)(P(Q0),P($m))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})(),OH=(()=>{class n{constructor(e,i){this.backend=e,this.injector=i,this.chain=null}handle(e){if(null===this.chain){const i=this.injector.get(Wm,[]);this.chain=i.reduceRight((r,s)=>new K0(r,s),this.backend)}return this.chain.handle(e)}}return n.\u0275fac=function(e){return new(e||n)(P(W0),P(ln))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})(),NH=(()=>{class n{static disable(){return{ngModule:n,providers:[{provide:Zm,useClass:PH}]}}static withOptions(e={}){return{ngModule:n,providers:[e.cookieName?{provide:Gm,useValue:e.cookieName}:[],e.headerName?{provide:$m,useValue:e.headerName}:[]]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({providers:[Zm,{provide:Wm,useExisting:Zm,multi:!0},{provide:Q0,useClass:RH},{provide:Gm,useValue:"XSRF-TOKEN"},{provide:$m,useValue:"X-XSRF-TOKEN"}]}),n})(),FH=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({providers:[as,{provide:z0,useClass:OH},X0,{provide:W0,useExisting:X0}],imports:[[NH.withOptions({cookieName:"XSRF-TOKEN",headerName:"X-XSRF-TOKEN"})]]}),n})();function rh(n,t){const e=Re(n)?n:()=>n,i=r=>r.error(e());return new nt(t?r=>t.schedule(i,0,r):i)}function tc(n){return ut((t,e)=>{let s,i=null,r=!1;i=t.subscribe(it(e,void 0,void 0,a=>{s=In(n(a,tc(n)(t))),i?(i.unsubscribe(),i=null,s.subscribe(e)):r=!0})),r&&(i.unsubscribe(),i=null,s.subscribe(e))})}function qm(n){this.message=n}(qm.prototype=new Error).name="InvalidCharacterError";var J0=typeof window<"u"&&window.atob&&window.atob.bind(window)||function(n){var t=String(n).replace(/=+$/,"");if(t.length%4==1)throw new qm("'atob' failed: The string to be decoded is not correctly encoded.");for(var e,i,r=0,s=0,a="";i=t.charAt(s++);~i&&(e=r%4?64*e+i:i,r++%4)?a+=String.fromCharCode(255&e>>(-2*r&6)):0)i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(i);return a};function sh(n){this.message=n}(sh.prototype=new Error).name="InvalidTokenError";const eE=function VH(n,t){if("string"!=typeof n)throw new sh("Invalid token specified");var e=!0===(t=t||{}).header?0:1;try{return JSON.parse(function LH(n){var t=n.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return decodeURIComponent(J0(t).replace(/(.)/g,function(i,r){var s=r.charCodeAt(0).toString(16).toUpperCase();return s.length<2&&(s="0"+s),"%"+s}))}catch{return J0(t)}}(n.split(".")[e]))}catch(i){throw new sh("Invalid token specified: "+i.message)}};var n,Ym=(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),nc=function(n){function t(e,i){var s=this,a=this.constructor.prototype;return(s=n.call(this,e)||this).statusCode=i,s.__proto__=a,s}return Ym(t,n),t}(Error),Km=function(n){function t(e){void 0===e&&(e="A timeout occurred.");var r=this,s=this.constructor.prototype;return(r=n.call(this,e)||this).__proto__=s,r}return Ym(t,n),t}(Error),ic=function(n){function t(e){void 0===e&&(e="An abort occurred.");var r=this,s=this.constructor.prototype;return(r=n.call(this,e)||this).__proto__=s,r}return Ym(t,n),t}(Error),Xm=Object.assign||function(n){for(var t,e=1,i=arguments.length;e(function(n){n[n.Trace=0]="Trace",n[n.Debug=1]="Debug",n[n.Information=2]="Information",n[n.Warning=3]="Warning",n[n.Error=4]="Error",n[n.Critical=5]="Critical",n[n.None=6]="None"}(k||(k={})),k))(),Jm=function(){function n(){}return n.prototype.log=function(t,e){},n.instance=new n,n}(),BH=Object.assign||function(n){for(var t,e=1,i=arguments.length;e0&&s[s.length-1])&&(6===d[0]||2===d[0])){e=0;continue}if(3===d[0]&&(!s||d[1]>s[0]&&d[1]-1&&this.subject.observers.splice(t,1),0===this.subject.observers.length&&this.subject.cancelCallback&&this.subject.cancelCallback().catch(function(e){})},n}(),oh=function(){function n(t){this.minimumLogLevel=t,this.outputConsole=console}return n.prototype.log=function(t,e){if(t>=this.minimumLogLevel)switch(t){case k.Critical:case k.Error:this.outputConsole.error("["+(new Date).toISOString()+"] "+k[t]+": "+e);break;case k.Warning:this.outputConsole.warn("["+(new Date).toISOString()+"] "+k[t]+": "+e);break;case k.Information:this.outputConsole.info("["+(new Date).toISOString()+"] "+k[t]+": "+e);break;default:this.outputConsole.log("["+(new Date).toISOString()+"] "+k[t]+": "+e)}},n}();function _a(){var n="X-SignalR-User-Agent";return Fn.isNode&&(n="User-Agent"),[n,$H("5.0.17",ZH(),Fn.isNode?"NodeJS":"Browser",qH())]}function $H(n,t,e,i){var r="Microsoft SignalR/",s=n.split(".");return r+=s[0]+"."+s[1],r+=" ("+n+"; ",r+=t&&""!==t?t+"; ":"Unknown OS; ",r+=""+e,(r+=i?"; "+i:"; Unknown Runtime Version")+")"}function ZH(){if(!Fn.isNode)return"";switch(process.platform){case"win32":return"Windows NT";case"darwin":return"macOS";case"linux":return"Linux";default:return process.platform}}function qH(){if(Fn.isNode)return process.versions.node}var KH=function(){var n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])};return function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}}(),XH=Object.assign||function(n){for(var t,e=1,i=arguments.length;e"u"){var r=require;i.jar=new(r("tough-cookie").CookieJar),i.fetchType=r("node-fetch"),i.fetchType=r("fetch-cookie")(i.fetchType,i.jar),i.abortControllerType=r("abort-controller")}else i.fetchType=fetch.bind(self),i.abortControllerType=AbortController;return i}return KH(t,n),t.prototype.send=function(e){return function(n,t,e,i){return new(e||(e=Promise))(function(r,s){function a(d){try{u(i.next(d))}catch(f){s(f)}}function l(d){try{u(i.throw(d))}catch(f){s(f)}}function u(d){d.done?r(d.value):new e(function(f){f(d.value)}).then(a,l)}u((i=i.apply(n,[])).next())})}(this,0,void 0,function(){var i,r,s,l,u,d,f,g=this;return function(n,t){var i,r,s,a,e={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return a={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(d){return function(f){return function u(d){if(i)throw new TypeError("Generator is already executing.");for(;e;)try{if(i=1,r&&(s=2&d[0]?r.return:d[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,d[1])).done)return s;switch(r=0,s&&(d=[2&d[0],s.value]),d[0]){case 0:case 1:s=d;break;case 4:return e.label++,{value:d[1],done:!1};case 5:e.label++,r=d[1],d=[0];continue;case 7:d=e.ops.pop(),e.trys.pop();continue;default:if(!(s=(s=e.trys).length>0&&s[s.length-1])&&(6===d[0]||2===d[0])){e=0;continue}if(3===d[0]&&(!s||d[1]>s[0]&&d[1]=200&&a.status<300?r(new tE(a.status,a.statusText,a.response||a.responseText)):s(new nc(a.statusText,a.status))},a.onerror=function(){i.logger.log(k.Warning,"Error from HTTP request. "+a.status+": "+a.statusText+"."),s(new nc(a.statusText,a.status))},a.ontimeout=function(){i.logger.log(k.Warning,"Timeout from HTTP request."),s(new Km)},a.send(e.content||"")}):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t}(Qm),rj=function(){var n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])};return function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}}(),sj=function(n){function t(e){var i=n.call(this)||this;if(typeof fetch<"u"||Fn.isNode)i.httpClient=new ej(e);else{if(!(typeof XMLHttpRequest<"u"))throw new Error("No usable HttpClient found.");i.httpClient=new ij(e)}return i}return rj(t,n),t.prototype.send=function(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new ic):e.method?e.url?this.httpClient.send(e):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t.prototype.getCookieString=function(e){return this.httpClient.getCookieString(e)},t}(Qm),ya=function(){function n(){}return n.write=function(t){return""+t+n.RecordSeparator},n.parse=function(t){if(t[t.length-1]!==n.RecordSeparator)throw new Error("Message is incomplete.");var e=t.split(n.RecordSeparator);return e.pop(),e},n.RecordSeparatorCode=30,n.RecordSeparator=String.fromCharCode(n.RecordSeparatorCode),n}(),oj=function(){function n(){}return n.prototype.writeHandshakeRequest=function(t){return ya.write(JSON.stringify(t))},n.prototype.parseHandshakeResponse=function(t){var i,r;if(ev(t)||typeof Buffer<"u"&&t instanceof Buffer){var s=new Uint8Array(t);if(-1===(a=s.indexOf(ya.RecordSeparatorCode)))throw new Error("Message is incomplete.");var l=a+1;i=String.fromCharCode.apply(null,s.slice(0,l)),r=s.byteLength>l?s.slice(l).buffer:null}else{var a,u=t;if(-1===(a=u.indexOf(ya.RecordSeparator)))throw new Error("Message is incomplete.");i=u.substring(0,l=a+1),r=u.length>l?u.substring(l):null}var d=ya.parse(i),f=JSON.parse(d[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[r,f]},n}(),gt=(()=>(function(n){n[n.Invocation=1]="Invocation",n[n.StreamItem=2]="StreamItem",n[n.Completion=3]="Completion",n[n.StreamInvocation=4]="StreamInvocation",n[n.CancelInvocation=5]="CancelInvocation",n[n.Ping=6]="Ping",n[n.Close=7]="Close"}(gt||(gt={})),gt))(),aj=function(){function n(){this.observers=[]}return n.prototype.next=function(t){for(var e=0,i=this.observers;e0&&s[s.length-1])&&(6===d[0]||2===d[0])){e=0;continue}if(3===d[0]&&(!s||d[1]>s[0]&&d[1](function(n){n.Disconnected="Disconnected",n.Connecting="Connecting",n.Connected="Connected",n.Disconnecting="Disconnecting",n.Reconnecting="Reconnecting"}(It||(It={})),It))(),uj=function(){function n(t,e,i,r){var s=this;this.nextKeepAlive=0,dn.isRequired(t,"connection"),dn.isRequired(e,"logger"),dn.isRequired(i,"protocol"),this.serverTimeoutInMilliseconds=3e4,this.keepAliveIntervalInMilliseconds=15e3,this.logger=e,this.protocol=i,this.connection=t,this.reconnectPolicy=r,this.handshakeProtocol=new oj,this.connection.onreceive=function(a){return s.processIncomingData(a)},this.connection.onclose=function(a){return s.connectionClosed(a)},this.callbacks={},this.methods={},this.closedCallbacks=[],this.reconnectingCallbacks=[],this.reconnectedCallbacks=[],this.invocationId=0,this.receivedHandshakeResponse=!1,this.connectionState=It.Disconnected,this.connectionStarted=!1,this.cachedPingMessage=this.protocol.writeMessage({type:gt.Ping})}return n.create=function(t,e,i,r){return new n(t,e,i,r)},Object.defineProperty(n.prototype,"state",{get:function(){return this.connectionState},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"connectionId",{get:function(){return this.connection&&this.connection.connectionId||null},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"baseUrl",{get:function(){return this.connection.baseUrl||""},set:function(t){if(this.connectionState!==It.Disconnected&&this.connectionState!==It.Reconnecting)throw new Error("The HubConnection must be in the Disconnected or Reconnecting state to change the url.");if(!t)throw new Error("The HubConnection url must be a valid url.");this.connection.baseUrl=t},enumerable:!0,configurable:!0}),n.prototype.start=function(){return this.startPromise=this.startWithStateTransitions(),this.startPromise},n.prototype.startWithStateTransitions=function(){return sc(this,void 0,void 0,function(){var t;return oc(this,function(e){switch(e.label){case 0:if(this.connectionState!==It.Disconnected)return[2,Promise.reject(new Error("Cannot start a HubConnection that is not in the 'Disconnected' state."))];this.connectionState=It.Connecting,this.logger.log(k.Debug,"Starting HubConnection."),e.label=1;case 1:return e.trys.push([1,3,,4]),[4,this.startInternal()];case 2:return e.sent(),this.connectionState=It.Connected,this.connectionStarted=!0,this.logger.log(k.Debug,"HubConnection connected successfully."),[3,4];case 3:return t=e.sent(),this.connectionState=It.Disconnected,this.logger.log(k.Debug,"HubConnection failed to start successfully because of error '"+t+"'."),[2,Promise.reject(t)];case 4:return[2]}})})},n.prototype.startInternal=function(){return sc(this,void 0,void 0,function(){var t,e,i,r=this;return oc(this,function(s){switch(s.label){case 0:return this.stopDuringStartError=void 0,this.receivedHandshakeResponse=!1,t=new Promise(function(a,l){r.handshakeResolver=a,r.handshakeRejecter=l}),[4,this.connection.start(this.protocol.transferFormat)];case 1:s.sent(),s.label=2;case 2:return s.trys.push([2,5,,7]),e={protocol:this.protocol.name,version:this.protocol.version},this.logger.log(k.Debug,"Sending handshake request."),[4,this.sendMessage(this.handshakeProtocol.writeHandshakeRequest(e))];case 3:return s.sent(),this.logger.log(k.Information,"Using HubProtocol '"+this.protocol.name+"'."),this.cleanupTimeout(),this.resetTimeoutPeriod(),this.resetKeepAliveInterval(),[4,t];case 4:if(s.sent(),this.stopDuringStartError)throw this.stopDuringStartError;return[3,7];case 5:return i=s.sent(),this.logger.log(k.Debug,"Hub handshake failed with error '"+i+"' during start(). Stopping HubConnection."),this.cleanupTimeout(),this.cleanupPingTimer(),[4,this.connection.stop(i)];case 6:throw s.sent(),i;case 7:return[2]}})})},n.prototype.stop=function(){return sc(this,void 0,void 0,function(){var t;return oc(this,function(i){switch(i.label){case 0:return t=this.startPromise,this.stopPromise=this.stopInternal(),[4,this.stopPromise];case 1:i.sent(),i.label=2;case 2:return i.trys.push([2,4,,5]),[4,t];case 3:case 4:return i.sent(),[3,5];case 5:return[2]}})})},n.prototype.stopInternal=function(t){return this.connectionState===It.Disconnected?(this.logger.log(k.Debug,"Call to HubConnection.stop("+t+") ignored because it is already in the disconnected state."),Promise.resolve()):this.connectionState===It.Disconnecting?(this.logger.log(k.Debug,"Call to HttpConnection.stop("+t+") ignored because the connection is already in the disconnecting state."),this.stopPromise):(this.connectionState=It.Disconnecting,this.logger.log(k.Debug,"Stopping HubConnection."),this.reconnectDelayHandle?(this.logger.log(k.Debug,"Connection stopped during reconnect delay. Done reconnecting."),clearTimeout(this.reconnectDelayHandle),this.reconnectDelayHandle=void 0,this.completeClose(),Promise.resolve()):(this.cleanupTimeout(),this.cleanupPingTimer(),this.stopDuringStartError=t||new Error("The connection was stopped before the hub handshake could complete."),this.connection.stop(t)))},n.prototype.stream=function(t){for(var e=this,i=[],r=1;r(function(n){n[n.None=0]="None",n[n.WebSockets=1]="WebSockets",n[n.ServerSentEvents=2]="ServerSentEvents",n[n.LongPolling=4]="LongPolling"}(hn||(hn={})),hn))(),yn=(()=>(function(n){n[n.Text=1]="Text",n[n.Binary=2]="Binary"}(yn||(yn={})),yn))(),hj=function(){function n(){this.isAborted=!1,this.onabort=null}return n.prototype.abort=function(){this.isAborted||(this.isAborted=!0,this.onabort&&this.onabort())},Object.defineProperty(n.prototype,"signal",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"aborted",{get:function(){return this.isAborted},enumerable:!0,configurable:!0}),n}(),rE=Object.assign||function(n){for(var t,e=1,i=arguments.length;e0&&s[s.length-1])&&(6===d[0]||2===d[0])){e=0;continue}if(3===d[0]&&(!s||d[1]>s[0]&&d[1]0&&s[s.length-1])&&(6===d[0]||2===d[0])){e=0;continue}if(3===d[0]&&(!s||d[1]>s[0]&&d[1]0&&s[s.length-1])&&(6===d[0]||2===d[0])){e=0;continue}if(3===d[0]&&(!s||d[1]>s[0]&&d[1]0&&s[s.length-1])&&(6===d[0]||2===d[0])){e=0;continue}if(3===d[0]&&(!s||d[1]>s[0]&&d[1]0?[2,Promise.reject(new Error("Unable to connect to the server with any of the available transports. "+a.join(" ")))]:[2,Promise.reject(new Error("None of the transports supported by the client are supported by the server."))]}})})},n.prototype.constructTransport=function(t){switch(t){case hn.WebSockets:if(!this.options.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new _j(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.WebSocket,this.options.headers||{});case hn.ServerSentEvents:if(!this.options.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new pj(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.EventSource,this.options.withCredentials,this.options.headers||{});case hn.LongPolling:return new sE(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.withCredentials,this.options.headers||{});default:throw new Error("Unknown transport: "+t+".")}},n.prototype.startTransport=function(t,e){var i=this;return this.transport.onreceive=this.onreceive,this.transport.onclose=function(r){return i.stopConnection(r)},this.transport.connect(t,e)},n.prototype.resolveTransportOrError=function(t,e,i){var r=hn[t.transport];if(null==r)return this.logger.log(k.Debug,"Skipping transport '"+t.transport+"' because it is not supported by this client."),new Error("Skipping transport '"+t.transport+"' because it is not supported by this client.");if(!function Cj(n,t){return!n||0!=(t&n)}(e,r))return this.logger.log(k.Debug,"Skipping transport '"+hn[r]+"' because it was disabled by the client."),new Error("'"+hn[r]+"' is disabled by the client.");if(!(t.transferFormats.map(function(a){return yn[a]}).indexOf(i)>=0))return this.logger.log(k.Debug,"Skipping transport '"+hn[r]+"' because it does not support the requested transfer format '"+yn[i]+"'."),new Error("'"+hn[r]+"' does not support "+yn[i]+".");if(r===hn.WebSockets&&!this.options.WebSocket||r===hn.ServerSentEvents&&!this.options.EventSource)return this.logger.log(k.Debug,"Skipping transport '"+hn[r]+"' because it is not supported in your environment.'"),new Error("'"+hn[r]+"' is not supported in your environment.");this.logger.log(k.Debug,"Selecting transport '"+hn[r]+"'.");try{return this.constructTransport(r)}catch(a){return a}},n.prototype.isITransport=function(t){return t&&"object"==typeof t&&"connect"in t},n.prototype.stopConnection=function(t){var e=this;if(this.logger.log(k.Debug,"HttpConnection.stopConnection("+t+") called while in state "+this.connectionState+"."),this.transport=void 0,t=this.stopError||t,this.stopError=void 0,"Disconnected"!==this.connectionState){if("Connecting"===this.connectionState)throw this.logger.log(k.Warning,"Call to HttpConnection.stopConnection("+t+") was ignored because the connection is still in the connecting state."),new Error("HttpConnection.stopConnection("+t+") was called while the connection is still in the connecting state.");if("Disconnecting"===this.connectionState&&this.stopPromiseResolver(),t?this.logger.log(k.Error,"Connection disconnected with error '"+t+"'."):this.logger.log(k.Information,"Connection disconnected."),this.sendQueue&&(this.sendQueue.stop().catch(function(i){e.logger.log(k.Error,"TransportSendQueue.stop() threw error '"+i+"'.")}),this.sendQueue=void 0),this.connectionId=void 0,this.connectionState="Disconnected",this.connectionStarted){this.connectionStarted=!1;try{this.onclose&&this.onclose(t)}catch(i){this.logger.log(k.Error,"HttpConnection.onclose("+t+") threw error '"+i+"'.")}}}else this.logger.log(k.Debug,"Call to HttpConnection.stopConnection("+t+") was ignored because the connection is already in the disconnected state.")},n.prototype.resolveUrl=function(t){if(0===t.lastIndexOf("https://",0)||0===t.lastIndexOf("http://",0))return t;if(!Fn.isBrowser||!window.document)throw new Error("Cannot resolve '"+t+"'.");var e=window.document.createElement("a");return e.href=t,this.logger.log(k.Information,"Normalizing '"+t+"' to '"+e.href+"'."),e.href},n.prototype.resolveNegotiateUrl=function(t){var e=t.indexOf("?"),i=t.substring(0,-1===e?t.length:e);return"/"!==i[i.length-1]&&(i+="/"),i+="negotiate",-1===(i+=-1===e?"":t.substring(e)).indexOf("negotiateVersion")&&(i+=-1===e?"?":"&",i+="negotiateVersion="+this.negotiateVersion),i},n}(),Dj=function(){function n(t){this.transport=t,this.buffer=[],this.executing=!0,this.sendBufferedData=new ah,this.transportResult=new ah,this.sendLoopPromise=this.sendLoop()}return n.prototype.send=function(t){return this.bufferData(t),this.transportResult||(this.transportResult=new ah),this.transportResult.promise},n.prototype.stop=function(){return this.executing=!1,this.sendBufferedData.resolve(),this.sendLoopPromise},n.prototype.bufferData=function(t){if(this.buffer.length&&typeof this.buffer[0]!=typeof t)throw new Error("Expected data to be of type "+typeof this.buffer+" but was of type "+typeof t);this.buffer.push(t),this.sendBufferedData.resolve()},n.prototype.sendLoop=function(){return js(this,void 0,void 0,function(){var t,e,i;return ls(this,function(r){switch(r.label){case 0:return[4,this.sendBufferedData.promise];case 1:if(r.sent(),!this.executing)return this.transportResult&&this.transportResult.reject("Connection stopped."),[3,6];this.sendBufferedData=new ah,t=this.transportResult,this.transportResult=void 0,e="string"==typeof this.buffer[0]?this.buffer.join(""):n.concatBuffers(this.buffer),this.buffer.length=0,r.label=2;case 2:return r.trys.push([2,4,,5]),[4,this.transport.send(e)];case 3:return r.sent(),t.resolve(),[3,5];case 4:return i=r.sent(),t.reject(i),[3,5];case 5:return[3,0];case 6:return[2]}})})},n.concatBuffers=function(t){for(var e=t.map(function(u){return u.byteLength}).reduce(function(u,d){return u+d}),i=new Uint8Array(e),r=0,s=0,a=t;s"http://localhost:8080/api/",this.apiVersion="v4",this.channelUrl="",this.channelHubName="",this.clientId="",this.googleApiKey="",this.logLevel=0,this.isMobileApp=!1}get apiUrl(){return`${this.baseApiUrl()}/api/${this.apiVersion}`}}class Rj{encodeKey(t){return encodeURIComponent(t)}encodeValue(t){return encodeURIComponent(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}let cc=(()=>{class n{constructor(e){this.config=e}logError(e,...i){this.config.logLevel>=2&&(i&&i.length?console.error(`[ERROR] - ${e}`,...i):console.error(`[ERROR] - ${e}`))}logWarning(e,...i){this.config.logLevel>=1&&(i&&i.length?console.warn(`[WARN] - ${e}`,...i):console.warn(`[WARN] - ${e}`))}logDebug(e,i,...r){this.config.logLevel>=0&&(r&&r.length?console.log(`[DEBUG] ${e} - ${i}`,...r):console.log(`[DEBUG] ${e} - ${i}`))}}return n.\u0275fac=function(e){return new(e||n)(P(ai))},n.\u0275prov=q({factory:function(){return new n(P(ai))},token:n,providedIn:"root"}),n})(),hE=(()=>{class n{constructor(e,i){this.logger=e,this.config=i}read(e){const i=`${this.config.clientId}.${e}`,r=localStorage.getItem(i);return r?(this.logger.logDebug(this.config.clientId,`readKey ${i} length: ${r.length}`),JSON.parse(r)):(this.logger.logDebug(this.config.clientId,`readKey ${i} empty`),null)}write(e,i){return localStorage.setItem(`${this.config.clientId}.${e}`,JSON.stringify(i)),!0}remove(e){return localStorage.removeItem(`${this.config.clientId}.${e}`),!0}clear(){return localStorage.clear(),!0}}return n.\u0275fac=function(e){return new(e||n)(P(cc),P(ai))},n.\u0275prov=q({factory:function(){return new n(P(cc),P(ai))},token:n,providedIn:"root"}),n})(),Oj=(()=>{class n{constructor(e,i,r,s){this.http=e,this.config=i,this.storageService=r,this.logger=s,this.isRefreshing=!1,this.refreshTokenSubject=new Gl(null),this.initalState={profile:void 0,tokens:void 0,authReady:!1},this.authReady$=new Gl(!1),this.state=new Gl(this.initalState),this.state$=this.state.asObservable(),this.tokens$=this.state.pipe(vn(a=>null!=a.authReady&&0!=a.authReady),He(a=>a.tokens)),this.profile$=this.state.pipe(vn(a=>null!=a.authReady&&0!=a.authReady),He(a=>a.profile)),this.loggedIn$=this.tokens$.pipe(He(a=>!!a))}init(){return this.startupTokenRefresh().pipe(s0(()=>this.scheduleRefresh()))}login(e){return this.getTokens(e,"password")}logout(){this.updateState({profile:void 0,tokens:void 0}),this.refreshSubscription$&&this.refreshSubscription$.unsubscribe(),this.removeToken()}refreshTokens(){this.logger.logDebug(this.config.clientId,"Starting refresh token flow");const e=this.retrieveTokens();return e&&e.refresh_token&&e.refresh_token.length>0?this.isRefreshing?this.refreshTokenSubject.pipe(vn(i=>null!==i),Pr(1),ts(i=>rs(i))):(this.isRefreshing=!0,this.logger.logDebug(this.config.clientId,"Retrived stored tokens"),this.getTokens({username:"",password:"",refresh_token:e.refresh_token},"refresh_token")):(this.logger.logDebug(this.config.clientId,"No stored tokens retrived"),rs(null))}storeToken(e){const i=this.retrieveTokens();null!=i&&null==e.refresh_token&&(e.refresh_token=i.refresh_token),this.storageService.write("auth-tokens",e)}retrieveTokens(){return this.storageService.read("auth-tokens")}removeToken(){this.storageService.remove("auth-tokens")}updateState(e){const i=this.state.getValue();this.state.next(Object.assign({},i,e))}getTokens(e,i){let r=new hr;r=r.set("Content-Type","application/x-www-form-urlencoded");let s=new Rr({encoder:new Rj});return s=s.set("grant_type",i),e.refresh_token&&e.refresh_token.length>0?s=s.append("refresh_token",e.refresh_token):(s=s.append("scope",this.config.isMobileApp?"openid profile offline_access mobile":"openid profile offline_access"),s=s.append("username",e.username),s=s.append("password",e.password)),this.logger.logDebug(this.config.clientId,"performing token connection"),this.http.post(`${this.config.apiUrl}/connect/token`,s,{headers:r}).pipe(He(a=>{const l=new Date;a.expiration_date=new Date(l.getTime()+1e3*a.expires_in).getTime().toString(),this.logger.logDebug(this.config.clientId,`got token expiration: ${a.expiration_date}`);const u=eE(a.id_token);return this.storeToken(a),this.updateState({authReady:!0,tokens:a,profile:u}),this.isRefreshing=!1,this.refreshTokenSubject.next(u),u}),tc(a=>(this.isRefreshing=!1,this.refreshTokenSubject.next(null),rh(a))))}startupTokenRefresh(){return rs(this.retrieveTokens()).pipe(He(e=>{if(!e)return this.updateState({authReady:!0}),rs("No token in Storage");const i=eE(e.id_token);return this.updateState({tokens:e,profile:i}),+e.expiration_date>(new Date).getTime()&&this.updateState({authReady:!0}),this.refreshTokens()}),tc(e=>(this.logout(),this.updateState({authReady:!0}),rs(e))))}scheduleRefresh(){this.refreshSubscription$=this.tokens$.pipe(Pr(1),He(e=>{e&&(this.logger.logDebug(this.config.clientId,"Will refresh auth token in "+.8*e.expires_in*1e3),Hb(.8*e.expires_in*1e3))}),He(()=>this.refreshTokens())).subscribe()}}return n.\u0275fac=function(e){return new(e||n)(P(as),P(ai),P(hE),P(cc))},n.\u0275prov=q({factory:function(){return new n(P(as),P(ai),P(hE),P(cc))},token:n,providedIn:"root"}),n})(),Nj=(()=>{class n{constructor(e,i,r){this.authService=e,this.config=i,this.logger=r,this.isRefreshing=!1,this.refreshTokenSubject=new Gl(null)}intercept(e,i){if(this.shouldAddTokenToRequest(e.url)){const r=this.addAuthHeader(e);return i.handle(r).pipe(tc(s=>s instanceof Um&&401===s.status?this.handle401Error(e,i):rh(s)))}return i.handle(e)}handle401Error(e,i){return this.isRefreshing?this.refreshTokenSubject.pipe(vn(r=>null!==r),Pr(1),ts(r=>i.handle(this.addAuthHeader(e)))):(this.isRefreshing=!0,this.refreshTokenSubject.next(null),this.authService.refreshTokens().pipe(ts(r=>{this.isRefreshing=!1;const s=this.addAuthHeader(e),a=this.authService.retrieveTokens();return this.refreshTokenSubject.next(a.access_token),i.handle(s)}),tc(r=>(this.isRefreshing=!1,this.authService.logout(),rh(r)))))}addAuthHeader(e){const i=this.authService.retrieveTokens();return i?e.clone({headers:e.headers.set("Authorization","Bearer "+i.access_token)}):e}handleResponseError(e,i,r){return 400!==e.status&&401===e.status?(this.logger.logDebug(this.config.clientId,`In handleResponseError got 401 response: ${i.url}`),zd(1e4).pipe(ts(()=>{const s=this.addAuthHeader(i);return r.handle(s)}))):rh(e)}shouldAddTokenToRequest(e){return!(!e.startsWith(this.config.baseApiUrl())||e.includes("/connect/token"))}}return n.\u0275fac=function(e){return new(e||n)(P(Oj),P(ai),P(cc))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})(),Fj=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({providers:[{provide:Wm,useClass:Nj,multi:!0}]}),n})(),Lj=(()=>{class n{static forRoot(e){return{ngModule:n,providers:[{provide:ai,useFactory:()=>{let i=new ai;return i.baseApiUrl=e.baseApiUrl,i.apiVersion=e.apiVersion,i.clientId=e.clientId,i.googleApiKey=e.googleApiKey,i.channelUrl=e.channelUrl,i.channelHubName=e.channelHubName,i.logLevel=e.logLevel,i.isMobileApp=e.isMobileApp,i}}]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({imports:[[Fj]]}),n})(),Vj=(()=>{class n{constructor(e,i){this.http=e,this.config=i}getMapDataAndMarkers(){return this.http.get(this.config.apiUrl+"/Mapping/GetMapDataAndMarkers")}getMayLayers(e){return this.http.get(this.config.apiUrl+"/Mapping/GetMayLayers?type="+e)}}return n.\u0275fac=function(e){return new(e||n)(P(as),P(ai))},n.\u0275prov=q({factory:function(){return new n(P(as),P(ai))},token:n,providedIn:"root"}),n})(),Bj=(()=>{class n{constructor(e,i){this.http=e,this.config=i}getShifts(){return this.http.get(this.config.apiUrl+"/Shifts/GetShifts")}getShift(e){return this.http.get(this.config.apiUrl+"/Shifts/GetShift?id="+e)}getTodaysShifts(){return this.http.get(this.config.apiUrl+"/Shifts/GetTodaysShifts")}getShiftDay(e){return this.http.get(this.config.apiUrl+"/Shifts/GetShiftDay?id="+e)}signupForShiftDay(e,i){return this.http.post(this.config.apiUrl+"/Shifts/SignupForShiftDay",{ShiftDayId:e,GroupId:i})}}return n.\u0275fac=function(e){return new(e||n)(P(as),P(ai))},n.\u0275prov=q({factory:function(){return new n(P(as),P(ai))},token:n,providedIn:"root"}),n})();Window;const dU=["modalContent"];function hU(n,t){1&n&&(Z(0,"div",2)(1,"div",3),St(2,"div",4)(3,"div",5)(4,"div",6)(5,"div",7)(6,"div",8),Y(),St(7,"br"),bt(8," Loading shift calendar... "),Y())}function fU(n,t){if(1&n){const e=jt();Z(0,"mwl-calendar-month-view",19),de("dayClicked",function(r){return Q(e),N(2).dayClicked(r.day)})("eventClicked",function(r){return Q(e),N(2).handleEvent("Clicked",r.event)}),Y()}if(2&n){const e=N().$implicit,i=N();F("viewDate",i.viewDate)("events",e)("refresh",i.refresh)("activeDayIsOpen",i.activeDayIsOpen)}}function pU(n,t){if(1&n){const e=jt();Z(0,"mwl-calendar-week-view",20),de("eventClicked",function(r){return Q(e),N(2).handleEvent("Clicked",r.event)}),Y()}if(2&n){const e=N().$implicit,i=N();F("viewDate",i.viewDate)("events",e)("refresh",i.refresh)}}function gU(n,t){if(1&n){const e=jt();Z(0,"mwl-calendar-day-view",20),de("eventClicked",function(r){return Q(e),N(2).handleEvent("Clicked",r.event)}),Y()}if(2&n){const e=N().$implicit,i=N();F("viewDate",i.viewDate)("events",e)("refresh",i.refresh)}}function mU(n,t){if(1&n){const e=jt();Z(0,"div")(1,"div",9)(2,"div",10)(3,"div",11)(4,"div",12),de("viewDateChange",function(r){return Q(e),N().viewDate=r})("viewDateChange",function(){return Q(e),N().closeOpenMonthViewDay()}),bt(5," Previous "),Y(),Z(6,"div",13),de("viewDateChange",function(r){return Q(e),N().viewDate=r}),bt(7," Today "),Y(),Z(8,"div",14),de("viewDateChange",function(r){return Q(e),N().viewDate=r})("viewDateChange",function(){return Q(e),N().closeOpenMonthViewDay()}),bt(9," Next "),Y()()(),Z(10,"div",10)(11,"h3"),bt(12),Mt(13,"calendarDate"),Y()(),Z(14,"div",10)(15,"div",11)(16,"div",15),de("click",function(){Q(e);const r=N();return r.setView(r.CalendarView.Month)}),bt(17," Month "),Y(),Z(18,"div",15),de("click",function(){Q(e);const r=N();return r.setView(r.CalendarView.Week)}),bt(19," Week "),Y(),Z(20,"div",15),de("click",function(){Q(e);const r=N();return r.setView(r.CalendarView.Day)}),bt(21," Day "),Y()()()(),St(22,"br"),Z(23,"div",16),se(24,fU,1,4,"mwl-calendar-month-view",17),se(25,pU,1,3,"mwl-calendar-week-view",18),se(26,gU,1,3,"mwl-calendar-day-view",18),Y()()}if(2&n){const e=N();j(4),F("view",e.view)("viewDate",e.viewDate),j(2),F("viewDate",e.viewDate),j(2),F("view",e.view)("viewDate",e.viewDate),j(4),Is(Ri(13,16,e.viewDate,e.view+"ViewTitle","en")),j(4),cn("active",e.view===e.CalendarView.Month),j(2),cn("active",e.view===e.CalendarView.Week),j(2),cn("active",e.view===e.CalendarView.Day),j(3),F("ngSwitch",e.view),j(1),F("ngSwitchCase",e.CalendarView.Month),j(1),F("ngSwitchCase",e.CalendarView.Week),j(1),F("ngSwitchCase",e.CalendarView.Day)}}let vU=(()=>{class n{constructor(e,i){this.shiftProvider=e,this.http=i,this.view=kr.Month,this.CalendarView=kr,this.viewDate=new Date,this.refresh=new ve,this.activeDayIsOpen=!0,this.actions=[{label:'',a11yLabel:"Edit",onClick:({event:r})=>{this.handleEvent("Edited",r)}},{label:'',a11yLabel:"Delete",onClick:({event:r})=>{this.handleEvent("Deleted",r)}}],this.events$=this.http.get("/User/Shifts/GetShiftCalendarItems").pipe(He(r=>{if(r&&r.length>0)return r.map(s=>{if(s)return{title:s.Title,start:new Date(s.Start),end:new Date(s.End),color:{primary:s.Color,secondary:s.Color},allDay:s.IsAllDay,draggable:!1,resizable:{beforeStart:!1,afterEnd:!1},meta:{shift:s}}})}))}ngOnInit(){}ngAfterContentInit(){}dayClicked({date:e,events:i}){V0(e,this.viewDate)&&(this.activeDayIsOpen=!(L0(this.viewDate,e)&&!0===this.activeDayIsOpen||0===i.length),this.viewDate=e)}handleEvent(e,i){e&&"Clicked"===e&&i&&i.meta&&i.meta.shift&&(i.meta.shift.WorkshiftId?window.open(`/User/Workshifts/ViewDay?dayId=${i.meta.shift.WorkshiftDayId}`,"_self"):0===i.meta.shift.SignupType?window.open(`/User/Shifts/ViewShift?shiftDayId=${i.meta.shift.CalendarItemId}`,"_self"):window.open(`/User/Shifts/Signup?shiftDayId=${i.meta.shift.CalendarItemId}`,"_self"))}setView(e){this.view=e}closeOpenMonthViewDay(){this.activeDayIsOpen=!1}}return n.\u0275fac=function(e){return new(e||n)(M(Bj),M(as))},n.\u0275cmp=ft({type:n,selectors:[["ng-component"]],viewQuery:function(e,i){if(1&e&&Jp(dU,7),2&e){let r;Qp(r=eg())&&(i.modalContent=r.first)}},decls:4,vars:4,consts:[["loading",""],[4,"ngIf","ngIfElse"],[1,"text-center"],[1,"sk-spinner","sk-spinner-wave"],[1,"sk-rect1"],[1,"sk-rect2",2,"padding-left","4px"],[1,"sk-rect3",2,"padding-left","4px"],[1,"sk-rect4",2,"padding-left","4px"],[1,"sk-rect5",2,"padding-left","4px"],[1,"row","text-center"],[1,"col-md-4"],[1,"btn-group"],["mwlCalendarPreviousView","",1,"btn","btn-primary",3,"view","viewDate","viewDateChange"],["mwlCalendarToday","",1,"btn","btn-outline-secondary",3,"viewDate","viewDateChange"],["mwlCalendarNextView","",1,"btn","btn-primary",3,"view","viewDate","viewDateChange"],[1,"btn","btn-primary",3,"click"],[3,"ngSwitch"],[3,"viewDate","events","refresh","activeDayIsOpen","dayClicked","eventClicked",4,"ngSwitchCase"],[3,"viewDate","events","refresh","eventClicked",4,"ngSwitchCase"],[3,"viewDate","events","refresh","activeDayIsOpen","dayClicked","eventClicked"],[3,"viewDate","events","refresh","eventClicked"]],template:function(e,i){if(1&e&&(se(0,hU,9,0,"ng-template",null,0,ri),se(2,mU,27,20,"div",1),Mt(3,"async")),2&e){const r=Ft(1);j(2),F("ngIf",Ku(3,2,i.events$))("ngIfElse",r)}},directives:[Mr,fB,gB,pB,gd,TS,CB,M0,IB],pipes:[Ag,Xl],styles:[""],changeDetection:0}),n})();var cs=B(407);function dc(n){return null!=n&&"false"!=`${n}`}function gE(n){return Array.isArray(n)?n:[n]}function Gt(n){return null==n?"":"string"==typeof n?n:`${n}px`}const hc={schedule(n){let t=requestAnimationFrame,e=cancelAnimationFrame;const{delegate:i}=hc;i&&(t=i.requestAnimationFrame,e=i.cancelAnimationFrame);const r=t(s=>{e=void 0,n(s)});return new Nt(()=>null==e?void 0:e(r))},requestAnimationFrame(...n){const{delegate:t}=hc;return((null==t?void 0:t.requestAnimationFrame)||requestAnimationFrame)(...n)},cancelAnimationFrame(...n){const{delegate:t}=hc;return((null==t?void 0:t.cancelAnimationFrame)||cancelAnimationFrame)(...n)},delegate:void 0};new class CU extends fm{flush(t){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let r;t=t||i.shift();do{if(r=t.execute(t.state,t.delay))break}while((t=i[0])&&t.id===e&&i.shift());if(this._active=!1,r){for(;(t=i[0])&&t.id===e&&i.shift();)t.unsubscribe();throw r}}}(class wU extends hm{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}requestAsyncId(t,e,i=0){return null!==i&&i>0?super.requestAsyncId(t,e,i):(t.actions.push(this),t._scheduled||(t._scheduled=hc.requestAnimationFrame(()=>t.flush(void 0))))}recycleAsyncId(t,e,i=0){if(null!=i&&i>0||null==i&&this.delay>0)return super.recycleAsyncId(t,e,i);t.actions.some(r=>r.id===e)||(hc.cancelAnimationFrame(e),t._scheduled=void 0)}});let tv,SU=1;const ch={};function mE(n){return n in ch&&(delete ch[n],!0)}const bU={setImmediate(n){const t=SU++;return ch[t]=!0,tv||(tv=Promise.resolve()),tv.then(()=>mE(t)&&n()),t},clearImmediate(n){mE(n)}},{setImmediate:EU,clearImmediate:TU}=bU,uh={setImmediate(...n){const{delegate:t}=uh;return((null==t?void 0:t.setImmediate)||EU)(...n)},clearImmediate(n){const{delegate:t}=uh;return((null==t?void 0:t.clearImmediate)||TU)(n)},delegate:void 0};new class IU extends fm{flush(t){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let r;t=t||i.shift();do{if(r=t.execute(t.state,t.delay))break}while((t=i[0])&&t.id===e&&i.shift());if(this._active=!1,r){for(;(t=i[0])&&t.id===e&&i.shift();)t.unsubscribe();throw r}}}(class MU extends hm{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}requestAsyncId(t,e,i=0){return null!==i&&i>0?super.requestAsyncId(t,e,i):(t.actions.push(this),t._scheduled||(t._scheduled=uh.setImmediate(t.flush.bind(t,void 0))))}recycleAsyncId(t,e,i=0){if(null!=i&&i>0||null==i&&this.delay>0)return super.recycleAsyncId(t,e,i);t.actions.some(r=>r.id===e)||(uh.clearImmediate(e),t._scheduled=void 0)}});function vE(n,t=pm){return function PU(n){return ut((t,e)=>{let i=!1,r=null,s=null,a=!1;const l=()=>{if(null==s||s.unsubscribe(),s=null,i){i=!1;const d=r;r=null,e.next(d)}a&&e.complete()},u=()=>{s=null,a&&e.complete()};t.subscribe(it(e,d=>{i=!0,r=d,s||In(n(d)).subscribe(s=it(e,l,u))},()=>{a=!0,(!i||!s||s.closed)&&e.complete()}))})}(()=>zd(n,t))}let nv;try{nv=typeof Intl<"u"&&Intl.v8BreakIterator}catch{nv=!1}let Us,fc=(()=>{class n{constructor(e){this._platformId=e,this.isBrowser=this._platformId?kS(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&&!nv)&&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}}return n.\u0275fac=function(e){return new(e||n)(P(ca))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function xU(){if(null==Us){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return Us=!1,Us;if("scrollBehavior"in document.documentElement.style)Us=!0;else{const n=Element.prototype.scrollTo;Us=!!n&&!/\{\s*\[native code\]\s*\}/.test(n.toString())}}return Us}function yE(n){return n.composedPath?n.composedPath()[0]:n.target}function wE(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const OU=new Ie("cdk-dir-doc",{providedIn:"root",factory:function NU(){return E_(pt)}}),FU=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let CE=(()=>{class n{constructor(e){if(this.value="ltr",this.change=new K,e){const r=e.documentElement?e.documentElement.dir:null;this.value=function LU(n){const t=n?.toLowerCase()||"";return"auto"===t&&typeof navigator<"u"&&navigator?.language?FU.test(navigator.language)?"rtl":"ltr":"rtl"===t?"rtl":"ltr"}((e.body?e.body.dir:null)||r||"ltr")}}ngOnDestroy(){this.change.complete()}}return n.\u0275fac=function(e){return new(e||n)(P(OU,8))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),rv=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({}),n})(),BU=(()=>{class n{constructor(e,i,r){this._ngZone=e,this._platform=i,this._scrolled=new ve,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=r}register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){const i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=20){return this._platform.isBrowser?new nt(i=>{this._globalSubscription||this._addGlobalListener();const r=e>0?this._scrolled.pipe(vE(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{r.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):rs()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const r=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(vn(s=>!s||r.indexOf(s)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((r,s)=>{this._scrollableContainsElement(s,e)&&i.push(s)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let r=function yU(n){return n instanceof Tt?n.nativeElement:n}(i),s=e.getElementRef().nativeElement;do{if(r==s)return!0}while(r=r.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>pa(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}}return n.\u0275fac=function(e){return new(e||n)(P(lt),P(fc),P(pt,8))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),DE=(()=>{class n{constructor(e,i,r){this._platform=e,this._change=new ve,this._changeListener=s=>{this._change.next(s)},this._document=r,i.runOutsideAngular(()=>{if(e.isBrowser){const s=this._getWindow();s.addEventListener("resize",this._changeListener),s.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){const e=this.getViewportScrollPosition(),{width:i,height:r}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+r,right:e.left+i,height:r,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const e=this._document,i=this._getWindow(),r=e.documentElement,s=r.getBoundingClientRect();return{top:-s.top||e.body.scrollTop||i.scrollY||r.scrollTop||0,left:-s.left||e.body.scrollLeft||i.scrollX||r.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(vE(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}}return n.\u0275fac=function(e){return new(e||n)(P(fc),P(lt),P(pt,8))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),SE=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({}),n})(),bE=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({imports:[[rv,SE],rv,SE]}),n})();class sv{attach(t){return this._attachedHost=t,t.attach(this)}detach(){let t=this._attachedHost;null!=t&&(this._attachedHost=null,t.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(t){this._attachedHost=t}}class jU extends sv{constructor(t,e,i,r){super(),this.component=t,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=r}}class EE extends sv{constructor(t,e,i){super(),this.templateRef=t,this.viewContainerRef=e,this.context=i}get origin(){return this.templateRef.elementRef}attach(t,e=this.context){return this.context=e,super.attach(t)}detach(){return this.context=void 0,super.detach()}}class UU extends sv{constructor(t){super(),this.element=t instanceof Tt?t.nativeElement:t}}class WU extends class zU{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(t){return t instanceof jU?(this._attachedPortal=t,this.attachComponentPortal(t)):t instanceof EE?(this._attachedPortal=t,this.attachTemplatePortal(t)):this.attachDomPortal&&t instanceof UU?(this._attachedPortal=t,this.attachDomPortal(t)):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(t){this._disposeFn=t}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}{constructor(t,e,i,r,s){super(),this.outletElement=t,this._componentFactoryResolver=e,this._appRef=i,this._defaultInjector=r,this.attachDomPortal=a=>{const l=a.element,u=this._document.createComment("dom-portal");l.parentNode.insertBefore(u,l),this.outletElement.appendChild(l),this._attachedPortal=a,super.setDisposeFn(()=>{u.parentNode&&u.parentNode.replaceChild(l,u)})},this._document=s}attachComponentPortal(t){const i=(t.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(t.component);let r;return t.viewContainerRef?(r=t.viewContainerRef.createComponent(i,t.viewContainerRef.length,t.injector||t.viewContainerRef.injector),this.setDisposeFn(()=>r.destroy())):(r=i.create(t.injector||this._defaultInjector||ln.NULL),this._appRef.attachView(r.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(r.hostView),r.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(r)),this._attachedPortal=t,r}attachTemplatePortal(t){let e=t.viewContainerRef,i=e.createEmbeddedView(t.templateRef,t.context);return i.rootNodes.forEach(r=>this.outletElement.appendChild(r)),i.detectChanges(),this.setDisposeFn(()=>{let r=e.indexOf(i);-1!==r&&e.remove(r)}),this._attachedPortal=t,i}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(t){return t.hostView.rootNodes[0]}}let GU=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({}),n})();const TE=xU();class YU{constructor(t,e){this._viewportRuler=t,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=e}attach(){}enable(){if(this._canBeEnabled()){const t=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=t.style.left||"",this._previousHTMLStyles.top=t.style.top||"",t.style.left=Gt(-this._previousScrollPosition.left),t.style.top=Gt(-this._previousScrollPosition.top),t.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const t=this._document.documentElement,i=t.style,r=this._document.body.style,s=i.scrollBehavior||"",a=r.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,t.classList.remove("cdk-global-scrollblock"),TE&&(i.scrollBehavior=r.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),TE&&(i.scrollBehavior=s,r.scrollBehavior=a)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.body,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class KU{constructor(t,e,i,r){this._scrollDispatcher=t,this._ngZone=e,this._viewportRuler=i,this._config=r,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(t){this._overlayRef=t}enable(){if(this._scrollSubscription)return;const t=this._scrollDispatcher.scrolled(0);this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=t.subscribe(()=>{const e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=t.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class ME{enable(){}disable(){}attach(){}}function ov(n,t){return t.some(e=>n.bottome.bottom||n.righte.right)}function IE(n,t){return t.some(e=>n.tope.bottom||n.lefte.right)}class XU{constructor(t,e,i,r){this._scrollDispatcher=t,this._viewportRuler=e,this._ngZone=i,this._config=r,this._scrollSubscription=null}attach(t){this._overlayRef=t}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:r}=this._viewportRuler.getViewportSize();ov(e,[{width:i,height:r,bottom:r,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let QU=(()=>{class n{constructor(e,i,r,s){this._scrollDispatcher=e,this._viewportRuler=i,this._ngZone=r,this.noop=()=>new ME,this.close=a=>new KU(this._scrollDispatcher,this._ngZone,this._viewportRuler,a),this.block=()=>new YU(this._viewportRuler,this._document),this.reposition=a=>new XU(this._scrollDispatcher,this._viewportRuler,this._ngZone,a),this._document=s}}return n.\u0275fac=function(e){return new(e||n)(P(BU),P(DE),P(lt),P(pt))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();class AE{constructor(t){if(this.scrollStrategy=new ME,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,t){const e=Object.keys(t);for(const i of e)void 0!==t[i]&&(this[i]=t[i])}}}class JU{constructor(t,e){this.connectionPair=t,this.scrollableViewProperties=e}}let PE=(()=>{class n{constructor(e){this._attachedOverlays=[],this._document=e}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){const i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),0===this._attachedOverlays.length&&this.detach()}}return n.\u0275fac=function(e){return new(e||n)(P(pt))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),ez=(()=>{class n extends PE{constructor(e,i){super(e),this._ngZone=i,this._keydownListener=r=>{const s=this._attachedOverlays;for(let a=s.length-1;a>-1;a--)if(s[a]._keydownEvents.observers.length>0){const l=s[a]._keydownEvents;this._ngZone?this._ngZone.run(()=>l.next(r)):l.next(r);break}}}add(e){super.add(e),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}}return n.\u0275fac=function(e){return new(e||n)(P(pt),P(lt,8))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),tz=(()=>{class n extends PE{constructor(e,i,r){super(e),this._platform=i,this._ngZone=r,this._cursorStyleIsSet=!1,this._pointerDownListener=s=>{this._pointerDownEventTarget=yE(s)},this._clickListener=s=>{const a=yE(s),l="click"===s.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:a;this._pointerDownEventTarget=null;const u=this._attachedOverlays.slice();for(let d=u.length-1;d>-1;d--){const f=u[d];if(f._outsidePointerEvents.observers.length<1||!f.hasAttached())continue;if(f.overlayElement.contains(a)||f.overlayElement.contains(l))break;const g=f._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>g.next(s)):g.next(s)}}}add(e){if(super.add(e),!this._isAttached){const i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const e=this._document.body;e.removeEventListener("pointerdown",this._pointerDownListener,!0),e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(e){e.addEventListener("pointerdown",this._pointerDownListener,!0),e.addEventListener("click",this._clickListener,!0),e.addEventListener("auxclick",this._clickListener,!0),e.addEventListener("contextmenu",this._clickListener,!0)}}return n.\u0275fac=function(e){return new(e||n)(P(pt),P(fc),P(lt,8))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),kE=(()=>{class n{constructor(e,i){this._platform=i,this._document=e}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||wE()){const r=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let s=0;sthis._backdropClick.next(f),this._backdropTransitionendHandler=f=>{this._disposeBackdrop(f.target)},this._keydownEvents=new ve,this._outsidePointerEvents=new ve,r.scrollStrategy&&(this._scrollStrategy=r.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=r.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(t){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const e=this._portalOutlet.attach(t);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe(Pr(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const t=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),t}dispose(){const t=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,t&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(t){t!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=t,this.hasAttached()&&(t.attach(this),this.updatePosition()))}updateSize(t){this._config={...this._config,...t},this._updateElementSize()}setDirection(t){this._config={...this._config,direction:t},this._updateElementDirection()}addPanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!0)}removePanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!1)}getDirection(){const t=this._config.direction;return t?"string"==typeof t?t:t.value:"ltr"}updateScrollStrategy(t){t!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=t,this.hasAttached()&&(t.attach(this),t.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const t=this._pane.style;t.width=Gt(this._config.width),t.height=Gt(this._config.height),t.minWidth=Gt(this._config.minWidth),t.minHeight=Gt(this._config.minHeight),t.maxWidth=Gt(this._config.maxWidth),t.maxHeight=Gt(this._config.maxHeight)}_togglePointerEvents(t){this._pane.style.pointerEvents=t?"":"none"}_attachBackdrop(){const t="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(t)})}):this._backdropElement.classList.add(t)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const t=this._backdropElement;!t||(t.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{t.addEventListener("transitionend",this._backdropTransitionendHandler)}),t.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(t)},500)))}_toggleClasses(t,e,i){const r=gE(e||[]).filter(s=>!!s);r.length&&(i?t.classList.add(...r):t.classList.remove(...r))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const t=this._ngZone.onStable.pipe(Ar(sn(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),t.unsubscribe())})})}_disposeScrollStrategy(){const t=this._scrollStrategy;t&&(t.disable(),t.detach&&t.detach())}_disposeBackdrop(t){t&&(t.removeEventListener("click",this._backdropClickHandler),t.removeEventListener("transitionend",this._backdropTransitionendHandler),t.remove(),this._backdropElement===t&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const xE="cdk-overlay-connected-position-bounding-box",iz=/([A-Za-z%]+)$/;class rz{constructor(t,e,i,r,s){this._viewportRuler=e,this._document=i,this._platform=r,this._overlayContainer=s,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new ve,this._resizeSubscription=Nt.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(t)}get positions(){return this._preferredPositions}attach(t){this._validatePositions(),t.hostElement.classList.add(xE),this._overlayRef=t,this._boundingBox=t.hostElement,this._pane=t.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const t=this._originRect,e=this._overlayRect,i=this._viewportRect,r=this._containerRect,s=[];let a;for(let l of this._preferredPositions){let u=this._getOriginPoint(t,r,l),d=this._getOverlayPoint(u,e,l),f=this._getOverlayFit(d,e,i,l);if(f.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(l,u);this._canFitWithFlexibleDimensions(f,d,i)?s.push({position:l,origin:u,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(u,l)}):(!a||a.overlayFit.visibleAreau&&(u=f,l=d)}return this._isPushed=!1,void this._applyPosition(l.position,l.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(a.position,a.originPoint);this._applyPosition(a.position,a.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&zs(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(xE),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const t=this._lastPosition;if(t){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._getOriginPoint(this._originRect,this._containerRect,t);this._applyPosition(t,e)}else this.apply()}withScrollableContainers(t){return this._scrollables=t,this}withPositions(t){return this._preferredPositions=t,-1===t.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(t){return this._viewportMargin=t,this}withFlexibleDimensions(t=!0){return this._hasFlexibleDimensions=t,this}withGrowAfterOpen(t=!0){return this._growAfterOpen=t,this}withPush(t=!0){return this._canPush=t,this}withLockedPosition(t=!0){return this._positionLocked=t,this}setOrigin(t){return this._origin=t,this}withDefaultOffsetX(t){return this._offsetX=t,this}withDefaultOffsetY(t){return this._offsetY=t,this}withTransformOriginOn(t){return this._transformOriginSelector=t,this}_getOriginPoint(t,e,i){let r,s;if("center"==i.originX)r=t.left+t.width/2;else{const a=this._isRtl()?t.right:t.left,l=this._isRtl()?t.left:t.right;r="start"==i.originX?a:l}return e.left<0&&(r-=e.left),s="center"==i.originY?t.top+t.height/2:"top"==i.originY?t.top:t.bottom,e.top<0&&(s-=e.top),{x:r,y:s}}_getOverlayPoint(t,e,i){let r,s;return r="center"==i.overlayX?-e.width/2:"start"===i.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,s="center"==i.overlayY?-e.height/2:"top"==i.overlayY?0:-e.height,{x:t.x+r,y:t.y+s}}_getOverlayFit(t,e,i,r){const s=OE(e);let{x:a,y:l}=t,u=this._getOffset(r,"x"),d=this._getOffset(r,"y");u&&(a+=u),d&&(l+=d);let v=0-l,_=l+s.height-i.height,w=this._subtractOverflows(s.width,0-a,a+s.width-i.width),C=this._subtractOverflows(s.height,v,_),S=w*C;return{visibleArea:S,isCompletelyWithinViewport:s.width*s.height===S,fitsInViewportVertically:C===s.height,fitsInViewportHorizontally:w==s.width}}_canFitWithFlexibleDimensions(t,e,i){if(this._hasFlexibleDimensions){const r=i.bottom-e.y,s=i.right-e.x,a=RE(this._overlayRef.getConfig().minHeight),l=RE(this._overlayRef.getConfig().minWidth),d=t.fitsInViewportHorizontally||null!=l&&l<=s;return(t.fitsInViewportVertically||null!=a&&a<=r)&&d}return!1}_pushOverlayOnScreen(t,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:t.x+this._previousPushAmount.x,y:t.y+this._previousPushAmount.y};const r=OE(e),s=this._viewportRect,a=Math.max(t.x+r.width-s.width,0),l=Math.max(t.y+r.height-s.height,0),u=Math.max(s.top-i.top-t.y,0),d=Math.max(s.left-i.left-t.x,0);let f=0,g=0;return f=r.width<=s.width?d||-a:t.xw&&!this._isInitialRender&&!this._growAfterOpen&&(a=t.y-w/2)}if("end"===e.overlayX&&!r||"start"===e.overlayX&&r)v=i.width-t.x+this._viewportMargin,f=t.x-this._viewportMargin;else if("start"===e.overlayX&&!r||"end"===e.overlayX&&r)g=t.x,f=i.right-t.x;else{const _=Math.min(i.right-t.x+i.left,t.x),w=this._lastBoundingBoxSize.width;f=2*_,g=t.x-_,f>w&&!this._isInitialRender&&!this._growAfterOpen&&(g=t.x-w/2)}return{top:a,left:g,bottom:l,right:v,width:f,height:s}}_setBoundingBoxStyles(t,e){const i=this._calculateBoundingBoxRect(t,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const r={};if(this._hasExactPosition())r.top=r.left="0",r.bottom=r.right=r.maxHeight=r.maxWidth="",r.width=r.height="100%";else{const s=this._overlayRef.getConfig().maxHeight,a=this._overlayRef.getConfig().maxWidth;r.height=Gt(i.height),r.top=Gt(i.top),r.bottom=Gt(i.bottom),r.width=Gt(i.width),r.left=Gt(i.left),r.right=Gt(i.right),r.alignItems="center"===e.overlayX?"center":"end"===e.overlayX?"flex-end":"flex-start",r.justifyContent="center"===e.overlayY?"center":"bottom"===e.overlayY?"flex-end":"flex-start",s&&(r.maxHeight=Gt(s)),a&&(r.maxWidth=Gt(a))}this._lastBoundingBoxSize=i,zs(this._boundingBox.style,r)}_resetBoundingBoxStyles(){zs(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){zs(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(t,e){const i={},r=this._hasExactPosition(),s=this._hasFlexibleDimensions,a=this._overlayRef.getConfig();if(r){const f=this._viewportRuler.getViewportScrollPosition();zs(i,this._getExactOverlayY(e,t,f)),zs(i,this._getExactOverlayX(e,t,f))}else i.position="static";let l="",u=this._getOffset(e,"x"),d=this._getOffset(e,"y");u&&(l+=`translateX(${u}px) `),d&&(l+=`translateY(${d}px)`),i.transform=l.trim(),a.maxHeight&&(r?i.maxHeight=Gt(a.maxHeight):s&&(i.maxHeight="")),a.maxWidth&&(r?i.maxWidth=Gt(a.maxWidth):s&&(i.maxWidth="")),zs(this._pane.style,i)}_getExactOverlayY(t,e,i){let r={top:"",bottom:""},s=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),"bottom"===t.overlayY?r.bottom=this._document.documentElement.clientHeight-(s.y+this._overlayRect.height)+"px":r.top=Gt(s.y),r}_getExactOverlayX(t,e,i){let a,r={left:"",right:""},s=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),a=this._isRtl()?"end"===t.overlayX?"left":"right":"end"===t.overlayX?"right":"left","right"===a?r.right=this._document.documentElement.clientWidth-(s.x+this._overlayRect.width)+"px":r.left=Gt(s.x),r}_getScrollVisibility(){const t=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(r=>r.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:IE(t,i),isOriginOutsideView:ov(t,i),isOverlayClipped:IE(e,i),isOverlayOutsideView:ov(e,i)}}_subtractOverflows(t,...e){return e.reduce((i,r)=>i-Math.max(r,0),t)}_getNarrowedViewportRect(){const t=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+t-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:t-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(t,e){return"x"===e?t.offsetX??this._offsetX:t.offsetY??this._offsetY}_validatePositions(){}_addPanelClasses(t){this._pane&&gE(t).forEach(e=>{""!==e&&-1===this._appliedPanelClasses.indexOf(e)&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(t=>{this._pane.classList.remove(t)}),this._appliedPanelClasses=[])}_getOriginRect(){const t=this._origin;if(t instanceof Tt)return t.nativeElement.getBoundingClientRect();if(t instanceof Element)return t.getBoundingClientRect();const e=t.width||0,i=t.height||0;return{top:t.y,bottom:t.y+i,left:t.x,right:t.x+e,height:i,width:e}}}function zs(n,t){for(let e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);return n}function RE(n){if("number"!=typeof n&&null!=n){const[t,e]=n.split(iz);return e&&"px"!==e?null:parseFloat(t)}return n||null}function OE(n){return{top:Math.floor(n.top),right:Math.floor(n.right),bottom:Math.floor(n.bottom),left:Math.floor(n.left),width:Math.floor(n.width),height:Math.floor(n.height)}}const NE="cdk-global-overlay-wrapper";class sz{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._leftOffset="",this._rightOffset="",this._alignItems="",this._justifyContent="",this._width="",this._height=""}attach(t){const e=t.getConfig();this._overlayRef=t,this._width&&!e.width&&t.updateSize({width:this._width}),this._height&&!e.height&&t.updateSize({height:this._height}),t.hostElement.classList.add(NE),this._isDisposed=!1}top(t=""){return this._bottomOffset="",this._topOffset=t,this._alignItems="flex-start",this}left(t=""){return this._rightOffset="",this._leftOffset=t,this._justifyContent="flex-start",this}bottom(t=""){return this._topOffset="",this._bottomOffset=t,this._alignItems="flex-end",this}right(t=""){return this._leftOffset="",this._rightOffset=t,this._justifyContent="flex-end",this}width(t=""){return this._overlayRef?this._overlayRef.updateSize({width:t}):this._width=t,this}height(t=""){return this._overlayRef?this._overlayRef.updateSize({height:t}):this._height=t,this}centerHorizontally(t=""){return this.left(t),this._justifyContent="center",this}centerVertically(t=""){return this.top(t),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:r,height:s,maxWidth:a,maxHeight:l}=i,u=!("100%"!==r&&"100vw"!==r||a&&"100%"!==a&&"100vw"!==a),d=!("100%"!==s&&"100vh"!==s||l&&"100%"!==l&&"100vh"!==l);t.position=this._cssPosition,t.marginLeft=u?"0":this._leftOffset,t.marginTop=d?"0":this._topOffset,t.marginBottom=this._bottomOffset,t.marginRight=this._rightOffset,u?e.justifyContent="flex-start":"center"===this._justifyContent?e.justifyContent="center":"rtl"===this._overlayRef.getConfig().direction?"flex-start"===this._justifyContent?e.justifyContent="flex-end":"flex-end"===this._justifyContent&&(e.justifyContent="flex-start"):e.justifyContent=this._justifyContent,e.alignItems=d?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(NE),i.justifyContent=i.alignItems=t.marginTop=t.marginBottom=t.marginLeft=t.marginRight=t.position="",this._overlayRef=null,this._isDisposed=!0}}let oz=(()=>{class n{constructor(e,i,r,s){this._viewportRuler=e,this._document=i,this._platform=r,this._overlayContainer=s}global(){return new sz}flexibleConnectedTo(e){return new rz(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}}return n.\u0275fac=function(e){return new(e||n)(P(DE),P(pt),P(fc),P(kE))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),az=0,av=(()=>{class n{constructor(e,i,r,s,a,l,u,d,f,g,v){this.scrollStrategies=e,this._overlayContainer=i,this._componentFactoryResolver=r,this._positionBuilder=s,this._keyboardDispatcher=a,this._injector=l,this._ngZone=u,this._document=d,this._directionality=f,this._location=g,this._outsideClickDispatcher=v}create(e){const i=this._createHostElement(),r=this._createPaneElement(i),s=this._createPortalOutlet(r),a=new AE(e);return a.direction=a.direction||this._directionality.value,new nz(s,i,r,a,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher)}position(){return this._positionBuilder}_createPaneElement(e){const i=this._document.createElement("div");return i.id="cdk-overlay-"+az++,i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){const e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(td)),new WU(e,this._componentFactoryResolver,this._appRef,this._injector,this._document)}}return n.\u0275fac=function(e){return new(e||n)(P(QU),P(kE),P(Qr),P(oz),P(ez),P(ln),P(lt),P(pt),P(CE),P(fS),P(tz))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();const lz=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],FE=new Ie("cdk-connected-overlay-scroll-strategy");let LE=(()=>{class n{constructor(e){this.elementRef=e}}return n.\u0275fac=function(e){return new(e||n)(M(Tt))},n.\u0275dir=ie({type:n,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]}),n})(),cz=(()=>{class n{constructor(e,i,r,s,a){this._overlay=e,this._dir=a,this._hasBackdrop=!1,this._lockPosition=!1,this._growAfterOpen=!1,this._flexibleDimensions=!1,this._push=!1,this._backdropSubscription=Nt.EMPTY,this._attachSubscription=Nt.EMPTY,this._detachSubscription=Nt.EMPTY,this._positionSubscription=Nt.EMPTY,this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.backdropClick=new K,this.positionChange=new K,this.attach=new K,this.detach=new K,this.overlayKeydown=new K,this.overlayOutsideClick=new K,this._templatePortal=new EE(i,r),this._scrollStrategyFactory=s,this.scrollStrategy=this._scrollStrategyFactory()}get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(e){this._hasBackdrop=dc(e)}get lockPosition(){return this._lockPosition}set lockPosition(e){this._lockPosition=dc(e)}get flexibleDimensions(){return this._flexibleDimensions}set flexibleDimensions(e){this._flexibleDimensions=dc(e)}get growAfterOpen(){return this._growAfterOpen}set growAfterOpen(e){this._growAfterOpen=dc(e)}get push(){return this._push}set push(e){this._push=dc(e)}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=lz);const e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),27===i.keyCode&&!this.disableClose&&!function qU(n,...t){return t.length?t.some(e=>n[e]):n.altKey||n.shiftKey||n.ctrlKey||n.metaKey}(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new AE({direction:this._dir,positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop});return(this.width||0===this.width)&&(i.width=this.width),(this.height||0===this.height)&&(i.height=this.height),(this.minWidth||0===this.minWidth)&&(i.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){const i=this.positions.map(r=>({originX:r.originX,originY:r.originY,overlayX:r.overlayX,overlayY:r.overlayY,offsetX:r.offsetX||this.offsetX,offsetY:r.offsetY||this.offsetY,panelClass:r.panelClass||void 0}));return e.setOrigin(this._getFlexibleConnectedPositionStrategyOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const e=this._overlay.position().flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());return this._updatePositionStrategy(e),e}_getFlexibleConnectedPositionStrategyOrigin(){return this.origin instanceof LE?this.origin.elementRef:this.origin}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function $U(n,t=!1){return ut((e,i)=>{let r=0;e.subscribe(it(i,s=>{const a=n(s,r++);(a||t)&&i.next(s),!a&&i.complete()}))})}(()=>this.positionChange.observers.length>0)).subscribe(e=>{this.positionChange.emit(e),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(M(av),M(ar),M(ii),M(FE),M(CE,8))},n.\u0275dir=ie({type:n,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:["cdkConnectedOverlayOrigin","origin"],positions:["cdkConnectedOverlayPositions","positions"],positionStrategy:["cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:["cdkConnectedOverlayOffsetX","offsetX"],offsetY:["cdkConnectedOverlayOffsetY","offsetY"],width:["cdkConnectedOverlayWidth","width"],height:["cdkConnectedOverlayHeight","height"],minWidth:["cdkConnectedOverlayMinWidth","minWidth"],minHeight:["cdkConnectedOverlayMinHeight","minHeight"],backdropClass:["cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:["cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:["cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:["cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:["cdkConnectedOverlayOpen","open"],disableClose:["cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:["cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:["cdkConnectedOverlayHasBackdrop","hasBackdrop"],lockPosition:["cdkConnectedOverlayLockPosition","lockPosition"],flexibleDimensions:["cdkConnectedOverlayFlexibleDimensions","flexibleDimensions"],growAfterOpen:["cdkConnectedOverlayGrowAfterOpen","growAfterOpen"],push:["cdkConnectedOverlayPush","push"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[Kt]}),n})();const dz={provide:FE,deps:[av],useFactory:function uz(n){return()=>n.scrollStrategies.reposition()}};let hz=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({providers:[av,dz],imports:[[rv,GU,bE],bE]}),n})(),VE=(()=>{class n{constructor(e,i){this._renderer=e,this._elementRef=i,this.onChange=r=>{},this.onTouched=()=>{}}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}}return n.\u0275fac=function(e){return new(e||n)(M($n),M(Tt))},n.\u0275dir=ie({type:n}),n})(),Ws=(()=>{class n extends VE{}return n.\u0275fac=function(){let t;return function(i){return(t||(t=mn(n)))(i||n)}}(),n.\u0275dir=ie({type:n,features:[at]}),n})();const fr=new Ie("NgValueAccessor"),gz={provide:fr,useExisting:fe(()=>hh),multi:!0},vz=new Ie("CompositionEventMode");let hh=(()=>{class n extends VE{constructor(e,i,r){super(e,i),this._compositionMode=r,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function mz(){const n=lr()?lr().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}())}writeValue(e){this.setProperty("value",e??"")}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}}return n.\u0275fac=function(e){return new(e||n)(M($n),M(Tt),M(vz,8))},n.\u0275dir=ie({type:n,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(e,i){1&e&&de("input",function(s){return i._handleInput(s.target.value)})("blur",function(){return i.onTouched()})("compositionstart",function(){return i._compositionStart()})("compositionend",function(s){return i._compositionEnd(s.target.value)})},features:[Et([gz]),at]}),n})();const Tn=new Ie("NgValidators"),ds=new Ie("NgAsyncValidators");function YE(n){return null!=n}function KE(n){const t=Uu(n)?pr(n):n;return Lw(t),t}function XE(n){let t={};return n.forEach(e=>{t=null!=e?{...t,...e}:t}),0===Object.keys(t).length?null:t}function QE(n,t){return t.map(e=>e(n))}function JE(n){return n.map(t=>function yz(n){return!n.validate}(t)?t:e=>t.validate(e))}function lv(n){return null!=n?function eT(n){if(!n)return null;const t=n.filter(YE);return 0==t.length?null:function(e){return XE(QE(e,t))}}(JE(n)):null}function cv(n){return null!=n?function tT(n){if(!n)return null;const t=n.filter(YE);return 0==t.length?null:function(e){return function fz(...n){const t=jc(n),{args:e,keys:i}=Zb(n),r=new nt(s=>{const{length:a}=e;if(!a)return void s.complete();const l=new Array(a);let u=a,d=a;for(let f=0;f{g||(g=!0,d--),l[f]=v},()=>u--,void 0,()=>{(!u||!g)&&(d||s.next(i?qb(i,l):l),s.complete())}))}});return t?r.pipe(_m(t)):r}(QE(e,t).map(KE)).pipe(He(XE))}}(JE(n)):null}function nT(n,t){return null===n?[t]:Array.isArray(n)?[...n,t]:[n,t]}function uv(n){return n?Array.isArray(n)?n:[n]:[]}function ph(n,t){return Array.isArray(n)?n.includes(t):n===t}function sT(n,t){const e=uv(t);return uv(n).forEach(r=>{ph(e,r)||e.push(r)}),e}function oT(n,t){return uv(t).filter(e=>!ph(n,e))}class aT{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(t){this._rawValidators=t||[],this._composedValidatorFn=lv(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=cv(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t){this.control&&this.control.reset(t)}hasError(t,e){return!!this.control&&this.control.hasError(t,e)}getError(t,e){return this.control?this.control.getError(t,e):null}}class Ln extends aT{get formDirective(){return null}get path(){return null}}class hs extends aT{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}let cT=(()=>{class n extends class lT{constructor(t){this._cd=t}is(t){return"submitted"===t?!!this._cd?.submitted:!!this._cd?.control?.[t]}}{constructor(e){super(e)}}return n.\u0275fac=function(e){return new(e||n)(M(hs,2))},n.\u0275dir=ie({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(e,i){2&e&&cn("ng-untouched",i.is("untouched"))("ng-touched",i.is("touched"))("ng-pristine",i.is("pristine"))("ng-dirty",i.is("dirty"))("ng-valid",i.is("valid"))("ng-invalid",i.is("invalid"))("ng-pending",i.is("pending"))},features:[at]}),n})();function gc(n,t){(function fv(n,t){const e=function iT(n){return n._rawValidators}(n);null!==t.validator?n.setValidators(nT(e,t.validator)):"function"==typeof e&&n.setValidators([e]);const i=function rT(n){return n._rawAsyncValidators}(n);null!==t.asyncValidator?n.setAsyncValidators(nT(i,t.asyncValidator)):"function"==typeof i&&n.setAsyncValidators([i]);const r=()=>n.updateValueAndValidity();_h(t._rawValidators,r),_h(t._rawAsyncValidators,r)})(n,t),t.valueAccessor.writeValue(n.value),function Iz(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,"change"===n.updateOn&&dT(n,t)})}(n,t),function Pz(n,t){const e=(i,r)=>{t.valueAccessor.writeValue(i),r&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}(n,t),function Az(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,"blur"===n.updateOn&&n._pendingChange&&dT(n,t),"submit"!==n.updateOn&&n.markAsTouched()})}(n,t),function Mz(n,t){if(t.valueAccessor.setDisabledState){const e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}(n,t)}function _h(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function dT(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function mv(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}const mc="VALID",wh="INVALID",Ca="PENDING",vc="DISABLED";function _v(n){return(Ch(n)?n.validators:n)||null}function gT(n){return Array.isArray(n)?lv(n):n||null}function yv(n,t){return(Ch(t)?t.asyncValidators:n)||null}function mT(n){return Array.isArray(n)?cv(n):n||null}function Ch(n){return null!=n&&!Array.isArray(n)&&"object"==typeof n}const wv=n=>n instanceof Dv;function _T(n){return(n=>n instanceof CT)(n)?n.value:n.getRawValue()}function yT(n,t){const e=wv(n),i=n.controls;if(!(e?Object.keys(i):i).length)throw new $(1e3,"");if(!i[t])throw new $(1001,"")}function wT(n,t){wv(n),n._forEachChild((i,r)=>{if(void 0===t[r])throw new $(1002,"")})}class Cv{constructor(t,e){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._rawValidators=t,this._rawAsyncValidators=e,this._composedValidatorFn=gT(this._rawValidators),this._composedAsyncValidatorFn=mT(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get valid(){return this.status===mc}get invalid(){return this.status===wh}get pending(){return this.status==Ca}get disabled(){return this.status===vc}get enabled(){return this.status!==vc}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._rawValidators=t,this._composedValidatorFn=gT(t)}setAsyncValidators(t){this._rawAsyncValidators=t,this._composedAsyncValidatorFn=mT(t)}addValidators(t){this.setValidators(sT(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(sT(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(oT(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(oT(t,this._rawAsyncValidators))}hasValidator(t){return ph(this._rawValidators,t)}hasAsyncValidator(t){return ph(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){this.touched=!0,this._parent&&!t.onlySelf&&this._parent.markAsTouched(t)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(t=>t.markAllAsTouched())}markAsUntouched(t={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(e=>{e.markAsUntouched({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}markAsDirty(t={}){this.pristine=!1,this._parent&&!t.onlySelf&&this._parent.markAsDirty(t)}markAsPristine(t={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(e=>{e.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}markAsPending(t={}){this.status=Ca,!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)}disable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=vc,this.errors=null,this._forEachChild(i=>{i.disable({...t,onlySelf:!0})}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...t,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!0))}enable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=mc,this._forEachChild(i=>{i.enable({...t,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors({...t,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(t){this._parent=t}updateValueAndValidity(t={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===mc||this.status===Ca)&&this._runAsyncValidator(t.emitEvent)),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(t)}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?vc:mc}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t){if(this.asyncValidator){this.status=Ca,this._hasOwnPendingAsyncValidator=!0;const e=KE(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe(i=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(i,{emitEvent:t})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(!1!==e.emitEvent)}get(t){return function Oz(n,t,e){if(null==t||(Array.isArray(t)||(t=t.split(e)),Array.isArray(t)&&0===t.length))return null;let i=n;return t.forEach(r=>{i=wv(i)?i.controls.hasOwnProperty(r)?i.controls[r]:null:(n=>n instanceof Fz)(i)&&i.at(r)||null}),i}(this,t,".")}getError(t,e){const i=e?this.get(e):this;return i&&i.errors?i.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(t)}_initObservables(){this.valueChanges=new K,this.statusChanges=new K}_calculateStatus(){return this._allControlsDisabled()?vc:this.errors?wh:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Ca)?Ca:this._anyControlsHaveStatus(wh)?wh:mc}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t={}){this.pristine=!this._anyControlsDirty(),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}_updateTouched(t={}){this.touched=this._anyControlsTouched(),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}_isBoxedValue(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t}_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){Ch(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){return!t&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}}class CT extends Cv{constructor(t=null,e,i){super(_v(e),yv(i,e)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Ch(e)&&e.initialValueIsDefault&&(this.defaultValue=this._isBoxedValue(t)?t.value:t)}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=this.defaultValue,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){mv(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){mv(this._onDisabledChange,t)}_forEachChild(t){}_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(t){this._isBoxedValue(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}}class Dv extends Cv{constructor(t,e,i){super(_v(e),yv(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e,i={}){this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){wT(this,t),Object.keys(t).forEach(i=>{yT(this,i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){null!=t&&(Object.keys(t).forEach(i=>{this.controls[i]&&this.controls[i].patchValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild((i,r)=>{i.reset(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(t,e,i)=>(t[i]=_T(e),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(e,i)=>!!i._syncPendingControls()||e);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(e=>{const i=this.controls[e];i&&t(i,e)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(const e of Object.keys(this.controls)){const i=this.controls[e];if(this.contains(e)&&t(i))return!0}return!1}_reduceValue(){return this._reduceChildren({},(t,e,i)=>((e.enabled||this.disabled)&&(t[i]=e.value),t))}_reduceChildren(t,e){let i=t;return this._forEachChild((r,s)=>{i=e(i,r,s)}),i}_allControlsDisabled(){for(const t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}}class Fz extends Cv{constructor(t,e,i){super(_v(e),yv(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(t){return this.controls[t]}push(t,e={}){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(t,e,i={}){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),this.controls.splice(t,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),this.controls.splice(t,1),e&&(this.controls.splice(t,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(t,e={}){wT(this,t),t.forEach((i,r)=>{yT(this,r),this.at(r).setValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){null!=t&&(t.forEach((i,r)=>{this.at(r)&&this.at(r).patchValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t=[],e={}){this._forEachChild((i,r)=>{i.reset(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(t=>_T(t))}clear(t={}){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:t.emitEvent}))}_syncPendingControls(){let t=this.controls.reduce((e,i)=>!!i._syncPendingControls()||e,!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){this.controls.forEach((e,i)=>{t(e,i)})}_updateValue(){this.value=this.controls.filter(t=>t.enabled||this.disabled).map(t=>t.value)}_anyControls(t){return this.controls.some(e=>e.enabled&&t(e))}_setUpControls(){this._forEachChild(t=>this._registerControl(t))}_allControlsDisabled(){for(const t of this.controls)if(t.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)}}const Bz={provide:hs,useExisting:fe(()=>bv)},bT=(()=>Promise.resolve(null))();let bv=(()=>{class n extends hs{constructor(e,i,r,s,a){super(),this._changeDetectorRef=a,this.control=new CT,this._registered=!1,this.update=new K,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=function gv(n,t){if(!t)return null;let e,i,r;return Array.isArray(t),t.forEach(s=>{s.constructor===hh?e=s:function Rz(n){return Object.getPrototypeOf(n.constructor)===Ws}(s)?i=s:r=s}),r||i||e||null}(0,s)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){const i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),function pv(n,t){if(!n.hasOwnProperty("model"))return!1;const e=n.model;return!!e.isFirstChange()||!Object.is(t,e.currentValue)}(e,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(e){this.viewModel=e,this.update.emit(e)}_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(){gc(this.control,this),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(e){bT.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){const i=e.isDisabled.currentValue,r=""===i||i&&"false"!==i;bT.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?function mh(n,t){return[...t.path,n]}(e,this._parent):[e]}}return n.\u0275fac=function(e){return new(e||n)(M(Ln,9),M(Tn,10),M(ds,10),M(fr,10),M(ua,8))},n.\u0275dir=ie({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:["disabled","isDisabled"],model:["ngModel","model"],options:["ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[Et([Bz]),at,Kt]}),n})(),TT=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({}),n})(),d3=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({imports:[[TT]]}),n})(),h3=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=st({type:n}),n.\u0275inj=be({imports:[d3]}),n})();const f3=["map"];function p3(n,t){1&n&&(Z(0,"div",6)(1,"div",7),St(2,"div",8)(3,"div",9)(4,"div",10)(5,"div",11)(6,"div",12),Y(),St(7,"br"),bt(8," Loading map... "),Y())}function g3(n,t){if(1&n){const e=jt();Z(0,"div",13)(1,"div",14)(2,"input",15),de("ngModelChange",function(r){return Q(e),N().filterText=r}),Y(),bt(3,"\xa0\xa0\xa0 Hide Labels: "),Z(4,"input",16),de("change",function(r){return Q(e),N().changeHideLabels(r)}),Y()(),Z(5,"div",17),bt(6," Show Calls: "),Z(7,"input",16),de("change",function(r){return Q(e),N().changeShowCalls(r)}),Y(),bt(8," \xa0\xa0\xa0 Show Stations: "),Z(9,"input",16),de("change",function(r){return Q(e),N().changeShowStations(r)}),Y(),bt(10," \xa0\xa0\xa0 Show Units: "),Z(11,"input",16),de("change",function(r){return Q(e),N().changeShowUnits(r)}),Y(),bt(12," \xa0\xa0\xa0 Show Personnel: "),Z(13,"input",16),de("change",function(r){return Q(e),N().changeShowPeople(r)}),Y()()()}if(2&n){const e=N();j(2),F("ngModel",e.filterText),j(2),F("checked",e.hideLabels),j(3),F("checked",e.showCalls),j(2),F("checked",e.showStations),j(2),F("checked",e.showUnits),j(2),F("checked",e.showPersonnel)}}let m3=(()=>{class n{constructor(e,i){this.mapProvider=e,this.cdRef=i,this.showCalls=!0,this.showStations=!0,this.showUnits=!0,this.showPersonnel=!0,this.hideLabels=!1,this.filterText="",this.markers=[],this.mapData$=this.mapProvider.getMapDataAndMarkers()}ngOnInit(){this.mapProvider.getMapDataAndMarkers().subscribe(e=>{this.processMapData(e.Data)}),typeof this.showbuttons>"u"&&(this.showbuttons=!1),typeof this.mapheight>"u"&&(this.mapheight="600px"),this.cdRef.detectChanges()}ngOnChanges(){typeof this.showbuttons>"u"&&(this.showbuttons=!1),typeof this.mapheight>"u"&&(this.mapheight="600px"),this.cdRef.detectChanges()}changeHideLabels(e){this.hideLabels=e.target.checked,this.mapProvider.getMapDataAndMarkers().subscribe(r=>{this.processMapData(r.Data)})}changeShowCalls(e){this.showCalls=e.target.checked,this.mapProvider.getMapDataAndMarkers().subscribe(r=>{this.processMapData(r.Data)})}changeShowStations(e){this.showStations=e.target.checked,this.mapProvider.getMapDataAndMarkers().subscribe(r=>{this.processMapData(r.Data)})}changeShowUnits(e){this.showUnits=e.target.checked,this.mapProvider.getMapDataAndMarkers().subscribe(r=>{this.processMapData(r.Data)})}changeShowPeople(e){this.showPersonnel=e.target.checked,this.mapProvider.getMapDataAndMarkers().subscribe(r=>{this.processMapData(r.Data)})}getMapLayers(){this.mapProvider.getMayLayers(0).subscribe(e=>{if(e&&e.Data&&e.Data.LayerJson){var i=JSON.parse(e.Data.LayerJson);i&&i.forEach(r=>{cs.geoJSON().addTo(this.map).addData(r)})}})}processMapData(e){if(e){var i=this.getMapCenter(e);if(!this.map){this.map=cs.map(this.mapContainer.nativeElement,{doubleClickZoom:!1,zoomControl:!1});const a=window.rgOsmKey;cs.tileLayer("https://api.maptiler.com/maps/streets/{z}/{x}/{y}.png?key="+a,{attribution:'© OpenStreetMap contributors CC-BY-SA'}).addTo(this.map)}if(this.map.setView(i,this.getMapZoomLevel(e)),this.markers&&this.markers.length>=0){for(var r=0;r0){e&&e.MapMakerInfos&&e.MapMakerInfos.forEach(a=>{if(""===this.filterText||a.Title.toLowerCase().indexOf(this.filterText.toLowerCase())>=0){let l="",u=null;this.hideLabels||(l=a.Title),(0==a.Type&&this.showCalls||1==a.Type&&this.showUnits||2==a.Type&&this.showStations)&&(u=this.hideLabels?cs.marker([a.Latitude,a.Longitude],{icon:cs.icon({iconUrl:"/images/mapping/"+a.ImagePath+".png",iconSize:[32,37],iconAnchor:[16,37]}),draggable:!1,title:l}).addTo(this.map):cs.marker([a.Latitude,a.Longitude],{icon:cs.icon({iconUrl:"/images/mapping/"+a.ImagePath+".png",iconSize:[32,37],iconAnchor:[16,37]}),draggable:!1,title:l}).bindTooltip(l,{permanent:!0,direction:"bottom"}).addTo(this.map)),this.markers.push(u)}});var s=cs.featureGroup(this.markers);this.map.fitBounds(s.getBounds())}}this.getMapLayers()}getMapCenter(e){return[e.CenterLat,e.CenterLon]}getMapZoomLevel(e){return e.ZoomLevel}}return n.\u0275fac=function(e){return new(e||n)(M(Vj),M(ua))},n.\u0275cmp=ft({type:n,selectors:[["ng-component"]],viewQuery:function(e,i){if(1&e&&Jp(f3,5),2&e){let r;Qp(r=eg())&&(i.mapContainer=r.first)}},inputs:{showbuttons:"showbuttons",mapheight:"mapheight"},features:[Kt],decls:6,vars:5,consts:[["cdkConnectedOverlay","",3,"cdkConnectedOverlayOpen","cdkConnectedOverlayOrigin"],["cdkOverlayOrigin",""],["trigger","cdkOverlayOrigin"],["style","width: 100%; padding-bottom: 4px;",4,"ngIf"],["id","map","name","map",2,"width","100%"],["map",""],[1,"text-center"],[1,"sk-spinner","sk-spinner-wave"],[1,"sk-rect1"],[1,"sk-rect2",2,"padding-left","4px"],[1,"sk-rect3",2,"padding-left","4px"],[1,"sk-rect4",2,"padding-left","4px"],[1,"sk-rect5",2,"padding-left","4px"],[2,"width","100%","padding-bottom","4px"],[2,"width","50%","float","left","text-align","left"],["type","text","placeholder","filter markers text",3,"ngModel","ngModelChange"],["type","checkbox",3,"checked","change"],[2,"width","50%","float","right","text-align","right"]],template:function(e,i){if(1&e&&(se(0,p3,9,0,"ng-template",0),Z(1,"div",1,2),se(3,g3,14,6,"div",3),St(4,"div",4,5),Y()),2&e){const r=Ft(2);F("cdkConnectedOverlayOpen",null===Ft(5))("cdkConnectedOverlayOrigin",r),j(3),F("ngIf",1==i.showbuttons),j(1),Er("height",i.mapheight)}},directives:[cz,LE,Mr,hh,cT,bv],styles:[""],changeDetection:0}),n})();const v3=()=>window.rgApiBaseUrl&&window.rgApiBaseUrl.length>0?window.rgApiBaseUrl.trim().toString():"https://api.resgrid.com";let w3=(()=>{class n{constructor(e){this.injector=e}ngDoBootstrap(){customElements.define("rg-shifts-calendar",qS(vU,{injector:this.injector})),customElements.define("rg-map",qS(m3,{injector:this.injector}))}}return n.\u0275fac=function(e){return new(e||n)(P(ln))},n.\u0275mod=st({type:n}),n.\u0275inj=be({providers:[],imports:[[da,FH,WS,h3,PL,AB.forRoot({provide:xr,useFactory:CH}),hz,Lj.forRoot({baseApiUrl:v3,apiVersion:"v4",clientId:"RgWebApp",googleApiKey:window.rgGoogleMapsKey&&window.rgGoogleMapsKey.length>0?window.rgGoogleMapsKey.trim().toString():"",channelUrl:window.rgChannelUrl&&window.rgChannelUrl.length>0?window.rgChannelUrl.trim().toString():"https://events.resgrid.com",channelHubName:"eventingHub",logLevel:0,isMobileApp:!1})]]}),n})();(function rR(){QD=!1})(),aN().bootstrapModule(w3).catch(n=>console.error(n))},407:function(wc,Cc){!function(B){"use strict";function Xe(o){var c,h,p,m;for(h=1,p=arguments.length;h"u")&&L&&L.Mixin){o=rn(o)?o:[o];for(var c=0;c0?Math.floor(o):Math.ceil(o)};function xe(o,c,h){return o instanceof me?o:rn(o)?new me(o[0],o[1]):null==o?o:"object"==typeof o&&"x"in o&&"y"in o?new me(o.x,o.y):new me(o,c,h)}function Ct(o,c){if(o)for(var h=c?[o,c]:o,p=0,m=h.length;p=this.min.x&&h.x<=this.max.x&&c.y>=this.min.y&&h.y<=this.max.y},intersects:function(o){o=qn(o);var c=this.min,h=this.max,p=o.min,m=o.max;return m.x>=c.x&&p.x<=h.x&&m.y>=c.y&&p.y<=h.y},overlaps:function(o){o=qn(o);var c=this.min,h=this.max,p=o.min,m=o.max;return m.x>c.x&&p.xc.y&&p.y=c.lat&&m.lat<=h.lat&&p.lng>=c.lng&&m.lng<=h.lng},intersects:function(o){o=ve(o);var c=this._southWest,h=this._northEast,p=o.getSouthWest(),m=o.getNorthEast();return m.lat>=c.lat&&p.lat<=h.lat&&m.lng>=c.lng&&p.lng<=h.lng},overlaps:function(o){o=ve(o);var c=this._southWest,h=this._northEast,p=o.getSouthWest(),m=o.getNorthEast();return m.lat>c.lat&&p.latc.lng&&p.lng1,Fc=function(){var o=!1;try{var c=Object.defineProperty({},"passive",{get:function(){o=!0}});window.addEventListener("testPassiveEventSupport",ct,c),window.removeEventListener("testPassiveEventSupport",ct,c)}catch{}return o}(),In=!!document.createElement("canvas").getContext,xa=!(!document.createElementNS||!bh("svg").createSVGRect),kh=!!xa&&function(){var o=document.createElement("div");return o.innerHTML="","http://www.w3.org/2000/svg"===(o.firstChild&&o.firstChild.namespaceURI)}(),xh=!xa&&function(){try{var o=document.createElement("div");o.innerHTML='';var c=o.firstChild;return c.style.behavior="url(#default#VML)",c&&"object"==typeof c.adj}catch{return!1}}();function li(o){return navigator.userAgent.toLowerCase().indexOf(o)>=0}var ne={ie:eo,ielt9:Rv,edge:Ta,webkit:Tc,android:Ma,android23:Mc,androidStock:Nv,opera:Ic,chrome:Hi,gecko:Ac,safari:Fv,phantom:Pc,opera12:Th,win:Mh,ie3d:Ih,webkit3d:kc,gecko3d:Ah,any3d:Lv,mobile:to,mobileWebkit:Ia,mobileWebkit3d:xc,msPointer:Aa,pointer:Pa,touch:Ph,touchNative:ka,mobileOpera:Rc,mobileGecko:Oc,retina:Nc,passiveEvents:Fc,canvas:In,svg:xa,vml:xh,inlineSvg:kh},Lc=ne.msPointer?"MSPointerDown":"pointerdown",Vc=ne.msPointer?"MSPointerMove":"pointermove",ci=ne.msPointer?"MSPointerUp":"pointerup",Bc=ne.msPointer?"MSPointerCancel":"pointercancel",ui={touchstart:Lc,touchmove:Vc,touchend:ci,touchcancel:Bc},Ra={touchstart:function Uc(o,c){c.MSPOINTER_TYPE_TOUCH&&c.pointerType===c.MSPOINTER_TYPE_TOUCH&&be(c),ms(o,c)},touchmove:ms,touchend:ms,touchcancel:ms},bi={},Rh=!1;function Oh(o,c,h){return"touchstart"===c&&function Nh(){Rh||(document.addEventListener(Lc,Oa,!0),document.addEventListener(Vc,jc,!0),document.addEventListener(ci,Br,!0),document.addEventListener(Bc,Br,!0),Rh=!0)}(),Ra[c]?(h=Ra[c].bind(this,h),o.addEventListener(ui[c],h,!1),h):(console.warn("wrong event specified:",c),L.Util.falseFn)}function Oa(o){bi[o.pointerId]=o}function jc(o){bi[o.pointerId]&&(bi[o.pointerId]=o)}function Br(o){delete bi[o.pointerId]}function ms(o,c){if(c.pointerType!==(c.MSPOINTER_TYPE_MOUSE||"mouse")){for(var h in c.touches=[],bi)c.touches.push(bi[h]);c.changedTouches=[c],o(c)}}var io,ro,jr,Fa,Kn,no=Hr(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),vs=Hr(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),zc="webkitTransition"===vs||"OTransition"===vs?vs+"End":"transitionend";function pr(o){return"string"==typeof o?document.getElementById(o):o}function sn(o,c){var h=o.style[c]||o.currentStyle&&o.currentStyle[c];if((!h||"auto"===h)&&document.defaultView){var p=document.defaultView.getComputedStyle(o,null);h=p?p[c]:null}return"auto"===h?null:h}function Se(o,c,h){var p=document.createElement(o);return p.className=c||"",h&&h.appendChild(p),p}function dt(o){var c=o.parentNode;c&&c.removeChild(o)}function $e(o){for(;o.firstChild;)o.removeChild(o.firstChild)}function ji(o){var c=o.parentNode;c&&c.lastChild!==o&&c.appendChild(o)}function Le(o){var c=o.parentNode;c&&c.firstChild!==o&&c.insertBefore(o,c.firstChild)}function _s(o,c){if(void 0!==o.classList)return o.classList.contains(c);var h=ys(o);return h.length>0&&new RegExp("(^|\\s)"+c+"(\\s|$)").test(h)}function Ee(o,c){if(void 0!==o.classList)for(var h=Bi(c),p=0,m=h.length;pthis.options.maxZoom)?this.setZoom(o):this},panInsideBounds:function(o,c){this._enforcingBounds=!0;var h=this.getCenter(),p=this._limitCenter(h,this._zoom,ve(o));return h.equals(p)||this.panTo(p,c),this._enforcingBounds=!1,this},panInside:function(o,c){var h=xe((c=c||{}).paddingTopLeft||c.padding||[0,0]),p=xe(c.paddingBottomRight||c.padding||[0,0]),m=this.project(this.getCenter()),y=this.project(o),D=this.getPixelBounds(),T=qn([D.min.add(h),D.max.subtract(p)]),I=T.getSize();if(!T.contains(y)){this._enforcingBounds=!0;var O=y.subtract(T.getCenter()),X=T.extend(y).getSize().subtract(I);m.x+=O.x<0?-X.x:X.x,m.y+=O.y<0?-X.y:X.y,this.panTo(this.unproject(m),c),this._enforcingBounds=!1}return this},invalidateSize:function(o){if(!this._loaded)return this;o=Xe({animate:!1,pan:!0},!0===o?{animate:!0}:o);var c=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var h=this.getSize(),p=c.divideBy(2).round(),m=h.divideBy(2).round(),y=p.subtract(m);return y.x||y.y?(o.animate&&o.pan?this.panBy(y):(o.pan&&this._rawPanBy(y),this.fire("move"),o.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(Qe(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:c,newSize:h})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(o){if(o=this._locateOptions=Xe({timeout:1e4,watch:!1},o),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var c=Qe(this._handleGeolocationResponse,this),h=Qe(this._handleGeolocationError,this);return o.watch?this._locationWatchId=navigator.geolocation.watchPosition(c,h,o):navigator.geolocation.getCurrentPosition(c,h,o),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(o){if(this._container._leaflet_id){var c=o.code,h=o.message||(1===c?"permission denied":2===c?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:c,message:"Geolocation error: "+h+"."})}},_handleGeolocationResponse:function(o){if(this._container._leaflet_id){var p=new Je(o.coords.latitude,o.coords.longitude),m=p.toBounds(2*o.coords.accuracy),y=this._locateOptions;if(y.setView){var D=this.getBoundsZoom(m);this.setView(p,y.maxZoom?Math.min(D,y.maxZoom):D)}var T={latlng:p,bounds:m,timestamp:o.timestamp};for(var I in o.coords)"number"==typeof o.coords[I]&&(T[I]=o.coords[I]);this.fire("locationfound",T)}},addHandler:function(o,c){if(!c)return this;var h=this[o]=new c(this);return this._handlers.push(h),this.options[o]&&h.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch{this._container._leaflet_id=void 0,this._containerId=void 0}var o;for(o in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),dt(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(Hn(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[o].remove();for(o in this._panes)dt(this._panes[o]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(o,c){var p=Se("div","leaflet-pane"+(o?" leaflet-"+o.replace("Pane","")+"-pane":""),c||this._mapPane);return o&&(this._panes[o]=p),p},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var o=this.getPixelBounds();return new wn(this.unproject(o.getBottomLeft()),this.unproject(o.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(o,c,h){o=ve(o),h=xe(h||[0,0]);var p=this.getZoom()||0,m=this.getMinZoom(),y=this.getMaxZoom(),D=o.getNorthWest(),T=o.getSouthEast(),I=this.getSize().subtract(h),O=qn(this.project(T,p),this.project(D,p)).getSize(),X=ne.any3d?this.options.zoomSnap:1,Me=I.x/O.x,je=I.y/O.y,Ze=c?Math.max(Me,je):Math.min(Me,je);return p=this.getScaleZoom(Ze,p),X&&(p=Math.round(p/(X/100))*(X/100),p=c?Math.ceil(p/X)*X:Math.floor(p/X)*X),Math.max(m,Math.min(y,p))},getSize:function(){return(!this._size||this._sizeChanged)&&(this._size=new me(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(o,c){var h=this._getTopLeftPoint(o,c);return new Ct(h,h.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(o){return this.options.crs.getProjectedBounds(void 0===o?this.getZoom():o)},getPane:function(o){return"string"==typeof o?this._panes[o]:o},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(o,c){var h=this.options.crs;return c=void 0===c?this._zoom:c,h.scale(o)/h.scale(c)},getScaleZoom:function(o,c){var h=this.options.crs,p=h.zoom(o*h.scale(c=void 0===c?this._zoom:c));return isNaN(p)?1/0:p},project:function(o,c){return c=void 0===c?this._zoom:c,this.options.crs.latLngToPoint(Dt(o),c)},unproject:function(o,c){return c=void 0===c?this._zoom:c,this.options.crs.pointToLatLng(xe(o),c)},layerPointToLatLng:function(o){var c=xe(o).add(this.getPixelOrigin());return this.unproject(c)},latLngToLayerPoint:function(o){return this.project(Dt(o))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(o){return this.options.crs.wrapLatLng(Dt(o))},wrapLatLngBounds:function(o){return this.options.crs.wrapLatLngBounds(ve(o))},distance:function(o,c){return this.options.crs.distance(Dt(o),Dt(c))},containerPointToLayerPoint:function(o){return xe(o).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(o){return xe(o).add(this._getMapPanePos())},containerPointToLatLng:function(o){var c=this.containerPointToLayerPoint(xe(o));return this.layerPointToLatLng(c)},latLngToContainerPoint:function(o){return this.layerPointToContainerPoint(this.latLngToLayerPoint(Dt(o)))},mouseEventToContainerPoint:function(o){return Va(o,this._container)},mouseEventToLayerPoint:function(o){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(o))},mouseEventToLatLng:function(o){return this.layerPointToLatLng(this.mouseEventToLayerPoint(o))},_initContainer:function(o){var c=this._container=pr(o);if(!c)throw new Error("Map container not found.");if(c._leaflet_id)throw new Error("Map container is already initialized.");Te(c,"scroll",this._onScroll,this),this._containerId=Ue(c)},_initLayout:function(){var o=this._container;this._fadeAnimated=this.options.fadeAnimation&&ne.any3d,Ee(o,"leaflet-container"+(ne.touch?" leaflet-touch":"")+(ne.retina?" leaflet-retina":"")+(ne.ielt9?" leaflet-oldie":"")+(ne.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var c=sn(o,"position");"absolute"!==c&&"relative"!==c&&"fixed"!==c&&(o.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var o=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Ve(this._mapPane,new me(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(Ee(o.markerPane,"leaflet-zoom-hide"),Ee(o.shadowPane,"leaflet-zoom-hide"))},_resetView:function(o,c){Ve(this._mapPane,new me(0,0));var h=!this._loaded;this._loaded=!0,c=this._limitZoom(c),this.fire("viewprereset");var p=this._zoom!==c;this._moveStart(p,!1)._move(o,c)._moveEnd(p),this.fire("viewreset"),h&&this.fire("load")},_moveStart:function(o,c){return o&&this.fire("zoomstart"),c||this.fire("movestart"),this},_move:function(o,c,h,p){void 0===c&&(c=this._zoom);var m=this._zoom!==c;return this._zoom=c,this._lastCenter=o,this._pixelOrigin=this._getNewPixelOrigin(o),p?h&&h.pinch&&this.fire("zoom",h):((m||h&&h.pinch)&&this.fire("zoom",h),this.fire("move",h)),this},_moveEnd:function(o){return o&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return Hn(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(o){Ve(this._mapPane,this._getMapPanePos().subtract(o))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(o){this._targets={},this._targets[Ue(this._container)]=this;var c=o?ht:Te;c(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&c(window,"resize",this._onResize,this),ne.any3d&&this.options.transform3DLimit&&(o?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){Hn(this._resizeRequest),this._resizeRequest=$t(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var o=this._getMapPanePos();Math.max(Math.abs(o.x),Math.abs(o.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(o,c){for(var p,h=[],m="mouseout"===c||"mouseover"===c,y=o.target||o.srcElement,D=!1;y;){if((p=this._targets[Ue(y)])&&("click"===c||"preclick"===c)&&this._draggableMoved(p)){D=!0;break}if(p&&p.listens(c,!0)&&(m&&!oo(y,o)||(h.push(p),m))||y===this._container)break;y=y.parentNode}return!h.length&&!D&&!m&&this.listens(c,!0)&&(h=[this]),h},_isClickDisabled:function(o){for(;o!==this._container;){if(o._leaflet_disable_click)return!0;o=o.parentNode}},_handleDOMEvent:function(o){var c=o.target||o.srcElement;if(!(!this._loaded||c._leaflet_disable_events||"click"===o.type&&this._isClickDisabled(c))){var h=o.type;"mousedown"===h&&Gc(c),this._fireDOMEvent(o,h)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(o,c,h){if("click"===o.type){var p=Xe({},o);p.type="preclick",this._fireDOMEvent(p,p.type,h)}var m=this._findEventTargets(o,c);if(h){for(var y=[],D=0;D0?Math.round(o-c)/2:Math.max(0,Math.ceil(o))-Math.max(0,Math.floor(c))},_limitZoom:function(o){var c=this.getMinZoom(),h=this.getMaxZoom(),p=ne.any3d?this.options.zoomSnap:1;return p&&(o=Math.round(o/p)*p),Math.max(c,Math.min(h,o))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){fe(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(o,c){var h=this._getCenterOffset(o)._trunc();return!(!0!==(c&&c.animate)&&!this.getSize().contains(h)||(this.panBy(h,c),0))},_createAnimProxy:function(){var o=this._proxy=Se("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(o),this.on("zoomanim",function(c){var h=no,p=this._proxy.style[h];le(this._proxy,this.project(c.center,c.zoom),this.getZoomScale(c.zoom,1)),p===this._proxy.style[h]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){dt(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var o=this.getCenter(),c=this.getZoom();le(this._proxy,this.project(o,c),this.getZoomScale(c,1))},_catchTransitionEnd:function(o){this._animatingZoom&&o.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(o,c,h){if(this._animatingZoom)return!0;if(h=h||{},!this._zoomAnimated||!1===h.animate||this._nothingToAnimate()||Math.abs(c-this._zoom)>this.options.zoomAnimationThreshold)return!1;var p=this.getZoomScale(c),m=this._getCenterOffset(o)._divideBy(1-1/p);return!(!0!==h.animate&&!this.getSize().contains(m)||($t(function(){this._moveStart(!0,!1)._animateZoom(o,c,!0)},this),0))},_animateZoom:function(o,c,h,p){!this._mapPane||(h&&(this._animatingZoom=!0,this._animateToCenter=o,this._animateToZoom=c,Ee(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:o,zoom:c,noUpdate:p}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(Qe(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){!this._animatingZoom||(this._mapPane&&fe(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});var oe=Si.extend({options:{position:"topright"},initialize:function(o){wt(this,o)},getPosition:function(){return this.options.position},setPosition:function(o){var c=this._map;return c&&c.removeControl(this),this.options.position=o,c&&c.addControl(this),this},getContainer:function(){return this._container},addTo:function(o){this.remove(),this._map=o;var c=this._container=this.onAdd(o),h=this.getPosition(),p=o._controlCorners[h];return Ee(c,"leaflet-control"),-1!==h.indexOf("bottom")?p.insertBefore(c,p.firstChild):p.appendChild(c),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(dt(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(o){this._map&&o&&o.screenX>0&&o.screenY>0&&this._map.getContainer().focus()}}),mr=function(o){return new oe(o)};Oe.include({addControl:function(o){return o.addTo(this),this},removeControl:function(o){return o.remove(),this},_initControlPos:function(){var o=this._controlCorners={},c="leaflet-",h=this._controlContainer=Se("div",c+"control-container",this._container);function p(m,y){o[m+y]=Se("div",c+m+" "+c+y,h)}p("top","left"),p("top","right"),p("bottom","left"),p("bottom","right")},_clearControlPos:function(){for(var o in this._controlCorners)dt(this._controlCorners[o]);dt(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Kc=oe.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(o,c,h,p){return h1)?"":"none"),this._separator.style.display=c&&o?"":"none",this},_onLayerChange:function(o){this._handlingClick||this._update();var c=this._getLayer(Ue(o.target)),h=c.overlay?"add"===o.type?"overlayadd":"overlayremove":"add"===o.type?"baselayerchange":null;h&&this._map.fire(h,c)},_createRadioElement:function(o,c){var h='",p=document.createElement("div");return p.innerHTML=h,p.firstChild},_addItem:function(o){var p,c=document.createElement("label"),h=this._map.hasLayer(o.layer);o.overlay?((p=document.createElement("input")).type="checkbox",p.className="leaflet-control-layers-selector",p.defaultChecked=h):p=this._createRadioElement("leaflet-base-layers_"+Ue(this),h),this._layerControlInputs.push(p),p.layerId=Ue(o.layer),Te(p,"click",this._onInputClick,this);var m=document.createElement("span");m.innerHTML=" "+o.name;var y=document.createElement("span");return c.appendChild(y),y.appendChild(p),y.appendChild(m),(o.overlay?this._overlaysList:this._baseLayersList).appendChild(c),this._checkDisabledLayers(),c},_onInputClick:function(){var c,h,o=this._layerControlInputs,p=[],m=[];this._handlingClick=!0;for(var y=o.length-1;y>=0;y--)h=this._getLayer((c=o[y]).layerId).layer,c.checked?p.push(h):c.checked||m.push(h);for(y=0;y=0;m--)h=this._getLayer((c=o[m]).layerId).layer,c.disabled=void 0!==h.options.minZoom&&ph.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this}}),co=oe.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(o){var c="leaflet-control-zoom",h=Se("div",c+" leaflet-bar"),p=this.options;return this._zoomInButton=this._createButton(p.zoomInText,p.zoomInTitle,c+"-in",h,this._zoomIn),this._zoomOutButton=this._createButton(p.zoomOutText,p.zoomOutTitle,c+"-out",h,this._zoomOut),this._updateDisabled(),o.on("zoomend zoomlevelschange",this._updateDisabled,this),h},onRemove:function(o){o.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(o){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(o.shiftKey?3:1))},_createButton:function(o,c,h,p,m){var y=Se("a",h,p);return y.innerHTML=o,y.href="#",y.title=c,y.setAttribute("role","button"),y.setAttribute("aria-label",c),so(y),Te(y,"click",Ei),Te(y,"click",m,this),Te(y,"click",this._refocusOnMap,this),y},_updateDisabled:function(){var o=this._map,c="leaflet-disabled";fe(this._zoomInButton,c),fe(this._zoomOutButton,c),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||o._zoom===o.getMinZoom())&&(Ee(this._zoomOutButton,c),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||o._zoom===o.getMaxZoom())&&(Ee(this._zoomInButton,c),this._zoomInButton.setAttribute("aria-disabled","true"))}});Oe.mergeOptions({zoomControl:!0}),Oe.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new co,this.addControl(this.zoomControl))});var Ti=oe.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(o){var c="leaflet-control-scale",h=Se("div",c),p=this.options;return this._addScales(p,c+"-line",h),o.on(p.updateWhenIdle?"moveend":"move",this._update,this),o.whenReady(this._update,this),h},onRemove:function(o){o.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(o,c,h){o.metric&&(this._mScale=Se("div",c,h)),o.imperial&&(this._iScale=Se("div",c,h))},_update:function(){var o=this._map,c=o.getSize().y/2,h=o.distance(o.containerPointToLatLng([0,c]),o.containerPointToLatLng([this.options.maxWidth,c]));this._updateScales(h)},_updateScales:function(o){this.options.metric&&o&&this._updateMetric(o),this.options.imperial&&o&&this._updateImperial(o)},_updateMetric:function(o){var c=this._getRoundNum(o);this._updateScale(this._mScale,c<1e3?c+" m":c/1e3+" km",c/o)},_updateImperial:function(o){var h,p,m,c=3.2808399*o;c>5280?(p=this._getRoundNum(h=c/5280),this._updateScale(this._iScale,p+" mi",p/h)):(m=this._getRoundNum(c),this._updateScale(this._iScale,m+" ft",m/c))},_updateScale:function(o,c,h){o.style.width=Math.round(this.options.maxWidth*h)+"px",o.innerHTML=c},_getRoundNum:function(o){var c=Math.pow(10,(Math.floor(o)+"").length-1),h=o/c;return c*(h>=10?10:h>=5?5:h>=3?3:h>=2?2:1)}}),Xc=oe.extend({options:{position:"bottomright",prefix:''+(ne.inlineSvg?' ':"")+"Leaflet"},initialize:function(o){wt(this,o),this._attributions={}},onAdd:function(o){for(var c in o.attributionControl=this,this._container=Se("div","leaflet-control-attribution"),so(this._container),o._layers)o._layers[c].getAttribution&&this.addAttribution(o._layers[c].getAttribution());return this._update(),o.on("layeradd",this._addAttribution,this),this._container},onRemove:function(o){o.off("layeradd",this._addAttribution,this)},_addAttribution:function(o){o.layer.getAttribution&&(this.addAttribution(o.layer.getAttribution()),o.layer.once("remove",function(){this.removeAttribution(o.layer.getAttribution())},this))},setPrefix:function(o){return this.options.prefix=o,this._update(),this},addAttribution:function(o){return o?(this._attributions[o]||(this._attributions[o]=0),this._attributions[o]++,this._update(),this):this},removeAttribution:function(o){return o?(this._attributions[o]&&(this._attributions[o]--,this._update()),this):this},_update:function(){if(this._map){var o=[];for(var c in this._attributions)this._attributions[c]&&o.push(c);var h=[];this.options.prefix&&h.push(this.options.prefix),o.length&&h.push(o.join(", ")),this._container.innerHTML=h.join(' ')}}});Oe.mergeOptions({attributionControl:!0}),Oe.addInitHook(function(){this.options.attributionControl&&(new Xc).addTo(this)});oe.Layers=Kc,oe.Zoom=co,oe.Scale=Ti,oe.Attribution=Xc,mr.layers=function(o,c,h){return new Kc(o,c,h)},mr.zoom=function(o){return new co(o)},mr.scale=function(o){return new Ti(o)},mr.attribution=function(o){return new Xc(o)};var hi=Si.extend({initialize:function(o){this._map=o},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});hi.addTo=function(o,c){return o.addHandler(c,this),this};var ho,Wh={Events:Vt},Qc=ne.touch?"touchstart mousedown":"mousedown",vr=Qs.extend({options:{clickTolerance:3},initialize:function(o,c,h,p){wt(this,p),this._element=o,this._dragStartTarget=c||o,this._preventOutline=h},enable:function(){this._enabled||(Te(this._dragStartTarget,Qc,this._onDown,this),this._enabled=!0)},disable:function(){!this._enabled||(vr._dragging===this&&this.finishDrag(!0),ht(this._dragStartTarget,Qc,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(o){if(this._enabled&&(this._moved=!1,!_s(this._element,"leaflet-zoom-anim"))){if(o.touches&&1!==o.touches.length)return void(vr._dragging===this&&this.finishDrag());if(!(vr._dragging||o.shiftKey||1!==o.which&&1!==o.button&&!o.touches||(vr._dragging=this,this._preventOutline&&Gc(this._element),Wc(),io(),this._moving))){this.fire("down");var c=o.touches?o.touches[0]:o,h=Hh(this._element);this._startPoint=new me(c.clientX,c.clientY),this._startPos=gr(this._element),this._parentScale=$c(h);var p="mousedown"===o.type;Te(document,p?"mousemove":"touchmove",this._onMove,this),Te(document,p?"mouseup":"touchend touchcancel",this._onUp,this)}}},_onMove:function(o){if(this._enabled){if(o.touches&&o.touches.length>1)return void(this._moved=!0);var c=o.touches&&1===o.touches.length?o.touches[0]:o,h=new me(c.clientX,c.clientY)._subtract(this._startPoint);!h.x&&!h.y||Math.abs(h.x)+Math.abs(h.y)c&&(h.push(o[p]),m=p);return my&&(D=T,y=I);y>h&&(c[D]=1,Ke(o,c,h,p,D),Ke(o,c,h,D,m))}function fo(o,c,h,p,m){var T,I,O,y=p?ho:gn(o,h),D=gn(c,h);for(ho=D;;){if(!(y|D))return[o,c];if(y&D)return!1;O=gn(I=ws(o,c,T=y||D,h,m),h),T===y?(o=I,y=O):(c=I,D=O)}}function ws(o,c,h,p,m){var O,X,y=c.x-o.x,D=c.y-o.y,T=p.min,I=p.max;return 8&h?(O=o.x+y*(I.y-o.y)/D,X=I.y):4&h?(O=o.x+y*(T.y-o.y)/D,X=T.y):2&h?(O=I.x,X=o.y+D*(I.x-o.x)/y):1&h&&(O=T.x,X=o.y+D*(T.x-o.x)/y),new me(O,X,m)}function gn(o,c){var h=0;return o.xc.max.x&&(h|=2),o.yc.max.y&&(h|=8),h}function Cs(o,c){var h=c.x-o.x,p=c.y-o.y;return h*h+p*p}function Ds(o,c,h,p){var O,m=c.x,y=c.y,D=h.x-m,T=h.y-y,I=D*D+T*T;return I>0&&((O=((o.x-m)*D+(o.y-y)*T)/I)>1?(m=h.x,y=h.y):O>0&&(m+=D*O,y+=T*O)),D=o.x-m,T=o.y-y,p?D*D+T*T:new me(m,y)}function ft(o){return!rn(o[0])||"object"!=typeof o[0][0]&&typeof o[0][0]<"u"}function Jc(o){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),ft(o)}var eu={__proto__:null,simplify:Ye,pointToSegmentDistance:Gh,closestPointOnSegment:function Hv(o,c,h){return Ds(o,c,h)},clipSegment:fo,_getEdgeIntersection:ws,_getBitCode:gn,_sqClosestPointOnSegment:Ds,isFlat:ft,_flat:Jc};function Ba(o,c,h){var p,y,D,T,I,O,X,Me,je,m=[1,4,2,8];for(y=0,X=o.length;y1e-7;T++)O=m*Math.sin(D),O=Math.pow((1-O)/(1+O),m/2),D+=I=Math.PI/2-2*Math.atan(y*O)-D;return new Je(D*c,o.x*c/h)}},nu={__proto__:null,LonLat:st,Mercator:Ha,SphericalMercator:He},ie=Xe({},it,{code:"EPSG:3395",projection:Ha,transformation:function(){var o=.5/(Math.PI*Ha.R);return Js(o,.5,-o,.5)}()}),vt=Xe({},it,{code:"EPSG:4326",projection:st,transformation:Js(1/180,1,-1/180,.5)}),on=Xe({},ut,{projection:st,transformation:Js(1,0,-1,0),scale:function(o){return Math.pow(2,o)},zoom:function(o){return Math.log(o)/Math.LN2},distance:function(o,c){var h=c.lng-o.lng,p=c.lat-o.lat;return Math.sqrt(h*h+p*p)},infinite:!0});ut.Earth=it,ut.EPSG3395=ie,ut.EPSG3857=Vr,ut.EPSG900913=Sh,ut.EPSG4326=vt,ut.Simple=on;var Bt=Qs.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(o){return o.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(o){return o&&o.removeLayer(this),this},getPane:function(o){return this._map.getPane(o?this.options[o]||o:this.options.pane)},addInteractiveTarget:function(o){return this._map._targets[Ue(o)]=this,this},removeInteractiveTarget:function(o){return delete this._map._targets[Ue(o)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(o){var c=o.target;if(c.hasLayer(this)){if(this._map=c,this._zoomAnimated=c._zoomAnimated,this.getEvents){var h=this.getEvents();c.on(h,this),this.once("remove",function(){c.off(h,this)},this)}this.onAdd(c),this.fire("add"),c.fire("layeradd",{layer:this})}}});Oe.include({addLayer:function(o){if(!o._layerAdd)throw new Error("The provided object is not a Layer.");var c=Ue(o);return this._layers[c]||(this._layers[c]=o,o._mapToAdd=this,o.beforeAdd&&o.beforeAdd(this),this.whenReady(o._layerAdd,o)),this},removeLayer:function(o){var c=Ue(o);return this._layers[c]?(this._loaded&&o.onRemove(this),delete this._layers[c],this._loaded&&(this.fire("layerremove",{layer:o}),o.fire("remove")),o._map=o._mapToAdd=null,this):this},hasLayer:function(o){return Ue(o)in this._layers},eachLayer:function(o,c){for(var h in this._layers)o.call(c,this._layers[h]);return this},_addLayers:function(o){for(var c=0,h=(o=o?rn(o)?o:[o]:[]).length;cthis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()c)return this._map.layerPointToLatLng([y.x-(D=(p-c)/h)*(y.x-m.x),y.y-D*(y.y-m.y)])},getBounds:function(){return this._bounds},addLatLng:function(o,c){return c=c||this._defaultShape(),o=Dt(o),c.push(o),this._bounds.extend(o),this.redraw()},_setLatLngs:function(o){this._bounds=new wn,this._latlngs=this._convertLatLngs(o)},_defaultShape:function(){return ft(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(o){for(var c=[],h=ft(o),p=0,m=o.length;p=2&&c[0]instanceof Je&&c[0].equals(c[h-1])&&c.pop(),c},_setLatLngs:function(o){Dn.prototype._setLatLngs.call(this,o),ft(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return ft(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var o=this._renderer._bounds,c=this.options.weight,h=new me(c,c);if(o=new Ct(o.min.subtract(h),o.max.add(h)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(o)){if(this.options.noClip)return void(this._parts=this._rings);for(var y,p=0,m=this._rings.length;po.y!=(m=h[T]).y>o.y&&o.x<(m.x-p.x)*(o.y-p.y)/(m.y-p.y)+p.x&&(c=!c);return c||Dn.prototype._containsPoint.call(this,o,!0)}});var An=qt.extend({initialize:function(o,c){wt(this,c),this._layers={},o&&this.addData(o)},addData:function(o){var h,p,m,c=rn(o)?o:o.features;if(c){for(h=0,p=c.length;h0?p:[c.src]}else{rn(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(c.style,"objectFit")&&(c.style.objectFit="fill"),c.autoplay=!!this.options.autoplay,c.loop=!!this.options.loop,c.muted=!!this.options.muted,c.playsInline=!!this.options.playsInline;for(var y=0;ym?(c.height=m+"px",Ee(o,y)):fe(o,y),this._containerWidth=this._container.offsetWidth},_animateZoom:function(o){var c=this._map._latLngToNewLayerPoint(this._latlng,o.zoom,o.center),h=this._getAnchor();Ve(this._container,c.add(h))},_adjustPan:function(o){if(this.options.autoPan){this._map._panAnim&&this._map._panAnim.stop();var c=this._map,h=parseInt(sn(this._container,"marginBottom"),10)||0,p=this._container.offsetHeight+h,m=this._containerWidth,y=new me(this._containerLeft,-p-this._containerBottom);y._add(gr(this._container));var D=c.layerPointToContainerPoint(y),T=xe(this.options.autoPanPadding),I=xe(this.options.autoPanPaddingTopLeft||T),O=xe(this.options.autoPanPaddingBottomRight||T),X=c.getSize(),Me=0,je=0;D.x+m+O.x>X.x&&(Me=D.x+m-X.x+O.x),D.x-Me-I.x<0&&(Me=D.x-I.x),D.y+p+O.y>X.y&&(je=D.y+p-X.y+O.y),D.y-je-I.y<0&&(je=D.y-I.y),(Me||je)&&c.fire("autopanstart").panBy([Me,je],{animate:o&&"moveend"===o.type})}},_getAnchor:function(){return xe(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});Oe.mergeOptions({closePopupOnClick:!0}),Oe.include({openPopup:function(o,c,h){return this._initOverlay(_o,o,c,h).openOn(this),this},closePopup:function(o){return(o=arguments.length?o:this._popup)&&o.close(),this}}),Bt.include({bindPopup:function(o,c){return this._popup=this._initOverlay(_o,this._popup,o,c),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(o){return this._popup&&this._popup._prepareOpen(o)&&this._popup.openOn(this._map),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(o){return this._popup&&this._popup.setContent(o),this},getPopup:function(){return this._popup},_openPopup:function(o){if(this._popup&&this._map){Ei(o);var c=o.layer||o.target;if(this._popup._source===c&&!(c instanceof et))return void(this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(o.latlng));this._popup._source=c,this.openPopup(o.latlng)}},_movePopup:function(o){this._popup.setLatLng(o.latlng)},_onKeyPress:function(o){13===o.originalEvent.keyCode&&this._openPopup(o)}});var yo=xt.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(o){xt.prototype.onAdd.call(this,o),this.setOpacity(this.options.opacity),o.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(o){xt.prototype.onRemove.call(this,o),o.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var o=xt.prototype.getEvents.call(this);return this.options.permanent||(o.preclick=this.close),o},_initLayout:function(){this._contentNode=this._container=Se("div","leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide"))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(o){var c,h,p=this._map,m=this._container,y=p.latLngToContainerPoint(p.getCenter()),D=p.layerPointToContainerPoint(o),T=this.options.direction,I=m.offsetWidth,O=m.offsetHeight,X=xe(this.options.offset),Me=this._getAnchor();"top"===T?(c=I/2,h=O):"bottom"===T?(c=I/2,h=0):"center"===T?(c=I/2,h=O/2):"right"===T?(c=0,h=O/2):"left"===T?(c=I,h=O/2):D.xthis.options.maxZoom||hp&&this._retainParent(m,y,D,p))},_retainChildren:function(o,c,h,p){for(var m=2*o;m<2*o+2;m++)for(var y=2*c;y<2*c+2;y++){var D=new me(m,y);D.z=h+1;var T=this._tileCoordsToKey(D),I=this._tiles[T];I&&I.active?I.retain=!0:(I&&I.loaded&&(I.retain=!0),h+1this.options.maxZoom||void 0!==this.options.minZoom&&m1)return void this._setView(o,h);for(var Me=m.min.y;Me<=m.max.y;Me++)for(var je=m.min.x;je<=m.max.x;je++){var Ze=new me(je,Me);if(Ze.z=this._tileZoom,this._isValidTile(Ze)){var Xi=this._tiles[this._tileCoordsToKey(Ze)];Xi?Xi.current=!0:D.push(Ze)}}if(D.sort(function(ot,qa){return ot.distanceTo(y)-qa.distanceTo(y)}),0!==D.length){this._loading||(this._loading=!0,this.fire("loading"));var So=document.createDocumentFragment();for(je=0;jeh.max.x)||!c.wrapLat&&(o.yh.max.y))return!1}if(!this.options.bounds)return!0;var p=this._tileCoordsToBounds(o);return ve(this.options.bounds).overlaps(p)},_keyToBounds:function(o){return this._tileCoordsToBounds(this._keyToTileCoords(o))},_tileCoordsToNwSe:function(o){var c=this._map,h=this.getTileSize(),p=o.scaleBy(h),m=p.add(h);return[c.unproject(p,o.z),c.unproject(m,o.z)]},_tileCoordsToBounds:function(o){var c=this._tileCoordsToNwSe(o),h=new wn(c[0],c[1]);return this.options.noWrap||(h=this._map.wrapLatLngBounds(h)),h},_tileCoordsToKey:function(o){return o.x+":"+o.y+":"+o.z},_keyToTileCoords:function(o){var c=o.split(":"),h=new me(+c[0],+c[1]);return h.z=+c[2],h},_removeTile:function(o){var c=this._tiles[o];!c||(dt(c.el),delete this._tiles[o],this.fire("tileunload",{tile:c.el,coords:this._keyToTileCoords(o)}))},_initTile:function(o){Ee(o,"leaflet-tile");var c=this.getTileSize();o.style.width=c.x+"px",o.style.height=c.y+"px",o.onselectstart=ct,o.onmousemove=ct,ne.ielt9&&this.options.opacity<1&&Yn(o,this.options.opacity)},_addTile:function(o,c){var h=this._getTilePos(o),p=this._tileCoordsToKey(o),m=this.createTile(this._wrapCoords(o),Qe(this._tileReady,this,o));this._initTile(m),this.createTile.length<2&&$t(Qe(this._tileReady,this,o,null,m)),Ve(m,h),this._tiles[p]={el:m,coords:o,current:!0},c.appendChild(m),this.fire("tileloadstart",{tile:m,coords:o})},_tileReady:function(o,c,h){c&&this.fire("tileerror",{error:c,tile:h,coords:o});var p=this._tileCoordsToKey(o);(h=this._tiles[p])&&(h.loaded=+new Date,this._map._fadeAnimated?(Yn(h.el,0),Hn(this._fadeFrame),this._fadeFrame=$t(this._updateOpacity,this)):(h.active=!0,this._pruneTiles()),c||(Ee(h.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:h.el,coords:o})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),ne.ielt9||!this._map._fadeAnimated?$t(this._pruneTiles,this):setTimeout(Qe(this._pruneTiles,this),250)))},_getTilePos:function(o){return o.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(o){var c=new me(this._wrapX?Nr(o.x,this._wrapX):o.x,this._wrapY?Nr(o.y,this._wrapY):o.y);return c.z=o.z,c},_pxBoundsToTileRange:function(o){var c=this.getTileSize();return new Ct(o.min.unscaleBy(c).floor(),o.max.unscaleBy(c).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var o in this._tiles)if(!this._tiles[o].loaded)return!1;return!0}});var bs=wo.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(o,c){this._url=o,(c=wt(this,c)).detectRetina&&ne.retina&&c.maxZoom>0&&(c.tileSize=Math.floor(c.tileSize/2),c.zoomReverse?(c.zoomOffset--,c.minZoom++):(c.zoomOffset++,c.maxZoom--),c.minZoom=Math.max(0,c.minZoom)),"string"==typeof c.subdomains&&(c.subdomains=c.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(o,c){return this._url===o&&void 0===c&&(c=!0),this._url=o,c||this.redraw(),this},createTile:function(o,c){var h=document.createElement("img");return Te(h,"load",Qe(this._tileOnLoad,this,c,h)),Te(h,"error",Qe(this._tileOnError,this,c,h)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(h.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),"string"==typeof this.options.referrerPolicy&&(h.referrerPolicy=this.options.referrerPolicy),h.alt="",h.setAttribute("role","presentation"),h.src=this.getTileUrl(o),h},getTileUrl:function(o){var c={r:ne.retina?"@2x":"",s:this._getSubdomain(o),x:o.x,y:o.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var h=this._globalTileRange.max.y-o.y;this.options.tms&&(c.y=h),c["-y"]=h}return Ys(this._url,Xe(c,this.options))},_tileOnLoad:function(o,c){ne.ielt9?setTimeout(Qe(o,this,null,c),0):o(null,c)},_tileOnError:function(o,c,h){var p=this.options.errorTileUrl;p&&c.getAttribute("src")!==p&&(c.src=p),o(h,c)},_onTileRemove:function(o){o.tile.onload=null},_getZoomForUrl:function(){var o=this._tileZoom;return this.options.zoomReverse&&(o=this.options.maxZoom-o),o+this.options.zoomOffset},_getSubdomain:function(o){var c=Math.abs(o.x+o.y)%this.options.subdomains.length;return this.options.subdomains[c]},_abortLoading:function(){var o,c;for(o in this._tiles)if(this._tiles[o].coords.z!==this._tileZoom&&((c=this._tiles[o].el).onload=ct,c.onerror=ct,!c.complete)){c.src=Ks;var h=this._tiles[o].coords;dt(c),delete this._tiles[o],this.fire("tileabort",{tile:c,coords:h})}},_removeTile:function(o){var c=this._tiles[o];if(c)return c.el.setAttribute("src",Ks),wo.prototype._removeTile.call(this,o)},_tileReady:function(o,c,h){if(this._map&&(!h||h.getAttribute("src")!==Ks))return wo.prototype._tileReady.call(this,o,c,h)}});function qh(o,c){return new bs(o,c)}var Yh=bs.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(o,c){this._url=o;var h=Xe({},this.defaultWmsParams);for(var p in c)p in this.options||(h[p]=c[p]);var m=(c=wt(this,c)).detectRetina&&ne.retina?2:1,y=this.getTileSize();h.width=y.x*m,h.height=y.y*m,this.wmsParams=h},onAdd:function(o){this._crs=this.options.crs||o.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version),this.wmsParams[this._wmsVersion>=1.3?"crs":"srs"]=this._crs.code,bs.prototype.onAdd.call(this,o)},getTileUrl:function(o){var c=this._tileCoordsToNwSe(o),h=this._crs,p=qn(h.project(c[0]),h.project(c[1])),m=p.min,y=p.max,D=(this._wmsVersion>=1.3&&this._crs===vt?[m.y,m.x,y.y,y.x]:[m.x,m.y,y.x,y.y]).join(","),T=bs.prototype.getTileUrl.call(this,o);return T+Dc(this.wmsParams,T,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+D},setParams:function(o,c){return Xe(this.wmsParams,o),c||this.redraw(),this}});bs.WMS=Yh,qh.wms=function Wv(o,c){return new Yh(o,c)};var Yi=Bt.extend({options:{padding:.1},initialize:function(o){wt(this,o),Ue(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&Ee(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var o={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(o.zoomanim=this._onAnimZoom),o},_onAnimZoom:function(o){this._updateTransform(o.center,o.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(o,c){var h=this._map.getZoomScale(c,this._zoom),p=this._map.getSize().multiplyBy(.5+this.options.padding),m=this._map.project(this._center,c),y=p.multiplyBy(-h).add(m).subtract(this._map._getNewPixelOrigin(o,c));ne.any3d?le(this._container,y,h):Ve(this._container,y)},_reset:function(){for(var o in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[o]._reset()},_onZoomEnd:function(){for(var o in this._layers)this._layers[o]._project()},_updatePaths:function(){for(var o in this._layers)this._layers[o]._update()},_update:function(){var o=this.options.padding,c=this._map.getSize(),h=this._map.containerPointToLayerPoint(c.multiplyBy(-o)).round();this._bounds=new Ct(h,h.add(c.multiplyBy(1+2*o)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),Kh=Yi.extend({options:{tolerance:0},getEvents:function(){var o=Yi.prototype.getEvents.call(this);return o.viewprereset=this._onViewPreReset,o},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){Yi.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var o=this._container=document.createElement("canvas");Te(o,"mousemove",this._onMouseMove,this),Te(o,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Te(o,"mouseout",this._handleMouseOut,this),o._leaflet_disable_events=!0,this._ctx=o.getContext("2d")},_destroyContainer:function(){Hn(this._redrawRequest),delete this._ctx,dt(this._container),ht(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var c in this._redrawBounds=null,this._layers)this._layers[c]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){Yi.prototype._update.call(this);var o=this._bounds,c=this._container,h=o.getSize(),p=ne.retina?2:1;Ve(c,o.min),c.width=p*h.x,c.height=p*h.y,c.style.width=h.x+"px",c.style.height=h.y+"px",ne.retina&&this._ctx.scale(2,2),this._ctx.translate(-o.min.x,-o.min.y),this.fire("update")}},_reset:function(){Yi.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(o){this._updateDashArray(o),this._layers[Ue(o)]=o;var c=o._order={layer:o,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=c),this._drawLast=c,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(o){this._requestRedraw(o)},_removePath:function(o){var c=o._order,h=c.next,p=c.prev;h?h.prev=p:this._drawLast=p,p?p.next=h:this._drawFirst=h,delete o._order,delete this._layers[Ue(o)],this._requestRedraw(o)},_updatePath:function(o){this._extendRedrawBounds(o),o._project(),o._update(),this._requestRedraw(o)},_updateStyle:function(o){this._updateDashArray(o),this._requestRedraw(o)},_updateDashArray:function(o){if("string"==typeof o.options.dashArray){var p,m,c=o.options.dashArray.split(/[, ]+/),h=[];for(m=0;m')}}catch{}return function(o){return document.createElement("<"+o+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),Gv={_initContainer:function(){this._container=Se("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(Yi.prototype._update.call(this),this.fire("update"))},_initPath:function(o){var c=o._container=Co("shape");Ee(c,"leaflet-vml-shape "+(this.options.className||"")),c.coordsize="1 1",o._path=Co("path"),c.appendChild(o._path),this._updateStyle(o),this._layers[Ue(o)]=o},_addPath:function(o){var c=o._container;this._container.appendChild(c),o.options.interactive&&o.addInteractiveTarget(c)},_removePath:function(o){var c=o._container;dt(c),o.removeInteractiveTarget(c),delete this._layers[Ue(o)]},_updateStyle:function(o){var c=o._stroke,h=o._fill,p=o.options,m=o._container;m.stroked=!!p.stroke,m.filled=!!p.fill,p.stroke?(c||(c=o._stroke=Co("stroke")),m.appendChild(c),c.weight=p.weight+"px",c.color=p.color,c.opacity=p.opacity,c.dashStyle=p.dashArray?rn(p.dashArray)?p.dashArray.join(" "):p.dashArray.replace(/( *, *)/g," "):"",c.endcap=p.lineCap.replace("butt","flat"),c.joinstyle=p.lineJoin):c&&(m.removeChild(c),o._stroke=null),p.fill?(h||(h=o._fill=Co("fill")),m.appendChild(h),h.color=p.fillColor||p.color,h.opacity=p.fillOpacity):h&&(m.removeChild(h),o._fill=null)},_updateCircle:function(o){var c=o._point.round(),h=Math.round(o._radius),p=Math.round(o._radiusY||h);this._setPath(o,o._empty()?"M0 0":"AL "+c.x+","+c.y+" "+h+","+p+" 0,23592600")},_setPath:function(o,c){o._path.v=c},_bringToFront:function(o){ji(o._container)},_bringToBack:function(o){Le(o._container)}},Wa=ne.vml?Co:bh,$r=Yi.extend({_initContainer:function(){this._container=Wa("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=Wa("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){dt(this._container),ht(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!this._map._animatingZoom||!this._bounds){Yi.prototype._update.call(this);var o=this._bounds,c=o.getSize(),h=this._container;(!this._svgSize||!this._svgSize.equals(c))&&(this._svgSize=c,h.setAttribute("width",c.x),h.setAttribute("height",c.y)),Ve(h,o.min),h.setAttribute("viewBox",[o.min.x,o.min.y,c.x,c.y].join(" ")),this.fire("update")}},_initPath:function(o){var c=o._path=Wa("path");o.options.className&&Ee(c,o.options.className),o.options.interactive&&Ee(c,"leaflet-interactive"),this._updateStyle(o),this._layers[Ue(o)]=o},_addPath:function(o){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(o._path),o.addInteractiveTarget(o._path)},_removePath:function(o){dt(o._path),o.removeInteractiveTarget(o._path),delete this._layers[Ue(o)]},_updatePath:function(o){o._project(),o._update()},_updateStyle:function(o){var c=o._path,h=o.options;!c||(h.stroke?(c.setAttribute("stroke",h.color),c.setAttribute("stroke-opacity",h.opacity),c.setAttribute("stroke-width",h.weight),c.setAttribute("stroke-linecap",h.lineCap),c.setAttribute("stroke-linejoin",h.lineJoin),h.dashArray?c.setAttribute("stroke-dasharray",h.dashArray):c.removeAttribute("stroke-dasharray"),h.dashOffset?c.setAttribute("stroke-dashoffset",h.dashOffset):c.removeAttribute("stroke-dashoffset")):c.setAttribute("stroke","none"),h.fill?(c.setAttribute("fill",h.fillColor||h.color),c.setAttribute("fill-opacity",h.fillOpacity),c.setAttribute("fill-rule",h.fillRule||"evenodd")):c.setAttribute("fill","none"))},_updatePoly:function(o,c){this._setPath(o,Eh(o._parts,c))},_updateCircle:function(o){var c=o._point,h=Math.max(Math.round(o._radius),1),m="a"+h+","+(Math.max(Math.round(o._radiusY),1)||h)+" 0 1,0 ",y=o._empty()?"M0 0":"M"+(c.x-h)+","+c.y+m+2*h+",0 "+m+2*-h+",0 ";this._setPath(o,y)},_setPath:function(o,c){o._path.setAttribute("d",c)},_bringToFront:function(o){ji(o._path)},_bringToBack:function(o){Le(o._path)}});function Do(o){return ne.svg||ne.vml?new $r(o):null}ne.vml&&$r.include(Gv),Oe.include({getRenderer:function(o){var c=o.options.renderer||this._getPaneRenderer(o.options.pane)||this.options.renderer||this._renderer;return c||(c=this._renderer=this._createRenderer()),this.hasLayer(c)||this.addLayer(c),c},_getPaneRenderer:function(o){if("overlayPane"===o||void 0===o)return!1;var c=this._paneRenderers[o];return void 0===c&&(c=this._createRenderer({pane:o}),this._paneRenderers[o]=c),c},_createRenderer:function(o){return this.options.preferCanvas&&Xh(o)||Do(o)}});var Qh=Jn.extend({initialize:function(o,c){Jn.prototype.initialize.call(this,this._boundsToLatLngs(o),c)},setBounds:function(o){return this.setLatLngs(this._boundsToLatLngs(o))},_boundsToLatLngs:function(o){return[(o=ve(o)).getSouthWest(),o.getNorthWest(),o.getNorthEast(),o.getSouthEast()]}});$r.create=Wa,$r.pointsToPath=Eh,An.geometryToLayer=Gi,An.coordsToLatLng=tt,An.coordsToLatLngs=go,An.latLngToCoords=Ua,An.latLngsToCoords=yr,An.getFeature=$i,An.asFeature=Zi,Oe.mergeOptions({boxZoom:!0});var Jh=hi.extend({initialize:function(o){this._map=o,this._container=o._container,this._pane=o._panes.overlayPane,this._resetStateTimeout=0,o.on("unload",this._destroy,this)},addHooks:function(){Te(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){ht(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){dt(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(o){if(!o.shiftKey||1!==o.which&&1!==o.button)return!1;this._clearDeferredResetState(),this._resetState(),io(),Wc(),this._startPoint=this._map.mouseEventToContainerPoint(o),Te(document,{contextmenu:Ei,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(o){this._moved||(this._moved=!0,this._box=Se("div","leaflet-zoom-box",this._container),Ee(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(o);var c=new Ct(this._point,this._startPoint),h=c.getSize();Ve(this._box,c.min),this._box.style.width=h.x+"px",this._box.style.height=h.y+"px"},_finish:function(){this._moved&&(dt(this._box),fe(this._container,"leaflet-crosshair")),ro(),Na(),ht(document,{contextmenu:Ei,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(o){if((1===o.which||1===o.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(Qe(this._resetState,this),0);var c=new wn(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(c).fire("boxzoomend",{boxZoomBounds:c})}},_onKeyDown:function(o){27===o.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});Oe.addInitHook("addHandler","boxZoom",Jh),Oe.mergeOptions({doubleClickZoom:!0});var Ki=hi.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(o){var c=this._map,h=c.getZoom(),p=c.options.zoomDelta,m=o.originalEvent.shiftKey?h-p:h+p;"center"===c.options.doubleClickZoom?c.setZoom(m):c.setZoomAround(o.containerPoint,m)}});Oe.addInitHook("addHandler","doubleClickZoom",Ki),Oe.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var Ga=hi.extend({addHooks:function(){if(!this._draggable){var o=this._map;this._draggable=new vr(o._mapPane,o._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),o.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),o.on("zoomend",this._onZoomEnd,this),o.whenReady(this._onZoomEnd,this))}Ee(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){fe(this._map._container,"leaflet-grab"),fe(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var o=this._map;if(o._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var c=ve(this._map.options.maxBounds);this._offsetLimit=qn(this._map.latLngToContainerPoint(c.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(c.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;o.fire("movestart").fire("dragstart"),o.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(o){if(this._map.options.inertia){var c=this._lastTime=+new Date,h=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(h),this._times.push(c),this._prunePositions(c)}this._map.fire("move",o).fire("drag",o)},_prunePositions:function(o){for(;this._positions.length>1&&o-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var o=this._map.getSize().divideBy(2),c=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=c.subtract(o).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(o,c){return o-(o-c)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var o=this._draggable._newPos.subtract(this._draggable._startPos),c=this._offsetLimit;o.xc.max.x&&(o.x=this._viscousLimit(o.x,c.max.x)),o.y>c.max.y&&(o.y=this._viscousLimit(o.y,c.max.y)),this._draggable._newPos=this._draggable._startPos.add(o)}},_onPreDragWrap:function(){var o=this._worldWidth,c=Math.round(o/2),h=this._initialWorldOffset,p=this._draggable._newPos.x,m=(p-c+h)%o+c-h,y=(p+c+h)%o-c-h,D=Math.abs(m+h)0?y:-y))-c;this._delta=0,this._startTime=null,D&&("center"===o.options.scrollWheelZoom?o.setZoom(c+D):o.setZoomAround(this._lastMousePos,c+D))}});Oe.addInitHook("addHandler","scrollWheelZoom",$a);Oe.mergeOptions({tapHold:ne.touchNative&&ne.safari&&ne.mobile,tapTolerance:15});var iu=hi.extend({addHooks:function(){Te(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){ht(this._map._container,"touchstart",this._onDown,this)},_onDown:function(o){if(clearTimeout(this._holdTimeout),1===o.touches.length){var c=o.touches[0];this._startPos=this._newPos=new me(c.clientX,c.clientY),this._holdTimeout=setTimeout(Qe(function(){this._cancel(),this._isTapValid()&&(Te(document,"touchend",be),Te(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",c))},this),600),Te(document,"touchend touchcancel contextmenu",this._cancel,this),Te(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function o(){ht(document,"touchend",be),ht(document,"touchend touchcancel",o)},_cancel:function(){clearTimeout(this._holdTimeout),ht(document,"touchend touchcancel contextmenu",this._cancel,this),ht(document,"touchmove",this._onMove,this)},_onMove:function(o){var c=o.touches[0];this._newPos=new me(c.clientX,c.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(o,c){var h=new MouseEvent(o,{bubbles:!0,cancelable:!0,view:window,screenX:c.screenX,screenY:c.screenY,clientX:c.clientX,clientY:c.clientY});h._simulated=!0,c.target.dispatchEvent(h)}});Oe.addInitHook("addHandler","tapHold",iu),Oe.mergeOptions({touchZoom:ne.touch,bounceAtZoomLimits:!0});var Za=hi.extend({addHooks:function(){Ee(this._map._container,"leaflet-touch-zoom"),Te(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){fe(this._map._container,"leaflet-touch-zoom"),ht(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(o){var c=this._map;if(o.touches&&2===o.touches.length&&!c._animatingZoom&&!this._zooming){var h=c.mouseEventToContainerPoint(o.touches[0]),p=c.mouseEventToContainerPoint(o.touches[1]);this._centerPoint=c.getSize()._divideBy(2),this._startLatLng=c.containerPointToLatLng(this._centerPoint),"center"!==c.options.touchZoom&&(this._pinchStartLatLng=c.containerPointToLatLng(h.add(p)._divideBy(2))),this._startDist=h.distanceTo(p),this._startZoom=c.getZoom(),this._moved=!1,this._zooming=!0,c._stop(),Te(document,"touchmove",this._onTouchMove,this),Te(document,"touchend touchcancel",this._onTouchEnd,this),be(o)}},_onTouchMove:function(o){if(o.touches&&2===o.touches.length&&this._zooming){var c=this._map,h=c.mouseEventToContainerPoint(o.touches[0]),p=c.mouseEventToContainerPoint(o.touches[1]),m=h.distanceTo(p)/this._startDist;if(this._zoom=c.getScaleZoom(m,this._startZoom),!c.options.bounceAtZoomLimits&&(this._zoomc.getMaxZoom()&&m>1)&&(this._zoom=c._limitZoom(this._zoom)),"center"===c.options.touchZoom){if(this._center=this._startLatLng,1===m)return}else{var y=h._add(p)._divideBy(2)._subtract(this._centerPoint);if(1===m&&0===y.x&&0===y.y)return;this._center=c.unproject(c.project(this._pinchStartLatLng,this._zoom).subtract(y),this._zoom)}this._moved||(c._moveStart(!0,!1),this._moved=!0),Hn(this._animRequest);var D=Qe(c._move,c,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=$t(D,this,!0),be(o)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,Hn(this._animRequest),ht(document,"touchmove",this._onTouchMove,this),ht(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});Oe.addInitHook("addHandler","touchZoom",Za),Oe.BoxZoom=Jh,Oe.DoubleClickZoom=Ki,Oe.Drag=Ga,Oe.Keyboard=Kt,Oe.ScrollWheelZoom=$a,Oe.TapHold=iu,Oe.TouchZoom=Za,B.Bounds=Ct,B.Browser=ne,B.CRS=ut,B.Canvas=Kh,B.Circle=we,B.CircleMarker=Wi,B.Class=Si,B.Control=oe,B.DivIcon=Zh,B.DivOverlay=xt,B.DomEvent=ao,B.DomUtil=jh,B.Draggable=vr,B.Evented=Qs,B.FeatureGroup=qt,B.GeoJSON=An,B.GridLayer=wo,B.Handler=hi,B.Icon=ye,B.ImageOverlay=mo,B.LatLng=Je,B.LatLngBounds=wn,B.Layer=Bt,B.LayerGroup=jn,B.LineUtil=eu,B.Map=Oe,B.Marker=Pt,B.Mixin=Wh,B.Path=et,B.Point=me,B.PolyUtil=tu,B.Polygon=Jn,B.Polyline=Dn,B.Popup=_o,B.PosAnimation=lo,B.Projection=nu,B.Rectangle=Qh,B.Renderer=Yi,B.SVG=$r,B.SVGOverlay=Ss,B.TileLayer=bs,B.Tooltip=yo,B.Transformation=gs,B.Util=ba,B.VideoOverlay=Wn,B.bind=Qe,B.bounds=qn,B.canvas=Xh,B.circle=function po(o,c,h){return new we(o,c,h)},B.circleMarker=function Wr(o,c){return new Wi(o,c)},B.control=mr,B.divIcon=function Uv(o){return new Zh(o)},B.extend=Xe,B.featureGroup=function(o,c){return new qt(o,c)},B.geoJSON=qi,B.geoJson=an,B.gridLayer=function zv(o){return new wo(o)},B.icon=function _t(o){return new ye(o)},B.imageOverlay=function(o,c,h){return new mo(o,c,h)},B.latLng=Dt,B.latLngBounds=ve,B.layerGroup=function(o,c){return new jn(o,c)},B.map=function zh(o,c){return new Oe(o,c)},B.marker=function _r(o,c){return new Pt(o,c)},B.point=xe,B.polygon=function Sn(o,c){return new Jn(o,c)},B.polyline=function ja(o,c){return new Dn(o,c)},B.popup=function(o,c){return new _o(o,c)},B.rectangle=function $v(o,c){return new Qh(o,c)},B.setOptions=wt,B.stamp=Ue,B.svg=Do,B.svgOverlay=function vo(o,c,h){return new Ss(o,c,h)},B.tileLayer=qh,B.tooltip=function(o,c){return new yo(o,c)},B.transformation=Js,B.version="1.8.0",B.videoOverlay=function za(o,c,h){return new Wn(o,c,h)};var ru=window.L;B.noConflict=function(){return window.L=ru,this},window.L=B}(Cc)}},wc=>{wc(wc.s=682)}]); \ No newline at end of file diff --git a/Web/Resgrid.Web/wwwroot/js/ng/main.de531c90083e84ba.js b/Web/Resgrid.Web/wwwroot/js/ng/main.de531c90083e84ba.js deleted file mode 100644 index edc99ac9d..000000000 --- a/Web/Resgrid.Web/wwwroot/js/ng/main.de531c90083e84ba.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkApps=self.webpackChunkApps||[]).push([[179],{860:(Zl,ql,B)=>{"use strict";function Pe(n){return"function"==typeof n}function Ye(n){const e=n(i=>{Error.call(i),i.stack=(new Error).stack});return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}const Sr=Ye(n=>function(e){n(this),this.message=e?`${e.length} errors occurred during unsubscription:\n${e.map((i,r)=>`${r+1}) ${i.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=e});function Ke(n,t){if(n){const e=n.indexOf(t);0<=e&&n.splice(e,1)}}class An{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;const{_parentage:e}=this;if(e)if(this._parentage=null,Array.isArray(e))for(const s of e)s.remove(this);else e.remove(this);const{initialTeardown:i}=this;if(Pe(i))try{i()}catch(s){t=s instanceof Sr?s.errors:[s]}const{_finalizers:r}=this;if(r){this._finalizers=null;for(const s of r)try{br(s)}catch(a){t=t??[],a instanceof Sr?t=[...t,...a.errors]:t.push(a)}}if(t)throw new Sr(t)}}add(t){var e;if(t&&t!==this)if(this.closed)br(t);else{if(t instanceof An){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(e=this._finalizers)&&void 0!==e?e:[]).push(t)}}_hasParent(t){const{_parentage:e}=this;return e===t||Array.isArray(e)&&e.includes(t)}_addParent(t){const{_parentage:e}=this;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t}_removeParent(t){const{_parentage:e}=this;e===t?this._parentage=null:Array.isArray(e)&&Ke(e,t)}remove(t){const{_finalizers:e}=this;e&&Ke(e,t),t instanceof An&&t._removeParent(this)}}An.EMPTY=(()=>{const n=new An;return n.closed=!0,n})();const Be=An.EMPTY;function ea(n){return n instanceof An||n&&"closed"in n&&Pe(n.remove)&&Pe(n.add)&&Pe(n.unsubscribe)}function br(n){Pe(n)?n():n.unsubscribe()}const nt={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},vn={setTimeout(n,t,...e){const{delegate:i}=vn;return(null==i?void 0:i.setTimeout)?i.setTimeout(n,t,...e):setTimeout(n,t,...e)},clearTimeout(n){const{delegate:t}=vn;return((null==t?void 0:t.clearTimeout)||clearTimeout)(n)},delegate:void 0};function xs(n){vn.setTimeout(()=>{const{onUnhandledError:t}=nt;if(!t)throw n;t(n)})}function ki(){}const ft=ks("C",void 0,void 0);function ks(n,t,e){return{kind:n,value:t,error:e}}let Yt=null;function Er(n){if(nt.useDeprecatedSynchronousErrorHandling){const t=!Yt;if(t&&(Yt={errorThrown:!1,error:null}),n(),t){const{errorThrown:e,error:i}=Yt;if(Yt=null,e)throw i}}else n()}class es extends An{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,ea(t)&&t.add(this)):this.destination=mi}static create(t,e,i){return new Tr(t,e,i)}next(t){this.isStopped?na(function Rd(n){return ks("N",n,void 0)}(t),this):this._next(t)}error(t){this.isStopped?na(function Yl(n){return ks("E",void 0,n)}(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?na(ft,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const Kl=Function.prototype.bind;function Os(n,t){return Kl.call(n,t)}class ta{constructor(t){this.partialObserver=t}next(t){const{partialObserver:e}=this;if(e.next)try{e.next(t)}catch(i){Ht(i)}}error(t){const{partialObserver:e}=this;if(e.error)try{e.error(t)}catch(i){Ht(i)}else Ht(t)}complete(){const{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(e){Ht(e)}}}class Tr extends es{constructor(t,e,i){let r;if(super(),Pe(t)||!t)r={next:t??void 0,error:e??void 0,complete:i??void 0};else{let s;this&&nt.useDeprecatedNextContext?(s=Object.create(t),s.unsubscribe=()=>this.unsubscribe(),r={next:t.next&&Os(t.next,s),error:t.error&&Os(t.error,s),complete:t.complete&&Os(t.complete,s)}):r=t}this.destination=new ta(r)}}function Ht(n){nt.useDeprecatedSynchronousErrorHandling?function Rs(n){nt.useDeprecatedSynchronousErrorHandling&&Yt&&(Yt.errorThrown=!0,Yt.error=n)}(n):xs(n)}function na(n,t){const{onStoppedNotification:e}=nt;e&&vn.setTimeout(()=>e(n,t))}const mi={closed:!0,next:ki,error:function xn(n){throw n},complete:ki},ia="function"==typeof Symbol&&Symbol.observable||"@@observable";function kt(n){return n}let it=(()=>{class n{constructor(e){e&&(this._subscribe=e)}lift(e){const i=new n;return i.source=this,i.operator=e,i}subscribe(e,i,r){const s=function Bn(n){return n&&n instanceof es||function pt(n){return n&&Pe(n.next)&&Pe(n.error)&&Pe(n.complete)}(n)&&ea(n)}(e)?e:new Tr(e,i,r);return Er(()=>{const{operator:a,source:l}=this;s.add(a?a.call(s,l):l?this._subscribe(s):this._trySubscribe(s))}),s}_trySubscribe(e){try{return this._subscribe(e)}catch(i){e.error(i)}}forEach(e,i){return new(i=Te(i))((r,s)=>{const a=new Tr({next:l=>{try{e(l)}catch(c){s(c),a.unsubscribe()}},error:s,complete:r});this.subscribe(a)})}_subscribe(e){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(e)}[ia](){return this}pipe(...e){return function fe(n){return 0===n.length?kt:1===n.length?n[0]:function(e){return n.reduce((i,r)=>r(i),e)}}(e)(this)}toPromise(e){return new(e=Te(e))((i,r)=>{let s;this.subscribe(a=>s=a,a=>r(a),()=>i(s))})}}return n.create=t=>new n(t),n})();function Te(n){var t;return null!==(t=n??nt.Promise)&&void 0!==t?t:Promise}const ln=Ye(n=>function(){n(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let Me=(()=>{class n extends it{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){const i=new Qe(this,this);return i.operator=e,i}_throwIfClosed(){if(this.closed)throw new ln}next(e){Er(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(e)}})}error(e){Er(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=e;const{observers:i}=this;for(;i.length;)i.shift().error(e)}})}complete(){Er(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:e}=this;for(;e.length;)e.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0}_trySubscribe(e){return this._throwIfClosed(),super._trySubscribe(e)}_subscribe(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)}_innerSubscribe(e){const{hasError:i,isStopped:r,observers:s}=this;return i||r?Be:(this.currentObservers=null,s.push(e),new An(()=>{this.currentObservers=null,Ke(s,e)}))}_checkFinalizedStatuses(e){const{hasError:i,thrownError:r,isStopped:s}=this;i?e.error(r):s&&e.complete()}asObservable(){const e=new it;return e.source=this,e}}return n.create=(t,e)=>new Qe(t,e),n})();class Qe extends Me{constructor(t,e){super(),this.destination=t,this.source=e}next(t){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===i||i.call(e,t)}error(t){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===i||i.call(e,t)}complete(){var t,e;null===(e=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===e||e.call(t)}_subscribe(t){var e,i;return null!==(i=null===(e=this.source)||void 0===e?void 0:e.subscribe(t))&&void 0!==i?i:Be}}function ut(n){return t=>{if(function gt(n){return Pe(null==n?void 0:n.lift)}(t))return t.lift(function(e){try{return n(e,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function mt(n,t,e,i,r){return new Ql(n,t,e,i,r)}class Ql extends es{constructor(t,e,i,r,s,a){super(t),this.onFinalize=s,this.shouldUnsubscribe=a,this._next=e?function(l){try{e(l)}catch(c){t.error(c)}}:super._next,this._error=r?function(l){try{r(l)}catch(c){t.error(c)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(l){t.error(l)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:e}=this;super.unsubscribe(),!e&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}}}function He(n,t){return ut((e,i)=>{let r=0;e.subscribe(mt(i,s=>{i.next(n.call(t,s,r++))}))})}var Mr=function(){return Mr=Object.assign||function(t){for(var e,i=1,r=arguments.length;i1||l(v,y)})})}function l(v,y){try{!function c(v){v.value instanceof Ri?Promise.resolve(v.value.v).then(d,f):g(s[0][2],v)}(i[v](y))}catch(w){g(s[0][3],w)}}function d(v){l("next",v)}function f(v){l("throw",v)}function g(v,y){v(y),s.shift(),s.length&&l(s[0][0],s[0][1])}}function iu(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,t=n[Symbol.asyncIterator];return t?t.call(n):(n=function sa(n){var t="function"==typeof Symbol&&Symbol.iterator,e=t&&n[t],i=0;if(e)return e.call(n);if(n&&"number"==typeof n.length)return{next:function(){return n&&i>=n.length&&(n=void 0),{value:n&&n[i++],done:!n}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(n),e={},i("next"),i("throw"),i("return"),e[Symbol.asyncIterator]=function(){return this},e);function i(s){e[s]=n[s]&&function(a){return new Promise(function(l,c){!function r(s,a,l,c){Promise.resolve(c).then(function(d){s({value:d,done:l})},a)}(l,c,(a=n[s](a)).done,a.value)})}}}const oa=n=>n&&"number"==typeof n.length&&"function"!=typeof n;function su(n){return Pe(null==n?void 0:n.then)}function aa(n){return Pe(n[ia])}function la(n){return Symbol.asyncIterator&&Pe(null==n?void 0:n[Symbol.asyncIterator])}function ua(n){return new TypeError(`You provided ${null!==n&&"object"==typeof n?"an invalid object":`'${n}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const ou=function jd(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function au(n){return Pe(null==n?void 0:n[ou])}function lu(n){return nu(this,arguments,function*(){const e=n.getReader();try{for(;;){const{value:i,done:r}=yield Ri(e.read());if(r)return yield Ri(void 0);yield yield Ri(i)}}finally{e.releaseLock()}})}function uu(n){return Pe(null==n?void 0:n.getReader)}function Hn(n){if(n instanceof it)return n;if(null!=n){if(aa(n))return function ca(n){return new it(t=>{const e=n[ia]();if(Pe(e.subscribe))return e.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(n);if(oa(n))return function Ud(n){return new it(t=>{for(let e=0;e{n.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,xs)})}(n);if(la(n))return J(n);if(au(n))return function Xn(n){return new it(t=>{for(const e of n)if(t.next(e),t.closed)return;t.complete()})}(n);if(uu(n))return function cu(n){return J(lu(n))}(n)}throw ua(n)}function J(n){return new it(t=>{(function du(n,t){var e,i,r,s;return function Fs(n,t,e,i){return new(e||(e=Promise))(function(s,a){function l(f){try{d(i.next(f))}catch(g){a(g)}}function c(f){try{d(i.throw(f))}catch(g){a(g)}}function d(f){f.done?s(f.value):function r(s){return s instanceof e?s:new e(function(a){a(s)})}(f.value).then(l,c)}d((i=i.apply(n,t||[])).next())})}(this,void 0,void 0,function*(){try{for(e=iu(n);!(i=yield e.next()).done;)if(t.next(i.value),t.closed)return}catch(a){r={error:a}}finally{try{i&&!i.done&&(s=e.return)&&(yield s.call(e))}finally{if(r)throw r.error}}t.complete()})})(n,t).catch(e=>t.error(e))})}function Jn(n,t,e,i=0,r=!1){const s=t.schedule(function(){e(),r?n.add(this.schedule(null,i)):this.unsubscribe()},i);if(n.add(s),!r)return s}function ei(n,t,e=1/0){return Pe(t)?ei((i,r)=>He((s,a)=>t(i,s,r,a))(Hn(n(i,r))),e):("number"==typeof t&&(e=t),ut((i,r)=>function hu(n,t,e,i,r,s,a,l){const c=[];let d=0,f=0,g=!1;const v=()=>{g&&!c.length&&!d&&t.complete()},y=D=>d{s&&t.next(D),d++;let S=!1;Hn(e(D,f++)).subscribe(mt(t,E=>{null==r||r(E),s?y(E):t.next(E)},()=>{S=!0},void 0,()=>{if(S)try{for(d--;c.length&&dw(E)):w(E)}v()}catch(E){t.error(E)}}))};return n.subscribe(mt(t,y,()=>{g=!0,v()})),()=>{null==l||l()}}(i,r,n,e)))}function da(n=1/0){return ei(kt,n)}const vi=new it(n=>n.complete());function fu(n){return n&&Pe(n.schedule)}function ha(n){return n[n.length-1]}function Ir(n){return fu(ha(n))?n.pop():void 0}function ns(n,t=0){return ut((e,i)=>{e.subscribe(mt(i,r=>Jn(i,n,()=>i.next(r),t),()=>Jn(i,n,()=>i.complete(),t),r=>Jn(i,n,()=>i.error(r),t)))})}function pu(n,t=0){return ut((e,i)=>{i.add(n.schedule(()=>e.subscribe(i),t))})}function Hs(n,t){if(!n)throw new Error("Iterable cannot be null");return new it(e=>{Jn(e,t,()=>{const i=n[Symbol.asyncIterator]();Jn(e,t,()=>{i.next().then(r=>{r.done?e.complete():e.next(r.value)})},0,!0)})})}function Pr(n,t){return t?function gu(n,t){if(null!=n){if(aa(n))return function qd(n,t){return Hn(n).pipe(pu(t),ns(t))}(n,t);if(oa(n))return function Kd(n,t){return new it(e=>{let i=0;return t.schedule(function(){i===n.length?e.complete():(e.next(n[i++]),e.closed||this.schedule())})})}(n,t);if(su(n))return function Yd(n,t){return Hn(n).pipe(pu(t),ns(t))}(n,t);if(la(n))return Hs(n,t);if(au(n))return function Qd(n,t){return new it(e=>{let i;return Jn(e,t,()=>{i=n[ou](),Jn(e,t,()=>{let r,s;try{({value:r,done:s}=i.next())}catch(a){return void e.error(a)}s?e.complete():e.next(r)},0,!0)}),()=>Pe(null==i?void 0:i.return)&&i.return()})}(n,t);if(uu(n))return function is(n,t){return Hs(lu(n),t)}(n,t)}throw ua(n)}(n,t):Hn(n)}function rn(...n){const t=Ir(n),e=function Zd(n,t){return"number"==typeof ha(n)?n.pop():t}(n,1/0),i=n;return i.length?1===i.length?Hn(i[0]):da(e)(Pr(i,t)):vi}function _e(n={}){const{connector:t=(()=>new Me),resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:r=!0}=n;return s=>{let a,l,c,d=0,f=!1,g=!1;const v=()=>{null==l||l.unsubscribe(),l=void 0},y=()=>{v(),a=c=void 0,f=g=!1},w=()=>{const D=a;y(),null==D||D.unsubscribe()};return ut((D,S)=>{d++,!g&&!f&&v();const E=c=c??t();S.add(()=>{d--,0===d&&!g&&!f&&(l=rt(w,r))}),E.subscribe(S),!a&&d>0&&(a=new Tr({next:b=>E.next(b),error:b=>{g=!0,v(),l=rt(y,e,b),E.error(b)},complete:()=>{f=!0,v(),l=rt(y,i),E.complete()}}),Hn(D).subscribe(a))})(s)}}function rt(n,t,...e){if(!0===t)return void n();if(!1===t)return;const i=new Tr({next:()=>{i.unsubscribe(),n()}});return t(...e).subscribe(i)}function We(n){for(let t in n)if(n[t]===We)return t;throw Error("Could not find renamed property on target object.")}function Re(n){if("string"==typeof n)return n;if(Array.isArray(n))return"["+n.map(Re).join(", ")+"]";if(null==n)return""+n;if(n.overriddenName)return`${n.overriddenName}`;if(n.name)return`${n.name}`;const t=n.toString();if(null==t)return""+t;const e=t.indexOf("\n");return-1===e?t:t.substring(0,e)}function rs(n,t){return null==n||""===n?null===t?"":t:null==t||""===t?n:n+" "+t}const we=We({__forward_ref__:We});function vt(n){return n.__forward_ref__=vt,n.toString=function(){return Re(this())},n}function pe(n){return ss(n)?n():n}function ss(n){return"function"==typeof n&&n.hasOwnProperty(we)&&n.__forward_ref__===vt}class G extends Error{constructor(t,e){super(function Ar(n,t){return`NG0${Math.abs(n)}${t?": "+t:""}`}(t,e)),this.code=t}}function se(n){return"string"==typeof n?n:null==n?"":String(n)}function Oe(n){return"function"==typeof n?n.name||n.toString():"object"==typeof n&&null!=n&&"function"==typeof n.type?n.type.name||n.type.toString():se(n)}function xr(n,t){const e=t?` in ${t}`:"";throw new G(-201,`No provider for ${Oe(n)} found${e}`)}function un(n,t){null==n&&function et(n,t,e,i){throw new Error(`ASSERTION ERROR: ${n}`+(null==i?"":` [Expected=> ${e} ${i} ${t} <=Actual]`))}(t,n,null,"!=")}function ae(n){return{token:n.token,providedIn:n.providedIn||null,factory:n.factory,value:void 0}}function Le(n){return{providers:n.providers||[],imports:n.imports||[]}}function yi(n){return ma(n,Ws)||ma(n,Ae)}function ma(n,t){return n.hasOwnProperty(t)?n[t]:null}function zs(n){return n&&(n.hasOwnProperty($s)||n.hasOwnProperty(th))?n[$s]:null}const Ws=We({\u0275prov:We}),$s=We({\u0275inj:We}),Ae=We({ngInjectableDef:We}),th=We({ngInjectorDef:We});var ie=(()=>((ie=ie||{})[ie.Default=0]="Default",ie[ie.Host=1]="Host",ie[ie.Self=2]="Self",ie[ie.SkipSelf=4]="SkipSelf",ie[ie.Optional=8]="Optional",ie))();let sr;function Ni(n){const t=sr;return sr=n,t}function Gs(n,t,e){const i=yi(n);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:e&ie.Optional?null:void 0!==t?t:void xr(Re(n),"Injector")}function _i(n){return{toString:n}.toString()}var Un=(()=>((Un=Un||{})[Un.OnPush=0]="OnPush",Un[Un.Default=1]="Default",Un))(),zn=(()=>{return(n=zn||(zn={}))[n.Emulated=0]="Emulated",n[n.None=2]="None",n[n.ShadowDom=3]="ShadowDom",zn;var n})();const ni=typeof globalThis<"u"&&globalThis,nh=typeof window<"u"&&window,bu=typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self,Ze=ni||typeof global<"u"&&global||nh||bu,Rr={},qe=[],Zs=We({\u0275cmp:We}),qs=We({\u0275dir:We}),Ys=We({\u0275pipe:We}),os=We({\u0275mod:We}),sn=We({\u0275fac:We}),as=We({__NG_ELEMENT_ID__:We});let ls=0;function ot(n){return _i(()=>{const e={},i={type:n.type,providersResolver:null,decls:n.decls,vars:n.vars,factory:null,template:n.template||null,consts:n.consts||null,ngContentSelectors:n.ngContentSelectors,hostBindings:n.hostBindings||null,hostVars:n.hostVars||0,hostAttrs:n.hostAttrs||null,contentQueries:n.contentQueries||null,declaredInputs:e,inputs:null,outputs:null,exportAs:n.exportAs||null,onPush:n.changeDetection===Un.OnPush,directiveDefs:null,pipeDefs:null,selectors:n.selectors||qe,viewQuery:n.viewQuery||null,features:n.features||null,data:n.data||{},encapsulation:n.encapsulation||zn.Emulated,id:"c",styles:n.styles||qe,_:null,setInput:null,schemas:n.schemas||null,tView:null},r=n.directives,s=n.features,a=n.pipes;return i.id+=ls++,i.inputs=Iu(n.inputs,e),i.outputs=Iu(n.outputs),s&&s.forEach(l=>l(i)),i.directiveDefs=r?()=>("function"==typeof r?r():r).map(Tu):null,i.pipeDefs=a?()=>("function"==typeof a?a():a).map(va):null,i})}function Tu(n){return Kt(n)||function Rt(n){return n[qs]||null}(n)}function va(n){return function kn(n){return n[Ys]||null}(n)}const Mu={};function At(n){return _i(()=>{const t={type:n.type,bootstrap:n.bootstrap||qe,declarations:n.declarations||qe,imports:n.imports||qe,exports:n.exports||qe,transitiveCompileScopes:null,schemas:n.schemas||null,id:n.id||null};return null!=n.id&&(Mu[n.id]=n.type),t})}function Iu(n,t){if(null==n)return Rr;const e={};for(const i in n)if(n.hasOwnProperty(i)){let r=n[i],s=r;Array.isArray(r)&&(s=r[1],r=r[0]),e[r]=i,t&&(t[r]=s)}return e}const yt=ot;function ct(n){return{type:n.type,name:n.name,factory:null,pure:!1!==n.pure,onDestroy:n.type.prototype.ngOnDestroy||null}}function Kt(n){return n[Zs]||null}function Rn(n,t){const e=n[os]||null;if(!e&&!0===t)throw new Error(`Type ${Re(n)} does not have '\u0275mod' property.`);return e}function ii(n){return Array.isArray(n)&&"object"==typeof n[1]}function Nn(n){return Array.isArray(n)&&!0===n[1]}function Da(n){return 0!=(8&n.flags)}function us(n){return 2==(2&n.flags)}function Js(n){return 1==(1&n.flags)}function Tt(n){return null!==n.template}function eo(n){return 0!=(512&n[2])}function zi(n,t){return n.hasOwnProperty(sn)?n[sn]:null}class Sa{constructor(t,e,i){this.previousValue=t,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}function ri(){return ba}function ba(n){return n.type.prototype.ngOnChanges&&(n.setInput=Pu),hh}function hh(){const n=Au(this),t=n?.current;if(t){const e=n.previous;if(e===Rr)n.previous=t;else for(let i in t)e[i]=t[i];n.current=null,this.ngOnChanges(t)}}function Pu(n,t,e,i){const r=Au(n)||function o(n,t){return n[Ea]=t}(n,{previous:Rr,current:null}),s=r.current||(r.current={}),a=r.previous,l=this.declaredInputs[e],c=a[l];s[l]=new Sa(c&&c.currentValue,t,a===Rr),n[i]=t}ri.ngInherit=!0;const Ea="__ngSimpleChanges__";function Au(n){return n[Ea]||null}const C="math";let k;function Ce(){return void 0!==k?k:typeof document<"u"?document:void 0}function $e(n){return!!n.listen}const Wi={createRenderer:(n,t)=>Ce()};function tt(n){for(;Array.isArray(n);)n=n[0];return n}function oo(n,t){return tt(t[n])}function Ln(n,t){return tt(t[n.index])}function Ma(n,t){return n.data[t]}function ur(n,t){return n[t]}function Ve(n,t){const e=t[n];return ii(e)?e:e[0]}function ds(n){return 4==(4&n[2])}function Ia(n){return 128==(128&n[2])}function $i(n,t){return null==t?null:n[t]}function ao(n){n[18]=0}function lo(n,t){n[5]+=t;let e=n,i=n[3];for(;null!==i&&(1===t&&1===e[5]||-1===t&&0===e[5]);)i[5]+=t,e=i,i=i[3]}const de={lFrame:Nm(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function Im(){return de.bindingsEnabled}function x(){return de.lFrame.lView}function je(){return de.lFrame.tView}function ee(n){return de.lFrame.contextLView=n,n[8]}function zt(){let n=Pm();for(;null!==n&&64===n.type;)n=n.parent;return n}function Pm(){return de.lFrame.currentTNode}function Gi(n,t){const e=de.lFrame;e.currentTNode=n,e.isParent=t}function ph(){return de.lFrame.isParent}function ku(){return de.isInCheckNoChangesMode}function Ru(n){de.isInCheckNoChangesMode=n}function _n(){const n=de.lFrame;let t=n.bindingRootIndex;return-1===t&&(t=n.bindingRootIndex=n.tView.bindingStartIndex),t}function uo(){return de.lFrame.bindingIndex++}function QS(n,t){const e=de.lFrame;e.bindingIndex=e.bindingRootIndex=n,mh(t)}function mh(n){de.lFrame.currentDirectiveIndex=n}function km(){return de.lFrame.currentQueryIndex}function yh(n){de.lFrame.currentQueryIndex=n}function JS(n){const t=n[1];return 2===t.type?t.declTNode:1===t.type?n[6]:null}function Rm(n,t,e){if(e&ie.SkipSelf){let r=t,s=n;for(;!(r=r.parent,null!==r||e&ie.Host||(r=JS(s),null===r||(s=s[15],10&r.type))););if(null===r)return!1;t=r,n=s}const i=de.lFrame=Om();return i.currentTNode=t,i.lView=n,!0}function Ou(n){const t=Om(),e=n[1];de.lFrame=t,t.currentTNode=e.firstChild,t.lView=n,t.tView=e,t.contextLView=n,t.bindingIndex=e.bindingStartIndex,t.inI18n=!1}function Om(){const n=de.lFrame,t=null===n?null:n.child;return null===t?Nm(n):t}function Nm(n){const t={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:n,child:null,inI18n:!1};return null!==n&&(n.child=t),t}function Lm(){const n=de.lFrame;return de.lFrame=n.parent,n.currentTNode=null,n.lView=null,n}const Fm=Lm;function Nu(){const n=Lm();n.isParent=!0,n.tView=null,n.selectedIndex=-1,n.contextLView=null,n.elementDepthCount=0,n.currentDirectiveIndex=-1,n.currentNamespace=null,n.bindingRootIndex=-1,n.bindingIndex=-1,n.currentQueryIndex=0}function wn(){return de.lFrame.selectedIndex}function Fr(n){de.lFrame.selectedIndex=n}function Mt(){const n=de.lFrame;return Ma(n.tView,n.selectedIndex)}function Lu(n,t){for(let e=t.directiveStart,i=t.directiveEnd;e=i)break}else t[c]<0&&(n[18]+=65536),(l>11>16&&(3&n[2])===t){n[2]+=2048;try{s.call(l)}finally{}}}else try{s.call(l)}finally{}}class Aa{constructor(t,e,i){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=i}}function Hu(n,t,e){const i=$e(n);let r=0;for(;rt){a=s-1;break}}}for(;s>16}(n),i=t;for(;e>0;)i=i[15],e--;return i}let Ch=!0;function ju(n){const t=Ch;return Ch=n,t}let pb=0;function ka(n,t){const e=bh(n,t);if(-1!==e)return e;const i=t[1];i.firstCreatePass&&(n.injectorIndex=t.length,Sh(i.data,n),Sh(t,null),Sh(i.blueprint,null));const r=Uu(n,t),s=n.injectorIndex;if(jm(r)){const a=co(r),l=ho(r,t),c=l[1].data;for(let d=0;d<8;d++)t[s+d]=l[a+d]|c[a+d]}return t[s+8]=r,s}function Sh(n,t){n.push(0,0,0,0,0,0,0,0,t)}function bh(n,t){return-1===n.injectorIndex||n.parent&&n.parent.injectorIndex===n.injectorIndex||null===t[n.injectorIndex+8]?-1:n.injectorIndex}function Uu(n,t){if(n.parent&&-1!==n.parent.injectorIndex)return n.parent.injectorIndex;let e=0,i=null,r=t;for(;null!==r;){const s=r[1],a=s.type;if(i=2===a?s.declTNode:1===a?r[6]:null,null===i)return-1;if(e++,r=r[15],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return-1}function zu(n,t,e){!function gb(n,t,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(as)&&(i=e[as]),null==i&&(i=e[as]=pb++);const r=255&i;t.data[n+(r>>5)]|=1<=0?255&t:vb:t}(e);if("function"==typeof s){if(!Rm(t,n,i))return i&ie.Host?Wm(r,e,i):$m(t,e,i,r);try{const a=s(i);if(null!=a||i&ie.Optional)return a;xr(e)}finally{Fm()}}else if("number"==typeof s){let a=null,l=bh(n,t),c=-1,d=i&ie.Host?t[16][6]:null;for((-1===l||i&ie.SkipSelf)&&(c=-1===l?Uu(n,t):t[l+8],-1!==c&&Ym(i,!1)?(a=t[1],l=co(c),t=ho(c,t)):l=-1);-1!==l;){const f=t[1];if(qm(s,l,f.data)){const g=yb(l,t,e,a,i,d);if(g!==Zm)return g}c=t[l+8],-1!==c&&Ym(i,t[1].data[l+8]===d)&&qm(s,l,t)?(a=f,l=co(c),t=ho(c,t)):l=-1}}}return $m(t,e,i,r)}const Zm={};function vb(){return new fo(zt(),x())}function yb(n,t,e,i,r,s){const a=t[1],l=a.data[n+8],f=Wu(l,a,e,null==i?us(l)&&Ch:i!=a&&0!=(3&l.type),r&ie.Host&&s===l);return null!==f?Ra(t,a,f,l):Zm}function Wu(n,t,e,i,r){const s=n.providerIndexes,a=t.data,l=1048575&s,c=n.directiveStart,f=s>>20,v=r?l+f:n.directiveEnd;for(let y=i?l:l+f;y=c&&w.type===e)return y}if(r){const y=a[c];if(y&&Tt(y)&&y.type===e)return c}return null}function Ra(n,t,e,i){let r=n[e];const s=t.data;if(function ub(n){return n instanceof Aa}(r)){const a=r;a.resolving&&function rr(n,t){const e=t?`. Dependency path: ${t.join(" > ")} > ${n}`:"";throw new G(-200,`Circular dependency in DI detected for ${n}${e}`)}(Oe(s[e]));const l=ju(a.canSeeViewProviders);a.resolving=!0;const c=a.injectImpl?Ni(a.injectImpl):null;Rm(n,i,ie.Default);try{r=n[e]=a.factory(void 0,s,n,i),t.firstCreatePass&&e>=i.directiveStart&&function ab(n,t,e){const{ngOnChanges:i,ngOnInit:r,ngDoCheck:s}=t.type.prototype;if(i){const a=ba(t);(e.preOrderHooks||(e.preOrderHooks=[])).push(n,a),(e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n,a)}r&&(e.preOrderHooks||(e.preOrderHooks=[])).push(0-n,r),s&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n,s),(e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n,s))}(e,s[e],t)}finally{null!==c&&Ni(c),ju(l),a.resolving=!1,Fm()}}return r}function qm(n,t,e){return!!(e[t+(n>>5)]&1<{const t=Eh(pe(n));return t&&t()}:zi(n)}const go="__parameters__";function vo(n,t,e){return _i(()=>{const i=function Mh(n){return function(...e){if(n){const i=n(...e);for(const r in i)this[r]=i[r]}}}(t);function r(...s){if(this instanceof r)return i.apply(this,s),this;const a=new r(...s);return l.annotation=a,l;function l(c,d,f){const g=c.hasOwnProperty(go)?c[go]:Object.defineProperty(c,go,{value:[]})[go];for(;g.length<=f;)g.push(null);return(g[f]=g[f]||[]).push(a),c}}return e&&(r.prototype=Object.create(e.prototype)),r.prototype.ngMetadataName=n,r.annotationCls=r,r})}class ze{constructor(t,e){this._desc=t,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\u0275prov=ae({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}toString(){return`InjectionToken ${this._desc}`}}function si(n,t){void 0===t&&(t=n);for(let e=0;eArray.isArray(e)?Zi(e,t):t(e))}function Xm(n,t,e){t>=n.length?n.push(e):n.splice(t,0,e)}function $u(n,t){return t>=n.length-1?n.pop():n.splice(t,1)[0]}function $n(n,t,e){let i=yo(n,t);return i>=0?n[1|i]=e:(i=~i,function Sb(n,t,e,i){let r=n.length;if(r==t)n.push(e,i);else if(1===r)n.push(i,n[0]),n[0]=e;else{for(r--,n.push(n[r-1],n[r]);r>t;)n[r]=n[r-2],r--;n[t]=e,n[t+1]=i}}(n,i,t,e)),i}function Ph(n,t){const e=yo(n,t);if(e>=0)return n[1|e]}function yo(n,t){return function tv(n,t,e){let i=0,r=n.length>>e;for(;r!==i;){const s=i+(r-i>>1),a=n[s<t?r=s:i=s+1}return~(r<n,createScript:n=>n,createScriptURL:n=>n})}catch{}return Qu}()?.createHTML(n)||n}function cv(n){return function Lh(){if(void 0===Xu&&(Xu=null,Ze.trustedTypes))try{Xu=Ze.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:n=>n,createScript:n=>n,createScriptURL:n=>n})}catch{}return Xu}()?.createHTML(n)||n}class fv{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see https://g.co/ng/security#xss)`}}function Hr(n){return n instanceof fv?n.changingThisBreaksApplicationSecurity:n}class eE{constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t=""+t;try{const e=(new window.DOMParser).parseFromString(wo(t),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(t):(e.removeChild(e.firstChild),e)}catch{return null}}}class tE{constructor(t){if(this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),null==this.inertDocument.body){const e=this.inertDocument.createElement("html");this.inertDocument.appendChild(e);const i=this.inertDocument.createElement("body");e.appendChild(i)}}getInertBodyElement(t){const e=this.inertDocument.createElement("template");if("content"in e)return e.innerHTML=wo(t),e;const i=this.inertDocument.createElement("body");return i.innerHTML=wo(t),this.defaultDoc.documentMode&&this.stripCustomNsAttrs(i),i}stripCustomNsAttrs(t){const e=t.attributes;for(let r=e.length-1;0Ju(t.trim())).join(", ")}function qi(n){const t={};for(const e of n.split(","))t[e]=!0;return t}function Ua(...n){const t={};for(const e of n)for(const i in e)e.hasOwnProperty(i)&&(t[i]=!0);return t}const mv=qi("area,br,col,hr,img,wbr"),vv=qi("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),yv=qi("rp,rt"),Fh=Ua(mv,Ua(vv,qi("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")),Ua(yv,qi("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")),Ua(yv,vv)),Bh=qi("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),Hh=qi("srcset"),_v=Ua(Bh,Hh,qi("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,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),qi("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")),sE=qi("script,style,template");class oE{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(t){let e=t.firstChild,i=!0;for(;e;)if(e.nodeType===Node.ELEMENT_NODE?i=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,i&&e.firstChild)e=e.firstChild;else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let r=this.checkClobberedElement(e,e.nextSibling);if(r){e=r;break}e=this.checkClobberedElement(e,e.parentNode)}return this.buf.join("")}startElement(t){const e=t.nodeName.toLowerCase();if(!Fh.hasOwnProperty(e))return this.sanitizedSomething=!0,!sE.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const i=t.attributes;for(let r=0;r"),!0}endElement(t){const e=t.nodeName.toLowerCase();Fh.hasOwnProperty(e)&&!mv.hasOwnProperty(e)&&(this.buf.push(""))}chars(t){this.buf.push(wv(t))}checkClobberedElement(t,e){if(e&&(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`);return e}}const aE=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,lE=/([^\#-~ |!])/g;function wv(n){return n.replace(/&/g,"&").replace(aE,function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"}).replace(lE,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(//g,">")}let ec;function Vh(n){return"content"in n&&function cE(n){return n.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===n.nodeName}(n)?n.content:null}var Ot=(()=>((Ot=Ot||{})[Ot.NONE=0]="NONE",Ot[Ot.HTML=1]="HTML",Ot[Ot.STYLE=2]="STYLE",Ot[Ot.SCRIPT=3]="SCRIPT",Ot[Ot.URL=4]="URL",Ot[Ot.RESOURCE_URL=5]="RESOURCE_URL",Ot))();function tc(n){const t=function za(){const n=x();return n&&n[12]}();return t?cv(t.sanitize(Ot.HTML,n)||""):function ja(n,t){const e=function Jb(n){return n instanceof fv&&n.getTypeName()||null}(n);if(null!=e&&e!==t){if("ResourceURL"===e&&"URL"===t)return!0;throw new Error(`Required a safe ${t}, got a ${e} (see https://g.co/ng/security#xss)`)}return e===t}(n,"HTML")?cv(Hr(n)):function uE(n,t){let e=null;try{ec=ec||function pv(n){const t=new tE(n);return function nE(){try{return!!(new window.DOMParser).parseFromString(wo(""),"text/html")}catch{return!1}}()?new eE(t):t}(n);let i=t?String(t):"";e=ec.getInertBodyElement(i);let r=5,s=i;do{if(0===r)throw new Error("Failed to sanitize html because the input is unstable");r--,i=s,s=e.innerHTML,e=ec.getInertBodyElement(i)}while(i!==s);return wo((new oE).sanitizeChildren(Vh(e)||e))}finally{if(e){const i=Vh(e)||e;for(;i.firstChild;)i.removeChild(i.firstChild)}}}(Ce(),se(n))}const bv="__ngContext__";function hn(n,t){n[bv]=t}function Uh(n){const t=function Wa(n){return n[bv]||null}(n);return t?Array.isArray(t)?t:t.lView:null}function Wh(n){return n.ngOriginalError}function TE(n,...t){n.error(...t)}class $a{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t),i=function EE(n){return n&&n.ngErrorLogger||TE}(t);i(this._console,"ERROR",t),e&&i(this._console,"ORIGINAL ERROR",e)}_findOriginalError(t){let e=t&&Wh(t);for(;e&&Wh(e);)e=Wh(e);return e||null}}const LE=(()=>(typeof requestAnimationFrame<"u"&&requestAnimationFrame||setTimeout).bind(Ze))();function Yi(n){return n instanceof Function?n():n}var Gn=(()=>((Gn=Gn||{})[Gn.Important=1]="Important",Gn[Gn.DashCase=2]="DashCase",Gn))();function Gh(n,t){return undefined(n,t)}function Ga(n){const t=n[3];return Nn(t)?t[3]:t}function Zh(n){return Rv(n[13])}function qh(n){return Rv(n[4])}function Rv(n){for(;null!==n&&!Nn(n);)n=n[4];return n}function Co(n,t,e,i,r){if(null!=i){let s,a=!1;Nn(i)?s=i:ii(i)&&(a=!0,i=i[0]);const l=tt(i);0===n&&null!==e?null==r?Hv(t,e,l):hs(t,e,l,r||null,!0):1===n&&null!==e?hs(t,e,l,r||null,!0):2===n?function Gv(n,t,e){const i=nc(n,t);i&&function KE(n,t,e,i){$e(n)?n.removeChild(t,e,i):t.removeChild(e)}(n,i,t,e)}(t,l,a):3===n&&t.destroyNode(l),null!=s&&function JE(n,t,e,i,r){const s=e[7];s!==tt(e)&&Co(t,n,i,s,r);for(let l=10;l0&&(n[e-1][4]=i[4]);const s=$u(n,10+t);!function UE(n,t){Za(n,t,t[11],2,null,null),t[0]=null,t[6]=null}(i[1],i);const a=s[19];null!==a&&a.detachView(s[1]),i[3]=null,i[4]=null,i[2]&=-129}return i}function Lv(n,t){if(!(256&t[2])){const e=t[11];$e(e)&&e.destroyNode&&Za(n,t,e,3,null,null),function $E(n){let t=n[13];if(!t)return Xh(n[1],n);for(;t;){let e=null;if(ii(t))e=t[13];else{const i=t[10];i&&(e=i)}if(!e){for(;t&&!t[4]&&t!==n;)ii(t)&&Xh(t[1],t),t=t[3];null===t&&(t=n),ii(t)&&Xh(t[1],t),e=t&&t[4]}t=e}}(t)}}function Xh(n,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function YE(n,t){let e;if(null!=n&&null!=(e=n.destroyHooks))for(let i=0;i=0?i[r=d]():i[r=-d].unsubscribe(),s+=2}else{const a=i[r=e[s+1]];e[s].call(a)}if(null!==i){for(let s=r+1;ss?"":r[g+1].toLowerCase();const y=8&i?v:null;if(y&&-1!==Yv(y,d,0)||2&i&&d!==v){if(wi(i))return!1;a=!0}}}}else{if(!a&&!wi(i)&&!wi(c))return!1;if(a&&wi(c))continue;a=!1,i=c|1&i}}return wi(i)||a}function wi(n){return 0==(1&n)}function rT(n,t,e,i){if(null===t)return-1;let r=0;if(i||!e){let s=!1;for(;r-1)for(e++;e0?'="'+l+'"':"")+"]"}else 8&i?r+="."+a:4&i&&(r+=" "+a);else""!==r&&!wi(a)&&(t+=Jv(s,r),r=""),i=a,s=s||!wi(i);e++}return""!==r&&(t+=Jv(s,r)),t}const ve={};function V(n){ey(je(),x(),wn()+n,ku())}function ey(n,t,e,i){if(!i)if(3==(3&t[2])){const s=n.preOrderCheckHooks;null!==s&&Fu(t,s,e)}else{const s=n.preOrderHooks;null!==s&&Bu(t,s,0,e)}Fr(e)}function sc(n,t){return n<<17|t<<2}function Di(n){return n>>17&32767}function rf(n){return 2|n}function hr(n){return(131068&n)>>2}function sf(n,t){return-131069&n|t<<2}function af(n){return 1|n}function dy(n,t){const e=n.contentQueries;if(null!==e)for(let i=0;i20&&ey(n,t,20,ku()),e(i,r)}finally{Fr(s)}}function vf(n,t,e){!Im()||(function OT(n,t,e,i){const r=e.directiveStart,s=e.directiveEnd;n.firstCreatePass||ka(e,t),hn(i,t);const a=e.initialInputs;for(let l=r;l0;){const e=n[--t];if("number"==typeof e&&e<0)return e}return 0})(l)!=c&&l.push(c),l.push(i,r,a)}}function Dy(n,t){null!==n.hostBindings&&n.hostBindings(1,t)}function Cy(n,t){t.flags|=2,(n.components||(n.components=[])).push(t.index)}function BT(n,t,e){if(e){if(t.exportAs)for(let i=0;i0&&Df(e)}}function Df(n){for(let i=Zh(n);null!==i;i=qh(i))for(let r=10;r0&&Df(s)}const e=n[1].components;if(null!==e)for(let i=0;i0&&Df(r)}}function $T(n,t){const e=Ve(t,n),i=e[1];(function GT(n,t){for(let e=t.length;ePromise.resolve(null))();function My(n){return n[7]||(n[7]=[])}function Iy(n){return n.cleanup||(n.cleanup=[])}function Ay(n,t){const e=n[9],i=e?e.get($a,null):null;i&&i.handleError(t)}function xy(n,t,e,i,r){for(let s=0;sthis.processProvider(l,t,e)),Zi([t],l=>this.processInjectorType(l,[],s)),this.records.set(Tf,To(void 0,this));const a=this.records.get(Mf);this.scope=null!=a?a.value:null,this.source=r||("object"==typeof t?null:Re(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,e=Fa,i=ie.Default){this.assertNotDestroyed();const r=rv(this),s=Ni(void 0);try{if(!(i&ie.SkipSelf)){let l=this.records.get(t);if(void 0===l){const c=function lM(n){return"function"==typeof n||"object"==typeof n&&n instanceof ze}(t)&&yi(t);l=c&&this.injectableDefInScope(c)?To(Pf(t),Ka):null,this.records.set(t,l)}if(null!=l)return this.hydrate(t,l)}return(i&ie.Self?Ry():this.parent).get(t,e=i&ie.Optional&&e===Fa?null:e)}catch(a){if("NullInjectorError"===a.name){if((a[Zu]=a[Zu]||[]).unshift(Re(t)),r)throw a;return function Lb(n,t,e,i){const r=n[Zu];throw t[iv]&&r.unshift(t[iv]),n.message=function Fb(n,t,e,i=null){n=n&&"\n"===n.charAt(0)&&"\u0275"==n.charAt(1)?n.substr(2):n;let r=Re(t);if(Array.isArray(t))r=t.map(Re).join(" -> ");else if("object"==typeof t){let s=[];for(let a in t)if(t.hasOwnProperty(a)){let l=t[a];s.push(a+":"+("string"==typeof l?JSON.stringify(l):Re(l)))}r=`{${s.join(", ")}}`}return`${e}${i?"("+i+")":""}[${r}]: ${n.replace(Ab,"\n ")}`}("\n"+n.message,r,e,i),n.ngTokenPath=r,n[Zu]=null,n}(a,t,"R3InjectorError",this.source)}throw a}finally{Ni(s),rv(r)}}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(t=>this.get(t))}toString(){const t=[];return this.records.forEach((i,r)=>t.push(Re(r))),`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new G(205,!1)}processInjectorType(t,e,i){if(!(t=pe(t)))return!1;let r=zs(t);const s=null==r&&t.ngModule||void 0,a=void 0===s?t:s,l=-1!==i.indexOf(a);if(void 0!==s&&(r=zs(s)),null==r)return!1;if(null!=r.imports&&!l){let f;i.push(a);try{Zi(r.imports,g=>{this.processInjectorType(g,e,i)&&(void 0===f&&(f=[]),f.push(g))})}finally{}if(void 0!==f)for(let g=0;gthis.processProvider(w,v,y||qe))}}this.injectorDefTypes.add(a);const c=zi(a)||(()=>new a);this.records.set(a,To(c,Ka));const d=r.providers;if(null!=d&&!l){const f=t;Zi(d,g=>this.processProvider(g,f,d))}return void 0!==s&&void 0!==t.providers}processProvider(t,e,i){let r=Mo(t=pe(t))?t:pe(t&&t.provide);const s=function nM(n,t,e){return Fy(n)?To(void 0,n.useValue):To(function Ly(n,t,e){let i;if(Mo(n)){const r=pe(n);return zi(r)||Pf(r)}if(Fy(n))i=()=>pe(n.useValue);else if(function rM(n){return!(!n||!n.useFactory)}(n))i=()=>n.useFactory(...kh(n.deps||[]));else if(function iM(n){return!(!n||!n.useExisting)}(n))i=()=>U(pe(n.useExisting));else{const r=pe(n&&(n.useClass||n.provide));if(!function oM(n){return!!n.deps}(n))return zi(r)||Pf(r);i=()=>new r(...kh(n.deps))}return i}(n),Ka)}(t);if(Mo(t)||!0!==t.multi)this.records.get(r);else{let a=this.records.get(r);a||(a=To(void 0,Ka,!0),a.factory=()=>kh(a.multi),this.records.set(r,a)),r=t,a.multi.push(t)}this.records.set(r,s)}hydrate(t,e){return e.value===Ka&&(e.value=JT,e.value=e.factory()),"object"==typeof e.value&&e.value&&function aM(n){return null!==n&&"object"==typeof n&&"function"==typeof n.ngOnDestroy}(e.value)&&this.onDestroy.add(e.value),e.value}injectableDefInScope(t){if(!t.providedIn)return!1;const e=pe(t.providedIn);return"string"==typeof e?"any"===e||e===this.scope:this.injectorDefTypes.has(e)}}function Pf(n){const t=yi(n),e=null!==t?t.factory:zi(n);if(null!==e)return e;if(n instanceof ze)throw new G(204,!1);if(n instanceof Function)return function tM(n){const t=n.length;if(t>0)throw function La(n,t){const e=[];for(let i=0;ie.factory(n):()=>new n}(n);throw new G(204,!1)}function To(n,t,e=!1){return{factory:n,value:t,multi:e?[]:void 0}}function Fy(n){return null!==n&&"object"==typeof n&&kb in n}function Mo(n){return"function"==typeof n}let Cn=(()=>{class n{static create(e,i){if(Array.isArray(e))return Oy({name:""},i,e,"");{const r=e.name??"";return Oy({name:r},e.parent,e.providers,r)}}}return n.THROW_IF_NOT_FOUND=Fa,n.NULL=new ky,n.\u0275prov=ae({token:n,providedIn:"any",factory:()=>U(Tf)}),n.__NG_ELEMENT_ID__=-1,n})();function mM(n,t){Lu(Uh(n)[1],zt())}let dc=null;function Io(){if(!dc){const n=Ze.Symbol;if(n&&n.iterator)dc=n.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;el(tt(A[i.index])):i.index;if($e(e)){let A=null;if(!l&&c&&(A=function XM(n,t,e,i){const r=n.cleanup;if(null!=r)for(let s=0;sc?l[c]:null}"string"==typeof a&&(s+=2)}return null}(n,t,r,i.index)),null!==A)(A.__ngLastListenerFn__||A).__ngNextListenerFn__=s,A.__ngLastListenerFn__=s,y=!1;else{s=Uf(i,t,g,s,!1);const H=e.listen(E,r,s);v.push(s,H),f&&f.push(r,I,b,b+1)}}else s=Uf(i,t,g,s,!0),E.addEventListener(r,s,a),v.push(s),f&&f.push(r,I,b,a)}else s=Uf(i,t,g,s,!1);const w=i.outputs;let D;if(y&&null!==w&&(D=w[r])){const S=D.length;if(S)for(let E=0;E0;)t=t[15],n--;return t}(n,de.lFrame.contextLView))[8]}(n)}function A_(n,t,e,i,r){const s=n[e+1],a=null===t;let l=i?Di(s):hr(s),c=!1;for(;0!==l&&(!1===c||a);){const f=n[l+1];rI(n[l],t)&&(c=!0,n[l+1]=i?af(f):rf(f)),l=i?Di(f):hr(f)}c&&(n[e+1]=i?rf(s):af(s))}function rI(n,t){return null===n||null==t||(Array.isArray(n)?n[1]:n)===t||!(!Array.isArray(n)||"string"!=typeof t)&&yo(n,t)>=0}function pr(n,t,e){return Si(n,t,e,!1),pr}function pn(n,t){return Si(n,t,null,!0),pn}function Si(n,t,e,i){const r=x(),s=je(),a=function dr(n){const t=de.lFrame,e=t.bindingIndex;return t.bindingIndex=t.bindingIndex+n,e}(2);s.firstUpdatePass&&function B_(n,t,e,i){const r=n.data;if(null===r[e+1]){const s=r[wn()],a=function F_(n,t){return t>=n.expandoStartIndex}(n,e);(function U_(n,t){return 0!=(n.flags&(t?16:32))})(s,i)&&null===t&&!a&&(t=!1),t=function fI(n,t,e,i){const r=function vh(n){const t=de.lFrame.currentDirectiveIndex;return-1===t?null:n[t]}(n);let s=i?t.residualClasses:t.residualStyles;if(null===r)0===(i?t.classBindings:t.styleBindings)&&(e=Ja(e=Wf(null,n,t,e,i),t.attrs,i),s=null);else{const a=t.directiveStylingLast;if(-1===a||n[a]!==r)if(e=Wf(r,n,t,e,i),null===s){let c=function pI(n,t,e){const i=e?t.classBindings:t.styleBindings;if(0!==hr(i))return n[Di(i)]}(n,t,i);void 0!==c&&Array.isArray(c)&&(c=Wf(null,n,t,c[1],i),c=Ja(c,t.attrs,i),function gI(n,t,e,i){n[Di(e?t.classBindings:t.styleBindings)]=i}(n,t,i,c))}else s=function mI(n,t,e){let i;const r=t.directiveEnd;for(let s=1+t.directiveStylingLast;s0)&&(d=!0)}else f=e;if(r)if(0!==c){const v=Di(n[l+1]);n[i+1]=sc(v,l),0!==v&&(n[v+1]=sf(n[v+1],i)),n[l+1]=function hT(n,t){return 131071&n|t<<17}(n[l+1],i)}else n[i+1]=sc(l,0),0!==l&&(n[l+1]=sf(n[l+1],i)),l=i;else n[i+1]=sc(c,0),0===l?l=i:n[c+1]=sf(n[c+1],i),c=i;d&&(n[i+1]=rf(n[i+1])),A_(n,f,i,!0),A_(n,f,i,!1),function iI(n,t,e,i,r){const s=r?n.residualClasses:n.residualStyles;null!=s&&"string"==typeof t&&yo(s,t)>=0&&(e[i+1]=af(e[i+1]))}(t,f,n,i,s),a=sc(l,c),s?t.classBindings=a:t.styleBindings=a}(r,s,t,e,a,i)}}(s,n,a,i),t!==ve&&fn(r,a,t)&&function V_(n,t,e,i,r,s,a,l){if(!(3&t.type))return;const c=n.data,d=c[l+1];pc(function iy(n){return 1==(1&n)}(d)?j_(c,t,e,r,hr(d),a):void 0)||(pc(s)||function ny(n){return 2==(2&n)}(d)&&(s=j_(c,null,e,r,l,a)),function eT(n,t,e,i,r){const s=$e(n);if(t)r?s?n.addClass(e,i):e.classList.add(i):s?n.removeClass(e,i):e.classList.remove(i);else{let a=-1===i.indexOf("-")?void 0:Gn.DashCase;if(null==r)s?n.removeStyle(e,i,a):e.style.removeProperty(i);else{const l="string"==typeof r&&r.endsWith("!important");l&&(r=r.slice(0,-10),a|=Gn.Important),s?n.setStyle(e,i,r,a):e.style.setProperty(i,r,l?"important":"")}}}(i,a,oo(wn(),e),r,s))}(s,s.data[wn()],r,r[11],n,r[a+1]=function _I(n,t){return null==n||("string"==typeof t?n+=t:"object"==typeof n&&(n=Re(Hr(n)))),n}(t,e),i,a)}function Wf(n,t,e,i,r){let s=null;const a=e.directiveEnd;let l=e.directiveStylingLast;for(-1===l?l=e.directiveStart:l++;l0;){const c=n[r],d=Array.isArray(c),f=d?c[1]:c,g=null===f;let v=e[r+1];v===ve&&(v=g?qe:void 0);let y=g?Ph(v,i):f===i?v:void 0;if(d&&!pc(y)&&(y=Ph(c,i)),pc(y)&&(l=y,a))return l;const w=n[r+1];r=a?Di(w):hr(w)}if(null!==t){let c=s?t.residualClasses:t.residualStyles;null!=c&&(l=Ph(c,i))}return l}function pc(n){return void 0!==n}function It(n,t=""){const e=x(),i=je(),r=n+20,s=i.firstCreatePass?So(i,r,1,t,null):i.data[r],a=e[r]=function Yh(n,t){return $e(n)?n.createText(t):n.createTextNode(t)}(e[11],t);ic(i,e,a,s),Gi(s,!1)}function ps(n){return el("",n,""),ps}function el(n,t,e){const i=x(),r=function Ao(n,t,e,i){return fn(n,uo(),e)?t+se(e)+i:ve}(i,n,t,e);return r!==ve&&fr(i,wn(),r),el}const gs=void 0;var HI=["en",[["a","p"],["AM","PM"],gs],[["AM","PM"],gs,gs],[["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"]],gs,[["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"]],gs,[["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}",gs,"{1} 'at' {0}",gs],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function BI(n){const e=Math.floor(Math.abs(n)),i=n.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===i?1:5}];let Vo={};function Sn(n){const t=function VI(n){return n.toLowerCase().replace(/_/g,"-")}(n);let e=uw(t);if(e)return e;const i=t.split("-")[0];if(e=uw(i),e)return e;if("en"===i)return HI;throw new Error(`Missing locale data for the locale "${n}".`)}function uw(n){return n in Vo||(Vo[n]=Ze.ng&&Ze.ng.common&&Ze.ng.common.locales&&Ze.ng.common.locales[n]),Vo[n]}var W=(()=>((W=W||{})[W.LocaleId=0]="LocaleId",W[W.DayPeriodsFormat=1]="DayPeriodsFormat",W[W.DayPeriodsStandalone=2]="DayPeriodsStandalone",W[W.DaysFormat=3]="DaysFormat",W[W.DaysStandalone=4]="DaysStandalone",W[W.MonthsFormat=5]="MonthsFormat",W[W.MonthsStandalone=6]="MonthsStandalone",W[W.Eras=7]="Eras",W[W.FirstDayOfWeek=8]="FirstDayOfWeek",W[W.WeekendRange=9]="WeekendRange",W[W.DateFormat=10]="DateFormat",W[W.TimeFormat=11]="TimeFormat",W[W.DateTimeFormat=12]="DateTimeFormat",W[W.NumberSymbols=13]="NumberSymbols",W[W.NumberFormats=14]="NumberFormats",W[W.CurrencyCode=15]="CurrencyCode",W[W.CurrencySymbol=16]="CurrencySymbol",W[W.CurrencyName=17]="CurrencyName",W[W.Currencies=18]="Currencies",W[W.Directionality=19]="Directionality",W[W.PluralCase=20]="PluralCase",W[W.ExtraData=21]="ExtraData",W))();const gc="en-US";let cw=gc;class Nw{}class z1{resolveComponentFactory(t){throw function U1(n){const t=Error(`No component factory found for ${Re(n)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=n,t}(t)}}let ms=(()=>{class n{}return n.NULL=new z1,n})();function W1(){return Uo(zt(),x())}function Uo(n,t){return new bn(Ln(n,t))}let bn=(()=>{class n{constructor(e){this.nativeElement=e}}return n.__NG_ELEMENT_ID__=W1,n})();function $1(n){return n instanceof bn?n.nativeElement:n}class sl{}let gr=(()=>{class n{}return n.__NG_ELEMENT_ID__=()=>function Z1(){const n=x(),e=Ve(zt().index,n);return function G1(n){return n[11]}(ii(e)?e:n)}(),n})(),q1=(()=>{class n{}return n.\u0275prov=ae({token:n,providedIn:"root",factory:()=>null}),n})();class wc{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const Y1=new wc("13.3.0"),Qf={};function Dc(n,t,e,i,r=!1){for(;null!==e;){const s=t[e.index];if(null!==s&&i.push(tt(s)),Nn(s))for(let l=10;l-1&&(Qh(t,i),$u(e,i))}this._attachedToViewContainer=!1}Lv(this._lView[1],this._lView)}onDestroy(t){vy(this._lView[1],this._lView,null,t)}markForCheck(){Cf(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){bf(this._lView[1],this._lView,this.context)}checkNoChanges(){!function qT(n,t,e){Ru(!0);try{bf(n,t,e)}finally{Ru(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(){if(this._appRef)throw new G(902,"");this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function WE(n,t){Za(n,t,t[11],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new G(902,"");this._appRef=t}}class K1 extends ol{constructor(t){super(t),this._view=t}detectChanges(){Ty(this._view)}checkNoChanges(){!function YT(n){Ru(!0);try{Ty(n)}finally{Ru(!1)}}(this._view)}get context(){return null}}class Fw extends ms{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=Kt(t);return new Xf(e,this.ngModule)}}function Bw(n){const t=[];for(let e in n)n.hasOwnProperty(e)&&t.push({propName:n[e],templateName:e});return t}class Xf extends Nw{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=function cT(n){return n.map(uT).join(",")}(t.selectors),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return Bw(this.componentDef.inputs)}get outputs(){return Bw(this.componentDef.outputs)}create(t,e,i,r){const s=(r=r||this.ngModule)?function X1(n,t){return{get:(e,i,r)=>{const s=n.get(e,Qf,r);return s!==Qf||i===Qf?s:t.get(e,i,r)}}}(t,r.injector):t,a=s.get(sl,Wi),l=s.get(q1,null),c=a.createRenderer(null,this.componentDef),d=this.componentDef.selectors[0][0]||"div",f=i?function my(n,t,e){if($e(n))return n.selectRootElement(t,e===zn.ShadowDom);let i="string"==typeof t?n.querySelector(t):t;return i.textContent="",i}(c,i,this.componentDef.encapsulation):Kh(a.createRenderer(null,this.componentDef),d,function Q1(n){const t=n.toLowerCase();return"svg"===t?"svg":"math"===t?C:null}(d)),g=this.componentDef.onPush?576:528,v=function qy(n,t){return{components:[],scheduler:n||LE,clean:KT,playerHandler:t||null,flags:0}}(),y=lc(0,null,null,1,0,null,null,null,null,null),w=qa(null,y,v,g,null,null,a,c,l,s);let D,S;Ou(w);try{const E=function Gy(n,t,e,i,r,s){const a=e[1];e[20]=n;const c=So(a,20,2,"#host",null),d=c.mergedAttrs=t.hostAttrs;null!==d&&(cc(c,d,!0),null!==n&&(Hu(r,n,d),null!==c.classes&&nf(r,n,c.classes),null!==c.styles&&qv(r,n,c.styles)));const f=i.createRenderer(n,t),g=qa(e,py(t),null,t.onPush?64:16,e[20],c,i,f,s||null,null);return a.firstCreatePass&&(zu(ka(c,e),a,t.type),Cy(a,c),Sy(c,e.length,1)),uc(e,g),e[20]=g}(f,this.componentDef,w,a,c);if(f)if(i)Hu(c,f,["ng-version",Y1.full]);else{const{attrs:b,classes:I}=function dT(n){const t=[],e=[];let i=1,r=2;for(;i0&&nf(c,f,I.join(" "))}if(S=Ma(y,20),void 0!==e){const b=S.projection=[];for(let I=0;Ic(a,t)),t.contentQueries){const c=zt();t.contentQueries(1,a,c.directiveStart)}const l=zt();return!s.firstCreatePass||null===t.hostBindings&&null===t.hostAttrs||(Fr(l.index),wy(e[1],l,0,l.directiveStart,l.directiveEnd,t),Dy(t,a)),a}(E,this.componentDef,w,v,[mM]),Ya(y,w,null)}finally{Nu()}return new eP(this.componentType,D,Uo(S,w),w,S)}}class eP extends class j1{}{constructor(t,e,i,r,s){super(),this.location=i,this._rootLView=r,this._tNode=s,this.instance=e,this.hostView=this.changeDetectorRef=new K1(r),this.componentType=t}get injector(){return new fo(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(t){this.hostView.onDestroy(t)}}class zo{}const Wo=new Map;class jw extends zo{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new Fw(this);const i=Rn(t);this._bootstrapComponents=Yi(i.bootstrap),this._r3Injector=Ny(t,e,[{provide:zo,useValue:this},{provide:ms,useValue:this.componentFactoryResolver}],Re(t)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(t)}get(t,e=Cn.THROW_IF_NOT_FOUND,i=ie.Default){return t===Cn||t===zo||t===Tf?this:this._r3Injector.get(t,e,i)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Jf extends class nP{}{constructor(t){super(),this.moduleType=t,null!==Rn(t)&&function iP(n){const t=new Set;!function e(i){const r=Rn(i,!0),s=r.id;null!==s&&(function Hw(n,t,e){if(t&&t!==e)throw new Error(`Duplicate module registered for ${n} - ${Re(t)} vs ${Re(t.name)}`)}(s,Wo.get(s),i),Wo.set(s,i));const a=Yi(r.imports);for(const l of a)t.has(l)||(t.add(l),e(l))}(n)}(t)}create(t){return new jw(this.moduleType,t)}}function En(n,t,e){const i=_n()+n,r=x();return r[i]===ve?Qi(r,i,e?t.call(e):t()):Xa(r,i)}function vs(n,t,e,i){return $w(x(),_n(),n,t,e,i)}function Xt(n,t,e,i,r){return Gw(x(),_n(),n,t,e,i,r)}function ep(n,t,e,i,r,s){return Zw(x(),_n(),n,t,e,i,r,s)}function Uw(n,t,e,i,r,s,a){return function qw(n,t,e,i,r,s,a,l,c){const d=t+e;return oi(n,d,r,s,a,l)?Qi(n,d+4,c?i.call(c,r,s,a,l):i(r,s,a,l)):al(n,d+4)}(x(),_n(),n,t,e,i,r,s,a)}function tp(n,t,e,i,r,s,a,l){const c=_n()+n,d=x(),f=oi(d,c,e,i,r,s);return fn(d,c+4,a)||f?Qi(d,c+5,l?t.call(l,e,i,r,s,a):t(e,i,r,s,a)):Xa(d,c+5)}function np(n,t,e,i){return function Yw(n,t,e,i,r,s){let a=t+e,l=!1;for(let c=0;c=0;e--){const i=t[e];if(n===i.name)return i}}(t,e.pipeRegistry),e.data[r]=i,i.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(r,i.onDestroy)):i=e.data[r];const s=i.factory||(i.factory=zi(i.type)),a=Ni(O);try{const l=ju(!1),c=s();return ju(l),function IM(n,t,e,i){e>=n.data.length&&(n.data[e]=null,n.blueprint[e]=null),t[e]=i}(e,x(),r,c),c}finally{Ni(a)}}function Cc(n,t,e){const i=n+20,r=x(),s=ur(r,i);return ll(r,i)?$w(r,_n(),t,s.transform,e,s):s.transform(e)}function Ei(n,t,e,i){const r=n+20,s=x(),a=ur(s,r);return ll(s,r)?Gw(s,_n(),t,a.transform,e,i,a):a.transform(e,i)}function Ti(n,t,e,i,r){const s=n+20,a=x(),l=ur(a,s);return ll(a,s)?Zw(a,_n(),t,l.transform,e,i,r,l):l.transform(e,i,r)}function ll(n,t){return n[1].data[t].pure}function ip(n){return t=>{setTimeout(n,void 0,t)}}const ue=class lP extends Me{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,i){let r=t,s=e||(()=>null),a=i;if(t&&"object"==typeof t){const c=t;r=c.next?.bind(c),s=c.error?.bind(c),a=c.complete?.bind(c)}this.__isAsync&&(s=ip(s),r&&(r=ip(r)),a&&(a=ip(a)));const l=super.subscribe({next:r,error:s,complete:a});return t instanceof An&&t.add(l),l}};function uP(){return this._results[Io()]()}class rp{constructor(t=!1){this._emitDistinctChangesOnly=t,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const e=Io(),i=rp.prototype;i[e]||(i[e]=uP)}get changes(){return this._changes||(this._changes=new ue)}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,e){return this._results.reduce(t,e)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,e){const i=this;i.dirty=!1;const r=si(t);(this._changesDetected=!function Db(n,t,e){if(n.length!==t.length)return!1;for(let i=0;i{class n{}return n.__NG_ELEMENT_ID__=hP,n})();const cP=mr,dP=class extends cP{constructor(t,e,i){super(),this._declarationLView=t,this._declarationTContainer=e,this.elementRef=i}createEmbeddedView(t){const e=this._declarationTContainer.tViews,i=qa(this._declarationLView,e,t,16,null,e.declTNode,null,null,null,null);i[17]=this._declarationLView[this._declarationTContainer.index];const s=this._declarationLView[19];return null!==s&&(i[19]=s.createEmbeddedView(e)),Ya(e,i,t),new ol(i)}};function hP(){return Sc(zt(),x())}function Sc(n,t){return 4&n.type?new dP(t,n,Uo(n,t)):null}let li=(()=>{class n{}return n.__NG_ELEMENT_ID__=fP,n})();function fP(){return Xw(zt(),x())}const pP=li,Kw=class extends pP{constructor(t,e,i){super(),this._lContainer=t,this._hostTNode=e,this._hostLView=i}get element(){return Uo(this._hostTNode,this._hostLView)}get injector(){return new fo(this._hostTNode,this._hostLView)}get parentInjector(){const t=Uu(this._hostTNode,this._hostLView);if(jm(t)){const e=ho(t,this._hostLView),i=co(t);return new fo(e[1].data[i+8],e)}return new fo(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const e=Qw(this._lContainer);return null!==e&&e[t]||null}get length(){return this._lContainer.length-10}createEmbeddedView(t,e,i){const r=t.createEmbeddedView(e||{});return this.insert(r,i),r}createComponent(t,e,i,r,s){const a=t&&!function Na(n){return"function"==typeof n}(t);let l;if(a)l=e;else{const g=e||{};l=g.index,i=g.injector,r=g.projectableNodes,s=g.ngModuleRef}const c=a?t:new Xf(Kt(t)),d=i||this.parentInjector;if(!s&&null==c.ngModule){const v=(a?d:this.parentInjector).get(zo,null);v&&(s=v)}const f=c.create(d,r,void 0,s);return this.insert(f.hostView,l),f}insert(t,e){const i=t._lView,r=i[1];if(function fh(n){return Nn(n[3])}(i)){const f=this.indexOf(t);if(-1!==f)this.detach(f);else{const g=i[3],v=new Kw(g,g[6],g[3]);v.detach(v.indexOf(t))}}const s=this._adjustIndex(e),a=this._lContainer;!function GE(n,t,e,i){const r=10+i,s=e.length;i>0&&(e[r-1][4]=t),i0)i.push(a[l/2]);else{const d=s[l+1],f=t[-c];for(let g=10;g{class n{constructor(e){this.appInits=e,this.resolve=Tc,this.reject=Tc,this.initialized=!1,this.done=!1,this.donePromise=new Promise((i,r)=>{this.resolve=i,this.reject=r})}runInitializers(){if(this.initialized)return;const e=[],i=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let r=0;r{s.subscribe({complete:l,error:c})});e.push(a)}}Promise.all(e).then(()=>{i()}).catch(r=>{this.reject(r)}),0===e.length&&i(),this.initialized=!0}}return n.\u0275fac=function(e){return new(e||n)(U(wD,8))},n.\u0275prov=ae({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const cl=new ze("AppId",{providedIn:"root",factory:function DD(){return`${wp()}${wp()}${wp()}`}});function wp(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const CD=new ze("Platform Initializer"),dl=new ze("Platform ID"),VP=new ze("appBootstrapListener");let jP=(()=>{class n{log(e){console.log(e)}warn(e){console.warn(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})();const ui=new ze("LocaleId",{providedIn:"root",factory:()=>Ob(ui,ie.Optional|ie.SkipSelf)||function UP(){return typeof $localize<"u"&&$localize.locale||gc}()}),GP=(()=>Promise.resolve(0))();function Dp(n){typeof Zone>"u"?GP.then(()=>{n&&n.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",n)}class bt{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new ue(!1),this.onMicrotaskEmpty=new ue(!1),this.onStable=new ue(!1),this.onError=new ue(!1),typeof Zone>"u")throw new Error("In this configuration Angular requires Zone.js");Zone.assertZonePatched();const r=this;r._nesting=0,r._outer=r._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(r._inner=r._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(r._inner=r._inner.fork(Zone.longStackTraceZoneSpec)),r.shouldCoalesceEventChangeDetection=!i&&e,r.shouldCoalesceRunChangeDetection=i,r.lastRequestAnimationFrameId=-1,r.nativeRequestAnimationFrame=function ZP(){let n=Ze.requestAnimationFrame,t=Ze.cancelAnimationFrame;if(typeof Zone<"u"&&n&&t){const e=n[Zone.__symbol__("OriginalDelegate")];e&&(n=e);const i=t[Zone.__symbol__("OriginalDelegate")];i&&(t=i)}return{nativeRequestAnimationFrame:n,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function KP(n){const t=()=>{!function YP(n){n.isCheckStableRunning||-1!==n.lastRequestAnimationFrameId||(n.lastRequestAnimationFrameId=n.nativeRequestAnimationFrame.call(Ze,()=>{n.fakeTopEventTask||(n.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{n.lastRequestAnimationFrameId=-1,Sp(n),n.isCheckStableRunning=!0,Cp(n),n.isCheckStableRunning=!1},void 0,()=>{},()=>{})),n.fakeTopEventTask.invoke()}),Sp(n))}(n)};n._inner=n._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(e,i,r,s,a,l)=>{try{return SD(n),e.invokeTask(r,s,a,l)}finally{(n.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||n.shouldCoalesceRunChangeDetection)&&t(),bD(n)}},onInvoke:(e,i,r,s,a,l,c)=>{try{return SD(n),e.invoke(r,s,a,l,c)}finally{n.shouldCoalesceRunChangeDetection&&t(),bD(n)}},onHasTask:(e,i,r,s)=>{e.hasTask(r,s),i===r&&("microTask"==s.change?(n._hasPendingMicrotasks=s.microTask,Sp(n),Cp(n)):"macroTask"==s.change&&(n.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,i,r,s)=>(e.handleError(r,s),n.runOutsideAngular(()=>n.onError.emit(s)),!1)})}(r)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!bt.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")}static assertNotInAngularZone(){if(bt.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")}run(t,e,i){return this._inner.run(t,e,i)}runTask(t,e,i,r){const s=this._inner,a=s.scheduleEventTask("NgZoneEvent: "+r,t,qP,Tc,Tc);try{return s.runTask(a,e,i)}finally{s.cancelTask(a)}}runGuarded(t,e,i){return this._inner.runGuarded(t,e,i)}runOutsideAngular(t){return this._outer.run(t)}}const qP={};function Cp(n){if(0==n._nesting&&!n.hasPendingMicrotasks&&!n.isStable)try{n._nesting++,n.onMicrotaskEmpty.emit(null)}finally{if(n._nesting--,!n.hasPendingMicrotasks)try{n.runOutsideAngular(()=>n.onStable.emit(null))}finally{n.isStable=!0}}}function Sp(n){n.hasPendingMicrotasks=!!(n._hasPendingMicrotasks||(n.shouldCoalesceEventChangeDetection||n.shouldCoalesceRunChangeDetection)&&-1!==n.lastRequestAnimationFrameId)}function SD(n){n._nesting++,n.isStable&&(n.isStable=!1,n.onUnstable.emit(null))}function bD(n){n._nesting--,Cp(n)}class QP{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new ue,this.onMicrotaskEmpty=new ue,this.onStable=new ue,this.onError=new ue}run(t,e,i){return t.apply(e,i)}runGuarded(t,e,i){return t.apply(e,i)}runOutsideAngular(t){return t()}runTask(t,e,i,r){return t.apply(e,i)}}let bp=(()=>{class n{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.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:()=>{bt.assertNotInAngularZone(),Dp(()=>{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())Dp(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(e)||(clearTimeout(i.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,i,r){let s=-1;i&&i>0&&(s=setTimeout(()=>{this._callbacks=this._callbacks.filter(a=>a.timeoutId!==s),e(this._didWork,this.getPendingTasks())},i)),this._callbacks.push({doneCb:e,timeoutId:s,updateCb:r})}whenStable(e,i,r){if(r&&!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(e,i,r),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,i,r){return[]}}return n.\u0275fac=function(e){return new(e||n)(U(bt))},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})(),ED=(()=>{class n{constructor(){this._applications=new Map,Ep.addToWindow(this)}registerApplication(e,i){this._applications.set(e,i)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,i=!0){return Ep.findTestabilityInTree(this,e,i)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})();class XP{addToWindow(t){}findTestabilityInTree(t,e,i){return null}}let Mi,Ep=new XP;const TD=new ze("AllowMultipleToken");function MD(n,t,e=[]){const i=`Platform: ${t}`,r=new ze(i);return(s=[])=>{let a=ID();if(!a||a.injector.get(TD,!1))if(n)n(e.concat(s).concat({provide:r,useValue:!0}));else{const l=e.concat(s).concat({provide:r,useValue:!0},{provide:Mf,useValue:"platform"});!function nA(n){if(Mi&&!Mi.destroyed&&!Mi.injector.get(TD,!1))throw new G(400,"");Mi=n.get(PD);const t=n.get(CD,null);t&&t.forEach(e=>e())}(Cn.create({providers:l,name:i}))}return function iA(n){const t=ID();if(!t)throw new G(401,"");return t}()}}function ID(){return Mi&&!Mi.destroyed?Mi:null}let PD=(()=>{class n{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,i){const l=function rA(n,t){let e;return e="noop"===n?new QP:("zone.js"===n?void 0:n)||new bt({enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!!t?.ngZoneEventCoalescing,shouldCoalesceRunChangeDetection:!!t?.ngZoneRunCoalescing}),e}(i?i.ngZone:void 0,{ngZoneEventCoalescing:i&&i.ngZoneEventCoalescing||!1,ngZoneRunCoalescing:i&&i.ngZoneRunCoalescing||!1}),c=[{provide:bt,useValue:l}];return l.run(()=>{const d=Cn.create({providers:c,parent:this.injector,name:e.moduleType.name}),f=e.create(d),g=f.injector.get($a,null);if(!g)throw new G(402,"");return l.runOutsideAngular(()=>{const v=l.onError.subscribe({next:y=>{g.handleError(y)}});f.onDestroy(()=>{Mp(this._modules,f),v.unsubscribe()})}),function sA(n,t,e){try{const i=e();return jf(i)?i.catch(r=>{throw t.runOutsideAngular(()=>n.handleError(r)),r}):i}catch(i){throw t.runOutsideAngular(()=>n.handleError(i)),i}}(g,l,()=>{const v=f.injector.get(_p);return v.runInitializers(),v.donePromise.then(()=>(function WI(n){un(n,"Expected localeId to be defined"),"string"==typeof n&&(cw=n.toLowerCase().replace(/_/g,"-"))}(f.injector.get(ui,gc)||gc),this._moduleDoBootstrap(f),f))})})}bootstrapModule(e,i=[]){const r=AD({},i);return function eA(n,t,e){const i=new Jf(e);return Promise.resolve(i)}(0,0,e).then(s=>this.bootstrapModuleFactory(s,r))}_moduleDoBootstrap(e){const i=e.injector.get(Tp);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(r=>i.bootstrap(r));else{if(!e.instance.ngDoBootstrap)throw new G(403,"");e.instance.ngDoBootstrap(i)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new G(404,"");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return n.\u0275fac=function(e){return new(e||n)(U(Cn))},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})();function AD(n,t){return Array.isArray(t)?t.reduce(AD,n):{...n,...t}}let Tp=(()=>{class n{constructor(e,i,r,s,a){this._zone=e,this._injector=i,this._exceptionHandler=r,this._componentFactoryResolver=s,this._initStatus=a,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const l=new it(d=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{d.next(this._stable),d.complete()})}),c=new it(d=>{let f;this._zone.runOutsideAngular(()=>{f=this._zone.onStable.subscribe(()=>{bt.assertNotInAngularZone(),Dp(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,d.next(!0))})})});const g=this._zone.onUnstable.subscribe(()=>{bt.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{d.next(!1)}))});return()=>{f.unsubscribe(),g.unsubscribe()}});this.isStable=rn(l,c.pipe(_e()))}bootstrap(e,i){if(!this._initStatus.done)throw new G(405,"");let r;r=e instanceof Nw?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(r.componentType);const s=function tA(n){return n.isBoundToModule}(r)?void 0:this._injector.get(zo),l=r.create(Cn.NULL,[],i||r.selector,s),c=l.location.nativeElement,d=l.injector.get(bp,null),f=d&&l.injector.get(ED);return d&&f&&f.registerApplication(c,d),l.onDestroy(()=>{this.detachView(l.hostView),Mp(this.components,l),f&&f.unregisterApplication(c)}),this._loadComponent(l),l}tick(){if(this._runningTick)throw new G(101,"");try{this._runningTick=!0;for(let e of this._views)e.detectChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;Mp(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(VP,[]).concat(this._bootstrapListeners).forEach(r=>r(e))}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}get viewCount(){return this._views.length}}return n.\u0275fac=function(e){return new(e||n)(U(bt),U(Cn),U($a),U(ms),U(_p))},n.\u0275prov=ae({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function Mp(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}let kD=!0,hl=(()=>{class n{}return n.__NG_ELEMENT_ID__=lA,n})();function lA(n){return function uA(n,t,e){if(us(n)&&!e){const i=Ve(n.index,t);return new ol(i,i)}return 47&n.type?new ol(t[16],t):null}(zt(),x(),16==(16&n))}class FD{constructor(){}supports(t){return Qa(t)}create(t){return new gA(t)}}const pA=(n,t)=>t;class gA{constructor(t){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=t||pA}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,i=this._removalsHead,r=0,s=null;for(;e||i;){const a=!i||e&&e.currentIndex{a=this._trackByFn(r,l),null!==e&&Object.is(e.trackById,a)?(i&&(e=this._verifyReinsertion(e,l,a,r)),Object.is(e.item,l)||this._addIdentityChange(e,l)):(e=this._mismatch(e,l,a,r),i=!0),e=e._next,r++}),this.length=r;return this._truncate(e),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,i,r){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,s,r)):null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(i,r))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,s,r)):t=this._addAfter(new mA(e,i),s,r),t}_verifyReinsertion(t,e,i,r){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null);return null!==s?t=this._reinsertAfter(s,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}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(t,e,i){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const r=t._prevRemoved,s=t._nextRemoved;return null===r?this._removalsHead=s:r._nextRemoved=s,null===s?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(t,e,i),this._addToMoves(t,i),t}_moveAfter(t,e,i){return this._unlink(t),this._insertAfter(t,e,i),this._addToMoves(t,i),t}_addAfter(t,e,i){return this._insertAfter(t,e,i),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,i){const r=null===e?this._itHead:e._next;return t._next=r,t._prev=e,null===r?this._itTail=t:r._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new BD),this._linkedRecords.put(t),t.currentIndex=i,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,i=t._next;return null===e?this._itHead=i:e._next=i,null===i?this._itTail=e:i._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new BD),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class mA{constructor(t,e){this.item=t,this.trackById=e,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 vA{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let i;for(i=this._head;null!==i;i=i._nextDup)if((null===e||e<=i.currentIndex)&&Object.is(i.trackById,t))return i;return null}remove(t){const e=t._prevDup,i=t._nextDup;return null===e?this._head=i:e._nextDup=i,null===i?this._tail=e:i._prevDup=e,null===this._head}}class BD{constructor(){this.map=new Map}put(t){const e=t.trackById;let i=this.map.get(e);i||(i=new vA,this.map.set(e,i)),i.add(t)}get(t,e){const r=this.map.get(t);return r?r.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function HD(n,t,e){const i=n.previousIndex;if(null===i)return i;let r=0;return e&&i{if(e&&e.key===r)this._maybeAddToChanges(e,i),this._appendAfter=e,e=e._next;else{const s=this._getOrCreateRecordForKey(r,i);e=this._insertBeforeOrAppend(e,s)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let i=e;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const i=t._prev;return e._next=t,e._prev=i,t._prev=e,i&&(i._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const r=this._records.get(t);this._maybeAddToChanges(r,e);const s=r._prev,a=r._next;return s&&(s._next=a),a&&(a._prev=s),r._next=null,r._prev=null,r}const i=new _A(t);return this._records.set(t,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(i=>e(t[i],i))}}class _A{constructor(t){this.key=t,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 jD(){return new Pc([new FD])}let Pc=(()=>{class n{constructor(e){this.factories=e}static create(e,i){if(null!=i){const r=i.factories.slice();e=e.concat(r)}return new n(e)}static extend(e){return{provide:n,useFactory:i=>n.create(e,i||jD()),deps:[[n,new Yu,new qu]]}}find(e){const i=this.factories.find(r=>r.supports(e));if(null!=i)return i;throw new G(901,"")}}return n.\u0275prov=ae({token:n,providedIn:"root",factory:jD}),n})();function UD(){return new fl([new VD])}let fl=(()=>{class n{constructor(e){this.factories=e}static create(e,i){if(i){const r=i.factories.slice();e=e.concat(r)}return new n(e)}static extend(e){return{provide:n,useFactory:i=>n.create(e,i||UD()),deps:[[n,new Yu,new qu]]}}find(e){const i=this.factories.find(s=>s.supports(e));if(i)return i;throw new G(901,"")}}return n.\u0275prov=ae({token:n,providedIn:"root",factory:UD}),n})();const CA=MD(null,"core",[{provide:dl,useValue:"unknown"},{provide:PD,deps:[Cn]},{provide:ED,deps:[]},{provide:jP,deps:[]}]);let SA=(()=>{class n{constructor(e){}}return n.\u0275fac=function(e){return new(e||n)(U(Tp))},n.\u0275mod=At({type:n}),n.\u0275inj=Le({}),n})(),Ac=null;function pl(){return Ac}const gn=new ze("DocumentToken");var Lt=(()=>((Lt=Lt||{})[Lt.Zero=0]="Zero",Lt[Lt.One=1]="One",Lt[Lt.Two=2]="Two",Lt[Lt.Few=3]="Few",Lt[Lt.Many=4]="Many",Lt[Lt.Other=5]="Other",Lt))(),xt=(()=>((xt=xt||{})[xt.Format=0]="Format",xt[xt.Standalone=1]="Standalone",xt))(),xe=(()=>((xe=xe||{})[xe.Narrow=0]="Narrow",xe[xe.Abbreviated=1]="Abbreviated",xe[xe.Wide=2]="Wide",xe[xe.Short=3]="Short",xe))(),Et=(()=>((Et=Et||{})[Et.Short=0]="Short",Et[Et.Medium=1]="Medium",Et[Et.Long=2]="Long",Et[Et.Full=3]="Full",Et))(),oe=(()=>((oe=oe||{})[oe.Decimal=0]="Decimal",oe[oe.Group=1]="Group",oe[oe.List=2]="List",oe[oe.PercentSign=3]="PercentSign",oe[oe.PlusSign=4]="PlusSign",oe[oe.MinusSign=5]="MinusSign",oe[oe.Exponential=6]="Exponential",oe[oe.SuperscriptingExponent=7]="SuperscriptingExponent",oe[oe.PerMille=8]="PerMille",oe[oe.Infinity=9]="Infinity",oe[oe.NaN=10]="NaN",oe[oe.TimeSeparator=11]="TimeSeparator",oe[oe.CurrencyDecimal=12]="CurrencyDecimal",oe[oe.CurrencyGroup=13]="CurrencyGroup",oe))();function xc(n,t){return di(Sn(n)[W.DateFormat],t)}function kc(n,t){return di(Sn(n)[W.TimeFormat],t)}function Rc(n,t){return di(Sn(n)[W.DateTimeFormat],t)}function ci(n,t){const e=Sn(n),i=e[W.NumberSymbols][t];if(typeof i>"u"){if(t===oe.CurrencyDecimal)return e[W.NumberSymbols][oe.Decimal];if(t===oe.CurrencyGroup)return e[W.NumberSymbols][oe.Group]}return i}const LA=function lw(n){return Sn(n)[W.PluralCase]};function GD(n){if(!n[W.ExtraData])throw new Error(`Missing extra locale data for the locale "${n[W.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function di(n,t){for(let e=t;e>-1;e--)if(typeof n[e]<"u")return n[e];throw new Error("Locale data API: locale data undefined")}function Rp(n){const[t,e]=n.split(":");return{hours:+t,minutes:+e}}const UA=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,gl={},zA=/((?:[^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 Zt=(()=>((Zt=Zt||{})[Zt.Short=0]="Short",Zt[Zt.ShortGMT=1]="ShortGMT",Zt[Zt.Long=2]="Long",Zt[Zt.Extended=3]="Extended",Zt))(),ce=(()=>((ce=ce||{})[ce.FullYear=0]="FullYear",ce[ce.Month=1]="Month",ce[ce.Date=2]="Date",ce[ce.Hours=3]="Hours",ce[ce.Minutes=4]="Minutes",ce[ce.Seconds=5]="Seconds",ce[ce.FractionalSeconds=6]="FractionalSeconds",ce[ce.Day=7]="Day",ce))(),Se=(()=>((Se=Se||{})[Se.DayPeriods=0]="DayPeriods",Se[Se.Days=1]="Days",Se[Se.Months=2]="Months",Se[Se.Eras=3]="Eras",Se))();function qt(n,t,e,i){let r=function XA(n){if(YD(n))return n;if("number"==typeof n&&!isNaN(n))return new Date(n);if("string"==typeof n){if(n=n.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(n)){const[r,s=1,a=1]=n.split("-").map(l=>+l);return Oc(r,s-1,a)}const e=parseFloat(n);if(!isNaN(n-e))return new Date(e);let i;if(i=n.match(UA))return function JA(n){const t=new Date(0);let e=0,i=0;const r=n[8]?t.setUTCFullYear:t.setFullYear,s=n[8]?t.setUTCHours:t.setHours;n[9]&&(e=Number(n[9]+n[10]),i=Number(n[9]+n[11])),r.call(t,Number(n[1]),Number(n[2])-1,Number(n[3]));const a=Number(n[4]||0)-e,l=Number(n[5]||0)-i,c=Number(n[6]||0),d=Math.floor(1e3*parseFloat("0."+(n[7]||0)));return s.call(t,a,l,c,d),t}(i)}const t=new Date(n);if(!YD(t))throw new Error(`Unable to convert "${n}" into a date`);return t}(n);t=vr(e,t)||t;let l,a=[];for(;t;){if(l=zA.exec(t),!l){a.push(t);break}{a=a.concat(l.slice(1));const f=a.pop();if(!f)break;t=f}}let c=r.getTimezoneOffset();i&&(c=qD(i,c),r=function QA(n,t,e){const i=e?-1:1,r=n.getTimezoneOffset();return function KA(n,t){return(n=new Date(n.getTime())).setMinutes(n.getMinutes()+t),n}(n,i*(qD(t,r)-r))}(r,i,!0));let d="";return a.forEach(f=>{const g=function YA(n){if(Np[n])return Np[n];let t;switch(n){case"G":case"GG":case"GGG":t=ht(Se.Eras,xe.Abbreviated);break;case"GGGG":t=ht(Se.Eras,xe.Wide);break;case"GGGGG":t=ht(Se.Eras,xe.Narrow);break;case"y":t=Ft(ce.FullYear,1,0,!1,!0);break;case"yy":t=Ft(ce.FullYear,2,0,!0,!0);break;case"yyy":t=Ft(ce.FullYear,3,0,!1,!0);break;case"yyyy":t=Ft(ce.FullYear,4,0,!1,!0);break;case"Y":t=Bc(1);break;case"YY":t=Bc(2,!0);break;case"YYY":t=Bc(3);break;case"YYYY":t=Bc(4);break;case"M":case"L":t=Ft(ce.Month,1,1);break;case"MM":case"LL":t=Ft(ce.Month,2,1);break;case"MMM":t=ht(Se.Months,xe.Abbreviated);break;case"MMMM":t=ht(Se.Months,xe.Wide);break;case"MMMMM":t=ht(Se.Months,xe.Narrow);break;case"LLL":t=ht(Se.Months,xe.Abbreviated,xt.Standalone);break;case"LLLL":t=ht(Se.Months,xe.Wide,xt.Standalone);break;case"LLLLL":t=ht(Se.Months,xe.Narrow,xt.Standalone);break;case"w":t=Op(1);break;case"ww":t=Op(2);break;case"W":t=Op(1,!0);break;case"d":t=Ft(ce.Date,1);break;case"dd":t=Ft(ce.Date,2);break;case"c":case"cc":t=Ft(ce.Day,1);break;case"ccc":t=ht(Se.Days,xe.Abbreviated,xt.Standalone);break;case"cccc":t=ht(Se.Days,xe.Wide,xt.Standalone);break;case"ccccc":t=ht(Se.Days,xe.Narrow,xt.Standalone);break;case"cccccc":t=ht(Se.Days,xe.Short,xt.Standalone);break;case"E":case"EE":case"EEE":t=ht(Se.Days,xe.Abbreviated);break;case"EEEE":t=ht(Se.Days,xe.Wide);break;case"EEEEE":t=ht(Se.Days,xe.Narrow);break;case"EEEEEE":t=ht(Se.Days,xe.Short);break;case"a":case"aa":case"aaa":t=ht(Se.DayPeriods,xe.Abbreviated);break;case"aaaa":t=ht(Se.DayPeriods,xe.Wide);break;case"aaaaa":t=ht(Se.DayPeriods,xe.Narrow);break;case"b":case"bb":case"bbb":t=ht(Se.DayPeriods,xe.Abbreviated,xt.Standalone,!0);break;case"bbbb":t=ht(Se.DayPeriods,xe.Wide,xt.Standalone,!0);break;case"bbbbb":t=ht(Se.DayPeriods,xe.Narrow,xt.Standalone,!0);break;case"B":case"BB":case"BBB":t=ht(Se.DayPeriods,xe.Abbreviated,xt.Format,!0);break;case"BBBB":t=ht(Se.DayPeriods,xe.Wide,xt.Format,!0);break;case"BBBBB":t=ht(Se.DayPeriods,xe.Narrow,xt.Format,!0);break;case"h":t=Ft(ce.Hours,1,-12);break;case"hh":t=Ft(ce.Hours,2,-12);break;case"H":t=Ft(ce.Hours,1);break;case"HH":t=Ft(ce.Hours,2);break;case"m":t=Ft(ce.Minutes,1);break;case"mm":t=Ft(ce.Minutes,2);break;case"s":t=Ft(ce.Seconds,1);break;case"ss":t=Ft(ce.Seconds,2);break;case"S":t=Ft(ce.FractionalSeconds,1);break;case"SS":t=Ft(ce.FractionalSeconds,2);break;case"SSS":t=Ft(ce.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":t=Lc(Zt.Short);break;case"ZZZZZ":t=Lc(Zt.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":t=Lc(Zt.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":t=Lc(Zt.Long);break;default:return null}return Np[n]=t,t}(f);d+=g?g(r,e,c):"''"===f?"'":f.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),d}function Oc(n,t,e){const i=new Date(0);return i.setFullYear(n,t,e),i.setHours(0,0,0),i}function vr(n,t){const e=function AA(n){return Sn(n)[W.LocaleId]}(n);if(gl[e]=gl[e]||{},gl[e][t])return gl[e][t];let i="";switch(t){case"shortDate":i=xc(n,Et.Short);break;case"mediumDate":i=xc(n,Et.Medium);break;case"longDate":i=xc(n,Et.Long);break;case"fullDate":i=xc(n,Et.Full);break;case"shortTime":i=kc(n,Et.Short);break;case"mediumTime":i=kc(n,Et.Medium);break;case"longTime":i=kc(n,Et.Long);break;case"fullTime":i=kc(n,Et.Full);break;case"short":const r=vr(n,"shortTime"),s=vr(n,"shortDate");i=Nc(Rc(n,Et.Short),[r,s]);break;case"medium":const a=vr(n,"mediumTime"),l=vr(n,"mediumDate");i=Nc(Rc(n,Et.Medium),[a,l]);break;case"long":const c=vr(n,"longTime"),d=vr(n,"longDate");i=Nc(Rc(n,Et.Long),[c,d]);break;case"full":const f=vr(n,"fullTime"),g=vr(n,"fullDate");i=Nc(Rc(n,Et.Full),[f,g])}return i&&(gl[e][t]=i),i}function Nc(n,t){return t&&(n=n.replace(/\{([^}]+)}/g,function(e,i){return null!=t&&i in t?t[i]:e})),n}function Ii(n,t,e="-",i,r){let s="";(n<0||r&&n<=0)&&(r?n=1-n:(n=-n,s=e));let a=String(n);for(;a.length0||l>-e)&&(l+=e),n===ce.Hours)0===l&&-12===e&&(l=12);else if(n===ce.FractionalSeconds)return function WA(n,t){return Ii(n,3).substr(0,t)}(l,t);const c=ci(a,oe.MinusSign);return Ii(l,t,c,i,r)}}function ht(n,t,e=xt.Format,i=!1){return function(r,s){return function GA(n,t,e,i,r,s){switch(e){case Se.Months:return function RA(n,t,e){const i=Sn(n),s=di([i[W.MonthsFormat],i[W.MonthsStandalone]],t);return di(s,e)}(t,r,i)[n.getMonth()];case Se.Days:return function kA(n,t,e){const i=Sn(n),s=di([i[W.DaysFormat],i[W.DaysStandalone]],t);return di(s,e)}(t,r,i)[n.getDay()];case Se.DayPeriods:const a=n.getHours(),l=n.getMinutes();if(s){const d=function FA(n){const t=Sn(n);return GD(t),(t[W.ExtraData][2]||[]).map(i=>"string"==typeof i?Rp(i):[Rp(i[0]),Rp(i[1])])}(t),f=function BA(n,t,e){const i=Sn(n);GD(i);const s=di([i[W.ExtraData][0],i[W.ExtraData][1]],t)||[];return di(s,e)||[]}(t,r,i),g=d.findIndex(v=>{if(Array.isArray(v)){const[y,w]=v,D=a>=y.hours&&l>=y.minutes,S=a0?Math.floor(r/60):Math.ceil(r/60);switch(n){case Zt.Short:return(r>=0?"+":"")+Ii(a,2,s)+Ii(Math.abs(r%60),2,s);case Zt.ShortGMT:return"GMT"+(r>=0?"+":"")+Ii(a,1,s);case Zt.Long:return"GMT"+(r>=0?"+":"")+Ii(a,2,s)+":"+Ii(Math.abs(r%60),2,s);case Zt.Extended:return 0===i?"Z":(r>=0?"+":"")+Ii(a,2,s)+":"+Ii(Math.abs(r%60),2,s);default:throw new Error(`Unknown zone width "${n}"`)}}}function ZD(n){return Oc(n.getFullYear(),n.getMonth(),n.getDate()+(4-n.getDay()))}function Op(n,t=!1){return function(e,i){let r;if(t){const s=new Date(e.getFullYear(),e.getMonth(),1).getDay()-1,a=e.getDate();r=1+Math.floor((a+s)/7)}else{const s=ZD(e),a=function qA(n){const t=Oc(n,0,1).getDay();return Oc(n,0,1+(t<=4?4:11)-t)}(s.getFullYear()),l=s.getTime()-a.getTime();r=1+Math.round(l/6048e5)}return Ii(r,n,ci(i,oe.MinusSign))}}function Bc(n,t=!1){return function(e,i){return Ii(ZD(e).getFullYear(),n,ci(i,oe.MinusSign),t)}}const Np={};function qD(n,t){n=n.replace(/:/g,"");const e=Date.parse("Jan 01, 1970 00:00:00 "+n)/6e4;return isNaN(e)?t:e}function YD(n){return n instanceof Date&&!isNaN(n.valueOf())}let Vp=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=ae({token:n,factory:function(e){let i=null;return e?i=new e:(r=U(ui),i=new cx(r)),i;var r},providedIn:"root"}),n})();let cx=(()=>{class n extends Vp{constructor(e){super(),this.locale=e}getPluralCategory(e,i){switch(LA(i||this.locale)(e)){case Lt.Zero:return"zero";case Lt.One:return"one";case Lt.Two:return"two";case Lt.Few:return"few";case Lt.Many:return"many";default:return"other"}}}return n.\u0275fac=function(e){return new(e||n)(U(ui))},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})();function JD(n,t){t=encodeURIComponent(t);for(const e of n.split(";")){const i=e.indexOf("="),[r,s]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(r.trim()===t)return decodeURIComponent(s)}return null}let er=(()=>{class n{constructor(e,i,r,s){this._iterableDiffers=e,this._keyValueDiffers=i,this._ngEl=r,this._renderer=s,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(e){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof e?e.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(e){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof e?e.split(/\s+/):e,this._rawClass&&(Qa(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const e=this._iterableDiffer.diff(this._rawClass);e&&this._applyIterableChanges(e)}else if(this._keyValueDiffer){const e=this._keyValueDiffer.diff(this._rawClass);e&&this._applyKeyValueChanges(e)}}_applyKeyValueChanges(e){e.forEachAddedItem(i=>this._toggleClass(i.key,i.currentValue)),e.forEachChangedItem(i=>this._toggleClass(i.key,i.currentValue)),e.forEachRemovedItem(i=>{i.previousValue&&this._toggleClass(i.key,!1)})}_applyIterableChanges(e){e.forEachAddedItem(i=>{if("string"!=typeof i.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${Re(i.item)}`);this._toggleClass(i.item,!0)}),e.forEachRemovedItem(i=>this._toggleClass(i.item,!1))}_applyClasses(e){e&&(Array.isArray(e)||e instanceof Set?e.forEach(i=>this._toggleClass(i,!0)):Object.keys(e).forEach(i=>this._toggleClass(i,!!e[i])))}_removeClasses(e){e&&(Array.isArray(e)||e instanceof Set?e.forEach(i=>this._toggleClass(i,!1)):Object.keys(e).forEach(i=>this._toggleClass(i,!1)))}_toggleClass(e,i){(e=e.trim())&&e.split(/\s+/g).forEach(r=>{i?this._renderer.addClass(this._ngEl.nativeElement,r):this._renderer.removeClass(this._ngEl.nativeElement,r)})}}return n.\u0275fac=function(e){return new(e||n)(O(Pc),O(fl),O(bn),O(gr))},n.\u0275dir=yt({type:n,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"}}),n})();class hx{constructor(t,e,i,r){this.$implicit=t,this.ngForOf=e,this.index=i,this.count=r}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 Ur=(()=>{class n{constructor(e,i,r){this._viewContainer=e,this._template=i,this._differs=r,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(e){e&&(this._template=e)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const e=this._ngForOf;!this._differ&&e&&(this._differ=this._differs.find(e).create(this.ngForTrackBy))}if(this._differ){const e=this._differ.diff(this._ngForOf);e&&this._applyChanges(e)}}_applyChanges(e){const i=this._viewContainer;e.forEachOperation((r,s,a)=>{if(null==r.previousIndex)i.createEmbeddedView(this._template,new hx(r.item,this._ngForOf,-1,-1),null===a?void 0:a);else if(null==a)i.remove(null===s?void 0:s);else if(null!==s){const l=i.get(s);i.move(l,a),eC(l,r)}});for(let r=0,s=i.length;r{eC(i.get(r.currentIndex),r)})}static ngTemplateContextGuard(e,i){return!0}}return n.\u0275fac=function(e){return new(e||n)(O(li),O(mr),O(Pc))},n.\u0275dir=yt({type:n,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}}),n})();function eC(n,t){n.context.$implicit=t.item}let yr=(()=>{class n{constructor(e,i){this._viewContainer=e,this._context=new fx,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){tC("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){tC("ngIfElse",e),this._elseTemplateRef=e,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(e,i){return!0}}return n.\u0275fac=function(e){return new(e||n)(O(li),O(mr))},n.\u0275dir=yt({type:n,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}}),n})();class fx{constructor(){this.$implicit=null,this.ngIf=null}}function tC(n,t){if(t&&!t.createEmbeddedView)throw new Error(`${n} must be a TemplateRef, but received '${Re(t)}'.`)}class jp{constructor(t,e){this._viewContainerRef=t,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(t){t&&!this._created?this.create():!t&&this._created&&this.destroy()}}let Vc=(()=>{class n{constructor(){this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(e){this._ngSwitch=e,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(e){this._defaultViews||(this._defaultViews=[]),this._defaultViews.push(e)}_matchCase(e){const i=e==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||i,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),i}_updateDefaultCases(e){if(this._defaultViews&&e!==this._defaultUsed){this._defaultUsed=e;for(let i=0;i{class n{constructor(e,i,r){this.ngSwitch=r,r._addCase(),this._view=new jp(e,i)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}}return n.\u0275fac=function(e){return new(e||n)(O(li),O(mr),O(Vc,9))},n.\u0275dir=yt({type:n,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"}}),n})(),vl=(()=>{class n{constructor(e,i,r){this._ngEl=e,this._differs=i,this._renderer=r,this._ngStyle=null,this._differ=null}set ngStyle(e){this._ngStyle=e,!this._differ&&e&&(this._differ=this._differs.find(e).create())}ngDoCheck(){if(this._differ){const e=this._differ.diff(this._ngStyle);e&&this._applyChanges(e)}}_setStyle(e,i){const[r,s]=e.split(".");null!=(i=null!=i&&s?`${i}${s}`:i)?this._renderer.setStyle(this._ngEl.nativeElement,r,i):this._renderer.removeStyle(this._ngEl.nativeElement,r)}_applyChanges(e){e.forEachRemovedItem(i=>this._setStyle(i.key,null)),e.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),e.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}}return n.\u0275fac=function(e){return new(e||n)(O(bn),O(fl),O(gr))},n.\u0275dir=yt({type:n,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}}),n})(),hi=(()=>{class n{constructor(e){this._viewContainerRef=e,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null}ngOnChanges(e){if(e.ngTemplateOutlet){const i=this._viewContainerRef;this._viewRef&&i.remove(i.indexOf(this._viewRef)),this._viewRef=this.ngTemplateOutlet?i.createEmbeddedView(this.ngTemplateOutlet,this.ngTemplateOutletContext):null}else this._viewRef&&e.ngTemplateOutletContext&&this.ngTemplateOutletContext&&(this._viewRef.context=this.ngTemplateOutletContext)}}return n.\u0275fac=function(e){return new(e||n)(O(li))},n.\u0275dir=yt({type:n,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet"},features:[ri]}),n})();function Pi(n,t){return new G(2100,"")}class mx{createSubscription(t,e){return t.subscribe({next:e,error:i=>{throw i}})}dispose(t){t.unsubscribe()}onDestroy(t){t.unsubscribe()}}class vx{createSubscription(t,e){return t.then(e,i=>{throw i})}dispose(t){}onDestroy(t){}}const yx=new vx,_x=new mx;let Up=(()=>{class n{constructor(e){this._ref=e,this._latestValue=null,this._subscription=null,this._obj=null,this._strategy=null}ngOnDestroy(){this._subscription&&this._dispose()}transform(e){return this._obj?e!==this._obj?(this._dispose(),this.transform(e)):this._latestValue:(e&&this._subscribe(e),this._latestValue)}_subscribe(e){this._obj=e,this._strategy=this._selectStrategy(e),this._subscription=this._strategy.createSubscription(e,i=>this._updateLatestValue(e,i))}_selectStrategy(e){if(jf(e))return yx;if(v_(e))return _x;throw Pi()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(e,i){e===this._obj&&(this._latestValue=i,this._ref.markForCheck())}}return n.\u0275fac=function(e){return new(e||n)(O(hl,16))},n.\u0275pipe=ct({name:"async",type:n,pure:!1}),n})();const Tx=/#/g;let zp=(()=>{class n{constructor(e){this._localization=e}transform(e,i,r){if(null==e)return"";if("object"!=typeof i||null===i)throw Pi();return i[function XD(n,t,e,i){let r=`=${n}`;if(t.indexOf(r)>-1||(r=e.getPluralCategory(n,i),t.indexOf(r)>-1))return r;if(t.indexOf("other")>-1)return"other";throw new Error(`No plural message found for value "${n}"`)}(e,Object.keys(i),this._localization,r)].replace(Tx,e.toString())}}return n.\u0275fac=function(e){return new(e||n)(O(Vp,16))},n.\u0275pipe=ct({name:"i18nPlural",type:n,pure:!0}),n})(),sC=(()=>{class n{transform(e,i,r){if(null==e)return null;if(!this.supports(e))throw Pi();return e.slice(i,r)}supports(e){return"string"==typeof e||Array.isArray(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275pipe=ct({name:"slice",type:n,pure:!1}),n})(),Go=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=At({type:n}),n.\u0275inj=Le({}),n})();const oC="browser";class lC{}class Gp extends class Hx extends class TA{}{constructor(){super(...arguments),this.supportsDOMEvents=!0}}{static makeCurrent(){!function EA(n){Ac||(Ac=n)}(new Gp)}onAndCancel(t,e,i){return t.addEventListener(e,i,!1),()=>{t.removeEventListener(e,i,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){t.parentNode&&t.parentNode.removeChild(t)}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return"window"===e?window:"document"===e?t:"body"===e?t.body:null}getBaseHref(t){const e=function Vx(){return yl=yl||document.querySelector("base"),yl?yl.getAttribute("href"):null}();return null==e?null:function jx(n){jc=jc||document.createElement("a"),jc.setAttribute("href",n);const t=jc.pathname;return"/"===t.charAt(0)?t:`/${t}`}(e)}resetBaseElement(){yl=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return JD(document.cookie,t)}}let jc,yl=null;const uC=new ze("TRANSITION_ID"),zx=[{provide:wD,useFactory:function Ux(n,t,e){return()=>{e.get(_p).donePromise.then(()=>{const i=pl(),r=t.querySelectorAll(`style[ng-transition="${n}"]`);for(let s=0;s{const s=t.findTestabilityInTree(i,r);if(null==s)throw new Error("Could not find testability for element.");return s},Ze.getAllAngularTestabilities=()=>t.getAllTestabilities(),Ze.getAllAngularRootElements=()=>t.getAllRootElements(),Ze.frameworkStabilizers||(Ze.frameworkStabilizers=[]),Ze.frameworkStabilizers.push(i=>{const r=Ze.getAllAngularTestabilities();let s=r.length,a=!1;const l=function(c){a=a||c,s--,0==s&&i(a)};r.forEach(function(c){c.whenStable(l)})})}findTestabilityInTree(t,e,i){return null==e?null:t.getTestability(e)??(i?pl().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null)}}let Wx=(()=>{class n{build(){return new XMLHttpRequest}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})();const Uc=new ze("EventManagerPlugins");let zc=(()=>{class n{constructor(e,i){this._zone=i,this._eventNameToPlugin=new Map,e.forEach(r=>r.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,i,r){return this._findPluginFor(i).addEventListener(e,i,r)}addGlobalEventListener(e,i,r){return this._findPluginFor(i).addGlobalEventListener(e,i,r)}getZone(){return this._zone}_findPluginFor(e){const i=this._eventNameToPlugin.get(e);if(i)return i;const r=this._plugins;for(let s=0;s{class n{constructor(){this._stylesSet=new Set}addStyles(e){const i=new Set;e.forEach(r=>{this._stylesSet.has(r)||(this._stylesSet.add(r),i.add(r))}),this.onStylesAdded(i)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})(),_l=(()=>{class n extends dC{constructor(e){super(),this._doc=e,this._hostNodes=new Map,this._hostNodes.set(e.head,[])}_addStylesToHost(e,i,r){e.forEach(s=>{const a=this._doc.createElement("style");a.textContent=s,r.push(i.appendChild(a))})}addHost(e){const i=[];this._addStylesToHost(this._stylesSet,e,i),this._hostNodes.set(e,i)}removeHost(e){const i=this._hostNodes.get(e);i&&i.forEach(hC),this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach((i,r)=>{this._addStylesToHost(e,r,i)})}ngOnDestroy(){this._hostNodes.forEach(e=>e.forEach(hC))}}return n.\u0275fac=function(e){return new(e||n)(U(gn))},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})();function hC(n){pl().remove(n)}const qp={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/"},Yp=/%COMP%/g;function Wc(n,t,e){for(let i=0;i{if("__ngUnwrap__"===t)return n;!1===n(t)&&(t.preventDefault(),t.returnValue=!1)}}let $c=(()=>{class n{constructor(e,i,r){this.eventManager=e,this.sharedStylesHost=i,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new Kp(e)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;switch(i.encapsulation){case zn.Emulated:{let r=this.rendererByCompId.get(i.id);return r||(r=new Kx(this.eventManager,this.sharedStylesHost,i,this.appId),this.rendererByCompId.set(i.id,r)),r.applyToHost(e),r}case 1:case zn.ShadowDom:return new Qx(this.eventManager,this.sharedStylesHost,e,i);default:if(!this.rendererByCompId.has(i.id)){const r=Wc(i.id,i.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(i.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return n.\u0275fac=function(e){return new(e||n)(U(zc),U(_l),U(cl))},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})();class Kp{constructor(t){this.eventManager=t,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(t,e){return e?document.createElementNS(qp[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){t.appendChild(e)}insertBefore(t,e,i){t&&t.insertBefore(e,i)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let i="string"==typeof t?document.querySelector(t):t;if(!i)throw new Error(`The selector "${t}" did not match any elements`);return e||(i.textContent=""),i}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,i,r){if(r){e=r+":"+e;const s=qp[r];s?t.setAttributeNS(s,e,i):t.setAttribute(e,i)}else t.setAttribute(e,i)}removeAttribute(t,e,i){if(i){const r=qp[i];r?t.removeAttributeNS(r,e):t.removeAttribute(`${i}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,i,r){r&(Gn.DashCase|Gn.Important)?t.style.setProperty(e,i,r&Gn.Important?"important":""):t.style[e]=i}removeStyle(t,e,i){i&Gn.DashCase?t.style.removeProperty(e):t.style[e]=""}setProperty(t,e,i){t[e]=i}setValue(t,e){t.nodeValue=e}listen(t,e,i){return"string"==typeof t?this.eventManager.addGlobalEventListener(t,e,gC(i)):this.eventManager.addEventListener(t,e,gC(i))}}class Kx extends Kp{constructor(t,e,i,r){super(t),this.component=i;const s=Wc(r+"-"+i.id,i.styles,[]);e.addStyles(s),this.contentAttr=function Zx(n){return"_ngcontent-%COMP%".replace(Yp,n)}(r+"-"+i.id),this.hostAttr=function qx(n){return"_nghost-%COMP%".replace(Yp,n)}(r+"-"+i.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,"")}createElement(t,e){const i=super.createElement(t,e);return super.setAttribute(i,this.contentAttr,""),i}}class Qx extends Kp{constructor(t,e,i,r){super(t),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=Wc(r.id,r.styles,[]);for(let a=0;a{class n extends cC{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,r){return e.addEventListener(i,r,!1),()=>this.removeEventListener(e,i,r)}removeEventListener(e,i,r){return e.removeEventListener(i,r)}}return n.\u0275fac=function(e){return new(e||n)(U(gn))},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})();const vC=["alt","control","meta","shift"],ek={"\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"},yC={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","\x90":"NumLock"},tk={alt:n=>n.altKey,control:n=>n.ctrlKey,meta:n=>n.metaKey,shift:n=>n.shiftKey};let nk=(()=>{class n extends cC{constructor(e){super(e)}supports(e){return null!=n.parseEventName(e)}addEventListener(e,i,r){const s=n.parseEventName(i),a=n.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>pl().onAndCancel(e,s.domEventName,a))}static parseEventName(e){const i=e.toLowerCase().split("."),r=i.shift();if(0===i.length||"keydown"!==r&&"keyup"!==r)return null;const s=n._normalizeKey(i.pop());let a="";if(vC.forEach(c=>{const d=i.indexOf(c);d>-1&&(i.splice(d,1),a+=c+".")}),a+=s,0!=i.length||0===s.length)return null;const l={};return l.domEventName=r,l.fullKey=a,l}static getEventFullKey(e){let i="",r=function ik(n){let t=n.key;if(null==t){if(t=n.keyIdentifier,null==t)return"Unidentified";t.startsWith("U+")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===n.location&&yC.hasOwnProperty(t)&&(t=yC[t]))}return ek[t]||t}(e);return r=r.toLowerCase()," "===r?r="space":"."===r&&(r="dot"),vC.forEach(s=>{s!=r&&tk[s](e)&&(i+=s+".")}),i+=r,i}static eventCallback(e,i,r){return s=>{n.getEventFullKey(s)===e&&r.runGuarded(()=>i(s))}}static _normalizeKey(e){return"esc"===e?"escape":e}}return n.\u0275fac=function(e){return new(e||n)(U(gn))},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})();const ak=MD(CA,"browser",[{provide:dl,useValue:oC},{provide:CD,useValue:function rk(){Gp.makeCurrent(),Zp.init()},multi:!0},{provide:gn,useFactory:function ok(){return function q(n){k=n}(document),document},deps:[]}]),lk=[{provide:Mf,useValue:"root"},{provide:$a,useFactory:function sk(){return new $a},deps:[]},{provide:Uc,useClass:Xx,multi:!0,deps:[gn,bt,dl]},{provide:Uc,useClass:nk,multi:!0,deps:[gn]},{provide:$c,useClass:$c,deps:[zc,_l,cl]},{provide:sl,useExisting:$c},{provide:dC,useExisting:_l},{provide:_l,useClass:_l,deps:[gn]},{provide:bp,useClass:bp,deps:[bt]},{provide:zc,useClass:zc,deps:[Uc,bt]},{provide:lC,useClass:Wx,deps:[]}];let _C=(()=>{class n{constructor(e){if(e)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}static withServerTransition(e){return{ngModule:n,providers:[{provide:cl,useValue:e.appId},{provide:uC,useExisting:cl},zx]}}}return n.\u0275fac=function(e){return new(e||n)(U(n,12))},n.\u0275mod=At({type:n}),n.\u0275inj=Le({providers:lk,imports:[Go,SA]}),n})();typeof window<"u"&&window;const Xp={now:()=>(Xp.delegate||Date).now(),delegate:void 0};class CC extends Me{constructor(t=1/0,e=1/0,i=Xp){super(),this._bufferSize=t,this._windowTime=e,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=e===1/0,this._bufferSize=Math.max(1,t),this._windowTime=Math.max(1,e)}next(t){const{isStopped:e,_buffer:i,_infiniteTimeWindow:r,_timestampProvider:s,_windowTime:a}=this;e||(i.push(t),!r&&i.push(s.now()+a)),this._trimBuffer(),super.next(t)}_subscribe(t){this._throwIfClosed(),this._trimBuffer();const e=this._innerSubscribe(t),{_infiniteTimeWindow:i,_buffer:r}=this,s=r.slice();for(let a=0;a{let r=null,s=0,a=!1;const l=()=>a&&!r&&i.complete();e.subscribe(mt(i,c=>{null==r||r.unsubscribe();let d=0;const f=s++;Hn(n(c,f)).subscribe(r=mt(i,g=>i.next(t?t(c,g,f,d++):g),()=>{r=null,l()}))},()=>{a=!0,l()}))})}const Gc={schedule(n,t){const e=setTimeout(n,t);return()=>clearTimeout(e)},scheduleBeforeRender(n){if(typeof window>"u")return Gc.schedule(n,0);if(typeof window.requestAnimationFrame>"u")return Gc.schedule(n,16);const t=window.requestAnimationFrame(n);return()=>window.cancelAnimationFrame(t)}};let Jp;function Mk(n,t,e){let i=e;return function wk(n){return!!n&&n.nodeType===Node.ELEMENT_NODE}(n)&&t.some((r,s)=>!("*"===r||!function Ck(n,t){if(!Jp){const e=Element.prototype;Jp=e.matches||e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector}return n.nodeType===Node.ELEMENT_NODE&&Jp.call(n,t)}(n,r)||(i=s,0))),i}class Pk{constructor(t,e){this.componentFactory=e.get(ms).resolveComponentFactory(t)}create(t){return new Ak(this.componentFactory,t)}}class Ak{constructor(t,e){this.componentFactory=t,this.injector=e,this.eventEmitters=new CC(1),this.events=this.eventEmitters.pipe(Wr(i=>rn(...i))),this.componentRef=null,this.viewChangeDetectorRef=null,this.inputChanges=null,this.hasInputChanges=!1,this.implementsOnChanges=!1,this.scheduledChangeDetectionFn=null,this.scheduledDestroyFn=null,this.initialInputValues=new Map,this.unchangedInputs=new Set(this.componentFactory.inputs.map(({propName:i})=>i)),this.ngZone=this.injector.get(bt),this.elementZone=typeof Zone>"u"?null:this.ngZone.run(()=>Zone.current)}connect(t){this.runInZone(()=>{if(null!==this.scheduledDestroyFn)return this.scheduledDestroyFn(),void(this.scheduledDestroyFn=null);null===this.componentRef&&this.initializeComponent(t)})}disconnect(){this.runInZone(()=>{null===this.componentRef||null!==this.scheduledDestroyFn||(this.scheduledDestroyFn=Gc.schedule(()=>{null!==this.componentRef&&(this.componentRef.destroy(),this.componentRef=null,this.viewChangeDetectorRef=null)},10))})}getInputValue(t){return this.runInZone(()=>null===this.componentRef?this.initialInputValues.get(t):this.componentRef.instance[t])}setInputValue(t,e){this.runInZone(()=>{null!==this.componentRef?function Sk(n,t){return n===t||n!=n&&t!=t}(e,this.getInputValue(t))&&(void 0!==e||!this.unchangedInputs.has(t))||(this.recordInputChange(t,e),this.unchangedInputs.delete(t),this.hasInputChanges=!0,this.componentRef.instance[t]=e,this.scheduleDetectChanges()):this.initialInputValues.set(t,e)})}initializeComponent(t){const e=Cn.create({providers:[],parent:this.injector}),i=function Tk(n,t){const e=n.childNodes,i=t.map(()=>[]);let r=-1;t.some((s,a)=>"*"===s&&(r=a,!0));for(let s=0,a=e.length;s{this.initialInputValues.has(t)&&this.setInputValue(t,this.initialInputValues.get(t))}),this.initialInputValues.clear()}initializeOutputs(t){const e=this.componentFactory.outputs.map(({propName:i,templateName:r})=>t.instance[i].pipe(He(a=>({name:r,value:a}))));this.eventEmitters.next(e)}callNgOnChanges(t){if(!this.implementsOnChanges||null===this.inputChanges)return;const e=this.inputChanges;this.inputChanges=null,t.instance.ngOnChanges(e)}markViewForCheck(t){this.hasInputChanges&&(this.hasInputChanges=!1,t.markForCheck())}scheduleDetectChanges(){this.scheduledChangeDetectionFn||(this.scheduledChangeDetectionFn=Gc.scheduleBeforeRender(()=>{this.scheduledChangeDetectionFn=null,this.detectChanges()}))}recordInputChange(t,e){if(!this.implementsOnChanges)return;null===this.inputChanges&&(this.inputChanges={});const i=this.inputChanges[t];if(i)return void(i.currentValue=e);const r=this.unchangedInputs.has(t),s=r?void 0:this.getInputValue(t);this.inputChanges[t]=new Sa(s,e,r)}detectChanges(){null!==this.componentRef&&(this.callNgOnChanges(this.componentRef),this.markViewForCheck(this.viewChangeDetectorRef),this.componentRef.changeDetectorRef.detectChanges())}runInZone(t){return this.elementZone&&Zone.current!==this.elementZone?this.ngZone.run(t):t()}}class xk extends HTMLElement{constructor(){super(...arguments),this.ngElementEventsSubscription=null}}function SC(n,t){const e=function Ek(n,t){return t.get(ms).resolveComponentFactory(n).inputs}(n,t.injector),i=t.strategyFactory||new Pk(n,t.injector),r=function bk(n){const t={};return n.forEach(({propName:e,templateName:i})=>{t[function _k(n){return n.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}(i)]=e}),t}(e);class s extends xk{constructor(l){super(),this.injector=l}get ngElementStrategy(){if(!this._ngElementStrategy){const l=this._ngElementStrategy=i.create(this.injector||t.injector);e.forEach(({propName:c})=>{if(!this.hasOwnProperty(c))return;const d=this[c];delete this[c],l.setInputValue(c,d)})}return this._ngElementStrategy}attributeChangedCallback(l,c,d,f){this.ngElementStrategy.setInputValue(r[l],d)}connectedCallback(){let l=!1;this.ngElementStrategy.events&&(this.subscribeToEvents(),l=!0),this.ngElementStrategy.connect(this),l||this.subscribeToEvents()}disconnectedCallback(){this._ngElementStrategy&&this._ngElementStrategy.disconnect(),this.ngElementEventsSubscription&&(this.ngElementEventsSubscription.unsubscribe(),this.ngElementEventsSubscription=null)}subscribeToEvents(){this.ngElementEventsSubscription=this.ngElementStrategy.events.subscribe(l=>{const c=new CustomEvent(l.name,{detail:l.value});this.dispatchEvent(c)})}}return s.observedAttributes=Object.keys(r),e.forEach(({propName:a})=>{Object.defineProperty(s.prototype,a,{get(){return this.ngElementStrategy.getInputValue(a)},set(l){this.ngElementStrategy.setInputValue(a,l)},configurable:!0,enumerable:!0})}),s}class bC{}const _r="*";function EC(n,t=null){return{type:4,styles:t,timings:n}}function TC(n,t=null){return{type:2,steps:n,options:t}}function Zc(n){return{type:6,styles:n,offset:null}}function MC(n,t,e){return{type:0,name:n,styles:t,options:e}}function IC(n,t,e=null){return{type:1,expr:n,animation:t,options:e}}function PC(n){Promise.resolve(null).then(n)}class wl{constructor(t=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=t+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}onStart(t){this._onStartFns.push(t)}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){PC(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this._started=!1}setPosition(t){this._position=this.totalTime?t*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class AC{constructor(t){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=t;let e=0,i=0,r=0;const s=this.players.length;0==s?PC(()=>this._onFinish()):this.players.forEach(a=>{a.onDone(()=>{++e==s&&this._onFinish()}),a.onDestroy(()=>{++i==s&&this._onDestroy()}),a.onStart(()=>{++r==s&&this._onStart()})}),this.totalTime=this.players.reduce((a,l)=>Math.max(a,l.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this.players.forEach(t=>t.init())}onStart(t){this._onStartFns.push(t)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(t=>t()),this._onStartFns=[])}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(t=>t.play())}pause(){this.players.forEach(t=>t.pause())}restart(){this.players.forEach(t=>t.restart())}finish(){this._onFinish(),this.players.forEach(t=>t.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(t=>t.destroy()),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this.players.forEach(t=>t.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(t){const e=t*this.totalTime;this.players.forEach(i=>{const r=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(r)})}getPosition(){const t=this.players.reduce((e,i)=>null===e||i.totalTime>e.totalTime?i:e,null);return null!=t?t.getPosition():0}beforeDestroy(){this.players.forEach(t=>{t.beforeDestroy&&t.beforeDestroy()})}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}const Ne=!1;function xC(n){return new G(3e3,Ne)}function fR(){return typeof window<"u"&&typeof window.document<"u"}function tg(){return typeof process<"u"&&"[object process]"==={}.toString.call(process)}function $r(n){switch(n.length){case 0:return new wl;case 1:return n[0];default:return new AC(n)}}function kC(n,t,e,i,r={},s={}){const a=[],l=[];let c=-1,d=null;if(i.forEach(f=>{const g=f.offset,v=g==c,y=v&&d||{};Object.keys(f).forEach(w=>{let D=w,S=f[w];if("offset"!==w)switch(D=t.normalizePropertyName(D,a),S){case"!":S=r[w];break;case _r:S=s[w];break;default:S=t.normalizeStyleValue(w,D,S,a)}y[D]=S}),v||l.push(y),d=y,c=g}),a.length)throw function nR(n){return new G(3502,Ne)}();return l}function ng(n,t,e,i){switch(t){case"start":n.onStart(()=>i(e&&ig(e,"start",n)));break;case"done":n.onDone(()=>i(e&&ig(e,"done",n)));break;case"destroy":n.onDestroy(()=>i(e&&ig(e,"destroy",n)))}}function ig(n,t,e){const s=rg(n.element,n.triggerName,n.fromState,n.toState,t||n.phaseName,e.totalTime??n.totalTime,!!e.disabled),a=n._data;return null!=a&&(s._data=a),s}function rg(n,t,e,i,r="",s=0,a){return{element:n,triggerName:t,fromState:e,toState:i,phaseName:r,totalTime:s,disabled:!!a}}function Yn(n,t,e){let i;return n instanceof Map?(i=n.get(t),i||n.set(t,i=e)):(i=n[t],i||(i=n[t]=e)),i}function RC(n){const t=n.indexOf(":");return[n.substring(1,t),n.substr(t+1)]}let sg=(n,t)=>!1,OC=(n,t,e)=>[],NC=null;function og(n){const t=n.parentNode||n.host;return t===NC?null:t}(tg()||typeof Element<"u")&&(fR()?(NC=(()=>document.documentElement)(),sg=(n,t)=>{for(;t;){if(t===n)return!0;t=og(t)}return!1}):sg=(n,t)=>n.contains(t),OC=(n,t,e)=>{if(e)return Array.from(n.querySelectorAll(t));const i=n.querySelector(t);return i?[i]:[]});let _s=null,LC=!1;function FC(n){_s||(_s=function gR(){return typeof document<"u"?document.body:null}()||{},LC=!!_s.style&&"WebkitAppearance"in _s.style);let t=!0;return _s.style&&!function pR(n){return"ebkit"==n.substring(1,6)}(n)&&(t=n in _s.style,!t&&LC&&(t="Webkit"+n.charAt(0).toUpperCase()+n.substr(1)in _s.style)),t}const BC=sg,HC=OC;let VC=(()=>{class n{validateStyleProperty(e){return FC(e)}matchesElement(e,i){return!1}containsElement(e,i){return BC(e,i)}getParentElement(e){return og(e)}query(e,i,r){return HC(e,i,r)}computeStyle(e,i,r){return r||""}animate(e,i,r,s,a,l=[],c){return new wl(r,s)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})(),ag=(()=>{class n{}return n.NOOP=new VC,n})();const lg="ng-enter",Yc="ng-leave",Kc="ng-trigger",Qc=".ng-trigger",UC="ng-animating",ug=".ng-animating";function ws(n){if("number"==typeof n)return n;const t=n.match(/^(-?[\.\d]+)(m?s)/);return!t||t.length<2?0:cg(parseFloat(t[1]),t[2])}function cg(n,t){return"s"===t?1e3*n:n}function Xc(n,t,e){return n.hasOwnProperty("duration")?n:function yR(n,t,e){let r,s=0,a="";if("string"==typeof n){const l=n.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===l)return t.push(xC()),{duration:0,delay:0,easing:""};r=cg(parseFloat(l[1]),l[2]);const c=l[3];null!=c&&(s=cg(parseFloat(c),l[4]));const d=l[5];d&&(a=d)}else r=n;if(!e){let l=!1,c=t.length;r<0&&(t.push(function Ok(){return new G(3100,Ne)}()),l=!0),s<0&&(t.push(function Nk(){return new G(3101,Ne)}()),l=!0),l&&t.splice(c,0,xC())}return{duration:r,delay:s,easing:a}}(n,t,e)}function Zo(n,t={}){return Object.keys(n).forEach(e=>{t[e]=n[e]}),t}function Gr(n,t,e={}){if(t)for(let i in n)e[i]=n[i];else Zo(n,e);return e}function WC(n,t,e){return e?t+":"+e+";":""}function $C(n){let t="";for(let e=0;e{const r=hg(i);e&&!e.hasOwnProperty(i)&&(e[i]=n.style[r]),n.style[r]=t[i]}),tg()&&$C(n))}function Ds(n,t){n.style&&(Object.keys(t).forEach(e=>{const i=hg(e);n.style[i]=""}),tg()&&$C(n))}function Dl(n){return Array.isArray(n)?1==n.length?n[0]:TC(n):n}const dg=new RegExp("{{\\s*(.+?)\\s*}}","g");function GC(n){let t=[];if("string"==typeof n){let e;for(;e=dg.exec(n);)t.push(e[1]);dg.lastIndex=0}return t}function Jc(n,t,e){const i=n.toString(),r=i.replace(dg,(s,a)=>{let l=t[a];return t.hasOwnProperty(a)||(e.push(function Fk(n){return new G(3003,Ne)}()),l=""),l.toString()});return r==i?n:r}function ed(n){const t=[];let e=n.next();for(;!e.done;)t.push(e.value),e=n.next();return t}const wR=/-+([a-z0-9])/g;function hg(n){return n.replace(wR,(...t)=>t[1].toUpperCase())}function DR(n){return n.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function Kn(n,t,e){switch(t.type){case 7:return n.visitTrigger(t,e);case 0:return n.visitState(t,e);case 1:return n.visitTransition(t,e);case 2:return n.visitSequence(t,e);case 3:return n.visitGroup(t,e);case 4:return n.visitAnimate(t,e);case 5:return n.visitKeyframes(t,e);case 6:return n.visitStyle(t,e);case 8:return n.visitReference(t,e);case 9:return n.visitAnimateChild(t,e);case 10:return n.visitAnimateRef(t,e);case 11:return n.visitQuery(t,e);case 12:return n.visitStagger(t,e);default:throw function Bk(n){return new G(3004,Ne)}()}}function ZC(n,t){return window.getComputedStyle(n)[t]}function MR(n,t){const e=[];return"string"==typeof n?n.split(/\s*,\s*/).forEach(i=>function IR(n,t,e){if(":"==n[0]){const c=function PR(n,t){switch(n){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}(n,e);if("function"==typeof c)return void t.push(c);n=c}const i=n.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function Qk(n){return new G(3015,Ne)}()),t;const r=i[1],s=i[2],a=i[3];t.push(qC(r,a));"<"==s[0]&&!("*"==r&&"*"==a)&&t.push(qC(a,r))}(i,e,t)):e.push(n),e}const rd=new Set(["true","1"]),sd=new Set(["false","0"]);function qC(n,t){const e=rd.has(n)||sd.has(n),i=rd.has(t)||sd.has(t);return(r,s)=>{let a="*"==n||n==r,l="*"==t||t==s;return!a&&e&&"boolean"==typeof r&&(a=r?rd.has(n):sd.has(n)),!l&&i&&"boolean"==typeof s&&(l=s?rd.has(t):sd.has(t)),a&&l}}const AR=new RegExp("s*:selfs*,?","g");function fg(n,t,e,i){return new xR(n).build(t,e,i)}class xR{constructor(t){this._driver=t}build(t,e,i){const r=new OR(e);this._resetContextStyleTimingState(r);const s=Kn(this,Dl(t),r);return r.unsupportedCSSPropertiesFound.size&&r.unsupportedCSSPropertiesFound.keys(),s}_resetContextStyleTimingState(t){t.currentQuerySelector="",t.collectedStyles={},t.collectedStyles[""]={},t.currentTime=0}visitTrigger(t,e){let i=e.queryCount=0,r=e.depCount=0;const s=[],a=[];return"@"==t.name.charAt(0)&&e.errors.push(function Vk(){return new G(3006,Ne)}()),t.definitions.forEach(l=>{if(this._resetContextStyleTimingState(e),0==l.type){const c=l,d=c.name;d.toString().split(/\s*,\s*/).forEach(f=>{c.name=f,s.push(this.visitState(c,e))}),c.name=d}else if(1==l.type){const c=this.visitTransition(l,e);i+=c.queryCount,r+=c.depCount,a.push(c)}else e.errors.push(function jk(){return new G(3007,Ne)}())}),{type:7,name:t.name,states:s,transitions:a,queryCount:i,depCount:r,options:null}}visitState(t,e){const i=this.visitStyle(t.styles,e),r=t.options&&t.options.params||null;if(i.containsDynamicStyles){const s=new Set,a=r||{};i.styles.forEach(l=>{if(od(l)){const c=l;Object.keys(c).forEach(d=>{GC(c[d]).forEach(f=>{a.hasOwnProperty(f)||s.add(f)})})}}),s.size&&(ed(s.values()),e.errors.push(function Uk(n,t){return new G(3008,Ne)}()))}return{type:0,name:t.name,style:i,options:r?{params:r}:null}}visitTransition(t,e){e.queryCount=0,e.depCount=0;const i=Kn(this,Dl(t.animation),e);return{type:1,matchers:MR(t.expr,e.errors),animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Cs(t.options)}}visitSequence(t,e){return{type:2,steps:t.steps.map(i=>Kn(this,i,e)),options:Cs(t.options)}}visitGroup(t,e){const i=e.currentTime;let r=0;const s=t.steps.map(a=>{e.currentTime=i;const l=Kn(this,a,e);return r=Math.max(r,e.currentTime),l});return e.currentTime=r,{type:3,steps:s,options:Cs(t.options)}}visitAnimate(t,e){const i=function LR(n,t){let e=null;if(n.hasOwnProperty("duration"))e=n;else if("number"==typeof n)return pg(Xc(n,t).duration,0,"");const i=n;if(i.split(/\s+/).some(s=>"{"==s.charAt(0)&&"{"==s.charAt(1))){const s=pg(0,0,"");return s.dynamic=!0,s.strValue=i,s}return e=e||Xc(i,t),pg(e.duration,e.delay,e.easing)}(t.timings,e.errors);e.currentAnimateTimings=i;let r,s=t.styles?t.styles:Zc({});if(5==s.type)r=this.visitKeyframes(s,e);else{let a=t.styles,l=!1;if(!a){l=!0;const d={};i.easing&&(d.easing=i.easing),a=Zc(d)}e.currentTime+=i.duration+i.delay;const c=this.visitStyle(a,e);c.isEmptyStep=l,r=c}return e.currentAnimateTimings=null,{type:4,timings:i,style:r,options:null}}visitStyle(t,e){const i=this._makeStyleAst(t,e);return this._validateStyleAst(i,e),i}_makeStyleAst(t,e){const i=[];Array.isArray(t.styles)?t.styles.forEach(a=>{"string"==typeof a?a==_r?i.push(a):e.errors.push(function zk(n){return new G(3002,Ne)}()):i.push(a)}):i.push(t.styles);let r=!1,s=null;return i.forEach(a=>{if(od(a)){const l=a,c=l.easing;if(c&&(s=c,delete l.easing),!r)for(let d in l)if(l[d].toString().indexOf("{{")>=0){r=!0;break}}}),{type:6,styles:i,easing:s,offset:t.offset,containsDynamicStyles:r,options:null}}_validateStyleAst(t,e){const i=e.currentAnimateTimings;let r=e.currentTime,s=e.currentTime;i&&s>0&&(s-=i.duration+i.delay),t.styles.forEach(a=>{"string"!=typeof a&&Object.keys(a).forEach(l=>{if(!this._driver.validateStyleProperty(l))return delete a[l],void e.unsupportedCSSPropertiesFound.add(l);const c=e.collectedStyles[e.currentQuerySelector],d=c[l];let f=!0;d&&(s!=r&&s>=d.startTime&&r<=d.endTime&&(e.errors.push(function Wk(n,t,e,i,r){return new G(3010,Ne)}()),f=!1),s=d.startTime),f&&(c[l]={startTime:s,endTime:r}),e.options&&function _R(n,t,e){const i=t.params||{},r=GC(n);r.length&&r.forEach(s=>{i.hasOwnProperty(s)||e.push(function Lk(n){return new G(3001,Ne)}())})}(a[l],e.options,e.errors)})})}visitKeyframes(t,e){const i={type:5,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function $k(){return new G(3011,Ne)}()),i;let s=0;const a=[];let l=!1,c=!1,d=0;const f=t.steps.map(E=>{const b=this._makeStyleAst(E,e);let I=null!=b.offset?b.offset:function NR(n){if("string"==typeof n)return null;let t=null;if(Array.isArray(n))n.forEach(e=>{if(od(e)&&e.hasOwnProperty("offset")){const i=e;t=parseFloat(i.offset),delete i.offset}});else if(od(n)&&n.hasOwnProperty("offset")){const e=n;t=parseFloat(e.offset),delete e.offset}return t}(b.styles),A=0;return null!=I&&(s++,A=b.offset=I),c=c||A<0||A>1,l=l||A0&&s{const I=v>0?b==y?1:v*b:a[b],A=I*S;e.currentTime=w+D.delay+A,D.duration=A,this._validateStyleAst(E,e),E.offset=I,i.styles.push(E)}),i}visitReference(t,e){return{type:8,animation:Kn(this,Dl(t.animation),e),options:Cs(t.options)}}visitAnimateChild(t,e){return e.depCount++,{type:9,options:Cs(t.options)}}visitAnimateRef(t,e){return{type:10,animation:this.visitReference(t.animation,e),options:Cs(t.options)}}visitQuery(t,e){const i=e.currentQuerySelector,r=t.options||{};e.queryCount++,e.currentQuery=t;const[s,a]=function kR(n){const t=!!n.split(/\s*,\s*/).find(e=>":self"==e);return t&&(n=n.replace(AR,"")),n=n.replace(/@\*/g,Qc).replace(/@\w+/g,e=>Qc+"-"+e.substr(1)).replace(/:animating/g,ug),[n,t]}(t.selector);e.currentQuerySelector=i.length?i+" "+s:s,Yn(e.collectedStyles,e.currentQuerySelector,{});const l=Kn(this,Dl(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:11,selector:s,limit:r.limit||0,optional:!!r.optional,includeSelf:a,animation:l,originalSelector:t.selector,options:Cs(t.options)}}visitStagger(t,e){e.currentQuery||e.errors.push(function Yk(){return new G(3013,Ne)}());const i="full"===t.timings?{duration:0,delay:0,easing:"full"}:Xc(t.timings,e.errors,!0);return{type:12,animation:Kn(this,Dl(t.animation),e),timings:i,options:null}}}class OR{constructor(t){this.errors=t,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles={},this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function od(n){return!Array.isArray(n)&&"object"==typeof n}function Cs(n){return n?(n=Zo(n)).params&&(n.params=function RR(n){return n?Zo(n):null}(n.params)):n={},n}function pg(n,t,e){return{duration:n,delay:t,easing:e}}function gg(n,t,e,i,r,s,a=null,l=!1){return{type:1,element:n,keyframes:t,preStyleProps:e,postStyleProps:i,duration:r,delay:s,totalTime:r+s,easing:a,subTimeline:l}}class ad{constructor(){this._map=new Map}get(t){return this._map.get(t)||[]}append(t,e){let i=this._map.get(t);i||this._map.set(t,i=[]),i.push(...e)}has(t){return this._map.has(t)}clear(){this._map.clear()}}const HR=new RegExp(":enter","g"),jR=new RegExp(":leave","g");function mg(n,t,e,i,r,s={},a={},l,c,d=[]){return(new UR).buildKeyframes(n,t,e,i,r,s,a,l,c,d)}class UR{buildKeyframes(t,e,i,r,s,a,l,c,d,f=[]){d=d||new ad;const g=new vg(t,e,d,r,s,f,[]);g.options=c,g.currentTimeline.setStyles([a],null,g.errors,c),Kn(this,i,g);const v=g.timelines.filter(y=>y.containsAnimation());if(Object.keys(l).length){let y;for(let w=v.length-1;w>=0;w--){const D=v[w];if(D.element===e){y=D;break}}y&&!y.allowOnlyTimelineStyles()&&y.setStyles([l],null,g.errors,c)}return v.length?v.map(y=>y.buildKeyframes()):[gg(e,[],[],[],0,0,"",!1)]}visitTrigger(t,e){}visitState(t,e){}visitTransition(t,e){}visitAnimateChild(t,e){const i=e.subInstructions.get(e.element);if(i){const r=e.createSubContext(t.options),s=e.currentTimeline.currentTime,a=this._visitSubInstructions(i,r,r.options);s!=a&&e.transformIntoNewTimeline(a)}e.previousNode=t}visitAnimateRef(t,e){const i=e.createSubContext(t.options);i.transformIntoNewTimeline(),this.visitReference(t.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=t}_visitSubInstructions(t,e,i){let s=e.currentTimeline.currentTime;const a=null!=i.duration?ws(i.duration):null,l=null!=i.delay?ws(i.delay):null;return 0!==a&&t.forEach(c=>{const d=e.appendInstructionToTimeline(c,a,l);s=Math.max(s,d.duration+d.delay)}),s}visitReference(t,e){e.updateOptions(t.options,!0),Kn(this,t.animation,e),e.previousNode=t}visitSequence(t,e){const i=e.subContextCount;let r=e;const s=t.options;if(s&&(s.params||s.delay)&&(r=e.createSubContext(s),r.transformIntoNewTimeline(),null!=s.delay)){6==r.previousNode.type&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=ld);const a=ws(s.delay);r.delayNextStep(a)}t.steps.length&&(t.steps.forEach(a=>Kn(this,a,r)),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>i&&r.transformIntoNewTimeline()),e.previousNode=t}visitGroup(t,e){const i=[];let r=e.currentTimeline.currentTime;const s=t.options&&t.options.delay?ws(t.options.delay):0;t.steps.forEach(a=>{const l=e.createSubContext(t.options);s&&l.delayNextStep(s),Kn(this,a,l),r=Math.max(r,l.currentTimeline.currentTime),i.push(l.currentTimeline)}),i.forEach(a=>e.currentTimeline.mergeTimelineCollectedStyles(a)),e.transformIntoNewTimeline(r),e.previousNode=t}_visitTiming(t,e){if(t.dynamic){const i=t.strValue;return Xc(e.params?Jc(i,e.params,e.errors):i,e.errors)}return{duration:t.duration,delay:t.delay,easing:t.easing}}visitAnimate(t,e){const i=e.currentAnimateTimings=this._visitTiming(t.timings,e),r=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),r.snapshotCurrentStyles());const s=t.style;5==s.type?this.visitKeyframes(s,e):(e.incrementTime(i.duration),this.visitStyle(s,e),r.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t}visitStyle(t,e){const i=e.currentTimeline,r=e.currentAnimateTimings;!r&&i.getCurrentStyleProperties().length&&i.forwardFrame();const s=r&&r.easing||t.easing;t.isEmptyStep?i.applyEmptyStep(s):i.setStyles(t.styles,s,e.errors,e.options),e.previousNode=t}visitKeyframes(t,e){const i=e.currentAnimateTimings,r=e.currentTimeline.duration,s=i.duration,l=e.createSubContext().currentTimeline;l.easing=i.easing,t.styles.forEach(c=>{l.forwardTime((c.offset||0)*s),l.setStyles(c.styles,c.easing,e.errors,e.options),l.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(l),e.transformIntoNewTimeline(r+s),e.previousNode=t}visitQuery(t,e){const i=e.currentTimeline.currentTime,r=t.options||{},s=r.delay?ws(r.delay):0;s&&(6===e.previousNode.type||0==i&&e.currentTimeline.getCurrentStyleProperties().length)&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=ld);let a=i;const l=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!r.optional,e.errors);e.currentQueryTotal=l.length;let c=null;l.forEach((d,f)=>{e.currentQueryIndex=f;const g=e.createSubContext(t.options,d);s&&g.delayNextStep(s),d===e.element&&(c=g.currentTimeline),Kn(this,t.animation,g),g.currentTimeline.applyStylesToKeyframe(),a=Math.max(a,g.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(a),c&&(e.currentTimeline.mergeTimelineCollectedStyles(c),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t}visitStagger(t,e){const i=e.parentContext,r=e.currentTimeline,s=t.timings,a=Math.abs(s.duration),l=a*(e.currentQueryTotal-1);let c=a*e.currentQueryIndex;switch(s.duration<0?"reverse":s.easing){case"reverse":c=l-c;break;case"full":c=i.currentStaggerTime}const f=e.currentTimeline;c&&f.delayNextStep(c);const g=f.currentTime;Kn(this,t.animation,e),e.previousNode=t,i.currentStaggerTime=r.currentTime-g+(r.startTime-i.currentTimeline.startTime)}}const ld={};class vg{constructor(t,e,i,r,s,a,l,c){this._driver=t,this.element=e,this.subInstructions=i,this._enterClassName=r,this._leaveClassName=s,this.errors=a,this.timelines=l,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=ld,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=c||new ud(this._driver,e,0),l.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(t,e){if(!t)return;const i=t;let r=this.options;null!=i.duration&&(r.duration=ws(i.duration)),null!=i.delay&&(r.delay=ws(i.delay));const s=i.params;if(s){let a=r.params;a||(a=this.options.params={}),Object.keys(s).forEach(l=>{(!e||!a.hasOwnProperty(l))&&(a[l]=Jc(s[l],a,this.errors))})}}_copyOptions(){const t={};if(this.options){const e=this.options.params;if(e){const i=t.params={};Object.keys(e).forEach(r=>{i[r]=e[r]})}}return t}createSubContext(t=null,e,i){const r=e||this.element,s=new vg(this._driver,r,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(r,i||0));return s.previousNode=this.previousNode,s.currentAnimateTimings=this.currentAnimateTimings,s.options=this._copyOptions(),s.updateOptions(t),s.currentQueryIndex=this.currentQueryIndex,s.currentQueryTotal=this.currentQueryTotal,s.parentContext=this,this.subContextCount++,s}transformIntoNewTimeline(t){return this.previousNode=ld,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(t,e,i){const r={duration:e??t.duration,delay:this.currentTimeline.currentTime+(i??0)+t.delay,easing:""},s=new zR(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,r,t.stretchStartingKeyframe);return this.timelines.push(s),r}incrementTime(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)}delayNextStep(t){t>0&&this.currentTimeline.delayNextStep(t)}invokeQuery(t,e,i,r,s,a){let l=[];if(r&&l.push(this.element),t.length>0){t=(t=t.replace(HR,"."+this._enterClassName)).replace(jR,"."+this._leaveClassName);let d=this._driver.query(this.element,t,1!=i);0!==i&&(d=i<0?d.slice(d.length+i,d.length):d.slice(0,i)),l.push(...d)}return!s&&0==l.length&&a.push(function Kk(n){return new G(3014,Ne)}()),l}}class ud{constructor(t,e,i,r){this._driver=t,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=r,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.getCurrentStyleProperties().length>0;default:return!0}}getCurrentStyleProperties(){return Object.keys(this._currentKeyframe)}get currentTime(){return this.startTime+this.duration}delayNextStep(t){const e=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t}fork(t,e){return this.applyStylesToKeyframe(),new ud(this._driver,t,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=Object.create(this._backFill,{}),this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()}_updateStyle(t,e){this._localTimelineStyles[t]=e,this._globalTimelineStyles[t]=e,this._styleSummary[t]={time:this.currentTime,value:e}}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(t){t&&(this._previousKeyframe.easing=t),Object.keys(this._globalTimelineStyles).forEach(e=>{this._backFill[e]=this._globalTimelineStyles[e]||_r,this._currentKeyframe[e]=_r}),this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(t,e,i,r){e&&(this._previousKeyframe.easing=e);const s=r&&r.params||{},a=function WR(n,t){const e={};let i;return n.forEach(r=>{"*"===r?(i=i||Object.keys(t),i.forEach(s=>{e[s]=_r})):Gr(r,!1,e)}),e}(t,this._globalTimelineStyles);Object.keys(a).forEach(l=>{const c=Jc(a[l],s,i);this._pendingStyles[l]=c,this._localTimelineStyles.hasOwnProperty(l)||(this._backFill[l]=this._globalTimelineStyles.hasOwnProperty(l)?this._globalTimelineStyles[l]:_r),this._updateStyle(l,c)})}applyStylesToKeyframe(){const t=this._pendingStyles,e=Object.keys(t);0!=e.length&&(this._pendingStyles={},e.forEach(i=>{this._currentKeyframe[i]=t[i]}),Object.keys(this._localTimelineStyles).forEach(i=>{this._currentKeyframe.hasOwnProperty(i)||(this._currentKeyframe[i]=this._localTimelineStyles[i])}))}snapshotCurrentStyles(){Object.keys(this._localTimelineStyles).forEach(t=>{const e=this._localTimelineStyles[t];this._pendingStyles[t]=e,this._updateStyle(t,e)})}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const t=[];for(let e in this._currentKeyframe)t.push(e);return t}mergeTimelineCollectedStyles(t){Object.keys(t._styleSummary).forEach(e=>{const i=this._styleSummary[e],r=t._styleSummary[e];(!i||r.time>i.time)&&this._updateStyle(e,r.value)})}buildKeyframes(){this.applyStylesToKeyframe();const t=new Set,e=new Set,i=1===this._keyframes.size&&0===this.duration;let r=[];this._keyframes.forEach((l,c)=>{const d=Gr(l,!0);Object.keys(d).forEach(f=>{const g=d[f];"!"==g?t.add(f):g==_r&&e.add(f)}),i||(d.offset=c/this.duration),r.push(d)});const s=t.size?ed(t.values()):[],a=e.size?ed(e.values()):[];if(i){const l=r[0],c=Zo(l);l.offset=0,c.offset=1,r=[l,c]}return gg(this.element,r,s,a,this.duration,this.startTime,this.easing,!1)}}class zR extends ud{constructor(t,e,i,r,s,a,l=!1){super(t,e,a.delay),this.keyframes=i,this.preStyleProps=r,this.postStyleProps=s,this._stretchStartingKeyframe=l,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let t=this.keyframes,{delay:e,duration:i,easing:r}=this.timings;if(this._stretchStartingKeyframe&&e){const s=[],a=i+e,l=e/a,c=Gr(t[0],!1);c.offset=0,s.push(c);const d=Gr(t[0],!1);d.offset=QC(l),s.push(d);const f=t.length-1;for(let g=1;g<=f;g++){let v=Gr(t[g],!1);v.offset=QC((e+v.offset*i)/a),s.push(v)}i=a,e=0,r="",t=s}return gg(this.element,t,this.preStyleProps,this.postStyleProps,i,e,r,!0)}}function QC(n,t=3){const e=Math.pow(10,t-1);return Math.round(n*e)/e}class yg{}class $R extends yg{normalizePropertyName(t,e){return hg(t)}normalizeStyleValue(t,e,i,r){let s="";const a=i.toString().trim();if(GR[e]&&0!==i&&"0"!==i)if("number"==typeof i)s="px";else{const l=i.match(/^[+-]?[\d\.]+([a-z]*)$/);l&&0==l[1].length&&r.push(function Hk(n,t){return new G(3005,Ne)}())}return a+s}}const GR=(()=>function ZR(n){const t={};return n.forEach(e=>t[e]=!0),t}("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".split(",")))();function XC(n,t,e,i,r,s,a,l,c,d,f,g,v){return{type:0,element:n,triggerName:t,isRemovalTransition:r,fromState:e,fromStyles:s,toState:i,toStyles:a,timelines:l,queriedElements:c,preStyleProps:d,postStyleProps:f,totalTime:g,errors:v}}const _g={};class JC{constructor(t,e,i){this._triggerName=t,this.ast=e,this._stateStyles=i}match(t,e,i,r){return function qR(n,t,e,i,r){return n.some(s=>s(t,e,i,r))}(this.ast.matchers,t,e,i,r)}buildStyles(t,e,i){const r=this._stateStyles["*"],s=this._stateStyles[t],a=r?r.buildStyles(e,i):{};return s?s.buildStyles(e,i):a}build(t,e,i,r,s,a,l,c,d,f){const g=[],v=this.ast.options&&this.ast.options.params||_g,w=this.buildStyles(i,l&&l.params||_g,g),D=c&&c.params||_g,S=this.buildStyles(r,D,g),E=new Set,b=new Map,I=new Map,A="void"===r,H={params:{...v,...D}},K=f?[]:mg(t,e,this.ast.animation,s,a,w,S,H,d,g);let he=0;if(K.forEach(Q=>{he=Math.max(Q.duration+Q.delay,he)}),g.length)return XC(e,this._triggerName,i,r,A,w,S,[],[],b,I,he,g);K.forEach(Q=>{const te=Q.element,$=Yn(b,te,{});Q.preStyleProps.forEach(Ee=>$[Ee]=!0);const F=Yn(I,te,{});Q.postStyleProps.forEach(Ee=>F[Ee]=!0),te!==e&&E.add(te)});const le=ed(E.values());return XC(e,this._triggerName,i,r,A,w,S,K,le,b,I,he)}}class YR{constructor(t,e,i){this.styles=t,this.defaultParams=e,this.normalizer=i}buildStyles(t,e){const i={},r=Zo(this.defaultParams);return Object.keys(t).forEach(s=>{const a=t[s];null!=a&&(r[s]=a)}),this.styles.styles.forEach(s=>{if("string"!=typeof s){const a=s;Object.keys(a).forEach(l=>{let c=a[l];c.length>1&&(c=Jc(c,r,e));const d=this.normalizer.normalizePropertyName(l,e);c=this.normalizer.normalizeStyleValue(l,d,c,e),i[d]=c})}}),i}}class QR{constructor(t,e,i){this.name=t,this.ast=e,this._normalizer=i,this.transitionFactories=[],this.states={},e.states.forEach(r=>{this.states[r.name]=new YR(r.style,r.options&&r.options.params||{},i)}),e0(this.states,"true","1"),e0(this.states,"false","0"),e.transitions.forEach(r=>{this.transitionFactories.push(new JC(t,r,this.states))}),this.fallbackTransition=function XR(n,t,e){return new JC(n,{type:1,animation:{type:2,steps:[],options:null},matchers:[(a,l)=>!0],options:null,queryCount:0,depCount:0},t)}(t,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(t,e,i,r){return this.transitionFactories.find(a=>a.match(t,e,i,r))||null}matchStyles(t,e,i){return this.fallbackTransition.buildStyles(t,e,i)}}function e0(n,t,e){n.hasOwnProperty(t)?n.hasOwnProperty(e)||(n[e]=n[t]):n.hasOwnProperty(e)&&(n[t]=n[e])}const JR=new ad;class eO{constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i,this._animations={},this._playersById={},this.players=[]}register(t,e){const i=[],s=fg(this._driver,e,i,[]);if(i.length)throw function iR(n){return new G(3503,Ne)}();this._animations[t]=s}_buildPlayer(t,e,i){const r=t.element,s=kC(0,this._normalizer,0,t.keyframes,e,i);return this._driver.animate(r,s,t.duration,t.delay,t.easing,[],!0)}create(t,e,i={}){const r=[],s=this._animations[t];let a;const l=new Map;if(s?(a=mg(this._driver,e,s,lg,Yc,{},{},i,JR,r),a.forEach(f=>{const g=Yn(l,f.element,{});f.postStyleProps.forEach(v=>g[v]=null)})):(r.push(function rR(){return new G(3300,Ne)}()),a=[]),r.length)throw function sR(n){return new G(3504,Ne)}();l.forEach((f,g)=>{Object.keys(f).forEach(v=>{f[v]=this._driver.computeStyle(g,v,_r)})});const d=$r(a.map(f=>{const g=l.get(f.element);return this._buildPlayer(f,{},g)}));return this._playersById[t]=d,d.onDestroy(()=>this.destroy(t)),this.players.push(d),d}destroy(t){const e=this._getPlayer(t);e.destroy(),delete this._playersById[t];const i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(t){const e=this._playersById[t];if(!e)throw function oR(n){return new G(3301,Ne)}();return e}listen(t,e,i,r){const s=rg(e,"","","");return ng(this._getPlayer(t),i,s,r),()=>{}}command(t,e,i,r){if("register"==i)return void this.register(t,r[0]);if("create"==i)return void this.create(t,e,r[0]||{});const s=this._getPlayer(t);switch(i){case"play":s.play();break;case"pause":s.pause();break;case"reset":s.reset();break;case"restart":s.restart();break;case"finish":s.finish();break;case"init":s.init();break;case"setPosition":s.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(t)}}}const t0="ng-animate-queued",wg="ng-animate-disabled",sO=[],n0={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},oO={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},fi="__ng_removed";class Dg{constructor(t,e=""){this.namespaceId=e;const i=t&&t.hasOwnProperty("value");if(this.value=function cO(n){return n??null}(i?t.value:t),i){const s=Zo(t);delete s.value,this.options=s}else this.options={};this.options.params||(this.options.params={})}get params(){return this.options.params}absorbOptions(t){const e=t.params;if(e){const i=this.options.params;Object.keys(e).forEach(r=>{null==i[r]&&(i[r]=e[r])})}}}const Cl="void",Cg=new Dg(Cl);class aO{constructor(t,e,i){this.id=t,this.hostElement=e,this._engine=i,this.players=[],this._triggers={},this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+t,pi(e,this._hostClassName)}listen(t,e,i,r){if(!this._triggers.hasOwnProperty(e))throw function aR(n,t){return new G(3302,Ne)}();if(null==i||0==i.length)throw function lR(n){return new G(3303,Ne)}();if(!function dO(n){return"start"==n||"done"==n}(i))throw function uR(n,t){return new G(3400,Ne)}();const s=Yn(this._elementListeners,t,[]),a={name:e,phase:i,callback:r};s.push(a);const l=Yn(this._engine.statesByElement,t,{});return l.hasOwnProperty(e)||(pi(t,Kc),pi(t,Kc+"-"+e),l[e]=Cg),()=>{this._engine.afterFlush(()=>{const c=s.indexOf(a);c>=0&&s.splice(c,1),this._triggers[e]||delete l[e]})}}register(t,e){return!this._triggers[t]&&(this._triggers[t]=e,!0)}_getTrigger(t){const e=this._triggers[t];if(!e)throw function cR(n){return new G(3401,Ne)}();return e}trigger(t,e,i,r=!0){const s=this._getTrigger(e),a=new Sg(this.id,e,t);let l=this._engine.statesByElement.get(t);l||(pi(t,Kc),pi(t,Kc+"-"+e),this._engine.statesByElement.set(t,l={}));let c=l[e];const d=new Dg(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&c&&d.absorbOptions(c.options),l[e]=d,c||(c=Cg),d.value!==Cl&&c.value===d.value){if(!function pO(n,t){const e=Object.keys(n),i=Object.keys(t);if(e.length!=i.length)return!1;for(let r=0;r{Ds(t,S),tr(t,E)})}return}const v=Yn(this._engine.playersByElement,t,[]);v.forEach(D=>{D.namespaceId==this.id&&D.triggerName==e&&D.queued&&D.destroy()});let y=s.matchTransition(c.value,d.value,t,d.params),w=!1;if(!y){if(!r)return;y=s.fallbackTransition,w=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:y,fromState:c,toState:d,player:a,isFallbackTransition:w}),w||(pi(t,t0),a.onStart(()=>{qo(t,t0)})),a.onDone(()=>{let D=this.players.indexOf(a);D>=0&&this.players.splice(D,1);const S=this._engine.playersByElement.get(t);if(S){let E=S.indexOf(a);E>=0&&S.splice(E,1)}}),this.players.push(a),v.push(a),a}deregister(t){delete this._triggers[t],this._engine.statesByElement.forEach((e,i)=>{delete e[t]}),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(r=>r.name!=t))})}clearElementCache(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);const e=this._engine.playersByElement.get(t);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(t))}_signalRemovalForInnerTriggers(t,e){const i=this._engine.driver.query(t,Qc,!0);i.forEach(r=>{if(r[fi])return;const s=this._engine.fetchNamespacesByElement(r);s.size?s.forEach(a=>a.triggerLeaveAnimation(r,e,!1,!0)):this.clearElementCache(r)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(r=>this.clearElementCache(r)))}triggerLeaveAnimation(t,e,i,r){const s=this._engine.statesByElement.get(t),a=new Map;if(s){const l=[];if(Object.keys(s).forEach(c=>{if(a.set(c,s[c].value),this._triggers[c]){const d=this.trigger(t,c,Cl,r);d&&l.push(d)}}),l.length)return this._engine.markElementAsRemoved(this.id,t,!0,e,a),i&&$r(l).onDone(()=>this._engine.processLeaveNode(t)),!0}return!1}prepareLeaveAnimationListeners(t){const e=this._elementListeners.get(t),i=this._engine.statesByElement.get(t);if(e&&i){const r=new Set;e.forEach(s=>{const a=s.name;if(r.has(a))return;r.add(a);const c=this._triggers[a].fallbackTransition,d=i[a]||Cg,f=new Dg(Cl),g=new Sg(this.id,a,t);this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:a,transition:c,fromState:d,toState:f,player:g,isFallbackTransition:!0})})}}removeNode(t,e){const i=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,e),this.triggerLeaveAnimation(t,e,!0))return;let r=!1;if(i.totalAnimations){const s=i.players.length?i.playersByQueriedElement.get(t):[];if(s&&s.length)r=!0;else{let a=t;for(;a=a.parentNode;)if(i.statesByElement.get(a)){r=!0;break}}}if(this.prepareLeaveAnimationListeners(t),r)i.markElementAsRemoved(this.id,t,!1,e);else{const s=t[fi];(!s||s===n0)&&(i.afterFlush(()=>this.clearElementCache(t)),i.destroyInnerAnimations(t),i._onRemovalComplete(t,e))}}insertNode(t,e){pi(t,this._hostClassName)}drainQueuedTransitions(t){const e=[];return this._queue.forEach(i=>{const r=i.player;if(r.destroyed)return;const s=i.element,a=this._elementListeners.get(s);a&&a.forEach(l=>{if(l.name==i.triggerName){const c=rg(s,i.triggerName,i.fromState.value,i.toState.value);c._data=t,ng(i.player,l.phase,c,l.callback)}}),r.markedForDestroy?this._engine.afterFlush(()=>{r.destroy()}):e.push(i)}),this._queue=[],e.sort((i,r)=>{const s=i.transition.ast.depCount,a=r.transition.ast.depCount;return 0==s||0==a?s-a:this._engine.driver.containsElement(i.element,r.element)?1:-1})}destroy(t){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,t)}elementContainsData(t){let e=!1;return this._elementListeners.has(t)&&(e=!0),e=!!this._queue.find(i=>i.element===t)||e,e}}class lO{constructor(t,e,i){this.bodyNode=t,this.driver=e,this._normalizer=i,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=(r,s)=>{}}_onRemovalComplete(t,e){this.onRemovalComplete(t,e)}get queuedPlayers(){const t=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&t.push(i)})}),t}createNamespace(t,e){const i=new aO(t,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[t]=i}_balanceNamespaceList(t,e){const i=this._namespaceList,r=this.namespacesByHostElement,s=i.length-1;if(s>=0){let a=!1;if(void 0!==this.driver.getParentElement){let l=this.driver.getParentElement(e);for(;l;){const c=r.get(l);if(c){const d=i.indexOf(c);i.splice(d+1,0,t),a=!0;break}l=this.driver.getParentElement(l)}}else for(let l=s;l>=0;l--)if(this.driver.containsElement(i[l].hostElement,e)){i.splice(l+1,0,t),a=!0;break}a||i.unshift(t)}else i.push(t);return r.set(e,t),t}register(t,e){let i=this._namespaceLookup[t];return i||(i=this.createNamespace(t,e)),i}registerTrigger(t,e,i){let r=this._namespaceLookup[t];r&&r.register(e,i)&&this.totalAnimations++}destroy(t,e){if(!t)return;const i=this._fetchNamespace(t);this.afterFlush(()=>{this.namespacesByHostElement.delete(i.hostElement),delete this._namespaceLookup[t];const r=this._namespaceList.indexOf(i);r>=0&&this._namespaceList.splice(r,1)}),this.afterFlushAnimationsDone(()=>i.destroy(e))}_fetchNamespace(t){return this._namespaceLookup[t]}fetchNamespacesByElement(t){const e=new Set,i=this.statesByElement.get(t);if(i){const r=Object.keys(i);for(let s=0;s=0&&this.collectedLeaveElements.splice(a,1)}if(t){const a=this._fetchNamespace(t);a&&a.insertNode(e,i)}r&&this.collectEnterElement(e)}collectEnterElement(t){this.collectedEnterElements.push(t)}markElementAsDisabled(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),pi(t,wg)):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),qo(t,wg))}removeNode(t,e,i,r){if(cd(e)){const s=t?this._fetchNamespace(t):null;if(s?s.removeNode(e,r):this.markElementAsRemoved(t,e,!1,r),i){const a=this.namespacesByHostElement.get(e);a&&a.id!==t&&a.removeNode(e,r)}}else this._onRemovalComplete(e,r)}markElementAsRemoved(t,e,i,r,s){this.collectedLeaveElements.push(e),e[fi]={namespaceId:t,setForRemoval:r,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:s}}listen(t,e,i,r,s){return cd(e)?this._fetchNamespace(t).listen(e,i,r,s):()=>{}}_buildInstruction(t,e,i,r,s){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,i,r,t.fromState.options,t.toState.options,e,s)}destroyInnerAnimations(t){let e=this.driver.query(t,Qc,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(t,ug,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(t){const e=this.playersByElement.get(t);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(t){const e=this.playersByQueriedElement.get(t);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(t=>{if(this.players.length)return $r(this.players).onDone(()=>t());t()})}processLeaveNode(t){const e=t[fi];if(e&&e.setForRemoval){if(t[fi]=n0,e.namespaceId){this.destroyInnerAnimations(t);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(t)}this._onRemovalComplete(t,e.setForRemoval)}t.classList?.contains(wg)&&this.markElementAsDisabled(t,!1),this.driver.query(t,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(t=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,r)=>this._balanceNamespaceList(i,r)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],e.length?$r(e).onDone(()=>{i.forEach(r=>r())}):i.forEach(r=>r())}}reportError(t){throw function dR(n){return new G(3402,Ne)}()}_flushAnimations(t,e){const i=new ad,r=[],s=new Map,a=[],l=new Map,c=new Map,d=new Map,f=new Set;this.disabledNodes.forEach(z=>{f.add(z);const X=this.driver.query(z,".ng-animate-queued",!0);for(let re=0;re{const re=lg+D++;w.set(X,re),z.forEach(ke=>pi(ke,re))});const S=[],E=new Set,b=new Set;for(let z=0;zE.add(ke)):b.add(X))}const I=new Map,A=o0(v,Array.from(E));A.forEach((z,X)=>{const re=Yc+D++;I.set(X,re),z.forEach(ke=>pi(ke,re))}),t.push(()=>{y.forEach((z,X)=>{const re=w.get(X);z.forEach(ke=>qo(ke,re))}),A.forEach((z,X)=>{const re=I.get(X);z.forEach(ke=>qo(ke,re))}),S.forEach(z=>{this.processLeaveNode(z)})});const H=[],K=[];for(let z=this._namespaceList.length-1;z>=0;z--)this._namespaceList[z].drainQueuedTransitions(e).forEach(re=>{const ke=re.player,Ue=re.element;if(H.push(ke),this.collectedEnterElements.length){const Pn=Ue[fi];if(Pn&&Pn.setForMove){if(Pn.previousTriggersValues&&Pn.previousTriggersValues.has(re.triggerName)){const Ps=Pn.previousTriggersValues.get(re.triggerName),Jr=this.statesByElement.get(re.element);Jr&&Jr[re.triggerName]&&(Jr[re.triggerName].value=Ps)}return void ke.destroy()}}const Dt=!g||!this.driver.containsElement(g,Ue),nn=I.get(Ue),gi=w.get(Ue),lt=this._buildInstruction(re,i,gi,nn,Dt);if(lt.errors&<.errors.length)return void K.push(lt);if(Dt)return ke.onStart(()=>Ds(Ue,lt.fromStyles)),ke.onDestroy(()=>tr(Ue,lt.toStyles)),void r.push(ke);if(re.isFallbackTransition)return ke.onStart(()=>Ds(Ue,lt.fromStyles)),ke.onDestroy(()=>tr(Ue,lt.toStyles)),void r.push(ke);const Gl=[];lt.timelines.forEach(Pn=>{Pn.stretchStartingKeyframe=!0,this.disabledNodes.has(Pn.element)||Gl.push(Pn)}),lt.timelines=Gl,i.append(Ue,lt.timelines),a.push({instruction:lt,player:ke,element:Ue}),lt.queriedElements.forEach(Pn=>Yn(l,Pn,[]).push(ke)),lt.preStyleProps.forEach((Pn,Ps)=>{const Jr=Object.keys(Pn);if(Jr.length){let As=c.get(Ps);As||c.set(Ps,As=new Set),Jr.forEach(hm=>As.add(hm))}}),lt.postStyleProps.forEach((Pn,Ps)=>{const Jr=Object.keys(Pn);let As=d.get(Ps);As||d.set(Ps,As=new Set),Jr.forEach(hm=>As.add(hm))})});if(K.length){const z=[];K.forEach(X=>{z.push(function hR(n,t){return new G(3505,Ne)}())}),H.forEach(X=>X.destroy()),this.reportError(z)}const he=new Map,le=new Map;a.forEach(z=>{const X=z.element;i.has(X)&&(le.set(X,X),this._beforeAnimationBuild(z.player.namespaceId,z.instruction,he))}),r.forEach(z=>{const X=z.element;this._getPreviousPlayers(X,!1,z.namespaceId,z.triggerName,null).forEach(ke=>{Yn(he,X,[]).push(ke),ke.destroy()})});const Q=S.filter(z=>l0(z,c,d)),te=new Map;s0(te,this.driver,b,d,_r).forEach(z=>{l0(z,c,d)&&Q.push(z)});const F=new Map;y.forEach((z,X)=>{s0(F,this.driver,new Set(z),c,"!")}),Q.forEach(z=>{const X=te.get(z),re=F.get(z);te.set(z,{...X,...re})});const Ee=[],be=[],In={};a.forEach(z=>{const{element:X,player:re,instruction:ke}=z;if(i.has(X)){if(f.has(X))return re.onDestroy(()=>tr(X,ke.toStyles)),re.disabled=!0,re.overrideTotalTime(ke.totalTime),void r.push(re);let Ue=In;if(le.size>1){let nn=X;const gi=[];for(;nn=nn.parentNode;){const lt=le.get(nn);if(lt){Ue=lt;break}gi.push(nn)}gi.forEach(lt=>le.set(lt,Ue))}const Dt=this._buildAnimation(re.namespaceId,ke,he,s,F,te);if(re.setRealPlayer(Dt),Ue===In)Ee.push(re);else{const nn=this.playersByElement.get(Ue);nn&&nn.length&&(re.parentPlayer=$r(nn)),r.push(re)}}else Ds(X,ke.fromStyles),re.onDestroy(()=>tr(X,ke.toStyles)),be.push(re),f.has(X)&&r.push(re)}),be.forEach(z=>{const X=s.get(z.element);if(X&&X.length){const re=$r(X);z.setRealPlayer(re)}}),r.forEach(z=>{z.parentPlayer?z.syncPlayerEvents(z.parentPlayer):z.destroy()});for(let z=0;z!Dt.destroyed);Ue.length?hO(this,X,Ue):this.processLeaveNode(X)}return S.length=0,Ee.forEach(z=>{this.players.push(z),z.onDone(()=>{z.destroy();const X=this.players.indexOf(z);this.players.splice(X,1)}),z.play()}),Ee}elementContainsData(t,e){let i=!1;const r=e[fi];return r&&r.setForRemoval&&(i=!0),this.playersByElement.has(e)&&(i=!0),this.playersByQueriedElement.has(e)&&(i=!0),this.statesByElement.has(e)&&(i=!0),this._fetchNamespace(t).elementContainsData(e)||i}afterFlush(t){this._flushFns.push(t)}afterFlushAnimationsDone(t){this._whenQuietFns.push(t)}_getPreviousPlayers(t,e,i,r,s){let a=[];if(e){const l=this.playersByQueriedElement.get(t);l&&(a=l)}else{const l=this.playersByElement.get(t);if(l){const c=!s||s==Cl;l.forEach(d=>{d.queued||!c&&d.triggerName!=r||a.push(d)})}}return(i||r)&&(a=a.filter(l=>!(i&&i!=l.namespaceId||r&&r!=l.triggerName))),a}_beforeAnimationBuild(t,e,i){const s=e.element,a=e.isRemovalTransition?void 0:t,l=e.isRemovalTransition?void 0:e.triggerName;for(const c of e.timelines){const d=c.element,f=d!==s,g=Yn(i,d,[]);this._getPreviousPlayers(d,f,a,l,e.toState).forEach(y=>{const w=y.getRealPlayer();w.beforeDestroy&&w.beforeDestroy(),y.destroy(),g.push(y)})}Ds(s,e.fromStyles)}_buildAnimation(t,e,i,r,s,a){const l=e.triggerName,c=e.element,d=[],f=new Set,g=new Set,v=e.timelines.map(w=>{const D=w.element;f.add(D);const S=D[fi];if(S&&S.removedBeforeQueried)return new wl(w.duration,w.delay);const E=D!==c,b=function fO(n){const t=[];return a0(n,t),t}((i.get(D)||sO).map(he=>he.getRealPlayer())).filter(he=>!!he.element&&he.element===D),I=s.get(D),A=a.get(D),H=kC(0,this._normalizer,0,w.keyframes,I,A),K=this._buildPlayer(w,H,b);if(w.subTimeline&&r&&g.add(D),E){const he=new Sg(t,l,D);he.setRealPlayer(K),d.push(he)}return K});d.forEach(w=>{Yn(this.playersByQueriedElement,w.element,[]).push(w),w.onDone(()=>function uO(n,t,e){let i;if(n instanceof Map){if(i=n.get(t),i){if(i.length){const r=i.indexOf(e);i.splice(r,1)}0==i.length&&n.delete(t)}}else if(i=n[t],i){if(i.length){const r=i.indexOf(e);i.splice(r,1)}0==i.length&&delete n[t]}return i}(this.playersByQueriedElement,w.element,w))}),f.forEach(w=>pi(w,UC));const y=$r(v);return y.onDestroy(()=>{f.forEach(w=>qo(w,UC)),tr(c,e.toStyles)}),g.forEach(w=>{Yn(r,w,[]).push(y)}),y}_buildPlayer(t,e,i){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,i):new wl(t.duration,t.delay)}}class Sg{constructor(t,e,i){this.namespaceId=t,this.triggerName=e,this.element=i,this._player=new wl,this._containsRealPlayer=!1,this._queuedCallbacks={},this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(t){this._containsRealPlayer||(this._player=t,Object.keys(this._queuedCallbacks).forEach(e=>{this._queuedCallbacks[e].forEach(i=>ng(t,e,void 0,i))}),this._queuedCallbacks={},this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(t){this.totalTime=t}syncPlayerEvents(t){const e=this._player;e.triggerCallback&&t.onStart(()=>e.triggerCallback("start")),t.onDone(()=>this.finish()),t.onDestroy(()=>this.destroy())}_queueEvent(t,e){Yn(this._queuedCallbacks,t,[]).push(e)}onDone(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)}onStart(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)}onDestroy(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)}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(t){this.queued||this._player.setPosition(t)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(t){const e=this._player;e.triggerCallback&&e.triggerCallback(t)}}function cd(n){return n&&1===n.nodeType}function r0(n,t){const e=n.style.display;return n.style.display=t??"none",e}function s0(n,t,e,i,r){const s=[];e.forEach(c=>s.push(r0(c)));const a=[];i.forEach((c,d)=>{const f={};c.forEach(g=>{const v=f[g]=t.computeStyle(d,g,r);(!v||0==v.length)&&(d[fi]=oO,a.push(d))}),n.set(d,f)});let l=0;return e.forEach(c=>r0(c,s[l++])),a}function o0(n,t){const e=new Map;if(n.forEach(l=>e.set(l,[])),0==t.length)return e;const r=new Set(t),s=new Map;function a(l){if(!l)return 1;let c=s.get(l);if(c)return c;const d=l.parentNode;return c=e.has(d)?d:r.has(d)?1:a(d),s.set(l,c),c}return t.forEach(l=>{const c=a(l);1!==c&&e.get(c).push(l)}),e}function pi(n,t){n.classList?.add(t)}function qo(n,t){n.classList?.remove(t)}function hO(n,t,e){$r(e).onDone(()=>n.processLeaveNode(t))}function a0(n,t){for(let e=0;er.add(s)):t.set(n,i),e.delete(n),!0}class dd{constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(r,s)=>{},this._transitionEngine=new lO(t,e,i),this._timelineEngine=new eO(t,e,i),this._transitionEngine.onRemovalComplete=(r,s)=>this.onRemovalComplete(r,s)}registerTrigger(t,e,i,r,s){const a=t+"-"+r;let l=this._triggerCache[a];if(!l){const c=[],f=fg(this._driver,s,c,[]);if(c.length)throw function tR(n,t){return new G(3404,Ne)}();l=function KR(n,t,e){return new QR(n,t,e)}(r,f,this._normalizer),this._triggerCache[a]=l}this._transitionEngine.registerTrigger(e,r,l)}register(t,e){this._transitionEngine.register(t,e)}destroy(t,e){this._transitionEngine.destroy(t,e)}onInsert(t,e,i,r){this._transitionEngine.insertNode(t,e,i,r)}onRemove(t,e,i,r){this._transitionEngine.removeNode(t,e,r||!1,i)}disableAnimations(t,e){this._transitionEngine.markElementAsDisabled(t,e)}process(t,e,i,r){if("@"==i.charAt(0)){const[s,a]=RC(i);this._timelineEngine.command(s,e,a,r)}else this._transitionEngine.trigger(t,e,i,r)}listen(t,e,i,r,s){if("@"==i.charAt(0)){const[a,l]=RC(i);return this._timelineEngine.listen(a,e,l,s)}return this._transitionEngine.listen(t,e,i,r,s)}flush(t=-1){this._transitionEngine.flush(t)}get players(){return this._transitionEngine.players.concat(this._timelineEngine.players)}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}}let mO=(()=>{class n{constructor(e,i,r){this._element=e,this._startStyles=i,this._endStyles=r,this._state=0;let s=n.initialStylesByElement.get(e);s||n.initialStylesByElement.set(e,s={}),this._initialStyles=s}start(){this._state<1&&(this._startStyles&&tr(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(tr(this._element,this._initialStyles),this._endStyles&&(tr(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(n.initialStylesByElement.delete(this._element),this._startStyles&&(Ds(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Ds(this._element,this._endStyles),this._endStyles=null),tr(this._element,this._initialStyles),this._state=3)}}return n.initialStylesByElement=new WeakMap,n})();function bg(n){let t=null;const e=Object.keys(n);for(let i=0;it()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const t=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=t.length?t[t.length-1]:{},this.domPlayer.addEventListener("finish",()=>this._onFinish())}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_triggerWebAnimation(t,e,i){return t.animate(e,i)}onStart(t){this._onStartFns.push(t)}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(t=>t()),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}_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(t=>t()),this._onDestroyFns=[])}setPosition(t){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=t*this.time}getPosition(){return this.domPlayer.currentTime/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const t={};if(this.hasStarted()){const e=this._finalKeyframe;Object.keys(e).forEach(i=>{"offset"!=i&&(t[i]=this._finished?e[i]:ZC(this.element,i))})}this.currentSnapshot=t}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class yO{validateStyleProperty(t){return FC(t)}matchesElement(t,e){return!1}containsElement(t,e){return BC(t,e)}getParentElement(t){return og(t)}query(t,e,i){return HC(t,e,i)}computeStyle(t,e,i){return window.getComputedStyle(t)[e]}animate(t,e,i,r,s,a=[]){const c={duration:i,delay:r,fill:0==r?"both":"forwards"};s&&(c.easing=s);const d={},f=a.filter(v=>v instanceof u0);(function CR(n,t){return 0===n||0===t})(i,r)&&f.forEach(v=>{let y=v.currentSnapshot;Object.keys(y).forEach(w=>d[w]=y[w])}),e=function SR(n,t,e){const i=Object.keys(e);if(i.length&&t.length){let s=t[0],a=[];if(i.forEach(l=>{s.hasOwnProperty(l)||a.push(l),s[l]=e[l]}),a.length)for(var r=1;rGr(v,!1)),d);const g=function gO(n,t){let e=null,i=null;return Array.isArray(t)&&t.length?(e=bg(t[0]),t.length>1&&(i=bg(t[t.length-1]))):t&&(e=bg(t)),e||i?new mO(n,e,i):null}(t,e);return new u0(t,e,c,g)}}let _O=(()=>{class n extends bC{constructor(e,i){super(),this._nextAnimationId=0,this._renderer=e.createRenderer(i.body,{id:"0",encapsulation:zn.None,styles:[],data:{animation:[]}})}build(e){const i=this._nextAnimationId.toString();this._nextAnimationId++;const r=Array.isArray(e)?TC(e):e;return c0(this._renderer,null,i,"register",[r]),new wO(i,this._renderer)}}return n.\u0275fac=function(e){return new(e||n)(U(sl),U(gn))},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})();class wO extends class kk{}{constructor(t,e){super(),this._id=t,this._renderer=e}create(t,e){return new DO(this._id,t,e||{},this._renderer)}}class DO{constructor(t,e,i,r){this.id=t,this.element=e,this._renderer=r,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",i)}_listen(t,e){return this._renderer.listen(this.element,`@@${this.id}:${t}`,e)}_command(t,...e){return c0(this._renderer,this.element,this.id,t,e)}onDone(t){this._listen("done",t)}onStart(t){this._listen("start",t)}onDestroy(t){this._listen("destroy",t)}init(){this._command("init")}hasStarted(){return this._started}play(){this._command("play"),this._started=!0}pause(){this._command("pause")}restart(){this._command("restart")}finish(){this._command("finish")}destroy(){this._command("destroy")}reset(){this._command("reset"),this._started=!1}setPosition(t){this._command("setPosition",t)}getPosition(){return this._renderer.engine.players[+this.id]?.getPosition()??0}}function c0(n,t,e,i,r){return n.setProperty(t,`@@${e}:${i}`,r)}const d0="@.disabled";let CO=(()=>{class n{constructor(e,i,r){this.delegate=e,this.engine=i,this._zone=r,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,this.promise=Promise.resolve(0),i.onRemovalComplete=(s,a)=>{const l=a?.parentNode(s);l&&a.removeChild(l,s)}}createRenderer(e,i){const s=this.delegate.createRenderer(e,i);if(!(e&&i&&i.data&&i.data.animation)){let f=this._rendererCache.get(s);return f||(f=new h0("",s,this.engine),this._rendererCache.set(s,f)),f}const a=i.id,l=i.id+"-"+this._currentId;this._currentId++,this.engine.register(l,e);const c=f=>{Array.isArray(f)?f.forEach(c):this.engine.registerTrigger(a,l,e,f.name,f)};return i.data.animation.forEach(c),new SO(this,l,s,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){this.promise.then(()=>{this._microtaskId++})}scheduleListenerCallback(e,i,r){e>=0&&ei(r)):(0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(()=>{this._zone.run(()=>{this._animationCallbacksBuffer.forEach(s=>{const[a,l]=s;a(l)}),this._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([i,r]))}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()}}return n.\u0275fac=function(e){return new(e||n)(U(sl),U(dd),U(bt))},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})();class h0{constructor(t,e,i){this.namespaceId=t,this.delegate=e,this.engine=i,this.destroyNode=this.delegate.destroyNode?r=>e.destroyNode(r):null}get data(){return this.delegate.data}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}appendChild(t,e){this.delegate.appendChild(t,e),this.engine.onInsert(this.namespaceId,e,t,!1)}insertBefore(t,e,i,r=!0){this.delegate.insertBefore(t,e,i),this.engine.onInsert(this.namespaceId,e,t,r)}removeChild(t,e,i){this.engine.onRemove(this.namespaceId,e,this.delegate,i)}selectRootElement(t,e){return this.delegate.selectRootElement(t,e)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setAttribute(t,e,i,r){this.delegate.setAttribute(t,e,i,r)}removeAttribute(t,e,i){this.delegate.removeAttribute(t,e,i)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,i,r){this.delegate.setStyle(t,e,i,r)}removeStyle(t,e,i){this.delegate.removeStyle(t,e,i)}setProperty(t,e,i){"@"==e.charAt(0)&&e==d0?this.disableAnimations(t,!!i):this.delegate.setProperty(t,e,i)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,i){return this.delegate.listen(t,e,i)}disableAnimations(t,e){this.engine.disableAnimations(t,e)}}class SO extends h0{constructor(t,e,i,r){super(e,i,r),this.factory=t,this.namespaceId=e}setProperty(t,e,i){"@"==e.charAt(0)?"."==e.charAt(1)&&e==d0?this.disableAnimations(t,i=void 0===i||!!i):this.engine.process(this.namespaceId,t,e.substr(1),i):this.delegate.setProperty(t,e,i)}listen(t,e,i){if("@"==e.charAt(0)){const r=function bO(n){switch(n){case"body":return document.body;case"document":return document;case"window":return window;default:return n}}(t);let s=e.substr(1),a="";return"@"!=s.charAt(0)&&([s,a]=function EO(n){const t=n.indexOf(".");return[n.substring(0,t),n.substr(t+1)]}(s)),this.engine.listen(this.namespaceId,r,s,a,l=>{this.factory.scheduleListenerCallback(l._data||-1,i,l)})}return this.delegate.listen(t,e,i)}}let TO=(()=>{class n extends dd{constructor(e,i,r){super(e.body,i,r)}ngOnDestroy(){this.flush()}}return n.\u0275fac=function(e){return new(e||n)(U(gn),U(ag),U(yg))},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})();const f0=new ze("AnimationModuleType"),p0=[{provide:bC,useClass:_O},{provide:yg,useFactory:function MO(){return new $R}},{provide:dd,useClass:TO},{provide:sl,useFactory:function IO(n,t,e){return new CO(n,t,e)},deps:[$c,dd,bt]}],g0=[{provide:ag,useFactory:()=>new yO},{provide:f0,useValue:"BrowserAnimations"},...p0],PO=[{provide:ag,useClass:VC},{provide:f0,useValue:"NoopAnimations"},...p0];let AO=(()=>{class n{static withConfig(e){return{ngModule:n,providers:e.disableAnimations?PO:g0}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=At({type:n}),n.\u0275inj=Le({providers:g0,imports:[_C]}),n})();function Ss(...n){return Pr(n,Ir(n))}class xO extends An{constructor(t,e){super()}schedule(t,e=0){return this}}const fd={setInterval(n,t,...e){const{delegate:i}=fd;return(null==i?void 0:i.setInterval)?i.setInterval(n,t,...e):setInterval(n,t,...e)},clearInterval(n){const{delegate:t}=fd;return((null==t?void 0:t.clearInterval)||clearInterval)(n)},delegate:void 0};class Sl{constructor(t,e=Sl.now){this.schedulerActionCtor=t,this.now=e}schedule(t,e=0,i){return new this.schedulerActionCtor(this,t).schedule(i,e)}}Sl.now=Xp.now;const m0=new class RO extends Sl{constructor(t,e=Sl.now){super(t,e),this.actions=[],this._active=!1,this._scheduled=void 0}flush(t){const{actions:e}=this;if(this._active)return void e.push(t);let i;this._active=!0;do{if(i=t.execute(t.state,t.delay))break}while(t=e.shift());if(this._active=!1,i){for(;t=e.shift();)t.unsubscribe();throw i}}}(class kO extends xO{constructor(t,e){super(t,e),this.scheduler=t,this.work=e,this.pending=!1}schedule(t,e=0){if(this.closed)return this;this.state=t;const i=this.id,r=this.scheduler;return null!=i&&(this.id=this.recycleAsyncId(r,i,e)),this.pending=!0,this.delay=e,this.id=this.id||this.requestAsyncId(r,this.id,e),this}requestAsyncId(t,e,i=0){return fd.setInterval(t.flush.bind(t,this),i)}recycleAsyncId(t,e,i=0){if(null!=i&&this.delay===i&&!1===this.pending)return e;fd.clearInterval(e)}execute(t,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(t,e);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(t,e){let r,i=!1;try{this.work(t)}catch(s){i=!0,r=s||new Error("Scheduled action threw falsy error")}if(i)return this.unsubscribe(),r}unsubscribe(){if(!this.closed){const{id:t,scheduler:e}=this,{actions:i}=e;this.work=this.state=this.scheduler=null,this.pending=!1,Ke(i,this),null!=t&&(this.id=this.recycleAsyncId(e,t,null)),this.delay=null,super.unsubscribe()}}}),OO=m0;function Eg(n=0,t,e=OO){let i=-1;return null!=t&&(fu(t)?e=t:i=t),new it(r=>{let s=function NO(n){return n instanceof Date&&!isNaN(n)}(n)?+n-e.now():n;s<0&&(s=0);let a=0;return e.schedule(function(){r.closed||(r.next(a++),0<=i?this.schedule(void 0,i):r.complete())},s)})}class bl extends Me{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const e=super._subscribe(t);return!e.closed&&t.next(this._value),e}getValue(){const{hasError:t,thrownError:e,_value:i}=this;if(t)throw e;return this._throwIfClosed(),i}next(t){super.next(this._value=t)}}function v0(n=0,t=m0){return n<0&&(n=0),Eg(n,n,t)}function Zr(n){return ut((t,e)=>{Hn(n).subscribe(mt(e,()=>e.complete(),ki)),!e.closed&&t.subscribe(e)})}function y0(...n){return function LO(){return da(1)}()(Pr(n,Ir(n)))}function _0(...n){const t=Ir(n);return ut((e,i)=>{(t?y0(n,e,t):y0(n,e)).subscribe(i)})}var BO=function(){function n(){}return n.prototype.getAllStyles=function(t){return window.getComputedStyle(t)},n.prototype.getStyle=function(t,e){return this.getAllStyles(t)[e]},n.prototype.isStaticPositioned=function(t){return"static"===(this.getStyle(t,"position")||"static")},n.prototype.offsetParent=function(t){for(var e=t.offsetParent||document.documentElement;e&&e!==document.documentElement&&this.isStaticPositioned(e);)e=e.offsetParent;return e||document.documentElement},n.prototype.position=function(t,e){void 0===e&&(e=!0);var i,r={width:0,height:0,top:0,bottom:0,left:0,right:0};if("fixed"===this.getStyle(t,"position"))i={top:(i=t.getBoundingClientRect()).top,bottom:i.bottom,left:i.left,right:i.right,height:i.height,width:i.width};else{var s=this.offsetParent(t);i=this.offset(t,!1),s!==document.documentElement&&(r=this.offset(s,!1)),r.top+=s.clientTop,r.left+=s.clientLeft}return i.top-=r.top,i.bottom-=r.top,i.left-=r.left,i.right-=r.left,e&&(i.top=Math.round(i.top),i.bottom=Math.round(i.bottom),i.left=Math.round(i.left),i.right=Math.round(i.right)),i},n.prototype.offset=function(t,e){void 0===e&&(e=!0);var i=t.getBoundingClientRect(),r_top=window.pageYOffset-document.documentElement.clientTop,r_left=window.pageXOffset-document.documentElement.clientLeft,s={height:i.height||t.offsetHeight,width:i.width||t.offsetWidth,top:i.top+r_top,bottom:i.bottom+r_top,left:i.left+r_left,right:i.right+r_left};return e&&(s.height=Math.round(s.height),s.width=Math.round(s.width),s.top=Math.round(s.top),s.bottom=Math.round(s.bottom),s.left=Math.round(s.left),s.right=Math.round(s.right)),s},n.prototype.positionElements=function(t,e,i,r){var s=i.split("-"),a=s[0],l=void 0===a?"top":a,c=s[1],d=void 0===c?"center":c,f=r?this.offset(t,!1):this.position(t,!1),g=this.getAllStyles(e),v=parseFloat(g.marginTop),y=parseFloat(g.marginBottom),w=parseFloat(g.marginLeft),D=parseFloat(g.marginRight),S=0,E=0;switch(l){case"top":S=f.top-(e.offsetHeight+v+y);break;case"bottom":S=f.top+f.height;break;case"left":E=f.left-(e.offsetWidth+w+D);break;case"right":E=f.left+f.width}switch(d){case"top":S=f.top;break;case"bottom":S=f.top+f.height-e.offsetHeight;break;case"left":E=f.left;break;case"right":E=f.left+f.width-e.offsetWidth;break;case"center":"top"===l||"bottom"===l?E=f.left+f.width/2-e.offsetWidth/2:S=f.top+f.height/2-e.offsetHeight/2}e.style.transform="translate("+Math.round(E)+"px, "+Math.round(S)+"px)";var b=e.getBoundingClientRect(),I=document.documentElement,A=window.innerHeight||I.clientHeight,H=window.innerWidth||I.clientWidth;return b.left>=0&&b.top>=0&&b.right<=H&&b.bottom<=A},n}(),HO=/\s+/,w0=new BO,Ai=function(){return Ai=Object.assign||function(n){for(var t,e=1,i=arguments.length;e{return(n=El||(El={}))[n.SUNDAY=0]="SUNDAY",n[n.MONDAY=1]="MONDAY",n[n.TUESDAY=2]="TUESDAY",n[n.WEDNESDAY=3]="WEDNESDAY",n[n.THURSDAY=4]="THURSDAY",n[n.FRIDAY=5]="FRIDAY",n[n.SATURDAY=6]="SATURDAY",El;var n})(),jO=[El.SUNDAY,El.SATURDAY],qr=86400;function C0(n,t){var e=t.startDate,r=t.excluded,s=t.precision;if(r.length<1)return 0;for(var l=n.getDay,c=n.addDays,d=(0,n.addSeconds)(e,t.seconds-1),f=l(e),g=l(d),v=0,y=e,w=function(){var D=l(y);r.some(function(S){return S===D})&&(v+=function UO(n,t){var i=t.day,s=t.dayEnd,a=t.startDate,l=t.endDate,c=n.differenceInSeconds,f=n.startOfDay;if("minutes"===t.precision){if(i===t.dayStart)return c((0,n.endOfDay)(a),a)+1;if(i===s)return c(l,f(l))+1}return qr}(n,{dayStart:f,dayEnd:g,day:D,precision:s,startDate:e,endDate:d})),y=c(y,1)};yi&&ai&&lr||s(a,i)||s(a,r)||s(l,i)||s(l,r))}(n,{event:s,periodStart:i,periodEnd:r})})}function S0(n,t){var e=t.date,i=t.weekendDays,r=void 0===i?jO:i,a=n.isSameDay,l=n.getDay,c=(0,n.startOfDay)(new Date),d=l(e);return{date:e,day:d,isPast:ec,isWeekend:r.indexOf(d)>-1}}function Ig(n,t){for(var r=t.excluded,s=void 0===r?[]:r,a=t.weekendDays,l=t.viewStart,c=void 0===l?n.startOfWeek(t.viewDate,{weekStartsOn:t.weekStartsOn}):l,d=t.viewEnd,f=void 0===d?n.addDays(c,7):d,g=n.addDays,v=n.getDay,y=[],w=c;wE&&(y=E-D),(y-=C0(n,{startDate:w,seconds:y,excluded:s,precision:a}))/qr}(n,{event:I,offset:A,startOfWeekDate:f,excluded:s,precision:l,totalDaysInView:D});return{event:I,offset:A,span:H}}).filter(function(I){return I.offset0}).map(function(I){return{event:I.event,offset:I.offset,span:I.span,startsBeforeWeek:I.event.startg}}).sort(function(I,A){var H=v(I.event.start,A.event.start);return 0===H?v(A.event.end||A.event.start,I.event.end||I.event.start):H}),E=[],b=[];return S.forEach(function(I,A){if(-1===b.indexOf(I)){b.push(I);var H=I.span+I.offset,K=S.slice(A+1).filter(function(Q){if(Q.offset>=H&&H+Q.span<=D&&-1===b.indexOf(Q)){var te=Q.offset-H;return d||(Q.offset=te),H+=Q.span+te,b.push(Q),!0}}),he=D0([I],K),le=he.filter(function(Q){return Q.event.id}).map(function(Q){return Q.event.id}).join("-");E.push(Ai({row:he},le?{id:le}:{}))}}),E}function qO(n,t){var e=t.events,i=t.viewDate,r=t.hourSegments,s=t.hourDuration,a=t.dayStart,l=t.dayEnd,c=t.weekStartsOn,d=t.excluded,f=t.weekendDays,g=t.segmentHeight,v=t.viewStart,y=t.viewEnd,w=t.minimumEventHeight,D=function XO(n,t){var e=t.viewDate,i=t.hourSegments,r=t.hourDuration,s=t.dayStart,a=t.dayEnd,l=n.setMinutes,c=n.setHours,d=n.startOfDay,f=n.startOfMinute,g=n.endOfDay,v=n.addMinutes,w=n.addDays,D=[],S=l(c(d(e),md(s.hour)),vd(s.minute)),E=l(c(f(g(e)),md(a.hour)),vd(a.minute)),b=(r||60)/i,I=d(e),A=g(e),H=function($){return $};n.getTimezoneOffset(I)!==n.getTimezoneOffset(A)&&(I=w(I,1),S=w(S,1),E=w(E,1),H=function($){return w($,-1)});for(var K=r?1440/r:60,he=0;he=S&&te0&&D.push({segments:le})}return D}(n,{viewDate:i,hourSegments:r,hourDuration:s,dayStart:a,dayEnd:l}),S=Ig(n,{viewDate:i,weekStartsOn:c,excluded:d,weekendDays:f,viewStart:v,viewEnd:y}),E=n.setHours,b=n.setMinutes,I=n.getHours,A=n.getMinutes;return S.map(function(H){var K=function QO(n,t){var e=t.events,i=t.viewDate,r=t.hourSegments,s=t.dayStart,a=t.dayEnd,l=t.eventWidth,c=t.segmentHeight,d=t.hourDuration,f=t.minimumEventHeight,g=n.setMinutes,v=n.setHours,y=n.startOfDay,w=n.startOfMinute,D=n.endOfDay,S=n.differenceInMinutes,E=g(v(y(i),md(s.hour)),vd(s.minute)),b=g(v(w(D(i)),md(a.hour)),vd(a.minute));b.setSeconds(59,999);var I=[],A=Tl(n,{events:e.filter(function(le){return!le.allDay}),periodStart:E,periodEnd:b}),H=A.sort(function(le,Q){return le.start.valueOf()-Q.start.valueOf()}).map(function(le){var Q=le.start,te=le.end||Q,$=Qb,Ee=r*c/(d||60),be=0;if(Q>E){var In=n.getTimezoneOffset(Q),X=n.getTimezoneOffset(E)-In;be+=S(Q,E)+X}be*=Ee,be=Math.floor(be);var re=$?E:Q,ke=F?b:te,Ue=n.getTimezoneOffset(re)-n.getTimezoneOffset(ke),Dt=S(ke,re)+Ue;le.end?Dt*=Ee:Dt=c,f&&Dt=F}).filter(function(be){return gd($,be.top,be.top+be.height).length>0});return Ee.length>0?le(te,Ee):F}var Q=K.events.map(function(te){var F=100/le(K.events,gd(K.events,te.top,te.top+te.height));return Ai(Ai({},te),{left:te.left*F,width:F})});return{hours:he,date:H.date,events:Q.map(function(te){var $=gd(Q.filter(function(F){return F.left>te.left}),te.top,te.top+te.height);return $.length>0?Ai(Ai({},te),{width:Math.min.apply(Math,$.map(function(F){return F.left}))-te.left}):te})}})}function gd(n,t,e){return n.filter(function(i){var r=i.top,s=i.top+i.height;return t{return(n=Yr||(Yr={})).NotArray="Events must be an array",n.StartPropertyMissing="Event is missing the `start` property",n.StartPropertyNotDate="Event `start` property should be a javascript date object. Do `new Date(event.start)` to fix it.",n.EndPropertyNotDate="Event `end` property should be a javascript date object. Do `new Date(event.end)` to fix it.",n.EndsBeforeStart="Event `start` property occurs after the `end`",Yr;var n})();const{isArray:eN}=Array,{getPrototypeOf:tN,prototype:nN,keys:iN}=Object;const{isArray:oN}=Array;function b0(n){return He(t=>function aN(n,t){return oN(t)?n(...t):n(t)}(n,t))}function uN(...n){const t=Ir(n),e=function Gd(n){return Pe(ha(n))?n.pop():void 0}(n),{args:i,keys:r}=function rN(n){if(1===n.length){const t=n[0];if(eN(t))return{args:t,keys:null};if(function sN(n){return n&&"object"==typeof n&&tN(n)===nN}(t)){const e=iN(t);return{args:e.map(i=>t[i]),keys:e}}}return{args:n,keys:null}}(n);if(0===i.length)return Pr([],t);const s=new it(function cN(n,t,e=kt){return i=>{E0(t,()=>{const{length:r}=n,s=new Array(r);let a=r,l=r;for(let c=0;c{const d=Pr(n[c],t);let f=!1;d.subscribe(mt(i,g=>{s[c]=g,f||(f=!0,l--),l||i.next(e(s.slice()))},()=>{--a||i.complete()}))},i)},i)}}(i,t,r?a=>function lN(n,t){return n.reduce((e,i,r)=>(e[i]=t[r],e),{})}(r,a):kt));return e?s.pipe(b0(e)):s}function E0(n,t,e){n?Jn(e,n,t):t()}const dN=["addListener","removeListener"],hN=["addEventListener","removeEventListener"],fN=["on","off"];function Ml(n,t,e,i){if(Pe(e)&&(i=e,e=void 0),i)return Ml(n,t,e).pipe(b0(i));const[r,s]=function mN(n){return Pe(n.addEventListener)&&Pe(n.removeEventListener)}(n)?hN.map(a=>l=>n[a](t,l,e)):function pN(n){return Pe(n.addListener)&&Pe(n.removeListener)}(n)?dN.map(T0(n,t)):function gN(n){return Pe(n.on)&&Pe(n.off)}(n)?fN.map(T0(n,t)):[];if(!r&&oa(n))return ei(a=>Ml(a,t,e))(Hn(n));if(!r)throw new TypeError("Invalid event target");return new it(a=>{const l=(...c)=>a.next(1s(l)})}function T0(n,t){return e=>i=>n[e](t,i)}function mn(n,t){return ut((e,i)=>{let r=0;e.subscribe(mt(i,s=>n.call(t,s,r++)&&i.next(s)))})}function Kr(n){return n<=0?()=>vi:ut((t,e)=>{let i=0;t.subscribe(mt(e,r=>{++i<=n&&(e.next(r),n<=i&&e.complete())}))})}function yN(n,t,e,i,r){return(s,a)=>{let l=e,c=t,d=0;s.subscribe(mt(a,f=>{const g=d++;c=l?n(c,f,g):(l=!0,f),i&&a.next(c)},r&&(()=>{l&&a.next(c),a.complete()})))}}function Pg(){return ut((n,t)=>{let e,i=!1;n.subscribe(mt(t,r=>{const s=e;e=r,i&&t.next([s,r]),i=!0}))})}function CN(n,t){return n===t}function Ag(n,t){return n=function SN(n,t){return typeof n>"u"?typeof t>"u"?n:t:n}(n,t),"function"==typeof n?function(){for(var i=arguments,r=arguments.length,s=Array(r),a=0;a"u"?"undefined":xg(n))&&1===n.nodeType&&"object"===xg(n.style)&&"object"===xg(n.ownerDocument)};function I0(n,t){if(t=Rg(t,!0),!M0(t))return-1;for(var e=0;e0;)e[i]=t[i+1];return bN(n,e=e.map(Rg))}function TN(n){for(var t=arguments,e=[],i=arguments.length-1;i-- >0;)e[i]=t[i+1];return e.map(Rg).reduce(function(r,s){var a=I0(n,s);return-1!==a?r.concat(n.splice(a,1)):r},[])}function Rg(n,t){if("string"==typeof n)try{return document.querySelector(n)}catch(e){throw e}if(!M0(n)&&!t)throw new TypeError(n+" is not a DOM element.");return n}function P0(n){if(n===window)return function IN(){var n={top:{value:0,enumerable:!0},left:{value:0,enumerable:!0},right:{value:window.innerWidth,enumerable:!0},bottom:{value:window.innerHeight,enumerable:!0},width:{value:window.innerWidth,enumerable:!0},height:{value:window.innerHeight,enumerable:!0},x:{value:0,enumerable:!0},y:{value:0,enumerable:!0}};if(Object.create)return Object.create({},n);var t={};return Object.defineProperties(t,n),t}();try{var t=n.getBoundingClientRect();return void 0===t.x&&(t.x=t.left,t.y=t.top),t}catch{throw new TypeError("Can't call getBoundingClientRect on "+n)}}var t,Og=void 0;"function"!=typeof Object.create?(t=function(){},Og=function(e,i){if(e!==Object(e)&&null!==e)throw TypeError("Argument must be an object, or null");t.prototype=e||{};var r=new t;return t.prototype=null,void 0!==i&&Object.defineProperties(r,i),null===e&&(r.__proto__=null),r}):Og=Object.create;var AN=Og,bs=["altKey","button","buttons","clientX","clientY","ctrlKey","metaKey","movementX","movementY","offsetX","offsetY","pageX","pageY","region","relatedTarget","screenX","screenY","shiftKey","which","x","y"];function Ng(n,t){t=t||{};for(var e=AN(n),i=0;i"u")return function(){};for(var n=0,t=Il.length;n"u")return function(){};for(var n=0,t=Il.length;nF.right-e.margin.right?Math.ceil(Math.min(1,(a.x-F.right)/e.margin.right+1)*e.maxSpeed.right):0,be=a.yF.bottom-e.margin.bottom?Math.ceil(Math.min(1,(a.y-F.bottom)/e.margin.bottom+1)*e.maxSpeed.bottom):0,e.syncMove()&&c.dispatch($,{pageX:a.pageX+Ee,pageY:a.pageY+be,clientX:a.x+Ee,clientY:a.y+be}),setTimeout(function(){be&&function Q($,F){$===window?window.scrollTo($.pageXOffset,$.pageYOffset+F):$.scrollTop+=F}($,be),Ee&&function te($,F){$===window?window.scrollTo($.pageXOffset+F,$.pageYOffset):$.scrollLeft+=F}($,Ee)})}window.addEventListener("mousedown",D,!1),window.addEventListener("touchstart",D,!1),window.addEventListener("mouseup",S,!1),window.addEventListener("touchend",S,!1),window.addEventListener("pointerup",S,!1),window.addEventListener("mousemove",H,!1),window.addEventListener("touchmove",H,!1),window.addEventListener("mouseleave",b,!1),window.addEventListener("scroll",w,!0)}function A0(n,t,e){return e?n.y>e.top&&n.ye.left&&n.xe.top&&n.ye.left&&n.xn.addClass(t.nativeElement,i))}function yd(n,t,e){e&&e.split(" ").forEach(i=>n.removeClass(t.nativeElement,i))}let x0=(()=>{class n{constructor(){this.currentDrag=new Me}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=ae({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),k0=(()=>{class n{constructor(e){this.elementRef=e}}return n.\u0275fac=function(e){return new(e||n)(O(bn))},n.\u0275dir=yt({type:n,selectors:[["","mwlDraggableScrollContainer",""]]}),n})(),Bg=(()=>{class n{constructor(e,i,r,s,a,l,c){this.element=e,this.renderer=i,this.draggableHelper=r,this.zone=s,this.vcr=a,this.scrollContainer=l,this.document=c,this.dragAxis={x:!0,y:!0},this.dragSnapGrid={},this.ghostDragEnabled=!0,this.showOriginalElementWhileDragging=!1,this.dragCursor="",this.autoScroll={margin:20},this.dragPointerDown=new ue,this.dragStart=new ue,this.ghostElementCreated=new ue,this.dragging=new ue,this.dragEnd=new ue,this.pointerDown$=new Me,this.pointerMove$=new Me,this.pointerUp$=new Me,this.eventListenerSubscriptions={},this.destroy$=new Me,this.timeLongPress={timerBegin:0,timerEnd:0}}ngOnInit(){this.checkEventListeners();const e=this.pointerDown$.pipe(mn(()=>this.canDrag()),ei(i=>{i.event.stopPropagation&&!this.scrollContainer&&i.event.stopPropagation();const r=this.renderer.createElement("style");this.renderer.setAttribute(r,"type","text/css"),this.renderer.appendChild(r,this.renderer.createText("\n body * {\n -moz-user-select: none;\n -ms-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n }\n ")),requestAnimationFrame(()=>{this.document.head.appendChild(r)});const s=this.getScrollPosition(),a=new it(y=>this.renderer.listen(this.scrollContainer?this.scrollContainer.elementRef.nativeElement:"window","scroll",D=>y.next(D))).pipe(_0(s),He(()=>this.getScrollPosition())),l=new Me,c=new CC;this.dragPointerDown.observers.length>0&&this.zone.run(()=>{this.dragPointerDown.next({x:0,y:0})});const d=rn(this.pointerUp$,this.pointerDown$,c,this.destroy$).pipe(_e()),f=uN([this.pointerMove$,a]).pipe(He(([y,w])=>({currentDrag$:l,transformX:y.clientX-i.clientX,transformY:y.clientY-i.clientY,clientX:y.clientX,clientY:y.clientY,scrollLeft:w.left,scrollTop:w.top,target:y.event.target})),He(y=>(this.dragSnapGrid.x&&(y.transformX=Math.round(y.transformX/this.dragSnapGrid.x)*this.dragSnapGrid.x),this.dragSnapGrid.y&&(y.transformY=Math.round(y.transformY/this.dragSnapGrid.y)*this.dragSnapGrid.y),y)),He(y=>(this.dragAxis.x||(y.transformX=0),this.dragAxis.y||(y.transformY=0),y)),He(y=>{const w=y.scrollLeft-s.left,D=y.scrollTop-s.top;return Object.assign(Object.assign({},y),{x:y.transformX+w,y:y.transformY+D})}),mn(({x:y,y:w,transformX:D,transformY:S})=>!this.validateDrag||this.validateDrag({x:y,y:w,transform:{x:D,y:S}})),Zr(d),_e()),g=f.pipe(Kr(1),_e()),v=f.pipe(function vN(n){return n<=0?()=>vi:ut((t,e)=>{let i=[];t.subscribe(mt(e,r=>{i.push(r),n{for(const r of i)e.next(r);e.complete()},void 0,()=>{i=null}))})}(1),_e());return g.subscribe(({clientX:y,clientY:w,x:D,y:S})=>{if(this.dragStart.observers.length>0&&this.zone.run(()=>{this.dragStart.next({cancelDrag$:c})}),this.scroller=function RN(n,t){return new kN(n,t)}([this.scrollContainer?this.scrollContainer.elementRef.nativeElement:this.document.defaultView],Object.assign(Object.assign({},this.autoScroll),{autoScroll:()=>!0})),Fg(this.renderer,this.element,this.dragActiveClass),this.ghostDragEnabled){const E=this.element.nativeElement.getBoundingClientRect(),b=this.element.nativeElement.cloneNode(!0);if(this.showOriginalElementWhileDragging||this.renderer.setStyle(this.element.nativeElement,"visibility","hidden"),this.ghostElementAppendTo?this.ghostElementAppendTo.appendChild(b):this.element.nativeElement.parentNode.insertBefore(b,this.element.nativeElement.nextSibling),this.ghostElement=b,this.document.body.style.cursor=this.dragCursor,this.setElementStyles(b,{position:"fixed",top:`${E.top}px`,left:`${E.left}px`,width:`${E.width}px`,height:`${E.height}px`,cursor:this.dragCursor,margin:"0",willChange:"transform",pointerEvents:"none"}),this.ghostElementTemplate){const I=this.vcr.createEmbeddedView(this.ghostElementTemplate);b.innerHTML="",I.rootNodes.filter(A=>A instanceof Node).forEach(A=>{b.appendChild(A)}),v.subscribe(()=>{this.vcr.remove(this.vcr.indexOf(I))})}this.ghostElementCreated.observers.length>0&&this.zone.run(()=>{this.ghostElementCreated.emit({clientX:y-D,clientY:w-S,element:b})}),v.subscribe(()=>{b.parentElement.removeChild(b),this.ghostElement=null,this.renderer.setStyle(this.element.nativeElement,"visibility","")})}this.draggableHelper.currentDrag.next(l)}),v.pipe(ei(y=>{const w=c.pipe(function wN(n){return function _N(n,t){return ut(yN(n,t,arguments.length>=2,!1,!0))}((t,e,i)=>!n||n(e,i)?t+1:t,0)}(),Kr(1),He(D=>Object.assign(Object.assign({},y),{dragCancelled:D>0})));return c.complete(),w})).subscribe(({x:y,y:w,dragCancelled:D})=>{this.scroller.destroy(),this.dragEnd.observers.length>0&&this.zone.run(()=>{this.dragEnd.next({x:y,y:w,dragCancelled:D})}),yd(this.renderer,this.element,this.dragActiveClass),l.complete()}),rn(d,v).pipe(Kr(1)).subscribe(()=>{requestAnimationFrame(()=>{this.document.head.removeChild(r)})}),f}),_e());rn(e.pipe(Kr(1),He(i=>[,i])),e.pipe(Pg())).pipe(mn(([i,r])=>!i||i.x!==r.x||i.y!==r.y),He(([i,r])=>r)).subscribe(({x:i,y:r,currentDrag$:s,clientX:a,clientY:l,transformX:c,transformY:d,target:f})=>{this.dragging.observers.length>0&&this.zone.run(()=>{this.dragging.next({x:i,y:r})}),requestAnimationFrame(()=>{if(this.ghostElement){const g=`translate3d(${c}px, ${d}px, 0px)`;this.setElementStyles(this.ghostElement,{transform:g,"-webkit-transform":g,"-ms-transform":g,"-moz-transform":g,"-o-transform":g})}}),s.next({clientX:a,clientY:l,dropData:this.dropData,target:f})})}ngOnChanges(e){e.dragAxis&&this.checkEventListeners()}ngOnDestroy(){this.unsubscribeEventListeners(),this.pointerDown$.complete(),this.pointerMove$.complete(),this.pointerUp$.complete(),this.destroy$.next()}checkEventListeners(){const e=this.canDrag(),i=Object.keys(this.eventListenerSubscriptions).length>0;e&&!i?this.zone.runOutsideAngular(()=>{this.eventListenerSubscriptions.mousedown=this.renderer.listen(this.element.nativeElement,"mousedown",r=>{this.onMouseDown(r)}),this.eventListenerSubscriptions.mouseup=this.renderer.listen("document","mouseup",r=>{this.onMouseUp(r)}),this.eventListenerSubscriptions.touchstart=this.renderer.listen(this.element.nativeElement,"touchstart",r=>{this.onTouchStart(r)}),this.eventListenerSubscriptions.touchend=this.renderer.listen("document","touchend",r=>{this.onTouchEnd(r)}),this.eventListenerSubscriptions.touchcancel=this.renderer.listen("document","touchcancel",r=>{this.onTouchEnd(r)}),this.eventListenerSubscriptions.mouseenter=this.renderer.listen(this.element.nativeElement,"mouseenter",()=>{this.onMouseEnter()}),this.eventListenerSubscriptions.mouseleave=this.renderer.listen(this.element.nativeElement,"mouseleave",()=>{this.onMouseLeave()})}):!e&&i&&this.unsubscribeEventListeners()}onMouseDown(e){0===e.button&&(this.eventListenerSubscriptions.mousemove||(this.eventListenerSubscriptions.mousemove=this.renderer.listen("document","mousemove",i=>{this.pointerMove$.next({event:i,clientX:i.clientX,clientY:i.clientY})})),this.pointerDown$.next({event:e,clientX:e.clientX,clientY:e.clientY}))}onMouseUp(e){0===e.button&&(this.eventListenerSubscriptions.mousemove&&(this.eventListenerSubscriptions.mousemove(),delete this.eventListenerSubscriptions.mousemove),this.pointerUp$.next({event:e,clientX:e.clientX,clientY:e.clientY}))}onTouchStart(e){let i,r,s;if(this.touchStartLongPress&&(this.timeLongPress.timerBegin=Date.now(),r=!1,s=this.hasScrollbar(),i=this.getScrollPosition()),!this.eventListenerSubscriptions.touchmove){const a=Ml(this.document,"contextmenu").subscribe(c=>{c.preventDefault()}),l=Ml(this.document,"touchmove",{passive:!1}).subscribe(c=>{this.touchStartLongPress&&!r&&s&&(r=this.shouldBeginDrag(e,c,i)),(!this.touchStartLongPress||!s||r)&&(c.preventDefault(),this.pointerMove$.next({event:c,clientX:c.targetTouches[0].clientX,clientY:c.targetTouches[0].clientY}))});this.eventListenerSubscriptions.touchmove=()=>{a.unsubscribe(),l.unsubscribe()}}this.pointerDown$.next({event:e,clientX:e.touches[0].clientX,clientY:e.touches[0].clientY})}onTouchEnd(e){this.eventListenerSubscriptions.touchmove&&(this.eventListenerSubscriptions.touchmove(),delete this.eventListenerSubscriptions.touchmove,this.touchStartLongPress&&this.enableScroll()),this.pointerUp$.next({event:e,clientX:e.changedTouches[0].clientX,clientY:e.changedTouches[0].clientY})}onMouseEnter(){this.setCursor(this.dragCursor)}onMouseLeave(){this.setCursor("")}canDrag(){return this.dragAxis.x||this.dragAxis.y}setCursor(e){this.eventListenerSubscriptions.mousemove||this.renderer.setStyle(this.element.nativeElement,"cursor",e)}unsubscribeEventListeners(){Object.keys(this.eventListenerSubscriptions).forEach(e=>{this.eventListenerSubscriptions[e](),delete this.eventListenerSubscriptions[e]})}setElementStyles(e,i){Object.keys(i).forEach(r=>{this.renderer.setStyle(e,r,i[r])})}getScrollElement(){return this.scrollContainer?this.scrollContainer.elementRef.nativeElement:this.document.body}getScrollPosition(){return this.scrollContainer?{top:this.scrollContainer.elementRef.nativeElement.scrollTop,left:this.scrollContainer.elementRef.nativeElement.scrollLeft}:{top:window.pageYOffset||this.document.documentElement.scrollTop,left:window.pageXOffset||this.document.documentElement.scrollLeft}}shouldBeginDrag(e,i,r){const s=this.getScrollPosition(),a_top=Math.abs(s.top-r.top),a_left=Math.abs(s.left-r.left),l=Math.abs(i.targetTouches[0].clientX-e.touches[0].clientX)-a_left,c=Math.abs(i.targetTouches[0].clientY-e.touches[0].clientY)-a_top,f=this.touchStartLongPress;return(l+c>f.delta||a_top>0||a_left>0)&&(this.timeLongPress.timerBegin=Date.now()),this.timeLongPress.timerEnd=Date.now(),this.timeLongPress.timerEnd-this.timeLongPress.timerBegin>=f.delay&&(this.disableScroll(),!0)}enableScroll(){this.scrollContainer&&this.renderer.setStyle(this.scrollContainer.elementRef.nativeElement,"overflow",""),this.renderer.setStyle(this.document.body,"overflow","")}disableScroll(){this.scrollContainer&&this.renderer.setStyle(this.scrollContainer.elementRef.nativeElement,"overflow","hidden"),this.renderer.setStyle(this.document.body,"overflow","hidden")}hasScrollbar(){const e=this.getScrollElement();return e.scrollWidth>e.clientWidth||e.scrollHeight>e.clientHeight}}return n.\u0275fac=function(e){return new(e||n)(O(bn),O(gr),O(x0),O(bt),O(li),O(k0,8),O(gn))},n.\u0275dir=yt({type:n,selectors:[["","mwlDraggable",""]],inputs:{dropData:"dropData",dragAxis:"dragAxis",dragSnapGrid:"dragSnapGrid",ghostDragEnabled:"ghostDragEnabled",showOriginalElementWhileDragging:"showOriginalElementWhileDragging",validateDrag:"validateDrag",dragCursor:"dragCursor",dragActiveClass:"dragActiveClass",ghostElementAppendTo:"ghostElementAppendTo",ghostElementTemplate:"ghostElementTemplate",touchStartLongPress:"touchStartLongPress",autoScroll:"autoScroll"},outputs:{dragPointerDown:"dragPointerDown",dragStart:"dragStart",ghostElementCreated:"ghostElementCreated",dragging:"dragging",dragEnd:"dragEnd"},features:[ri]}),n})();function R0(n,t,e){return n>=e.left&&n<=e.right&&t>=e.top&&t<=e.bottom}let Hg=(()=>{class n{constructor(e,i,r,s,a){this.element=e,this.draggableHelper=i,this.zone=r,this.renderer=s,this.scrollContainer=a,this.dragEnter=new ue,this.dragLeave=new ue,this.dragOver=new ue,this.drop=new ue}ngOnInit(){this.currentDragSubscription=this.draggableHelper.currentDrag.subscribe(e=>{Fg(this.renderer,this.element,this.dragActiveClass);const i={updateCache:!0},r=this.renderer.listen(this.scrollContainer?this.scrollContainer.elementRef.nativeElement:"window","scroll",()=>{i.updateCache=!0});let s;const a=e.pipe(He(({clientX:d,clientY:f,dropData:g,target:v})=>{s={clientX:d,clientY:f,dropData:g,target:v},i.updateCache&&(i.rect=this.element.nativeElement.getBoundingClientRect(),this.scrollContainer&&(i.scrollContainerRect=this.scrollContainer.elementRef.nativeElement.getBoundingClientRect()),i.updateCache=!1);const y=R0(d,f,i.rect),w=!this.validateDrop||this.validateDrop({clientX:d,clientY:f,target:v,dropData:g});return i.scrollContainerRect?y&&w&&R0(d,f,i.scrollContainerRect):y&&w})),l=a.pipe(function DN(n,t=kt){return n=n??CN,ut((e,i)=>{let r,s=!0;e.subscribe(mt(i,a=>{const l=t(a);(s||!n(r,l))&&(s=!1,r=l,i.next(a))}))})}());let c;l.pipe(mn(d=>d)).subscribe(()=>{c=!0,Fg(this.renderer,this.element,this.dragOverClass),this.dragEnter.observers.length>0&&this.zone.run(()=>{this.dragEnter.next(s)})}),a.pipe(mn(d=>d)).subscribe(()=>{this.dragOver.observers.length>0&&this.zone.run(()=>{this.dragOver.next(s)})}),l.pipe(Pg(),mn(([d,f])=>d&&!f)).subscribe(()=>{c=!1,yd(this.renderer,this.element,this.dragOverClass),this.dragLeave.observers.length>0&&this.zone.run(()=>{this.dragLeave.next(s)})}),e.subscribe({complete:()=>{r(),yd(this.renderer,this.element,this.dragActiveClass),c&&(yd(this.renderer,this.element,this.dragOverClass),this.drop.observers.length>0&&this.zone.run(()=>{this.drop.next(s)}))}})})}ngOnDestroy(){this.currentDragSubscription&&this.currentDragSubscription.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(O(bn),O(x0),O(bt),O(gr),O(k0,8))},n.\u0275dir=yt({type:n,selectors:[["","mwlDroppable",""]],inputs:{dragOverClass:"dragOverClass",dragActiveClass:"dragActiveClass",validateDrop:"validateDrop"},outputs:{dragEnter:"dragEnter",dragLeave:"dragLeave",dragOver:"dragOver",drop:"drop"}}),n})(),_d=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=At({type:n}),n.\u0275inj=Le({}),n})();function O0(n,t,e){const i=Pe(n)||t||e?{next:n,error:t,complete:e}:n;return i?ut((r,s)=>{var a;null===(a=i.subscribe)||void 0===a||a.call(i);let l=!0;r.subscribe(mt(s,c=>{var d;null===(d=i.next)||void 0===d||d.call(i,c),s.next(c)},()=>{var c;l=!1,null===(c=i.complete)||void 0===c||c.call(i),s.complete()},c=>{var d;l=!1,null===(d=i.error)||void 0===d||d.call(i,c),s.error(c)},()=>{var c,d;l&&(null===(c=i.unsubscribe)||void 0===c||c.call(i)),null===(d=i.finalize)||void 0===d||d.call(i)}))}):kt}const Es=!(typeof window>"u")&&("ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0);function N0(n,t,e,i){const r=t.querySelectorAll(n);if(r.length){const s=e.querySelectorAll(n);for(let a=0;a{i[r]=(e[r]||0)-(t[r]||0)}),i}const j0="resize-active";let U0=(()=>{class n{constructor(e,i,r,s){this.platformId=e,this.renderer=i,this.elm=r,this.zone=s,this.enableGhostResize=!1,this.resizeSnapGrid={},this.resizeCursors=H0,this.ghostElementPositioning="fixed",this.allowNegativeResizes=!1,this.mouseMoveThrottleMS=50,this.resizeStart=new ue,this.resizing=new ue,this.resizeEnd=new ue,this.mouseup=new Me,this.mousedown=new Me,this.mousemove=new Me,this.destroy$=new Me,this.pointerEventListeners=Ko.getInstance(i,s)}ngOnInit(){const e=rn(this.pointerEventListeners.pointerDown,this.mousedown),i=rn(this.pointerEventListeners.pointerMove,this.mousemove).pipe(O0(({event:d})=>{if(s)try{d.preventDefault()}catch{}}),_e()),r=rn(this.pointerEventListeners.pointerUp,this.mouseup);let s;const a=()=>{s&&s.clonedNode&&(this.elm.nativeElement.parentElement.removeChild(s.clonedNode),this.renderer.setStyle(this.elm.nativeElement,"visibility","inherit"))},l=()=>Object.assign(Object.assign({},H0),this.resizeCursors);e.pipe(ei(d=>{function f(y){return{clientX:y.clientX-d.clientX,clientY:y.clientY-d.clientY}}const g=()=>{const y={x:1,y:1};return s&&(this.resizeSnapGrid.left&&s.edges.left?y.x=+this.resizeSnapGrid.left:this.resizeSnapGrid.right&&s.edges.right&&(y.x=+this.resizeSnapGrid.right),this.resizeSnapGrid.top&&s.edges.top?y.y=+this.resizeSnapGrid.top:this.resizeSnapGrid.bottom&&s.edges.bottom&&(y.y=+this.resizeSnapGrid.bottom)),y};function v(y,w){return{x:Math.ceil(y.clientX/w.x),y:Math.ceil(y.clientY/w.y)}}return rn(i.pipe(Kr(1)).pipe(He(y=>[,y])),i.pipe(Pg())).pipe(He(([y,w])=>[y&&f(y),f(w)])).pipe(mn(([y,w])=>{if(!y)return!0;const D=g(),S=v(y,D),E=v(w,D);return S.x!==E.x||S.y!==E.y})).pipe(He(([,y])=>{const w=g();return{clientX:Math.round(y.clientX/w.x)*w.x,clientY:Math.round(y.clientY/w.y)*w.y}})).pipe(Zr(rn(r,e)))})).pipe(mn(()=>!!s)).pipe(He(({clientX:d,clientY:f})=>B0(s.startingRect,s.edges,d,f))).pipe(mn(d=>this.allowNegativeResizes||!!(d.height&&d.width&&d.height>0&&d.width>0))).pipe(mn(d=>!this.validateResize||this.validateResize({rectangle:d,edges:wd({edges:s.edges,initialRectangle:s.startingRect,newRectangle:d})})),Zr(this.destroy$)).subscribe(d=>{s&&s.clonedNode&&(this.renderer.setStyle(s.clonedNode,"height",`${d.height}px`),this.renderer.setStyle(s.clonedNode,"width",`${d.width}px`),this.renderer.setStyle(s.clonedNode,"top",`${d.top}px`),this.renderer.setStyle(s.clonedNode,"left",`${d.left}px`)),this.resizing.observers.length>0&&this.zone.run(()=>{this.resizing.emit({edges:wd({edges:s.edges,initialRectangle:s.startingRect,newRectangle:d}),rectangle:d})}),s.currentRect=d}),e.pipe(He(({edges:d})=>d||{}),mn(d=>Object.keys(d).length>0),Zr(this.destroy$)).subscribe(d=>{s&&a();const f=function FN(n,t){let e=0,i=0;const r=n.nativeElement.style,a=["transform","-ms-transform","-moz-transform","-o-transform"].map(l=>r[l]).find(l=>!!l);if(a&&a.includes("translate")&&(e=a.replace(/.*translate3?d?\((-?[0-9]*)px, (-?[0-9]*)px.*/,"$1"),i=a.replace(/.*translate3?d?\((-?[0-9]*)px, (-?[0-9]*)px.*/,"$2")),"absolute"===t)return{height:n.nativeElement.offsetHeight,width:n.nativeElement.offsetWidth,top:n.nativeElement.offsetTop-i,bottom:n.nativeElement.offsetHeight+n.nativeElement.offsetTop-i,left:n.nativeElement.offsetLeft-e,right:n.nativeElement.offsetWidth+n.nativeElement.offsetLeft-e};{const l=n.nativeElement.getBoundingClientRect();return{height:l.height,width:l.width,top:l.top-i,bottom:l.bottom-i,left:l.left-e,right:l.right-e,scrollTop:n.nativeElement.scrollTop,scrollLeft:n.nativeElement.scrollLeft}}}(this.elm,this.ghostElementPositioning);s={edges:d,startingRect:f,currentRect:f};const g=l(),v=V0(s.edges,g);this.renderer.setStyle(document.body,"cursor",v),this.setElementClass(this.elm,j0,!0),this.enableGhostResize&&(s.clonedNode=function NN(n){const t=n.cloneNode(!0),e=t.querySelectorAll("[id]"),i=n.nodeName.toLowerCase();return t.removeAttribute("id"),e.forEach(r=>{r.removeAttribute("id")}),"canvas"===i?F0(n,t):("input"===i||"select"===i||"textarea"===i)&&L0(n,t),N0("canvas",n,t,F0),N0("input, textarea, select",n,t,L0),t}(this.elm.nativeElement),this.elm.nativeElement.parentElement.appendChild(s.clonedNode),this.renderer.setStyle(this.elm.nativeElement,"visibility","hidden"),this.renderer.setStyle(s.clonedNode,"position",this.ghostElementPositioning),this.renderer.setStyle(s.clonedNode,"left",`${s.startingRect.left}px`),this.renderer.setStyle(s.clonedNode,"top",`${s.startingRect.top}px`),this.renderer.setStyle(s.clonedNode,"height",`${s.startingRect.height}px`),this.renderer.setStyle(s.clonedNode,"width",`${s.startingRect.width}px`),this.renderer.setStyle(s.clonedNode,"cursor",V0(s.edges,g)),this.renderer.addClass(s.clonedNode,"resize-ghost-element"),s.clonedNode.scrollTop=s.startingRect.scrollTop,s.clonedNode.scrollLeft=s.startingRect.scrollLeft),this.resizeStart.observers.length>0&&this.zone.run(()=>{this.resizeStart.emit({edges:wd({edges:d,initialRectangle:f,newRectangle:f}),rectangle:B0(f,{},0,0)})})}),r.pipe(Zr(this.destroy$)).subscribe(()=>{s&&(this.renderer.removeClass(this.elm.nativeElement,j0),this.renderer.setStyle(document.body,"cursor",""),this.renderer.setStyle(this.elm.nativeElement,"cursor",""),this.resizeEnd.observers.length>0&&this.zone.run(()=>{this.resizeEnd.emit({edges:wd({edges:s.edges,initialRectangle:s.startingRect,newRectangle:s.currentRect}),rectangle:s.currentRect})}),a(),s=null)})}ngOnDestroy(){(function Fx(n){return n===oC})(this.platformId)&&this.renderer.setStyle(document.body,"cursor",""),this.mousedown.complete(),this.mouseup.complete(),this.mousemove.complete(),this.destroy$.next()}setElementClass(e,i,r){r?this.renderer.addClass(e.nativeElement,i):this.renderer.removeClass(e.nativeElement,i)}}return n.\u0275fac=function(e){return new(e||n)(O(dl),O(gr),O(bn),O(bt))},n.\u0275dir=yt({type:n,selectors:[["","mwlResizable",""]],inputs:{validateResize:"validateResize",enableGhostResize:"enableGhostResize",resizeSnapGrid:"resizeSnapGrid",resizeCursors:"resizeCursors",ghostElementPositioning:"ghostElementPositioning",allowNegativeResizes:"allowNegativeResizes",mouseMoveThrottleMS:"mouseMoveThrottleMS"},outputs:{resizeStart:"resizeStart",resizing:"resizing",resizeEnd:"resizeEnd"},exportAs:["mwlResizable"]}),n})();class Ko{constructor(t,e){this.pointerDown=new it(i=>{let r,s;return e.runOutsideAngular(()=>{r=t.listen("document","mousedown",a=>{i.next({clientX:a.clientX,clientY:a.clientY,event:a})}),Es&&(s=t.listen("document","touchstart",a=>{i.next({clientX:a.touches[0].clientX,clientY:a.touches[0].clientY,event:a})}))}),()=>{r(),Es&&s()}}).pipe(_e()),this.pointerMove=new it(i=>{let r,s;return e.runOutsideAngular(()=>{r=t.listen("document","mousemove",a=>{i.next({clientX:a.clientX,clientY:a.clientY,event:a})}),Es&&(s=t.listen("document","touchmove",a=>{i.next({clientX:a.targetTouches[0].clientX,clientY:a.targetTouches[0].clientY,event:a})}))}),()=>{r(),Es&&s()}}).pipe(_e()),this.pointerUp=new it(i=>{let r,s,a;return e.runOutsideAngular(()=>{r=t.listen("document","mouseup",l=>{i.next({clientX:l.clientX,clientY:l.clientY,event:l})}),Es&&(s=t.listen("document","touchend",l=>{i.next({clientX:l.changedTouches[0].clientX,clientY:l.changedTouches[0].clientY,event:l})}),a=t.listen("document","touchcancel",l=>{i.next({clientX:l.changedTouches[0].clientX,clientY:l.changedTouches[0].clientY,event:l})}))}),()=>{r(),Es&&(s(),a())}}).pipe(_e())}static getInstance(t,e){return Ko.instance||(Ko.instance=new Ko(t,e)),Ko.instance}}let VN=(()=>{class n{constructor(e,i,r,s){this.renderer=e,this.element=i,this.zone=r,this.resizableDirective=s,this.resizeEdges={},this.eventListeners={},this.destroy$=new Me}ngOnInit(){this.zone.runOutsideAngular(()=>{this.listenOnTheHost("mousedown").subscribe(e=>{this.onMousedown(e,e.clientX,e.clientY)}),this.listenOnTheHost("mouseup").subscribe(e=>{this.onMouseup(e.clientX,e.clientY)}),Es&&(this.listenOnTheHost("touchstart").subscribe(e=>{this.onMousedown(e,e.touches[0].clientX,e.touches[0].clientY)}),rn(this.listenOnTheHost("touchend"),this.listenOnTheHost("touchcancel")).subscribe(e=>{this.onMouseup(e.changedTouches[0].clientX,e.changedTouches[0].clientY)}))})}ngOnDestroy(){this.destroy$.next(),this.unsubscribeEventListeners()}onMousedown(e,i,r){e.preventDefault(),this.eventListeners.touchmove||(this.eventListeners.touchmove=this.renderer.listen(this.element.nativeElement,"touchmove",s=>{this.onMousemove(s,s.targetTouches[0].clientX,s.targetTouches[0].clientY)})),this.eventListeners.mousemove||(this.eventListeners.mousemove=this.renderer.listen(this.element.nativeElement,"mousemove",s=>{this.onMousemove(s,s.clientX,s.clientY)})),this.resizable.mousedown.next({clientX:i,clientY:r,edges:this.resizeEdges})}onMouseup(e,i){this.unsubscribeEventListeners(),this.resizable.mouseup.next({clientX:e,clientY:i,edges:this.resizeEdges})}get resizable(){return this.resizableDirective||this.resizableContainer}onMousemove(e,i,r){this.resizable.mousemove.next({clientX:i,clientY:r,edges:this.resizeEdges,event:e})}unsubscribeEventListeners(){Object.keys(this.eventListeners).forEach(e=>{this.eventListeners[e](),delete this.eventListeners[e]})}listenOnTheHost(e){return Ml(this.element.nativeElement,e).pipe(Zr(this.destroy$))}}return n.\u0275fac=function(e){return new(e||n)(O(gr),O(bn),O(bt),O(U0,8))},n.\u0275dir=yt({type:n,selectors:[["","mwlResizeHandle",""]],inputs:{resizeEdges:"resizeEdges",resizableContainer:"resizableContainer"}}),n})(),z0=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=At({type:n}),n.\u0275inj=Le({}),n})();const jN=function(n){return{action:n}};function UN(n,t){if(1&n){const e=Nt();Z(0,"a",5),Ie("mwlClick",function(r){const a=ee(e).$implicit,l=R(2).event;return a.onClick({event:l,sourceEvent:r})})("mwlKeydownEnter",function(r){const a=ee(e).$implicit,l=R(2).event;return a.onClick({event:l,sourceEvent:r})}),_t(1,"calendarA11y"),Y()}if(2&n){const e=t.$implicit;N("ngClass",e.cssClass)("innerHtml",e.label,tc),ai("aria-label",Ei(1,3,vs(6,jN,e),"actionButtonLabel"))}}function zN(n,t){if(1&n&&(Z(0,"span",3),ne(1,UN,2,8,"a",4),Y()),2&n){const e=R(),i=e.event,r=e.trackByActionId;V(1),N("ngForOf",i.actions)("ngForTrackBy",r)}}function WN(n,t){1&n&&ne(0,zN,2,2,"span",2),2&n&&N("ngIf",t.event.actions)}function $N(n,t){}const GN=function(n,t){return{event:n,trackByActionId:t}},Qo=function(){return{}};function ZN(n,t){if(1&n&&(St(0,"span",2),_t(1,"calendarEventTitle"),_t(2,"calendarA11y")),2&n){const e=t.event;N("innerHTML",Ti(1,2,e.title,t.view,e),tc),ai("aria-hidden",Ei(2,6,En(9,Qo),"hideEventTitle"))}}function qN(n,t){}const YN=function(n,t){return{event:n,view:t}};function KN(n,t){if(1&n&&(Z(0,"div",2),St(1,"div",3)(2,"div",4),Y()),2&n){const e=t.contents;N("ngClass","cal-tooltip-"+t.placement),V(2),N("innerHtml",e,tc)}}function QN(n,t){}const XN=function(n,t,e){return{contents:n,placement:t,event:e}};function JN(n,t){if(1&n){const e=Nt();Z(0,"div",4),Ie("click",function(r){const a=ee(e).$implicit;return R(2).columnHeaderClicked.emit({isoDayNumber:a.day,sourceEvent:r})}),It(1),_t(2,"calendarDate"),Y()}if(2&n){const e=t.$implicit,i=R().locale;pn("cal-past",e.isPast)("cal-today",e.isToday)("cal-future",e.isFuture)("cal-weekend",e.isWeekend),N("ngClass",e.cssClass),V(1),el(" ",Ti(2,10,e.date,"monthViewColumnHeader",i)," ")}}function eL(n,t){if(1&n&&(Z(0,"div",2),ne(1,JN,3,14,"div",3),Y()),2&n){const e=t.days,i=t.trackByWeekDayHeaderDate;V(1),N("ngForOf",e)("ngForTrackBy",i)}}function tL(n,t){}const nL=function(n,t,e){return{days:n,locale:t,trackByWeekDayHeaderDate:e}};function iL(n,t){if(1&n&&(Z(0,"span",7),It(1),Y()),2&n){const e=R().day;V(1),ps(e.badgeTotal)}}const Vg=function(n){return{backgroundColor:n}},rL=function(n,t){return{event:n,draggedFrom:t}},Al=function(n,t){return{x:n,y:t}},Dd=function(){return{delay:300,delta:30}};function sL(n,t){if(1&n){const e=Nt();Z(0,"div",10),Ie("mouseenter",function(){const s=ee(e).$implicit;return R(2).highlightDay.emit({event:s})})("mouseleave",function(){const s=ee(e).$implicit;return R(2).unhighlightDay.emit({event:s})})("mwlClick",function(r){const a=ee(e).$implicit;return R(2).eventClicked.emit({event:a,sourceEvent:r})}),_t(1,"calendarEventTitle"),_t(2,"calendarA11y"),Y()}if(2&n){const e=t.$implicit,i=R(2),r=i.tooltipPlacement,s=i.tooltipTemplate,a=i.tooltipAppendToBody,l=i.tooltipDelay,c=i.day,d=i.validateDrag;pn("cal-draggable",e.draggable),N("ngStyle",vs(22,Vg,null==e.color?null:e.color.primary))("ngClass",null==e?null:e.cssClass)("mwlCalendarTooltip",Ti(1,15,e.title,"monthTooltip",e))("tooltipPlacement",r)("tooltipEvent",e)("tooltipTemplate",s)("tooltipAppendToBody",a)("tooltipDelay",l)("dropData",Xt(24,rL,e,c))("dragAxis",Xt(27,Al,e.draggable,e.draggable))("validateDrag",d)("touchStartLongPress",En(30,Dd)),ai("aria-hidden",Ei(2,19,En(31,Qo),"hideMonthCellEvents"))}}function oL(n,t){if(1&n&&(Z(0,"div",8),ne(1,sL,3,32,"div",9),Y()),2&n){const e=R(),i=e.day,r=e.trackByEventId;V(1),N("ngForOf",i.events)("ngForTrackBy",r)}}const aL=function(n,t){return{day:n,locale:t}};function lL(n,t){if(1&n&&(Z(0,"div",2),_t(1,"calendarA11y"),Z(2,"span",3),ne(3,iL,2,1,"span",4),Z(4,"span",5),It(5),_t(6,"calendarDate"),Y()()(),ne(7,oL,2,2,"div",6)),2&n){const e=t.day,i=t.locale;ai("aria-label",Ei(1,4,Xt(11,aL,e,i),"monthCell")),V(3),N("ngIf",e.badgeTotal>0),V(2),ps(Ti(6,7,e.date,"monthViewDayNumber",i)),V(2),N("ngIf",e.events.length>0)}}function uL(n,t){}const cL=function(n,t,e,i,r,s,a,l,c,d,f,g){return{day:n,openDay:t,locale:e,tooltipPlacement:i,highlightDay:r,unhighlightDay:s,eventClicked:a,tooltipTemplate:l,tooltipAppendToBody:c,tooltipDelay:d,trackByEventId:f,validateDrag:g}},dL=function(n){return{event:n}},W0=function(n,t){return{event:n,locale:t}};function hL(n,t){if(1&n){const e=Nt();Z(0,"div",7),St(1,"span",8),It(2," "),Z(3,"mwl-calendar-event-title",9),Ie("mwlClick",function(r){const a=ee(e).$implicit;return R(2).eventClicked.emit({event:a,sourceEvent:r})})("mwlKeydownEnter",function(r){const a=ee(e).$implicit;return R(2).eventClicked.emit({event:a,sourceEvent:r})}),_t(4,"calendarA11y"),Y(),It(5," "),St(6,"mwl-calendar-event-actions",10),Y()}if(2&n){const e=t.$implicit,i=R(2).validateDrag,r=R();pn("cal-draggable",e.draggable),N("ngClass",null==e?null:e.cssClass)("dropData",vs(16,dL,e))("dragAxis",Xt(18,Al,e.draggable,e.draggable))("validateDrag",i)("touchStartLongPress",En(21,Dd)),V(1),N("ngStyle",vs(22,Vg,null==e.color?null:e.color.primary)),V(2),N("event",e)("customTemplate",r.eventTitleTemplate),ai("aria-label",Ei(4,13,Xt(24,W0,e,r.locale),"eventDescription")),V(3),N("event",e)("customTemplate",r.eventActionsTemplate)}}const $0=function(n,t){return{date:n,locale:t}};function fL(n,t){if(1&n&&(Z(0,"div",3),St(1,"span",4),_t(2,"calendarA11y"),St(3,"span",5),_t(4,"calendarA11y"),ne(5,hL,7,27,"div",6),Y()),2&n){const e=R(),i=e.events,r=e.trackByEventId,s=R();N("@collapse",void 0),V(1),ai("aria-label",Ei(2,5,Xt(11,$0,s.date,s.locale),"openDayEventsAlert")),V(2),ai("aria-label",Ei(4,8,Xt(14,$0,s.date,s.locale),"openDayEventsLandmark")),V(2),N("ngForOf",i)("ngForTrackBy",r)}}function pL(n,t){1&n&&ne(0,fL,6,17,"div",2),2&n&&N("ngIf",t.isOpen)}function gL(n,t){}const mL=function(n,t,e,i,r){return{events:n,eventClicked:t,isOpen:e,trackByEventId:i,validateDrag:r}};function vL(n,t){if(1&n){const e=Nt();Z(0,"mwl-calendar-month-cell",7),Ie("mwlClick",function(r){const a=ee(e).$implicit;return R(2).dayClicked.emit({day:a,sourceEvent:r})})("mwlKeydownEnter",function(r){const a=ee(e).$implicit;return R(2).dayClicked.emit({day:a,sourceEvent:r})})("highlightDay",function(r){return ee(e),R(2).toggleDayHighlight(r.event,!0)})("unhighlightDay",function(r){return ee(e),R(2).toggleDayHighlight(r.event,!1)})("drop",function(r){const a=ee(e).$implicit;return R(2).eventDropped(a,r.dropData.event,r.dropData.draggedFrom)})("eventClicked",function(r){return ee(e),R(2).eventClicked.emit({event:r.event,sourceEvent:r.sourceEvent})}),_t(1,"calendarA11y"),Y()}if(2&n){const e=t.$implicit,i=R(2);N("ngClass",null==e?null:e.cssClass)("day",e)("openDay",i.openDay)("locale",i.locale)("tooltipPlacement",i.tooltipPlacement)("tooltipAppendToBody",i.tooltipAppendToBody)("tooltipTemplate",i.tooltipTemplate)("tooltipDelay",i.tooltipDelay)("customTemplate",i.cellTemplate)("ngStyle",vs(15,Vg,e.backgroundColor))("clickListenerDisabled",0===i.dayClicked.observers.length),ai("tabindex",Ei(1,12,En(17,Qo),"monthCellTabIndex"))}}function yL(n,t){if(1&n){const e=Nt();Z(0,"div")(1,"div",4),ne(2,vL,2,18,"mwl-calendar-month-cell",5),_t(3,"slice"),Y(),Z(4,"mwl-calendar-open-day-events",6),Ie("eventClicked",function(r){return ee(e),R().eventClicked.emit({event:r.event,sourceEvent:r.sourceEvent})})("drop",function(r){ee(e);const s=R();return s.eventDropped(s.openDay,r.dropData.event,r.dropData.draggedFrom)}),Y()()}if(2&n){const e=t.$implicit,i=R();V(2),N("ngForOf",Ti(3,9,i.view.days,e,e+i.view.totalDaysVisibleInWeek))("ngForTrackBy",i.trackByDate),V(2),N("locale",i.locale)("isOpen",i.openRowIndex===e)("events",null==i.openDay?null:i.openDay.events)("date",null==i.openDay?null:i.openDay.date)("customTemplate",i.openDayEventsTemplate)("eventTitleTemplate",i.eventTitleTemplate)("eventActionsTemplate",i.eventActionsTemplate)}}function _L(n,t){if(1&n){const e=Nt();Z(0,"div",4),Ie("mwlClick",function(r){const a=ee(e).$implicit;return R().dayHeaderClicked.emit({day:a,sourceEvent:r})})("drop",function(r){const a=ee(e).$implicit;return R().eventDropped.emit({event:r.dropData.event,newStart:a.date})})("dragEnter",function(){const s=ee(e).$implicit;return R().dragEnter.emit({date:s.date})}),Z(1,"b"),It(2),_t(3,"calendarDate"),Y(),St(4,"br"),Z(5,"span"),It(6),_t(7,"calendarDate"),Y()()}if(2&n){const e=t.$implicit,i=R().locale;pn("cal-past",e.isPast)("cal-today",e.isToday)("cal-future",e.isFuture)("cal-weekend",e.isWeekend),N("ngClass",e.cssClass),V(2),ps(Ti(3,11,e.date,"weekViewColumnHeader",i)),V(4),ps(Ti(7,15,e.date,"weekViewColumnSubHeader",i))}}function wL(n,t){if(1&n&&(Z(0,"div",2),ne(1,_L,8,19,"div",3),Y()),2&n){const e=t.days,i=t.trackByWeekDayHeaderDate;V(1),N("ngForOf",e)("ngForTrackBy",i)}}function DL(n,t){}const CL=function(n,t,e,i,r,s){return{days:n,locale:t,dayHeaderClicked:e,eventDropped:i,dragEnter:r,trackByWeekDayHeaderDate:s}},SL=function(n,t){return{backgroundColor:n,borderColor:t}};function bL(n,t){if(1&n){const e=Nt();Z(0,"div",2),Ie("mwlClick",function(r){return ee(e).eventClicked.emit({sourceEvent:r})})("mwlKeydownEnter",function(r){return ee(e).eventClicked.emit({sourceEvent:r})}),_t(1,"calendarEventTitle"),_t(2,"calendarA11y"),St(3,"mwl-calendar-event-actions",3),It(4," "),St(5,"mwl-calendar-event-title",4),Y()}if(2&n){const e=t.weekEvent,i=t.tooltipPlacement,r=t.tooltipTemplate,s=t.tooltipAppendToBody,a=t.tooltipDisabled,l=t.tooltipDelay,c=t.daysInWeek,d=R();N("ngStyle",Xt(20,SL,null==e.event.color?null:e.event.color.secondary,null==e.event.color?null:e.event.color.primary))("mwlCalendarTooltip",a?"":Ti(1,13,e.event.title,1===c?"dayTooltip":"weekTooltip",e.tempEvent||e.event))("tooltipPlacement",i)("tooltipEvent",e.tempEvent||e.event)("tooltipTemplate",r)("tooltipAppendToBody",s)("tooltipDelay",l),ai("aria-label",Ei(2,17,Xt(23,W0,e.tempEvent||e.event,d.locale),"eventDescription")),V(3),N("event",e.tempEvent||e.event)("customTemplate",d.eventActionsTemplate),V(2),N("event",e.tempEvent||e.event)("customTemplate",d.eventTitleTemplate)("view",1===c?"day":"week")}}function EL(n,t){}const TL=function(n,t,e,i,r,s,a,l,c){return{weekEvent:n,tooltipPlacement:t,eventClicked:e,tooltipTemplate:i,tooltipAppendToBody:r,tooltipDisabled:s,tooltipDelay:a,column:l,daysInWeek:c}};function ML(n,t){if(1&n&&(Z(0,"div",4),It(1),_t(2,"calendarDate"),Y()),2&n){const e=R(),i=e.segment,r=e.daysInWeek,s=e.locale;V(1),el(" ",Ti(2,1,i.displayDate,1===r?"dayViewHour":"weekViewHour",s)," ")}}function IL(n,t){if(1&n&&(Z(0,"div",2),_t(1,"calendarA11y"),ne(2,ML,3,5,"div",3),Y()),2&n){const e=t.segment,r=t.isTimeLabel,s=t.daysInWeek;pr("height",t.segmentHeight,"px"),pn("cal-hour-start",e.isStart)("cal-after-hour-start",!e.isStart),N("ngClass",e.cssClass),ai("aria-hidden",Ei(1,9,En(12,Qo),1===s?"hideDayHourSegment":"hideWeekHourSegment")),V(2),N("ngIf",r)}}function PL(n,t){}const AL=function(n,t,e,i,r){return{segment:n,locale:t,segmentHeight:e,isTimeLabel:i,daysInWeek:r}};function xL(n,t){1&n&&St(0,"div",3),2&n&&pr("top",R().topPx,"px")}function kL(n,t){1&n&&ne(0,xL,1,2,"div",2),2&n&&N("ngIf",t.isVisible)}function RL(n,t){}const OL=function(n,t,e,i,r,s,a){return{columnDate:n,dayStartHour:t,dayStartMinute:e,dayEndHour:i,dayEndMinute:r,isVisible:s,topPx:a}};function NL(n,t){if(1&n){const e=Nt();Z(0,"div",13),Ie("drop",function(r){const a=ee(e).$implicit;return R(2).eventDropped(r,a.date,!0)})("dragEnter",function(){const s=ee(e).$implicit;return R(2).dateDragEnter(s.date)}),Y()}}const LL=function(){return{left:!0}};function FL(n,t){1&n&&St(0,"div",22),2&n&&N("resizeEdges",En(1,LL))}const BL=function(){return{right:!0}};function HL(n,t){1&n&&St(0,"div",23),2&n&&N("resizeEdges",En(1,BL))}const VL=function(n,t){return{left:n,right:t}},G0=function(n,t){return{event:n,calendarId:t}},jL=function(n){return{x:n}};function UL(n,t){if(1&n){const e=Nt();Z(0,"div",17,18),Ie("resizeStart",function(r){const a=ee(e).$implicit;R();const l=$t(1);return R(2).allDayEventResizeStarted(l,a,r)})("resizing",function(r){const a=ee(e).$implicit,l=R(3);return l.allDayEventResizing(a,r,l.dayColumnWidth)})("resizeEnd",function(){const s=ee(e).$implicit;return R(3).allDayEventResizeEnded(s)})("dragStart",function(){const s=ee(e).$implicit,a=$t(1);R();const l=$t(1);return R(2).dragStarted(l,a,s,!1)})("dragging",function(){return ee(e),R(3).allDayEventDragMove()})("dragEnd",function(r){const a=ee(e).$implicit,l=R(3);return l.dragEnded(a,r,l.dayColumnWidth)}),ne(2,FL,1,2,"div",19),Z(3,"mwl-calendar-week-view-event",20),Ie("eventClicked",function(r){const a=ee(e).$implicit;return R(3).eventClicked.emit({event:a.event,sourceEvent:r.sourceEvent})}),Y(),ne(4,HL,1,2,"div",21),Y()}if(2&n){const e=t.$implicit,i=R(3);pr("width",100/i.days.length*e.span,"%")("margin-left",i.rtl?null:100/i.days.length*e.offset,"%")("margin-right",i.rtl?100/i.days.length*(i.days.length-e.offset)*-1:null,"%"),pn("cal-draggable",e.event.draggable&&0===i.allDayEventResizes.size)("cal-starts-within-week",!e.startsBeforeWeek)("cal-ends-within-week",!e.endsAfterWeek),N("ngClass",null==e.event?null:e.event.cssClass)("resizeSnapGrid",Xt(32,VL,i.dayColumnWidth,i.dayColumnWidth))("validateResize",i.validateResize)("dropData",Xt(35,G0,e.event,i.calendarId))("dragAxis",Xt(38,Al,e.event.draggable&&0===i.allDayEventResizes.size,!i.snapDraggedEvents&&e.event.draggable&&0===i.allDayEventResizes.size))("dragSnapGrid",i.snapDraggedEvents?vs(41,jL,i.dayColumnWidth):En(43,Qo))("validateDrag",i.validateDrag)("touchStartLongPress",En(44,Dd)),V(2),N("ngIf",(null==e.event||null==e.event.resizable?null:e.event.resizable.beforeStart)&&!e.startsBeforeWeek),V(1),N("locale",i.locale)("weekEvent",e)("tooltipPlacement",i.tooltipPlacement)("tooltipTemplate",i.tooltipTemplate)("tooltipAppendToBody",i.tooltipAppendToBody)("tooltipDelay",i.tooltipDelay)("customTemplate",i.eventTemplate)("eventTitleTemplate",i.eventTitleTemplate)("eventActionsTemplate",i.eventActionsTemplate)("daysInWeek",i.daysInWeek),V(1),N("ngIf",(null==e.event||null==e.event.resizable?null:e.event.resizable.afterEnd)&&!e.endsAfterWeek)}}function zL(n,t){if(1&n&&(Z(0,"div",14,15),ne(2,UL,5,45,"div",16),Y()),2&n){const e=t.$implicit,i=R(2);V(2),N("ngForOf",e.row)("ngForTrackBy",i.trackByWeekAllDayEvent)}}function WL(n,t){if(1&n){const e=Nt();Z(0,"div",8,9),Ie("dragEnter",function(){return ee(e),R().dragEnter("allDay")})("dragLeave",function(){return ee(e),R().dragLeave("allDay")}),Z(2,"div",5),St(3,"div",10),ne(4,NL,1,0,"div",11),Y(),ne(5,zL,3,2,"div",12),Y()}if(2&n){const e=R();V(3),N("ngTemplateOutlet",e.allDayEventsLabelTemplate),V(1),N("ngForOf",e.days)("ngForTrackBy",e.trackByWeekDayHeaderDate),V(1),N("ngForOf",e.view.allDayEventRows)("ngForTrackBy",e.trackById)}}function $L(n,t){if(1&n&&St(0,"mwl-calendar-week-view-hour-segment",28),2&n){const e=t.$implicit,i=R(3);pr("height",i.hourSegmentHeight,"px"),N("segment",e)("segmentHeight",i.hourSegmentHeight)("locale",i.locale)("customTemplate",i.hourSegmentTemplate)("isTimeLabel",!0)("daysInWeek",i.daysInWeek)}}function GL(n,t){if(1&n&&(Z(0,"div",26),ne(1,$L,1,8,"mwl-calendar-week-view-hour-segment",27),Y()),2&n){const e=t.$implicit,i=t.odd,r=R(2);pn("cal-hour-odd",i),V(1),N("ngForOf",e.segments)("ngForTrackBy",r.trackByHourSegment)}}function ZL(n,t){if(1&n&&(Z(0,"div",24),ne(1,GL,2,4,"div",25),Y()),2&n){const e=R();V(1),N("ngForOf",e.view.hourColumns[0].hours)("ngForTrackBy",e.trackByHour)}}const qL=function(){return{left:!0,top:!0}};function YL(n,t){1&n&&St(0,"div",22),2&n&&N("resizeEdges",En(1,qL))}function KL(n,t){}function QL(n,t){if(1&n){const e=Nt();Z(0,"mwl-calendar-week-view-event",36),Ie("eventClicked",function(r){ee(e);const s=R().$implicit;return R(2).eventClicked.emit({event:s.event,sourceEvent:r.sourceEvent})}),Y()}if(2&n){const e=R().$implicit,i=R().$implicit,r=R();N("locale",r.locale)("weekEvent",e)("tooltipPlacement",r.tooltipPlacement)("tooltipTemplate",r.tooltipTemplate)("tooltipAppendToBody",r.tooltipAppendToBody)("tooltipDisabled",r.dragActive||r.timeEventResizes.size>0)("tooltipDelay",r.tooltipDelay)("customTemplate",r.eventTemplate)("eventTitleTemplate",r.eventTitleTemplate)("eventActionsTemplate",r.eventActionsTemplate)("column",i)("daysInWeek",r.daysInWeek)}}const XL=function(){return{right:!0,bottom:!0}};function JL(n,t){1&n&&St(0,"div",23),2&n&&N("resizeEdges",En(1,XL))}const eF=function(n,t,e,i){return{left:n,right:t,top:e,bottom:i}};function tF(n,t){if(1&n){const e=Nt();Z(0,"div",33,18),Ie("resizeStart",function(r){const a=ee(e).$implicit,l=R(2),c=$t(6);return l.timeEventResizeStarted(c,a,r)})("resizing",function(r){const a=ee(e).$implicit;return R(2).timeEventResizing(a,r)})("resizeEnd",function(){const s=ee(e).$implicit;return R(2).timeEventResizeEnded(s)})("dragStart",function(){const s=ee(e).$implicit,a=$t(1),l=R(2),c=$t(6);return l.dragStarted(c,a,s,!0)})("dragging",function(r){const a=ee(e).$implicit;return R(2).dragMove(a,r)})("dragEnd",function(r){const a=ee(e).$implicit,l=R(2);return l.dragEnded(a,r,l.dayColumnWidth,!0)}),ne(2,YL,1,2,"div",19),ne(3,KL,0,0,"ng-template",34),ne(4,QL,1,12,"ng-template",null,35,qn),ne(6,JL,1,2,"div",21),Y()}if(2&n){const e=t.$implicit,i=$t(5),r=R(2);pr("top",e.top,"px")("height",e.height,"px")("left",e.left,"%")("width",e.width,"%"),pn("cal-draggable",e.event.draggable&&0===r.timeEventResizes.size)("cal-starts-within-day",!e.startsBeforeDay)("cal-ends-within-day",!e.endsAfterDay),N("ngClass",e.event.cssClass)("hidden",0===e.height&&0===e.width)("resizeSnapGrid",Uw(29,eF,r.dayColumnWidth,r.dayColumnWidth,r.eventSnapSize||r.hourSegmentHeight,r.eventSnapSize||r.hourSegmentHeight))("validateResize",r.validateResize)("allowNegativeResizes",!0)("dropData",Xt(34,G0,e.event,r.calendarId))("dragAxis",Xt(37,Al,e.event.draggable&&0===r.timeEventResizes.size,e.event.draggable&&0===r.timeEventResizes.size))("dragSnapGrid",r.snapDraggedEvents?Xt(40,Al,r.dayColumnWidth,r.eventSnapSize||r.hourSegmentHeight):En(43,Qo))("touchStartLongPress",En(44,Dd))("ghostDragEnabled",!r.snapDraggedEvents)("ghostElementTemplate",i)("validateDrag",r.validateDrag),V(2),N("ngIf",(null==e.event||null==e.event.resizable?null:e.event.resizable.beforeStart)&&!e.startsBeforeDay),V(1),N("ngTemplateOutlet",i),V(3),N("ngIf",(null==e.event||null==e.event.resizable?null:e.event.resizable.afterEnd)&&!e.endsAfterDay)}}function nF(n,t){if(1&n){const e=Nt();Z(0,"mwl-calendar-week-view-hour-segment",38),Ie("mwlClick",function(r){const a=ee(e).$implicit;return R(3).hourSegmentClicked.emit({date:a.date,sourceEvent:r})})("drop",function(r){const a=ee(e).$implicit;return R(3).eventDropped(r,a.date,!1)})("dragEnter",function(){const s=ee(e).$implicit;return R(3).dateDragEnter(s.date)}),Y()}if(2&n){const e=t.$implicit,i=R(3);pr("height",i.hourSegmentHeight,"px"),N("segment",e)("segmentHeight",i.hourSegmentHeight)("locale",i.locale)("customTemplate",i.hourSegmentTemplate)("daysInWeek",i.daysInWeek)("clickListenerDisabled",0===i.hourSegmentClicked.observers.length)("dragOverClass",i.dragActive&&i.snapDraggedEvents?null:"cal-drag-over")("isTimeLabel",1===i.daysInWeek)}}function iF(n,t){if(1&n&&(Z(0,"div",26),ne(1,nF,1,10,"mwl-calendar-week-view-hour-segment",37),Y()),2&n){const e=t.$implicit,i=t.odd,r=R(2);pn("cal-hour-odd",i),V(1),N("ngForOf",e.segments)("ngForTrackBy",r.trackByHourSegment)}}function rF(n,t){if(1&n&&(Z(0,"div",29),St(1,"mwl-calendar-week-view-current-time-marker",30),Z(2,"div",31),ne(3,tF,7,45,"div",32),Y(),ne(4,iF,2,4,"div",25),Y()),2&n){const e=t.$implicit,i=R();V(1),N("columnDate",e.date)("dayStartHour",i.dayStartHour)("dayStartMinute",i.dayStartMinute)("dayEndHour",i.dayEndHour)("dayEndMinute",i.dayEndMinute)("hourSegments",i.hourSegments)("hourDuration",i.hourDuration)("hourSegmentHeight",i.hourSegmentHeight)("customTemplate",i.currentTimeMarkerTemplate),V(2),N("ngForOf",e.events)("ngForTrackBy",i.trackByWeekTimeEvent),V(1),N("ngForOf",e.hours)("ngForTrackBy",i.trackByHour)}}let Ts=(()=>{class n{constructor(e,i,r){this.renderer=e,this.elm=i,this.document=r,this.clickListenerDisabled=!1,this.click=new ue,this.destroy$=new Me}ngOnInit(){this.clickListenerDisabled||this.listen().pipe(Zr(this.destroy$)).subscribe(e=>{e.stopPropagation(),this.click.emit(e)})}ngOnDestroy(){this.destroy$.next()}listen(){return new it(e=>this.renderer.listen(this.elm.nativeElement,"click",i=>{e.next(i)}))}}return n.\u0275fac=function(e){return new(e||n)(O(gr),O(bn),O(gn))},n.\u0275dir=yt({type:n,selectors:[["","mwlClick",""]],inputs:{clickListenerDisabled:"clickListenerDisabled"},outputs:{click:"mwlClick"}}),n})(),Cd=(()=>{class n{constructor(e,i,r){this.host=e,this.ngZone=i,this.renderer=r,this.keydown=new ue,this.keydownListener=null}ngOnInit(){this.ngZone.runOutsideAngular(()=>{this.keydownListener=this.renderer.listen(this.host.nativeElement,"keydown",e=>{(13===e.keyCode||13===e.which||"Enter"===e.key)&&(e.preventDefault(),e.stopPropagation(),this.ngZone.run(()=>{this.keydown.emit(e)}))})})}ngOnDestroy(){null!==this.keydownListener&&(this.keydownListener(),this.keydownListener=null)}}return n.\u0275fac=function(e){return new(e||n)(O(bn),O(bt),O(gr))},n.\u0275dir=yt({type:n,selectors:[["","mwlKeydownEnter",""]],outputs:{keydown:"mwlKeydownEnter"}}),n})(),Sd=(()=>{class n{constructor(e){this.i18nPlural=e}monthCell({day:e,locale:i}){return e.badgeTotal>0?`\n ${qt(e.date,"EEEE MMMM d",i)},\n ${this.i18nPlural.transform(e.badgeTotal,{"=0":"No events","=1":"One event",other:"# events"})},\n click to expand\n `:`${qt(e.date,"EEEE MMMM d",i)}`}openDayEventsLandmark({date:e,locale:i}){return`\n Beginning of expanded view for ${qt(e,"EEEE MMMM dd",i)}\n `}openDayEventsAlert({date:e,locale:i}){return`${qt(e,"EEEE MMMM dd",i)} expanded`}eventDescription({event:e,locale:i}){if(!0===e.allDay)return this.allDayEventDescription({event:e,locale:i});const r=`\n ${qt(e.start,"EEEE MMMM dd",i)},\n ${e.title}, from ${qt(e.start,"hh:mm a",i)}\n `;return e.end?r+` to ${qt(e.end,"hh:mm a",i)}`:r}allDayEventDescription({event:e,locale:i}){const r=`\n ${e.title}, event spans multiple days:\n start time ${qt(e.start,"MMMM dd hh:mm a",i)}\n `;return e.end?r+`, stop time ${qt(e.end,"MMMM d hh:mm a",i)}`:r+", no stop time"}actionButtonLabel({action:e}){return e.a11yLabel}monthCellTabIndex(){return 0}hideMonthCellEvents(){return!0}hideEventTitle(){return!0}hideWeekHourSegment(){return!0}hideDayHourSegment(){return!0}}return n.\u0275fac=function(e){return new(e||n)(U(zp))},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})(),Ms=(()=>{class n{constructor(e,i){this.calendarA11y=e,this.locale=i}transform(e,i){if(e.locale=e.locale||this.locale,typeof this.calendarA11y[i]>"u"){const r=Object.getOwnPropertyNames(Object.getPrototypeOf(Sd.prototype)).filter(s=>"constructor"!==s);throw new Error(`${i} is not a valid a11y method. Can only be one of ${r.join(", ")}`)}return this.calendarA11y[i](e)}}return n.\u0275fac=function(e){return new(e||n)(O(Sd,16),O(ui,16))},n.\u0275pipe=ct({name:"calendarA11y",type:n,pure:!0}),n})(),Z0=(()=>{class n{constructor(){this.trackByActionId=(e,i)=>i.id?i.id:i}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=ot({type:n,selectors:[["mwl-calendar-event-actions"]],inputs:{event:"event",customTemplate:"customTemplate"},decls:3,vars:5,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["class","cal-event-actions",4,"ngIf"],[1,"cal-event-actions"],["class","cal-event-action","href","javascript:;","tabindex","0","role","button",3,"ngClass","innerHtml","mwlClick","mwlKeydownEnter",4,"ngFor","ngForOf","ngForTrackBy"],["href","javascript:;","tabindex","0","role","button",1,"cal-event-action",3,"ngClass","innerHtml","mwlClick","mwlKeydownEnter"]],template:function(e,i){if(1&e&&(ne(0,WN,1,1,"ng-template",null,0,qn),ne(2,$N,0,0,"ng-template",1)),2&e){const r=$t(1);V(2),N("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",Xt(2,GN,i.event,i.trackByActionId))}},directives:[yr,Ur,er,Ts,Cd,hi],pipes:[Ms],encapsulation:2}),n})();class jg{month(t,e){return t.title}monthTooltip(t,e){return t.title}week(t,e){return t.title}weekTooltip(t,e){return t.title}day(t,e){return t.title}dayTooltip(t,e){return t.title}}let Ug=(()=>{class n{constructor(e){this.calendarEventTitle=e}transform(e,i,r){return this.calendarEventTitle[i](r,e)}}return n.\u0275fac=function(e){return new(e||n)(O(jg,16))},n.\u0275pipe=ct({name:"calendarEventTitle",type:n,pure:!0}),n})(),q0=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=ot({type:n,selectors:[["mwl-calendar-event-title"]],inputs:{event:"event",customTemplate:"customTemplate",view:"view"},decls:3,vars:5,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"cal-event-title",3,"innerHTML"]],template:function(e,i){if(1&e&&(ne(0,ZN,3,10,"ng-template",null,0,qn),ne(2,qN,0,0,"ng-template",1)),2&e){const r=$t(1);V(2),N("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",Xt(2,YN,i.event,i.view))}},directives:[hi],pipes:[Ug,Ms],encapsulation:2}),n})(),sF=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=ot({type:n,selectors:[["mwl-calendar-tooltip-window"]],inputs:{contents:"contents",placement:"placement",event:"event",customTemplate:"customTemplate"},decls:3,vars:6,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"cal-tooltip",3,"ngClass"],[1,"cal-tooltip-arrow"],[1,"cal-tooltip-inner",3,"innerHtml"]],template:function(e,i){if(1&e&&(ne(0,KN,3,2,"ng-template",null,0,qn),ne(2,QN,0,0,"ng-template",1)),2&e){const r=$t(1);V(2),N("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",ep(2,XN,i.contents,i.placement,i.event))}},directives:[er,hi],encapsulation:2}),n})(),Y0=(()=>{class n{constructor(e,i,r,s,a,l){this.elementRef=e,this.injector=i,this.renderer=r,this.viewContainerRef=a,this.document=l,this.placement="auto",this.delay=null,this.cancelTooltipDelay$=new Me,this.tooltipFactory=s.resolveComponentFactory(sF)}ngOnChanges(e){this.tooltipRef&&(e.contents||e.customTemplate||e.event)&&(this.tooltipRef.instance.contents=this.contents,this.tooltipRef.instance.customTemplate=this.customTemplate,this.tooltipRef.instance.event=this.event,this.tooltipRef.changeDetectorRef.markForCheck(),this.contents||this.hide())}ngOnDestroy(){this.hide()}onMouseOver(){(null===this.delay?Ss("now"):Eg(this.delay)).pipe(Zr(this.cancelTooltipDelay$)).subscribe(()=>{this.show()})}onMouseOut(){this.hide()}show(){!this.tooltipRef&&this.contents&&(this.tooltipRef=this.viewContainerRef.createComponent(this.tooltipFactory,0,this.injector,[]),this.tooltipRef.instance.contents=this.contents,this.tooltipRef.instance.customTemplate=this.customTemplate,this.tooltipRef.instance.event=this.event,this.appendToBody&&this.document.body.appendChild(this.tooltipRef.location.nativeElement),requestAnimationFrame(()=>{this.positionTooltip()}))}hide(){this.tooltipRef&&(this.viewContainerRef.remove(this.viewContainerRef.indexOf(this.tooltipRef.hostView)),this.tooltipRef=null),this.cancelTooltipDelay$.next()}positionTooltip(e=[]){this.tooltipRef&&(this.tooltipRef.changeDetectorRef.detectChanges(),this.tooltipRef.instance.placement=function VO(n,t,e,i,r){var s=Array.isArray(e)?e:e.split(HO),a=["top","bottom","left","right","top-left","top-right","bottom-left","bottom-right","left-top","left-bottom","right-top","right-bottom"],l=t.classList,c=function(S){var E=S.split("-"),b=E[0],I=E[1],A=[];return r&&(A.push(r+"-"+b),I&&A.push(r+"-"+b+"-"+I),A.forEach(function(H){l.add(H)})),A};r&&a.forEach(function(S){l.remove(r+"-"+S)});var d=s.findIndex(function(S){return"auto"===S});d>=0&&a.forEach(function(S){null==s.find(function(E){return-1!==E.search("^"+S)})&&s.splice(d++,1,S)});var f=t.style;f.position="absolute",f.top="0",f.left="0",f["will-change"]="transform";for(var g,v=!1,y=0,w=s;y{return(n=wr||(wr={})).Month="month",n.Week="week",n.Day="day",wr;var n})();const K0=n=>function JO(n,t){var e=!0;function i(r,s){t(r,s),e=!1}return Array.isArray(n)?(n.forEach(function(r){r.start?r.start instanceof Date||i(Yr.StartPropertyNotDate,r):i(Yr.StartPropertyMissing,r),r.end&&(r.end instanceof Date||i(Yr.EndPropertyNotDate,r),r.start>r.end&&i(Yr.EndsBeforeStart,r))}),e):(t(Yr.NotArray,n),!1)}(n,(...e)=>console.warn("angular-calendar",...e));function Q0(n,t){return Math.floor(n.left)<=Math.ceil(t.left)&&Math.floor(t.left)<=Math.ceil(n.right)&&Math.floor(n.left)<=Math.ceil(t.right)&&Math.floor(t.right)<=Math.ceil(n.right)}function X0(n,t){return Math.round(n/t)*t}const J0=(n,t)=>t.id?t.id:t,zg=(n,t)=>t.date.toISOString(),lF=(n,t)=>t.date.toISOString(),uF=(n,t)=>t.segments[0].date.toISOString(),cF=(n,t)=>t.event.id?t.event.id:t.event,dF=(n,t)=>t.event.id?t.event.id:t.event;function Wg(n,t,e,i,r){const s=X0(n,i||e),a=function fF(n,t,e){return(e||60)/(n*t)}(t,e,r);return s*a}function eS(n,t,e){return t.end?t.end:n.addMinutes(t.start,e)}function xi(n,t,e,i){let r=0,s=0;const a=e<0?n.subDays:n.addDays;let l=t;for(;s<=Math.abs(e);){l=a(t,r);const c=n.getDay(l);-1===i.indexOf(c)&&s++,r++}return l}function $g(n,t,e,i=[],r){let s=r?n.startOfDay(t):n.startOfWeek(t,{weekStartsOn:e});const a=n.endOfWeek(t,{weekStartsOn:e});for(;i.indexOf(n.getDay(s))>-1&&s-1&&l>s;)l=n.subDays(l,1);return{viewStart:s,viewEnd:l}}}function Gg({x:n,y:t}){return Math.abs(n)>1||Math.abs(t)>1}class Dr{}let mF=(()=>{class n{constructor(e){this.dateAdapter=e,this.excludeDays=[],this.viewDateChange=new ue}onClick(){const e={day:this.dateAdapter.subDays,week:this.dateAdapter.subWeeks,month:this.dateAdapter.subMonths}[this.view];this.viewDateChange.emit(this.view===wr.Day?xi(this.dateAdapter,this.viewDate,-1,this.excludeDays):this.view===wr.Week&&this.daysInWeek?xi(this.dateAdapter,this.viewDate,-this.daysInWeek,this.excludeDays):e(this.viewDate,1))}}return n.\u0275fac=function(e){return new(e||n)(O(Dr))},n.\u0275dir=yt({type:n,selectors:[["","mwlCalendarPreviousView",""]],hostBindings:function(e,i){1&e&&Ie("click",function(){return i.onClick()})},inputs:{view:"view",viewDate:"viewDate",excludeDays:"excludeDays",daysInWeek:"daysInWeek"},outputs:{viewDateChange:"viewDateChange"}}),n})(),vF=(()=>{class n{constructor(e){this.dateAdapter=e,this.excludeDays=[],this.viewDateChange=new ue}onClick(){const e={day:this.dateAdapter.addDays,week:this.dateAdapter.addWeeks,month:this.dateAdapter.addMonths}[this.view];this.viewDateChange.emit(this.view===wr.Day?xi(this.dateAdapter,this.viewDate,1,this.excludeDays):this.view===wr.Week&&this.daysInWeek?xi(this.dateAdapter,this.viewDate,this.daysInWeek,this.excludeDays):e(this.viewDate,1))}}return n.\u0275fac=function(e){return new(e||n)(O(Dr))},n.\u0275dir=yt({type:n,selectors:[["","mwlCalendarNextView",""]],hostBindings:function(e,i){1&e&&Ie("click",function(){return i.onClick()})},inputs:{view:"view",viewDate:"viewDate",excludeDays:"excludeDays",daysInWeek:"daysInWeek"},outputs:{viewDateChange:"viewDateChange"}}),n})(),yF=(()=>{class n{constructor(e){this.dateAdapter=e,this.viewDateChange=new ue}onClick(){this.viewDateChange.emit(this.dateAdapter.startOfDay(new Date))}}return n.\u0275fac=function(e){return new(e||n)(O(Dr))},n.\u0275dir=yt({type:n,selectors:[["","mwlCalendarToday",""]],hostBindings:function(e,i){1&e&&Ie("click",function(){return i.onClick()})},inputs:{viewDate:"viewDate"},outputs:{viewDateChange:"viewDateChange"}}),n})(),_F=(()=>{class n{constructor(e){this.dateAdapter=e}monthViewColumnHeader({date:e,locale:i}){return qt(e,"EEEE",i)}monthViewDayNumber({date:e,locale:i}){return qt(e,"d",i)}monthViewTitle({date:e,locale:i}){return qt(e,"LLLL y",i)}weekViewColumnHeader({date:e,locale:i}){return qt(e,"EEEE",i)}weekViewColumnSubHeader({date:e,locale:i}){return qt(e,"MMM d",i)}weekViewTitle({date:e,locale:i,weekStartsOn:r,excludeDays:s,daysInWeek:a}){const{viewStart:l,viewEnd:c}=$g(this.dateAdapter,e,r,s,a),d=(f,g)=>qt(f,"MMM d"+(g?", yyyy":""),i);return`${d(l,l.getUTCFullYear()!==c.getUTCFullYear())} - ${d(c,!0)}`}weekViewHour({date:e,locale:i}){return qt(e,"h a",i)}dayViewHour({date:e,locale:i}){return qt(e,"h a",i)}dayViewTitle({date:e,locale:i}){return qt(e,"EEEE, MMMM d, y",i)}}return n.\u0275fac=function(e){return new(e||n)(U(Dr))},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})(),bd=(()=>{class n extends _F{}return n.\u0275fac=function(){let t;return function(i){return(t||(t=function Km(n){return _i(()=>{const t=n.prototype.constructor,e=t[sn]||Eh(t),i=Object.prototype;let r=Object.getPrototypeOf(n.prototype).constructor;for(;r&&r!==i;){const s=r[sn]||Eh(r);if(s&&s!==e)return s;r=Object.getPrototypeOf(r)}return s=>new s})}(n)))(i||n)}}(),n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})(),xl=(()=>{class n{constructor(e,i){this.dateFormatter=e,this.locale=i}transform(e,i,r=this.locale,s=0,a=[],l){if(typeof this.dateFormatter[i]>"u"){const c=Object.getOwnPropertyNames(Object.getPrototypeOf(bd.prototype)).filter(d=>"constructor"!==d);throw new Error(`${i} is not a valid date formatter. Can only be one of ${c.join(", ")}`)}return this.dateFormatter[i]({date:e,locale:r,weekStartsOn:s,excludeDays:a,daysInWeek:l})}}return n.\u0275fac=function(e){return new(e||n)(O(bd,16),O(ui,16))},n.\u0275pipe=ct({name:"calendarDate",type:n,pure:!0}),n})(),Ed=(()=>{class n{constructor(e){this.dateAdapter=e}getMonthView(e){return function KO(n,t){var e=t.events,i=void 0===e?[]:e,r=t.viewDate,s=t.weekStartsOn,a=t.excluded,l=void 0===a?[]:a,c=t.viewStart,d=void 0===c?n.startOfMonth(r):c,f=t.viewEnd,g=void 0===f?n.endOfMonth(r):f,v=t.weekendDays;i||(i=[]);for(var te,w=n.endOfWeek,D=n.differenceInDays,S=n.startOfDay,E=n.addHours,b=n.endOfDay,I=n.isSameMonth,A=n.getDay,K=(0,n.startOfWeek)(d,{weekStartsOn:s}),he=w(g,{weekStartsOn:s}),le=Tl(n,{events:i,periodStart:K,periodEnd:he}),Q=[],$=function(ke){var Ue;if(te?(Ue=S(E(te,24)),te.getTime()===Ue.getTime()&&(Ue=S(E(te,25))),te=Ue):Ue=te=K,!l.some(function(gi){return A(Ue)===gi})){var Dt=S0(n,{date:Ue,weekendDays:v}),nn=Tl(n,{events:le,periodStart:S(Ue),periodEnd:b(Ue)});Dt.inMonth=I(Ue,r),Dt.events=nn,Dt.badgeTotal=nn.length,Q.push(Dt)}},F=0;F{return(n=nr||(nr={})).Drag="drag",n.Drop="drop",n.Resize="resize",nr;var n})();let kl=(()=>{class n{static forRoot(e,i={}){return{ngModule:n,providers:[e,i.eventTitleFormatter||jg,i.dateFormatter||bd,i.utils||Ed,i.a11y||Sd]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=At({type:n}),n.\u0275inj=Le({providers:[zp],imports:[[Go]]}),n})(),wF=(()=>{class n{constructor(){this.columnHeaderClicked=new ue,this.trackByWeekDayHeaderDate=zg}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=ot({type:n,selectors:[["mwl-calendar-month-view-header"]],inputs:{days:"days",locale:"locale",customTemplate:"customTemplate"},outputs:{columnHeaderClicked:"columnHeaderClicked"},decls:3,vars:6,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["role","row",1,"cal-cell-row","cal-header"],["class","cal-cell","tabindex","0","role","columnheader",3,"cal-past","cal-today","cal-future","cal-weekend","ngClass","click",4,"ngFor","ngForOf","ngForTrackBy"],["tabindex","0","role","columnheader",1,"cal-cell",3,"ngClass","click"]],template:function(e,i){if(1&e&&(ne(0,eL,2,2,"ng-template",null,0,qn),ne(2,tL,0,0,"ng-template",1)),2&e){const r=$t(1);V(2),N("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",ep(2,nL,i.days,i.locale,i.trackByWeekDayHeaderDate))}},directives:[Ur,er,hi],pipes:[xl],encapsulation:2}),n})(),DF=(()=>{class n{constructor(){this.highlightDay=new ue,this.unhighlightDay=new ue,this.eventClicked=new ue,this.trackByEventId=J0,this.validateDrag=Gg}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=ot({type:n,selectors:[["mwl-calendar-month-cell"]],hostAttrs:[1,"cal-cell","cal-day-cell"],hostVars:18,hostBindings:function(e,i){2&e&&pn("cal-past",i.day.isPast)("cal-today",i.day.isToday)("cal-future",i.day.isFuture)("cal-weekend",i.day.isWeekend)("cal-in-month",i.day.inMonth)("cal-out-month",!i.day.inMonth)("cal-has-events",i.day.events.length>0)("cal-open",i.day===i.openDay)("cal-event-highlight",!!i.day.backgroundColor)},inputs:{day:"day",openDay:"openDay",locale:"locale",tooltipPlacement:"tooltipPlacement",tooltipAppendToBody:"tooltipAppendToBody",customTemplate:"customTemplate",tooltipTemplate:"tooltipTemplate",tooltipDelay:"tooltipDelay"},outputs:{highlightDay:"highlightDay",unhighlightDay:"unhighlightDay",eventClicked:"eventClicked"},decls:3,vars:15,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"cal-cell-top"],["aria-hidden","true"],["class","cal-day-badge",4,"ngIf"],[1,"cal-day-number"],["class","cal-events",4,"ngIf"],[1,"cal-day-badge"],[1,"cal-events"],["class","cal-event","mwlDraggable","","dragActiveClass","cal-drag-active",3,"ngStyle","ngClass","mwlCalendarTooltip","tooltipPlacement","tooltipEvent","tooltipTemplate","tooltipAppendToBody","tooltipDelay","cal-draggable","dropData","dragAxis","validateDrag","touchStartLongPress","mouseenter","mouseleave","mwlClick",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDraggable","","dragActiveClass","cal-drag-active",1,"cal-event",3,"ngStyle","ngClass","mwlCalendarTooltip","tooltipPlacement","tooltipEvent","tooltipTemplate","tooltipAppendToBody","tooltipDelay","dropData","dragAxis","validateDrag","touchStartLongPress","mouseenter","mouseleave","mwlClick"]],template:function(e,i){if(1&e&&(ne(0,lL,8,14,"ng-template",null,0,qn),ne(2,uL,0,0,"ng-template",1)),2&e){const r=$t(1);V(2),N("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",np(2,cL,[i.day,i.openDay,i.locale,i.tooltipPlacement,i.highlightDay,i.unhighlightDay,i.eventClicked,i.tooltipTemplate,i.tooltipAppendToBody,i.tooltipDelay,i.trackByEventId,i.validateDrag]))}},directives:[yr,Ur,Bg,vl,er,Y0,Ts,hi],pipes:[Ms,xl,Ug],encapsulation:2}),n})();const CF=function Rk(n,t){return{type:7,name:n,definitions:t,options:{}}}("collapse",[MC("void",Zc({height:0,overflow:"hidden","padding-top":0,"padding-bottom":0})),MC("*",Zc({height:"*",overflow:"hidden","padding-top":"*","padding-bottom":"*"})),IC("* => void",EC("150ms ease-out")),IC("void => *",EC("150ms ease-in"))]);let SF=(()=>{class n{constructor(){this.isOpen=!1,this.eventClicked=new ue,this.trackByEventId=J0,this.validateDrag=Gg}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=ot({type:n,selectors:[["mwl-calendar-open-day-events"]],inputs:{locale:"locale",isOpen:"isOpen",events:"events",customTemplate:"customTemplate",eventTitleTemplate:"eventTitleTemplate",eventActionsTemplate:"eventActionsTemplate",date:"date"},outputs:{eventClicked:"eventClicked"},decls:3,vars:8,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["class","cal-open-day-events","role","application",4,"ngIf"],["role","application",1,"cal-open-day-events"],["tabindex","-1","role","alert"],["tabindex","0","role","landmark"],["mwlDraggable","","dragActiveClass","cal-drag-active",3,"ngClass","cal-draggable","dropData","dragAxis","validateDrag","touchStartLongPress",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDraggable","","dragActiveClass","cal-drag-active",3,"ngClass","dropData","dragAxis","validateDrag","touchStartLongPress"],[1,"cal-event",3,"ngStyle"],["view","month","tabindex","0",3,"event","customTemplate","mwlClick","mwlKeydownEnter"],[3,"event","customTemplate"]],template:function(e,i){if(1&e&&(ne(0,pL,1,1,"ng-template",null,0,qn),ne(2,gL,0,0,"ng-template",1)),2&e){const r=$t(1);V(2),N("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",tp(2,mL,i.events,i.eventClicked,i.isOpen,i.trackByEventId,i.validateDrag))}},directives:[q0,Z0,yr,Ur,Bg,er,vl,Ts,Cd,hi],pipes:[Ms],encapsulation:2,data:{animation:[CF]}}),n})(),bF=(()=>{class n{constructor(e,i,r,s){this.cdr=e,this.utils=i,this.dateAdapter=s,this.events=[],this.excludeDays=[],this.activeDayIsOpen=!1,this.tooltipPlacement="auto",this.tooltipAppendToBody=!0,this.tooltipDelay=null,this.beforeViewRender=new ue,this.dayClicked=new ue,this.eventClicked=new ue,this.columnHeaderClicked=new ue,this.eventTimesChanged=new ue,this.trackByRowOffset=(a,l)=>this.view.days.slice(l,this.view.totalDaysVisibleInWeek).map(c=>c.date.toISOString()).join("-"),this.trackByDate=(a,l)=>l.date.toISOString(),this.locale=r}ngOnInit(){this.refresh&&(this.refreshSubscription=this.refresh.subscribe(()=>{this.refreshAll(),this.cdr.markForCheck()}))}ngOnChanges(e){const i=e.viewDate||e.excludeDays||e.weekendDays,r=e.viewDate||e.events||e.excludeDays||e.weekendDays;i&&this.refreshHeader(),e.events&&K0(this.events),r&&this.refreshBody(),(i||r)&&this.emitBeforeViewRender(),(e.activeDayIsOpen||e.viewDate||e.events||e.excludeDays||e.activeDay)&&this.checkActiveDayIsOpen()}ngOnDestroy(){this.refreshSubscription&&this.refreshSubscription.unsubscribe()}toggleDayHighlight(e,i){this.view.days.forEach(r=>{i&&r.events.indexOf(e)>-1?r.backgroundColor=e.color&&e.color.secondary||"#D1E8FF":delete r.backgroundColor})}eventDropped(e,i,r){if(e!==r){const s=this.dateAdapter.getYear(e.date),a=this.dateAdapter.getMonth(e.date),l=this.dateAdapter.getDate(e.date),c=this.dateAdapter.setDate(this.dateAdapter.setMonth(this.dateAdapter.setYear(i.start,s),a),l);let d;if(i.end){const f=this.dateAdapter.differenceInSeconds(c,i.start);d=this.dateAdapter.addSeconds(i.end,f)}this.eventTimesChanged.emit({event:i,newStart:c,newEnd:d,day:e,type:nr.Drop})}}refreshHeader(){this.columnHeaders=this.utils.getWeekViewHeader({viewDate:this.viewDate,weekStartsOn:this.weekStartsOn,excluded:this.excludeDays,weekendDays:this.weekendDays})}refreshBody(){this.view=this.utils.getMonthView({events:this.events,viewDate:this.viewDate,weekStartsOn:this.weekStartsOn,excluded:this.excludeDays,weekendDays:this.weekendDays})}checkActiveDayIsOpen(){if(!0===this.activeDayIsOpen){const e=this.activeDay||this.viewDate;this.openDay=this.view.days.find(r=>this.dateAdapter.isSameDay(r.date,e));const i=this.view.days.indexOf(this.openDay);this.openRowIndex=Math.floor(i/this.view.totalDaysVisibleInWeek)*this.view.totalDaysVisibleInWeek}else this.openRowIndex=null,this.openDay=null}refreshAll(){this.refreshHeader(),this.refreshBody(),this.emitBeforeViewRender(),this.checkActiveDayIsOpen()}emitBeforeViewRender(){this.columnHeaders&&this.view&&this.beforeViewRender.emit({header:this.columnHeaders,body:this.view.days,period:this.view.period})}}return n.\u0275fac=function(e){return new(e||n)(O(hl),O(Ed),O(ui),O(Dr))},n.\u0275cmp=ot({type:n,selectors:[["mwl-calendar-month-view"]],inputs:{viewDate:"viewDate",events:"events",excludeDays:"excludeDays",activeDayIsOpen:"activeDayIsOpen",activeDay:"activeDay",refresh:"refresh",locale:"locale",tooltipPlacement:"tooltipPlacement",tooltipTemplate:"tooltipTemplate",tooltipAppendToBody:"tooltipAppendToBody",tooltipDelay:"tooltipDelay",weekStartsOn:"weekStartsOn",headerTemplate:"headerTemplate",cellTemplate:"cellTemplate",openDayEventsTemplate:"openDayEventsTemplate",eventTitleTemplate:"eventTitleTemplate",eventActionsTemplate:"eventActionsTemplate",weekendDays:"weekendDays"},outputs:{beforeViewRender:"beforeViewRender",dayClicked:"dayClicked",eventClicked:"eventClicked",columnHeaderClicked:"columnHeaderClicked",eventTimesChanged:"eventTimesChanged"},features:[ri],decls:4,vars:5,consts:[["role","grid",1,"cal-month-view"],[3,"days","locale","customTemplate","columnHeaderClicked"],[1,"cal-days"],[4,"ngFor","ngForOf","ngForTrackBy"],["role","row",1,"cal-cell-row"],["role","gridcell","mwlDroppable","","dragOverClass","cal-drag-over",3,"ngClass","day","openDay","locale","tooltipPlacement","tooltipAppendToBody","tooltipTemplate","tooltipDelay","customTemplate","ngStyle","clickListenerDisabled","mwlClick","mwlKeydownEnter","highlightDay","unhighlightDay","drop","eventClicked",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDroppable","","dragOverClass","cal-drag-over",3,"locale","isOpen","events","date","customTemplate","eventTitleTemplate","eventActionsTemplate","eventClicked","drop"],["role","gridcell","mwlDroppable","","dragOverClass","cal-drag-over",3,"ngClass","day","openDay","locale","tooltipPlacement","tooltipAppendToBody","tooltipTemplate","tooltipDelay","customTemplate","ngStyle","clickListenerDisabled","mwlClick","mwlKeydownEnter","highlightDay","unhighlightDay","drop","eventClicked"]],template:function(e,i){1&e&&(Z(0,"div",0)(1,"mwl-calendar-month-view-header",1),Ie("columnHeaderClicked",function(s){return i.columnHeaderClicked.emit(s)}),Y(),Z(2,"div",2),ne(3,yL,5,13,"div",3),Y()()),2&e&&(V(1),N("days",i.columnHeaders)("locale",i.locale)("customTemplate",i.headerTemplate),V(2),N("ngForOf",i.view.rowOffsets)("ngForTrackBy",i.trackByRowOffset))},directives:[wF,DF,SF,Ur,Hg,er,vl,Ts,Cd],pipes:[Ms,sC],encapsulation:2}),n})(),tS=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=At({type:n}),n.\u0275inj=Le({imports:[[Go,_d,kl],_d]}),n})();class EF{constructor(t,e){this.dragContainerElement=t,this.startPosition=e.getBoundingClientRect()}validateDrag({x:t,y:e,snapDraggedEvents:i,dragAlreadyMoved:r,transform:s}){const a=Gg({x:t,y:e})||r;if(i){const l=Object.assign({},this.startPosition,{left:this.startPosition.left+s.x,right:this.startPosition.right+s.x,top:this.startPosition.top+s.y,bottom:this.startPosition.bottom+s.y});if(a){const c=this.dragContainerElement.getBoundingClientRect(),d=c.top{class n{constructor(){this.dayHeaderClicked=new ue,this.eventDropped=new ue,this.dragEnter=new ue,this.trackByWeekDayHeaderDate=zg}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=ot({type:n,selectors:[["mwl-calendar-week-view-header"]],inputs:{days:"days",locale:"locale",customTemplate:"customTemplate"},outputs:{dayHeaderClicked:"dayHeaderClicked",eventDropped:"eventDropped",dragEnter:"dragEnter"},decls:3,vars:9,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["role","row",1,"cal-day-headers"],["class","cal-header","mwlDroppable","","dragOverClass","cal-drag-over","tabindex","0","role","columnheader",3,"cal-past","cal-today","cal-future","cal-weekend","ngClass","mwlClick","drop","dragEnter",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDroppable","","dragOverClass","cal-drag-over","tabindex","0","role","columnheader",1,"cal-header",3,"ngClass","mwlClick","drop","dragEnter"]],template:function(e,i){if(1&e&&(ne(0,wL,2,2,"ng-template",null,0,qn),ne(2,DL,0,0,"ng-template",1)),2&e){const r=$t(1);V(2),N("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",function zw(n,t,e,i,r,s,a,l,c){const d=_n()+n,f=x(),g=oi(f,d,e,i,r,s);return fs(f,d+4,a,l)||g?Qi(f,d+6,c?t.call(c,e,i,r,s,a,l):t(e,i,r,s,a,l)):Xa(f,d+6)}(2,CL,i.days,i.locale,i.dayHeaderClicked,i.eventDropped,i.dragEnter,i.trackByWeekDayHeaderDate))}},directives:[Ur,Hg,er,Ts,hi],pipes:[xl],encapsulation:2}),n})(),IF=(()=>{class n{constructor(){this.eventClicked=new ue}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=ot({type:n,selectors:[["mwl-calendar-week-view-event"]],inputs:{locale:"locale",weekEvent:"weekEvent",tooltipPlacement:"tooltipPlacement",tooltipAppendToBody:"tooltipAppendToBody",tooltipDisabled:"tooltipDisabled",tooltipDelay:"tooltipDelay",customTemplate:"customTemplate",eventTitleTemplate:"eventTitleTemplate",eventActionsTemplate:"eventActionsTemplate",tooltipTemplate:"tooltipTemplate",column:"column",daysInWeek:"daysInWeek"},outputs:{eventClicked:"eventClicked"},decls:3,vars:12,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["tabindex","0","role","application",1,"cal-event",3,"ngStyle","mwlCalendarTooltip","tooltipPlacement","tooltipEvent","tooltipTemplate","tooltipAppendToBody","tooltipDelay","mwlClick","mwlKeydownEnter"],[3,"event","customTemplate"],[3,"event","customTemplate","view"]],template:function(e,i){if(1&e&&(ne(0,bL,6,26,"ng-template",null,0,qn),ne(2,EL,0,0,"ng-template",1)),2&e){const r=$t(1);V(2),N("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",np(2,TL,[i.weekEvent,i.tooltipPlacement,i.eventClicked,i.tooltipTemplate,i.tooltipAppendToBody,i.tooltipDisabled,i.tooltipDelay,i.column,i.daysInWeek]))}},directives:[Z0,q0,vl,Y0,Ts,Cd,hi],pipes:[Ug,Ms],encapsulation:2}),n})(),PF=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=ot({type:n,selectors:[["mwl-calendar-week-view-hour-segment"]],inputs:{segment:"segment",segmentHeight:"segmentHeight",locale:"locale",isTimeLabel:"isTimeLabel",daysInWeek:"daysInWeek",customTemplate:"customTemplate"},decls:3,vars:8,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"cal-hour-segment",3,"ngClass"],["class","cal-time",4,"ngIf"],[1,"cal-time"]],template:function(e,i){if(1&e&&(ne(0,IL,3,13,"ng-template",null,0,qn),ne(2,PL,0,0,"ng-template",1)),2&e){const r=$t(1);V(2),N("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",tp(2,AL,i.segment,i.locale,i.segmentHeight,i.isTimeLabel,i.daysInWeek))}},directives:[er,yr,hi],pipes:[Ms,xl],encapsulation:2}),n})(),AF=(()=>{class n{constructor(e,i){this.dateAdapter=e,this.zone=i,this.columnDate$=new bl(void 0),this.marker$=this.zone.onStable.pipe(Wr(()=>v0(6e4)),_0(0),function FO(n,t){return Pe(t)?Wr(()=>n,t):Wr(()=>n)}(this.columnDate$),He(r=>{const s=this.dateAdapter.setMinutes(this.dateAdapter.setHours(r,this.dayStartHour),this.dayStartMinute),a=this.dateAdapter.setMinutes(this.dateAdapter.setHours(r,this.dayEndHour),this.dayEndMinute),l=this.hourSegments*this.hourSegmentHeight/(this.hourDuration||60),c=new Date;return{isVisible:this.dateAdapter.isSameDay(r,c)&&c>=s&&c<=a,top:this.dateAdapter.differenceInMinutes(c,s)*l}}))}ngOnChanges(e){e.columnDate&&this.columnDate$.next(e.columnDate.currentValue)}}return n.\u0275fac=function(e){return new(e||n)(O(Dr),O(bt))},n.\u0275cmp=ot({type:n,selectors:[["mwl-calendar-week-view-current-time-marker"]],inputs:{columnDate:"columnDate",dayStartHour:"dayStartHour",dayStartMinute:"dayStartMinute",dayEndHour:"dayEndHour",dayEndMinute:"dayEndMinute",hourSegments:"hourSegments",hourDuration:"hourDuration",hourSegmentHeight:"hourSegmentHeight",customTemplate:"customTemplate"},features:[ri],decls:5,vars:14,consts:[["defaultTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["class","cal-current-time-marker",3,"top",4,"ngIf"],[1,"cal-current-time-marker"]],template:function(e,i){if(1&e&&(ne(0,kL,1,1,"ng-template",null,0,qn),ne(2,RL,0,0,"ng-template",1),_t(3,"async"),_t(4,"async")),2&e){const r=$t(1);let s;V(2),N("ngTemplateOutlet",i.customTemplate||r)("ngTemplateOutletContext",function Ww(n,t,e,i,r,s,a,l,c,d){const f=_n()+n,g=x();let v=oi(g,f,e,i,r,s);return hc(g,f+4,a,l,c)||v?Qi(g,f+7,d?t.call(d,e,i,r,s,a,l,c):t(e,i,r,s,a,l,c)):Xa(g,f+7)}(6,OL,i.columnDate,i.dayStartHour,i.dayStartMinute,i.dayEndHour,i.dayEndMinute,null==(s=Cc(3,2,i.marker$))?null:s.isVisible,null==(s=Cc(4,4,i.marker$))?null:s.top))}},directives:[yr,hi],pipes:[Up],encapsulation:2}),n})(),nS=(()=>{class n{constructor(e,i,r,s,a){this.cdr=e,this.utils=i,this.dateAdapter=s,this.element=a,this.events=[],this.excludeDays=[],this.tooltipPlacement="auto",this.tooltipAppendToBody=!0,this.tooltipDelay=null,this.precision="days",this.snapDraggedEvents=!0,this.hourSegments=2,this.hourSegmentHeight=30,this.minimumEventHeight=30,this.dayStartHour=0,this.dayStartMinute=0,this.dayEndHour=23,this.dayEndMinute=59,this.dayHeaderClicked=new ue,this.eventClicked=new ue,this.eventTimesChanged=new ue,this.beforeViewRender=new ue,this.hourSegmentClicked=new ue,this.allDayEventResizes=new Map,this.timeEventResizes=new Map,this.eventDragEnterByType={allDay:0,time:0},this.dragActive=!1,this.dragAlreadyMoved=!1,this.calendarId=Symbol("angular calendar week view id"),this.rtl=!1,this.trackByWeekDayHeaderDate=zg,this.trackByHourSegment=lF,this.trackByHour=uF,this.trackByWeekAllDayEvent=cF,this.trackByWeekTimeEvent=dF,this.trackByHourColumn=(l,c)=>c.hours[0]?c.hours[0].segments[0].date.toISOString():c,this.trackById=(l,c)=>c.id,this.locale=r}ngOnInit(){this.refresh&&(this.refreshSubscription=this.refresh.subscribe(()=>{this.refreshAll(),this.cdr.markForCheck()}))}ngOnChanges(e){const i=e.viewDate||e.excludeDays||e.weekendDays||e.daysInWeek||e.weekStartsOn,r=e.viewDate||e.dayStartHour||e.dayStartMinute||e.dayEndHour||e.dayEndMinute||e.hourSegments||e.hourDuration||e.weekStartsOn||e.weekendDays||e.excludeDays||e.hourSegmentHeight||e.events||e.daysInWeek||e.minimumEventHeight;i&&this.refreshHeader(),e.events&&K0(this.events),r&&this.refreshBody(),(i||r)&&this.emitBeforeViewRender()}ngOnDestroy(){this.refreshSubscription&&this.refreshSubscription.unsubscribe()}ngAfterViewInit(){this.rtl=typeof window<"u"&&"rtl"===getComputedStyle(this.element.nativeElement).direction,this.cdr.detectChanges()}timeEventResizeStarted(e,i,r){this.timeEventResizes.set(i.event,r),this.resizeStarted(e,i)}timeEventResizing(e,i){this.timeEventResizes.set(e.event,i);const r=new Map,s=[...this.events];this.timeEventResizes.forEach((a,l)=>{const c=this.getTimeEventResizedDates(l,a),d=Object.assign(Object.assign({},l),c);r.set(d,l);const f=s.indexOf(l);s[f]=d}),this.restoreOriginalEvents(s,r,!0)}timeEventResizeEnded(e){this.view=this.getWeekView(this.events);const i=this.timeEventResizes.get(e.event);if(i){this.timeEventResizes.delete(e.event);const r=this.getTimeEventResizedDates(e.event,i);this.eventTimesChanged.emit({newStart:r.start,newEnd:r.end,event:e.event,type:nr.Resize})}}allDayEventResizeStarted(e,i,r){this.allDayEventResizes.set(i,{originalOffset:i.offset,originalSpan:i.span,edge:typeof r.edges.left<"u"?"left":"right"}),this.resizeStarted(e,i,this.getDayColumnWidth(e))}allDayEventResizing(e,i,r){const s=this.allDayEventResizes.get(e),a=this.rtl?-1:1;if(typeof i.edges.left<"u"){const l=Math.round(+i.edges.left/r)*a;e.offset=s.originalOffset+l,e.span=s.originalSpan-l}else if(typeof i.edges.right<"u"){const l=Math.round(+i.edges.right/r)*a;e.span=s.originalSpan+l}}allDayEventResizeEnded(e){const i=this.allDayEventResizes.get(e);if(i){const r="left"===i.edge;let s;s=r?e.offset-i.originalOffset:e.span-i.originalSpan,e.offset=i.originalOffset,e.span=i.originalSpan;const a=this.getAllDayEventResizedDates(e.event,s,r);this.eventTimesChanged.emit({newStart:a.start,newEnd:a.end,event:e.event,type:nr.Resize}),this.allDayEventResizes.delete(e)}}getDayColumnWidth(e){return Math.floor(e.offsetWidth/this.days.length)}dateDragEnter(e){this.lastDragEnterDate=e}eventDropped(e,i,r){(function gF(n,t,e,i){return n.dropData&&n.dropData.event&&(n.dropData.calendarId!==i||n.dropData.event.allDay&&!e||!n.dropData.event.allDay&&e)})(e,0,r,this.calendarId)&&this.lastDragEnterDate.getTime()===i.getTime()&&(!this.snapDraggedEvents||e.dropData.event!==this.lastDraggedEvent)&&this.eventTimesChanged.emit({type:nr.Drop,event:e.dropData.event,newStart:i,allDay:r}),this.lastDraggedEvent=null}dragEnter(e){this.eventDragEnterByType[e]++}dragLeave(e){this.eventDragEnterByType[e]--}dragStarted(e,i,r,s){this.dayColumnWidth=this.getDayColumnWidth(e);const a=new EF(e,i);this.validateDrag=({x:l,y:c,transform:d})=>{const f=0===this.allDayEventResizes.size&&0===this.timeEventResizes.size&&a.validateDrag({x:l,y:c,snapDraggedEvents:this.snapDraggedEvents,dragAlreadyMoved:this.dragAlreadyMoved,transform:d});if(f&&this.validateEventTimesChanged){const g=this.getDragMovedEventTimes(r,{x:l,y:c},this.dayColumnWidth,s);return this.validateEventTimesChanged({type:nr.Drag,event:r.event,newStart:g.start,newEnd:g.end})}return f},this.dragActive=!0,this.dragAlreadyMoved=!1,this.lastDraggedEvent=null,this.eventDragEnterByType={allDay:0,time:0},!this.snapDraggedEvents&&s&&this.view.hourColumns.forEach(l=>{const c=l.events.find(d=>d.event===r.event&&d!==r);c&&(c.width=0,c.height=0)}),this.cdr.markForCheck()}dragMove(e,i){const r=this.getDragMovedEventTimes(e,i,this.dayColumnWidth,!0),s=e.event,a=Object.assign(Object.assign({},s),r),l=this.events.map(c=>c===s?a:c);this.restoreOriginalEvents(l,new Map([[a,s]]),this.snapDraggedEvents),this.dragAlreadyMoved=!0}allDayEventDragMove(){this.dragAlreadyMoved=!0}dragEnded(e,i,r,s=!1){this.view=this.getWeekView(this.events),this.dragActive=!1,this.validateDrag=null;const{start:a,end:l}=this.getDragMovedEventTimes(e,i,r,s);(this.snapDraggedEvents||this.eventDragEnterByType[s?"time":"allDay"]>0)&&function pF(n,t,e){const i=t||n;return e.start<=n&&n<=e.end||e.start<=i&&i<=e.end}(a,l,this.view.period)&&(this.lastDraggedEvent=e.event,this.eventTimesChanged.emit({newStart:a,newEnd:l,event:e.event,type:nr.Drag,allDay:!s}))}refreshHeader(){this.days=this.utils.getWeekViewHeader(Object.assign({viewDate:this.viewDate,weekStartsOn:this.weekStartsOn,excluded:this.excludeDays,weekendDays:this.weekendDays},$g(this.dateAdapter,this.viewDate,this.weekStartsOn,this.excludeDays,this.daysInWeek)))}refreshBody(){this.view=this.getWeekView(this.events)}refreshAll(){this.refreshHeader(),this.refreshBody(),this.emitBeforeViewRender()}emitBeforeViewRender(){this.days&&this.view&&this.beforeViewRender.emit(Object.assign({header:this.days},this.view))}getWeekView(e){return this.utils.getWeekView(Object.assign({events:e,viewDate:this.viewDate,weekStartsOn:this.weekStartsOn,excluded:this.excludeDays,precision:this.precision,absolutePositionedEvents:!0,hourSegments:this.hourSegments,hourDuration:this.hourDuration,dayStart:{hour:this.dayStartHour,minute:this.dayStartMinute},dayEnd:{hour:this.dayEndHour,minute:this.dayEndMinute},segmentHeight:this.hourSegmentHeight,weekendDays:this.weekendDays,minimumEventHeight:this.minimumEventHeight},$g(this.dateAdapter,this.viewDate,this.weekStartsOn,this.excludeDays,this.daysInWeek)))}getDragMovedEventTimes(e,i,r,s){const a=X0(i.x,r)/r*(this.rtl?-1:1),l=s?Wg(i.y,this.hourSegments,this.hourSegmentHeight,this.eventSnapSize,this.hourDuration):0,c=this.dateAdapter.addMinutes(xi(this.dateAdapter,e.event.start,a,this.excludeDays),l);let d;return e.event.end&&(d=this.dateAdapter.addMinutes(xi(this.dateAdapter,e.event.end,a,this.excludeDays),l)),{start:c,end:d}}restoreOriginalEvents(e,i,r=!0){const s=this.view;r&&(this.view=this.getWeekView(e));const a=e.filter(l=>i.has(l));this.view.hourColumns.forEach((l,c)=>{s.hourColumns[c].hours.forEach((d,f)=>{d.segments.forEach((g,v)=>{l.hours[f].segments[v].cssClass=g.cssClass})}),a.forEach(d=>{const f=i.get(d),g=l.events.find(v=>v.event===(r?d:f));g?(g.event=f,g.tempEvent=d,r||(g.height=0,g.width=0)):l.events.push({event:f,left:0,top:0,height:0,width:0,startsBeforeDay:!1,endsAfterDay:!1,tempEvent:d})})}),i.clear()}getTimeEventResizedDates(e,i){const r={start:e.start,end:eS(this.dateAdapter,e,this.minimumEventHeight)},a=function Od(n,t){var e={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&t.indexOf(i)<0&&(e[i]=n[i]);if(null!=n&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(n);rl.end?f:l.end}if(typeof i.edges.top<"u"){const d=Wg(i.edges.top,this.hourSegments,this.hourSegmentHeight,this.eventSnapSize,this.hourDuration),f=this.dateAdapter.addMinutes(r.start,d);r.start=fl.end?f:l.end}return r}resizeStarted(e,i,r){this.dayColumnWidth=this.getDayColumnWidth(e);const s=new TF(e,r,this.rtl);this.validateResize=({rectangle:a,edges:l})=>{const c=s.validateResize({rectangle:Object.assign({},a),edges:l});if(c&&this.validateEventTimesChanged){let d;if(r){const f=this.rtl?-1:1;if(typeof l.left<"u"){const g=Math.round(+l.left/r)*f;d=this.getAllDayEventResizedDates(i.event,g,!this.rtl)}else{const g=Math.round(+l.right/r)*f;d=this.getAllDayEventResizedDates(i.event,g,this.rtl)}}else d=this.getTimeEventResizedDates(i.event,{rectangle:a,edges:l});return this.validateEventTimesChanged({type:nr.Resize,event:i.event,newStart:d.start,newEnd:d.end})}return c},this.cdr.markForCheck()}getAllDayEventResizedDates(e,i,r){let s=e.start,a=e.end||e.start;return r?s=xi(this.dateAdapter,s,i,this.excludeDays):a=xi(this.dateAdapter,a,i,this.excludeDays),{start:s,end:a}}}return n.\u0275fac=function(e){return new(e||n)(O(hl),O(Ed),O(ui),O(Dr),O(bn))},n.\u0275cmp=ot({type:n,selectors:[["mwl-calendar-week-view"]],inputs:{viewDate:"viewDate",events:"events",excludeDays:"excludeDays",refresh:"refresh",locale:"locale",tooltipPlacement:"tooltipPlacement",tooltipTemplate:"tooltipTemplate",tooltipAppendToBody:"tooltipAppendToBody",tooltipDelay:"tooltipDelay",weekStartsOn:"weekStartsOn",headerTemplate:"headerTemplate",eventTemplate:"eventTemplate",eventTitleTemplate:"eventTitleTemplate",eventActionsTemplate:"eventActionsTemplate",precision:"precision",weekendDays:"weekendDays",snapDraggedEvents:"snapDraggedEvents",hourSegments:"hourSegments",hourDuration:"hourDuration",hourSegmentHeight:"hourSegmentHeight",minimumEventHeight:"minimumEventHeight",dayStartHour:"dayStartHour",dayStartMinute:"dayStartMinute",dayEndHour:"dayEndHour",dayEndMinute:"dayEndMinute",hourSegmentTemplate:"hourSegmentTemplate",eventSnapSize:"eventSnapSize",allDayEventsLabelTemplate:"allDayEventsLabelTemplate",daysInWeek:"daysInWeek",currentTimeMarkerTemplate:"currentTimeMarkerTemplate",validateEventTimesChanged:"validateEventTimesChanged"},outputs:{dayHeaderClicked:"dayHeaderClicked",eventClicked:"eventClicked",eventTimesChanged:"eventTimesChanged",beforeViewRender:"beforeViewRender",hourSegmentClicked:"hourSegmentClicked"},features:[ri],decls:8,vars:9,consts:[["role","grid",1,"cal-week-view"],[3,"days","locale","customTemplate","dayHeaderClicked","eventDropped","dragEnter"],["class","cal-all-day-events","mwlDroppable","",3,"dragEnter","dragLeave",4,"ngIf"],["mwlDroppable","",1,"cal-time-events",3,"dragEnter","dragLeave"],["class","cal-time-label-column",4,"ngIf"],[1,"cal-day-columns"],["dayColumns",""],["class","cal-day-column",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDroppable","",1,"cal-all-day-events",3,"dragEnter","dragLeave"],["allDayEventsContainer",""],[1,"cal-time-label-column",3,"ngTemplateOutlet"],["class","cal-day-column","mwlDroppable","","dragOverClass","cal-drag-over",3,"drop","dragEnter",4,"ngFor","ngForOf","ngForTrackBy"],["class","cal-events-row",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDroppable","","dragOverClass","cal-drag-over",1,"cal-day-column",3,"drop","dragEnter"],[1,"cal-events-row"],["eventRowContainer",""],["class","cal-event-container","mwlResizable","","mwlDraggable","","dragActiveClass","cal-drag-active",3,"cal-draggable","cal-starts-within-week","cal-ends-within-week","ngClass","width","marginLeft","marginRight","resizeSnapGrid","validateResize","dropData","dragAxis","dragSnapGrid","validateDrag","touchStartLongPress","resizeStart","resizing","resizeEnd","dragStart","dragging","dragEnd",4,"ngFor","ngForOf","ngForTrackBy"],["mwlResizable","","mwlDraggable","","dragActiveClass","cal-drag-active",1,"cal-event-container",3,"ngClass","resizeSnapGrid","validateResize","dropData","dragAxis","dragSnapGrid","validateDrag","touchStartLongPress","resizeStart","resizing","resizeEnd","dragStart","dragging","dragEnd"],["event",""],["class","cal-resize-handle cal-resize-handle-before-start","mwlResizeHandle","",3,"resizeEdges",4,"ngIf"],[3,"locale","weekEvent","tooltipPlacement","tooltipTemplate","tooltipAppendToBody","tooltipDelay","customTemplate","eventTitleTemplate","eventActionsTemplate","daysInWeek","eventClicked"],["class","cal-resize-handle cal-resize-handle-after-end","mwlResizeHandle","",3,"resizeEdges",4,"ngIf"],["mwlResizeHandle","",1,"cal-resize-handle","cal-resize-handle-before-start",3,"resizeEdges"],["mwlResizeHandle","",1,"cal-resize-handle","cal-resize-handle-after-end",3,"resizeEdges"],[1,"cal-time-label-column"],["class","cal-hour",3,"cal-hour-odd",4,"ngFor","ngForOf","ngForTrackBy"],[1,"cal-hour"],[3,"height","segment","segmentHeight","locale","customTemplate","isTimeLabel","daysInWeek",4,"ngFor","ngForOf","ngForTrackBy"],[3,"segment","segmentHeight","locale","customTemplate","isTimeLabel","daysInWeek"],[1,"cal-day-column"],[3,"columnDate","dayStartHour","dayStartMinute","dayEndHour","dayEndMinute","hourSegments","hourDuration","hourSegmentHeight","customTemplate"],[1,"cal-events-container"],["class","cal-event-container","mwlResizable","","mwlDraggable","","dragActiveClass","cal-drag-active",3,"cal-draggable","cal-starts-within-day","cal-ends-within-day","ngClass","hidden","top","height","left","width","resizeSnapGrid","validateResize","allowNegativeResizes","dropData","dragAxis","dragSnapGrid","touchStartLongPress","ghostDragEnabled","ghostElementTemplate","validateDrag","resizeStart","resizing","resizeEnd","dragStart","dragging","dragEnd",4,"ngFor","ngForOf","ngForTrackBy"],["mwlResizable","","mwlDraggable","","dragActiveClass","cal-drag-active",1,"cal-event-container",3,"ngClass","hidden","resizeSnapGrid","validateResize","allowNegativeResizes","dropData","dragAxis","dragSnapGrid","touchStartLongPress","ghostDragEnabled","ghostElementTemplate","validateDrag","resizeStart","resizing","resizeEnd","dragStart","dragging","dragEnd"],[3,"ngTemplateOutlet"],["weekEventTemplate",""],[3,"locale","weekEvent","tooltipPlacement","tooltipTemplate","tooltipAppendToBody","tooltipDisabled","tooltipDelay","customTemplate","eventTitleTemplate","eventActionsTemplate","column","daysInWeek","eventClicked"],["mwlDroppable","","dragActiveClass","cal-drag-active",3,"height","segment","segmentHeight","locale","customTemplate","daysInWeek","clickListenerDisabled","dragOverClass","isTimeLabel","mwlClick","drop","dragEnter",4,"ngFor","ngForOf","ngForTrackBy"],["mwlDroppable","","dragActiveClass","cal-drag-active",3,"segment","segmentHeight","locale","customTemplate","daysInWeek","clickListenerDisabled","dragOverClass","isTimeLabel","mwlClick","drop","dragEnter"]],template:function(e,i){1&e&&(Z(0,"div",0)(1,"mwl-calendar-week-view-header",1),Ie("dayHeaderClicked",function(s){return i.dayHeaderClicked.emit(s)})("eventDropped",function(s){return i.eventDropped({dropData:s},s.newStart,!0)})("dragEnter",function(s){return i.dateDragEnter(s.date)}),Y(),ne(2,WL,6,5,"div",2),Z(3,"div",3),Ie("dragEnter",function(){return i.dragEnter("time")})("dragLeave",function(){return i.dragLeave("time")}),ne(4,ZL,2,2,"div",4),Z(5,"div",5,6),ne(7,rF,5,13,"div",7),Y()()()),2&e&&(V(1),N("days",i.days)("locale",i.locale)("customTemplate",i.headerTemplate),V(1),N("ngIf",i.view.allDayEventRows.length>0),V(2),N("ngIf",i.view.hourColumns.length>0&&1!==i.daysInWeek),V(1),pn("cal-resize-active",i.timeEventResizes.size>0),V(2),N("ngForOf",i.view.hourColumns)("ngForTrackBy",i.trackByHourColumn))},directives:[MF,IF,PF,AF,yr,Hg,hi,Ur,U0,Bg,er,VN,Ts],encapsulation:2}),n})(),Zg=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=At({type:n}),n.\u0275inj=Le({imports:[[Go,z0,_d,kl],z0,_d]}),n})(),xF=(()=>{class n{constructor(){this.events=[],this.hourSegments=2,this.hourSegmentHeight=30,this.minimumEventHeight=30,this.dayStartHour=0,this.dayStartMinute=0,this.dayEndHour=23,this.dayEndMinute=59,this.tooltipPlacement="auto",this.tooltipAppendToBody=!0,this.tooltipDelay=null,this.snapDraggedEvents=!0,this.eventClicked=new ue,this.hourSegmentClicked=new ue,this.eventTimesChanged=new ue,this.beforeViewRender=new ue}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=ot({type:n,selectors:[["mwl-calendar-day-view"]],inputs:{viewDate:"viewDate",events:"events",hourSegments:"hourSegments",hourSegmentHeight:"hourSegmentHeight",hourDuration:"hourDuration",minimumEventHeight:"minimumEventHeight",dayStartHour:"dayStartHour",dayStartMinute:"dayStartMinute",dayEndHour:"dayEndHour",dayEndMinute:"dayEndMinute",refresh:"refresh",locale:"locale",eventSnapSize:"eventSnapSize",tooltipPlacement:"tooltipPlacement",tooltipTemplate:"tooltipTemplate",tooltipAppendToBody:"tooltipAppendToBody",tooltipDelay:"tooltipDelay",hourSegmentTemplate:"hourSegmentTemplate",eventTemplate:"eventTemplate",eventTitleTemplate:"eventTitleTemplate",eventActionsTemplate:"eventActionsTemplate",snapDraggedEvents:"snapDraggedEvents",allDayEventsLabelTemplate:"allDayEventsLabelTemplate",currentTimeMarkerTemplate:"currentTimeMarkerTemplate",validateEventTimesChanged:"validateEventTimesChanged"},outputs:{eventClicked:"eventClicked",hourSegmentClicked:"hourSegmentClicked",eventTimesChanged:"eventTimesChanged",beforeViewRender:"beforeViewRender"},decls:1,vars:26,consts:[[1,"cal-day-view",3,"daysInWeek","viewDate","events","hourSegments","hourDuration","hourSegmentHeight","minimumEventHeight","dayStartHour","dayStartMinute","dayEndHour","dayEndMinute","refresh","locale","eventSnapSize","tooltipPlacement","tooltipTemplate","tooltipAppendToBody","tooltipDelay","hourSegmentTemplate","eventTemplate","eventTitleTemplate","eventActionsTemplate","snapDraggedEvents","allDayEventsLabelTemplate","currentTimeMarkerTemplate","validateEventTimesChanged","eventClicked","hourSegmentClicked","eventTimesChanged","beforeViewRender"]],template:function(e,i){1&e&&(Z(0,"mwl-calendar-week-view",0),Ie("eventClicked",function(s){return i.eventClicked.emit(s)})("hourSegmentClicked",function(s){return i.hourSegmentClicked.emit(s)})("eventTimesChanged",function(s){return i.eventTimesChanged.emit(s)})("beforeViewRender",function(s){return i.beforeViewRender.emit(s)}),Y()),2&e&&N("daysInWeek",1)("viewDate",i.viewDate)("events",i.events)("hourSegments",i.hourSegments)("hourDuration",i.hourDuration)("hourSegmentHeight",i.hourSegmentHeight)("minimumEventHeight",i.minimumEventHeight)("dayStartHour",i.dayStartHour)("dayStartMinute",i.dayStartMinute)("dayEndHour",i.dayEndHour)("dayEndMinute",i.dayEndMinute)("refresh",i.refresh)("locale",i.locale)("eventSnapSize",i.eventSnapSize)("tooltipPlacement",i.tooltipPlacement)("tooltipTemplate",i.tooltipTemplate)("tooltipAppendToBody",i.tooltipAppendToBody)("tooltipDelay",i.tooltipDelay)("hourSegmentTemplate",i.hourSegmentTemplate)("eventTemplate",i.eventTemplate)("eventTitleTemplate",i.eventTitleTemplate)("eventActionsTemplate",i.eventActionsTemplate)("snapDraggedEvents",i.snapDraggedEvents)("allDayEventsLabelTemplate",i.allDayEventsLabelTemplate)("currentTimeMarkerTemplate",i.currentTimeMarkerTemplate)("validateEventTimesChanged",i.validateEventTimesChanged)},directives:[nS],encapsulation:2}),n})(),iS=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=At({type:n}),n.\u0275inj=Le({imports:[[Go,kl,Zg]]}),n})(),kF=(()=>{class n{static forRoot(e,i={}){return{ngModule:n,providers:[e,i.eventTitleFormatter||jg,i.dateFormatter||bd,i.utils||Ed,i.a11y||Sd]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=At({type:n}),n.\u0275inj=Le({imports:[[kl,tS,Zg,iS],kl,tS,Zg,iS]}),n})();function on(n){if(null===n||!0===n||!1===n)return NaN;var t=Number(n);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function ye(n,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function Ge(n){ye(1,arguments);var t=Object.prototype.toString.call(n);return n instanceof Date||"object"==typeof n&&"[object Date]"===t?new Date(n.getTime()):"number"==typeof n||"[object Number]"===t?new Date(n):(("string"==typeof n||"[object String]"===t)&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}function qg(n,t){ye(2,arguments);var e=Ge(n),i=on(t);return isNaN(i)?new Date(NaN):(i&&e.setDate(e.getDate()+i),e)}function Yg(n,t){ye(2,arguments);var e=Ge(n).getTime(),i=on(t);return new Date(e+i)}function OF(n,t){ye(2,arguments);var e=on(t);return Yg(n,36e5*e)}function LF(n,t){ye(2,arguments);var e=on(t);return Yg(n,6e4*e)}function FF(n,t){ye(2,arguments);var e=on(t);return Yg(n,1e3*e)}function rS(n){var t=new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds()));return t.setUTCFullYear(n.getFullYear()),n.getTime()-t.getTime()}function Rl(n){ye(1,arguments);var t=Ge(n);return t.setHours(0,0,0,0),t}function HF(n,t){ye(2,arguments);var e=Rl(n),i=Rl(t),r=e.getTime()-rS(e),s=i.getTime()-rS(i);return Math.round((r-s)/864e5)}function sS(n,t){var e=n.getFullYear()-t.getFullYear()||n.getMonth()-t.getMonth()||n.getDate()-t.getDate()||n.getHours()-t.getHours()||n.getMinutes()-t.getMinutes()||n.getSeconds()-t.getSeconds()||n.getMilliseconds()-t.getMilliseconds();return e<0?-1:e>0?1:e}function VF(n,t){ye(2,arguments);var e=Ge(n),i=Ge(t),r=sS(e,i),s=Math.abs(HF(e,i));e.setDate(e.getDate()-r*s);var a=Number(sS(e,i)===-r),l=r*(s-a);return 0===l?0:l}function aS(n,t){return ye(2,arguments),Ge(n).getTime()-Ge(t).getTime()}Math.pow(10,8);var lS={ceil:Math.ceil,round:Math.round,floor:Math.floor,trunc:function(n){return n<0?Math.ceil(n):Math.floor(n)}};function uS(n){return n?lS[n]:lS.trunc}function qF(n,t,e){ye(2,arguments);var i=aS(n,t)/6e4;return uS(null==e?void 0:e.roundingMethod)(i)}function YF(n,t,e){ye(2,arguments);var i=aS(n,t)/1e3;return uS(null==e?void 0:e.roundingMethod)(i)}function KF(n){ye(1,arguments);var t=Ge(n);return t.setHours(23,59,59,999),t}function QF(n){ye(1,arguments);var t=Ge(n),e=t.getMonth();return t.setFullYear(t.getFullYear(),e+1,0),t.setHours(23,59,59,999),t}var cS={};function dS(){return cS}function XF(n,t){var e,i,r,s,a,l,c,d;ye(1,arguments);var f=dS(),g=on(null!==(e=null!==(i=null!==(r=null!==(s=null==t?void 0:t.weekStartsOn)&&void 0!==s?s:null==t||null===(a=t.locale)||void 0===a||null===(l=a.options)||void 0===l?void 0:l.weekStartsOn)&&void 0!==r?r:f.weekStartsOn)&&void 0!==i?i:null===(c=f.locale)||void 0===c||null===(d=c.options)||void 0===d?void 0:d.weekStartsOn)&&void 0!==e?e:0);if(!(g>=0&&g<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var v=Ge(n),y=v.getDay(),w=6+(y=0&&g<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var v=Ge(n),y=v.getDay(),w=(y=a?s:(e.setFullYear(s.getFullYear(),s.getMonth(),r),e)}function d2(n,t){ye(2,arguments);var e=on(t);return qg(n,-e)}function h2(n,t){ye(2,arguments);var e=on(t);return mS(n,-e)}function f2(n,t){ye(2,arguments);var e=on(t);return vS(n,-e)}function Td(n){return ye(1,arguments),gS(n,{weekStartsOn:1})}function p2(n){ye(1,arguments);var t=Ge(n),e=t.getFullYear(),i=new Date(0);i.setFullYear(e+1,0,4),i.setHours(0,0,0,0);var r=Td(i),s=new Date(0);s.setFullYear(e,0,4),s.setHours(0,0,0,0);var a=Td(s);return t.getTime()>=r.getTime()?e+1:t.getTime()>=a.getTime()?e:e-1}function g2(n){ye(1,arguments);var t=p2(n),e=new Date(0);e.setFullYear(t,0,4),e.setHours(0,0,0,0);var i=Td(e);return i}var m2=6048e5;function v2(n){ye(1,arguments);var t=Ge(n),e=Td(t).getTime()-g2(t).getTime();return Math.round(e/m2)+1}function y2(n,t){ye(2,arguments);var e=Ge(n),i=on(t);return e.setDate(i),e}function _2(n){ye(1,arguments);var t=Ge(n),e=t.getFullYear(),i=t.getMonth(),r=new Date(0);return r.setFullYear(e,i+1,0),r.setHours(0,0,0,0),r.getDate()}function w2(n,t){ye(2,arguments);var e=Ge(n),i=on(t),r=e.getFullYear(),s=e.getDate(),a=new Date(0);a.setFullYear(r,i,15),a.setHours(0,0,0,0);var l=_2(a);return e.setMonth(i,Math.min(s,l)),e}function D2(n,t){ye(2,arguments);var e=Ge(n),i=on(t);return isNaN(e.getTime())?new Date(NaN):(e.setFullYear(i),e)}function C2(n){ye(1,arguments);var t=Ge(n),e=t.getDate();return e}function S2(n){return ye(1,arguments),Ge(n).getFullYear()}function b2(){return Mr(Mr({},function c2(){return{addDays:qg,addHours:OF,addMinutes:LF,addSeconds:FF,differenceInDays:VF,differenceInMinutes:qF,differenceInSeconds:YF,endOfDay:KF,endOfMonth:QF,endOfWeek:XF,getDay:JF,getMonth:e2,isSameDay:hS,isSameMonth:fS,isSameSecond:t2,max:n2,setHours:i2,setMinutes:r2,startOfDay:Rl,startOfMinute:s2,startOfMonth:o2,startOfWeek:gS,getHours:a2,getMinutes:l2,getTimezoneOffset:u2}}()),{addWeeks:mS,addMonths:vS,subDays:d2,subWeeks:h2,subMonths:f2,getISOWeek:v2,setDate:y2,setMonth:w2,setYear:D2,getDate:C2,getYear:S2})}class yS{}class _S{}class ir{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit="string"==typeof t?()=>{this.headers=new Map,t.split("\n").forEach(e=>{const i=e.indexOf(":");if(i>0){const r=e.slice(0,i),s=r.toLowerCase(),a=e.slice(i+1).trim();this.maybeSetNormalizedName(r,s),this.headers.has(s)?this.headers.get(s).push(a):this.headers.set(s,[a])}})}:()=>{this.headers=new Map,Object.keys(t).forEach(e=>{let i=t[e];const r=e.toLowerCase();"string"==typeof i&&(i=[i]),i.length>0&&(this.headers.set(r,i),this.maybeSetNormalizedName(e,r))})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const e=this.headers.get(t.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,e){return this.clone({name:t,value:e,op:"a"})}set(t,e){return this.clone({name:t,value:e,op:"s"})}delete(t,e){return this.clone({name:t,value:e,op:"d"})}maybeSetNormalizedName(t,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,t)}init(){this.lazyInit&&(this.lazyInit instanceof ir?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(e=>{this.headers.set(e,t.headers.get(e)),this.normalizedNames.set(e,t.normalizedNames.get(e))})}clone(t){const e=new ir;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof ir?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([t]),e}applyUpdate(t){const e=t.name.toLowerCase();switch(t.op){case"a":case"s":let i=t.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(t.name,e);const r=("a"===t.op?this.headers.get(e):void 0)||[];r.push(...i),this.headers.set(e,r);break;case"d":const s=t.value;if(s){let a=this.headers.get(e);if(!a)return;a=a.filter(l=>-1===s.indexOf(l)),0===a.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,a)}else this.headers.delete(e),this.normalizedNames.delete(e)}}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>t(this.normalizedNames.get(e),this.headers.get(e)))}}class T2{encodeKey(t){return wS(t)}encodeValue(t){return wS(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}const I2=/%(\d[a-f0-9])/gi,P2={40:"@","3A":":",24:"$","2C":",","3B":";","2B":"+","3D":"=","3F":"?","2F":"/"};function wS(n){return encodeURIComponent(n).replace(I2,(t,e)=>P2[e]??t)}function DS(n){return`${n}`}class Cr{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new T2,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function M2(n,t){const e=new Map;return n.length>0&&n.replace(/^\?/,"").split("&").forEach(r=>{const s=r.indexOf("="),[a,l]=-1==s?[t.decodeKey(r),""]:[t.decodeKey(r.slice(0,s)),t.decodeValue(r.slice(s+1))],c=e.get(a)||[];c.push(l),e.set(a,c)}),e}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(e=>{const i=t.fromObject[e];this.map.set(e,Array.isArray(i)?i:[i])})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const e=this.map.get(t);return e?e[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,e){return this.clone({param:t,value:e,op:"a"})}appendAll(t){const e=[];return Object.keys(t).forEach(i=>{const r=t[i];Array.isArray(r)?r.forEach(s=>{e.push({param:i,value:s,op:"a"})}):e.push({param:i,value:r,op:"a"})}),this.clone(e)}set(t,e){return this.clone({param:t,value:e,op:"s"})}delete(t,e){return this.clone({param:t,value:e,op:"d"})}toString(){return this.init(),this.keys().map(t=>{const e=this.encoder.encodeKey(t);return this.map.get(t).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(t=>""!==t).join("&")}clone(t){const e=new Cr({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(t),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":const e=("a"===t.op?this.map.get(t.param):void 0)||[];e.push(DS(t.value)),this.map.set(t.param,e);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let i=this.map.get(t.param)||[];const r=i.indexOf(DS(t.value));-1!==r&&i.splice(r,1),i.length>0?this.map.set(t.param,i):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}class A2{constructor(){this.map=new Map}set(t,e){return this.map.set(t,e),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}}function CS(n){return typeof ArrayBuffer<"u"&&n instanceof ArrayBuffer}function SS(n){return typeof Blob<"u"&&n instanceof Blob}function bS(n){return typeof FormData<"u"&&n instanceof FormData}class Ol{constructor(t,e,i,r){let s;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function x2(n){switch(n){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||r?(this.body=void 0!==i?i:null,s=r):s=i,s&&(this.reportProgress=!!s.reportProgress,this.withCredentials=!!s.withCredentials,s.responseType&&(this.responseType=s.responseType),s.headers&&(this.headers=s.headers),s.context&&(this.context=s.context),s.params&&(this.params=s.params)),this.headers||(this.headers=new ir),this.context||(this.context=new A2),this.params){const a=this.params.toString();if(0===a.length)this.urlWithParams=e;else{const l=e.indexOf("?");this.urlWithParams=e+(-1===l?"?":lg.set(v,t.setHeaders[v]),c)),t.setParams&&(d=Object.keys(t.setParams).reduce((g,v)=>g.set(v,t.setParams[v]),d)),new Ol(e,i,s,{params:d,headers:c,context:f,reportProgress:l,responseType:r,withCredentials:a})}}var Bt=(()=>((Bt=Bt||{})[Bt.Sent=0]="Sent",Bt[Bt.UploadProgress=1]="UploadProgress",Bt[Bt.ResponseHeader=2]="ResponseHeader",Bt[Bt.DownloadProgress=3]="DownloadProgress",Bt[Bt.Response=4]="Response",Bt[Bt.User=5]="User",Bt))();class Kg{constructor(t,e=200,i="OK"){this.headers=t.headers||new ir,this.status=void 0!==t.status?t.status:e,this.statusText=t.statusText||i,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class Qg extends Kg{constructor(t={}){super(t),this.type=Bt.ResponseHeader}clone(t={}){return new Qg({headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class Md extends Kg{constructor(t={}){super(t),this.type=Bt.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new Md({body:void 0!==t.body?t.body:this.body,headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class Xg extends Kg{constructor(t){super(t,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${t.url||"(unknown url)"}`:`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}}function Jg(n,t){return{body:t,headers:n.headers,context:n.context,observe:n.observe,params:n.params,reportProgress:n.reportProgress,responseType:n.responseType,withCredentials:n.withCredentials}}let Qr=(()=>{class n{constructor(e){this.handler=e}request(e,i,r={}){let s;if(e instanceof Ol)s=e;else{let c,d;c=r.headers instanceof ir?r.headers:new ir(r.headers),r.params&&(d=r.params instanceof Cr?r.params:new Cr({fromObject:r.params})),s=new Ol(e,i,void 0!==r.body?r.body:null,{headers:c,context:r.context,params:d,reportProgress:r.reportProgress,responseType:r.responseType||"json",withCredentials:r.withCredentials})}const a=Ss(s).pipe(function E2(n,t){return Pe(t)?ei(n,t,1):ei(n,1)}(c=>this.handler.handle(c)));if(e instanceof Ol||"events"===r.observe)return a;const l=a.pipe(mn(c=>c instanceof Md));switch(r.observe||"body"){case"body":switch(s.responseType){case"arraybuffer":return l.pipe(He(c=>{if(null!==c.body&&!(c.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return c.body}));case"blob":return l.pipe(He(c=>{if(null!==c.body&&!(c.body instanceof Blob))throw new Error("Response is not a Blob.");return c.body}));case"text":return l.pipe(He(c=>{if(null!==c.body&&"string"!=typeof c.body)throw new Error("Response is not a string.");return c.body}));default:return l.pipe(He(c=>c.body))}case"response":return l;default:throw new Error(`Unreachable: unhandled observe type ${r.observe}}`)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:(new Cr).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,r={}){return this.request("PATCH",e,Jg(r,i))}post(e,i,r={}){return this.request("POST",e,Jg(r,i))}put(e,i,r={}){return this.request("PUT",e,Jg(r,i))}}return n.\u0275fac=function(e){return new(e||n)(U(yS))},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})();class ES{constructor(t,e){this.next=t,this.interceptor=e}handle(t){return this.interceptor.intercept(t,this.next)}}const em=new ze("HTTP_INTERCEPTORS");let R2=(()=>{class n{intercept(e,i){return i.handle(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})();const O2=/^\)\]\}',?\n/;let TS=(()=>{class n{constructor(e){this.xhrFactory=e}handle(e){if("JSONP"===e.method)throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");return new it(i=>{const r=this.xhrFactory.build();if(r.open(e.method,e.urlWithParams),e.withCredentials&&(r.withCredentials=!0),e.headers.forEach((y,w)=>r.setRequestHeader(y,w.join(","))),e.headers.has("Accept")||r.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){const y=e.detectContentTypeHeader();null!==y&&r.setRequestHeader("Content-Type",y)}if(e.responseType){const y=e.responseType.toLowerCase();r.responseType="json"!==y?y:"text"}const s=e.serializeBody();let a=null;const l=()=>{if(null!==a)return a;const y=r.statusText||"OK",w=new ir(r.getAllResponseHeaders()),D=function N2(n){return"responseURL"in n&&n.responseURL?n.responseURL:/^X-Request-URL:/m.test(n.getAllResponseHeaders())?n.getResponseHeader("X-Request-URL"):null}(r)||e.url;return a=new Qg({headers:w,status:r.status,statusText:y,url:D}),a},c=()=>{let{headers:y,status:w,statusText:D,url:S}=l(),E=null;204!==w&&(E=typeof r.response>"u"?r.responseText:r.response),0===w&&(w=E?200:0);let b=w>=200&&w<300;if("json"===e.responseType&&"string"==typeof E){const I=E;E=E.replace(O2,"");try{E=""!==E?JSON.parse(E):null}catch(A){E=I,b&&(b=!1,E={error:A,text:E})}}b?(i.next(new Md({body:E,headers:y,status:w,statusText:D,url:S||void 0})),i.complete()):i.error(new Xg({error:E,headers:y,status:w,statusText:D,url:S||void 0}))},d=y=>{const{url:w}=l(),D=new Xg({error:y,status:r.status||0,statusText:r.statusText||"Unknown Error",url:w||void 0});i.error(D)};let f=!1;const g=y=>{f||(i.next(l()),f=!0);let w={type:Bt.DownloadProgress,loaded:y.loaded};y.lengthComputable&&(w.total=y.total),"text"===e.responseType&&!!r.responseText&&(w.partialText=r.responseText),i.next(w)},v=y=>{let w={type:Bt.UploadProgress,loaded:y.loaded};y.lengthComputable&&(w.total=y.total),i.next(w)};return r.addEventListener("load",c),r.addEventListener("error",d),r.addEventListener("timeout",d),r.addEventListener("abort",d),e.reportProgress&&(r.addEventListener("progress",g),null!==s&&r.upload&&r.upload.addEventListener("progress",v)),r.send(s),i.next({type:Bt.Sent}),()=>{r.removeEventListener("error",d),r.removeEventListener("abort",d),r.removeEventListener("load",c),r.removeEventListener("timeout",d),e.reportProgress&&(r.removeEventListener("progress",g),null!==s&&r.upload&&r.upload.removeEventListener("progress",v)),r.readyState!==r.DONE&&r.abort()}})}}return n.\u0275fac=function(e){return new(e||n)(U(lC))},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})();const tm=new ze("XSRF_COOKIE_NAME"),nm=new ze("XSRF_HEADER_NAME");class MS{}let L2=(()=>{class n{constructor(e,i,r){this.doc=e,this.platform=i,this.cookieName=r,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=JD(e,this.cookieName),this.lastCookieString=e),this.lastToken}}return n.\u0275fac=function(e){return new(e||n)(U(gn),U(dl),U(tm))},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})(),im=(()=>{class n{constructor(e,i){this.tokenService=e,this.headerName=i}intercept(e,i){const r=e.url.toLowerCase();if("GET"===e.method||"HEAD"===e.method||r.startsWith("http://")||r.startsWith("https://"))return i.handle(e);const s=this.tokenService.getToken();return null!==s&&!e.headers.has(this.headerName)&&(e=e.clone({headers:e.headers.set(this.headerName,s)})),i.handle(e)}}return n.\u0275fac=function(e){return new(e||n)(U(MS),U(nm))},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})(),F2=(()=>{class n{constructor(e,i){this.backend=e,this.injector=i,this.chain=null}handle(e){if(null===this.chain){const i=this.injector.get(em,[]);this.chain=i.reduceRight((r,s)=>new ES(r,s),this.backend)}return this.chain.handle(e)}}return n.\u0275fac=function(e){return new(e||n)(U(_S),U(Cn))},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})(),B2=(()=>{class n{static disable(){return{ngModule:n,providers:[{provide:im,useClass:R2}]}}static withOptions(e={}){return{ngModule:n,providers:[e.cookieName?{provide:tm,useValue:e.cookieName}:[],e.headerName?{provide:nm,useValue:e.headerName}:[]]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=At({type:n}),n.\u0275inj=Le({providers:[im,{provide:em,useExisting:im,multi:!0},{provide:MS,useClass:L2},{provide:tm,useValue:"XSRF-TOKEN"},{provide:nm,useValue:"X-XSRF-TOKEN"}]}),n})(),H2=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=At({type:n}),n.\u0275inj=Le({providers:[Qr,{provide:yS,useClass:F2},TS,{provide:_S,useExisting:TS}],imports:[[B2.withOptions({cookieName:"XSRF-TOKEN",headerName:"X-XSRF-TOKEN"})]]}),n})();function Id(n,t){const e=Pe(n)?n:()=>n,i=r=>r.error(e());return new it(t?r=>t.schedule(i,0,r):i)}function Nl(n){return ut((t,e)=>{let s,i=null,r=!1;i=t.subscribe(mt(e,void 0,void 0,a=>{s=Hn(n(a,Nl(n)(t))),i?(i.unsubscribe(),i=null,s.subscribe(e)):r=!0})),r&&(i.unsubscribe(),i=null,s.subscribe(e))})}function rm(n){this.message=n}(rm.prototype=new Error).name="InvalidCharacterError";var IS=typeof window<"u"&&window.atob&&window.atob.bind(window)||function(n){var t=String(n).replace(/=+$/,"");if(t.length%4==1)throw new rm("'atob' failed: The string to be decoded is not correctly encoded.");for(var e,i,r=0,s=0,a="";i=t.charAt(s++);~i&&(e=r%4?64*e+i:i,r++%4)?a+=String.fromCharCode(255&e>>(-2*r&6)):0)i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(i);return a};function Pd(n){this.message=n}(Pd.prototype=new Error).name="InvalidTokenError";const PS=function j2(n,t){if("string"!=typeof n)throw new Pd("Invalid token specified");var e=!0===(t=t||{}).header?0:1;try{return JSON.parse(function V2(n){var t=n.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return decodeURIComponent(IS(t).replace(/(.)/g,function(i,r){var s=r.charCodeAt(0).toString(16).toUpperCase();return s.length<2&&(s="0"+s),"%"+s}))}catch{return IS(t)}}(n.split(".")[e]))}catch(i){throw new Pd("Invalid token specified: "+i.message)}};var n,sm=(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),Ll=function(n){function t(e,i){var s=this,a=this.constructor.prototype;return(s=n.call(this,e)||this).statusCode=i,s.__proto__=a,s}return sm(t,n),t}(Error),om=function(n){function t(e){void 0===e&&(e="A timeout occurred.");var r=this,s=this.constructor.prototype;return(r=n.call(this,e)||this).__proto__=s,r}return sm(t,n),t}(Error),Fl=function(n){function t(e){void 0===e&&(e="An abort occurred.");var r=this,s=this.constructor.prototype;return(r=n.call(this,e)||this).__proto__=s,r}return sm(t,n),t}(Error),am=Object.assign||function(n){for(var t,e=1,i=arguments.length;e(function(n){n[n.Trace=0]="Trace",n[n.Debug=1]="Debug",n[n.Information=2]="Information",n[n.Warning=3]="Warning",n[n.Error=4]="Error",n[n.Critical=5]="Critical",n[n.None=6]="None"}(P||(P={})),P))(),um=function(){function n(){}return n.prototype.log=function(t,e){},n.instance=new n,n}(),U2=Object.assign||function(n){for(var t,e=1,i=arguments.length;e0&&s[s.length-1])&&(6===d[0]||2===d[0])){e=0;continue}if(3===d[0]&&(!s||d[1]>s[0]&&d[1]-1&&this.subject.observers.splice(t,1),0===this.subject.observers.length&&this.subject.cancelCallback&&this.subject.cancelCallback().catch(function(e){})},n}(),Ad=function(){function n(t){this.minimumLogLevel=t,this.outputConsole=console}return n.prototype.log=function(t,e){if(t>=this.minimumLogLevel)switch(t){case P.Critical:case P.Error:this.outputConsole.error("["+(new Date).toISOString()+"] "+P[t]+": "+e);break;case P.Warning:this.outputConsole.warn("["+(new Date).toISOString()+"] "+P[t]+": "+e);break;case P.Information:this.outputConsole.info("["+(new Date).toISOString()+"] "+P[t]+": "+e);break;default:this.outputConsole.log("["+(new Date).toISOString()+"] "+P[t]+": "+e)}},n}();function Xo(){var n="X-SignalR-User-Agent";return Mn.isNode&&(n="User-Agent"),[n,Y2("5.0.17",K2(),Mn.isNode?"NodeJS":"Browser",Q2())]}function Y2(n,t,e,i){var r="Microsoft SignalR/",s=n.split(".");return r+=s[0]+"."+s[1],r+=" ("+n+"; ",r+=t&&""!==t?t+"; ":"Unknown OS; ",r+=""+e,(r+=i?"; "+i:"; Unknown Runtime Version")+")"}function K2(){if(!Mn.isNode)return"";switch(process.platform){case"win32":return"Windows NT";case"darwin":return"macOS";case"linux":return"Linux";default:return process.platform}}function Q2(){if(Mn.isNode)return process.versions.node}var J2=function(){var n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])};return function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}}(),eB=Object.assign||function(n){for(var t,e=1,i=arguments.length;e"u"){var r=require;i.jar=new(r("tough-cookie").CookieJar),i.fetchType=r("node-fetch"),i.fetchType=r("fetch-cookie")(i.fetchType,i.jar),i.abortControllerType=r("abort-controller")}else i.fetchType=fetch.bind(self),i.abortControllerType=AbortController;return i}return J2(t,n),t.prototype.send=function(e){return function(n,t,e,i){return new(e||(e=Promise))(function(r,s){function a(d){try{c(i.next(d))}catch(f){s(f)}}function l(d){try{c(i.throw(d))}catch(f){s(f)}}function c(d){d.done?r(d.value):new e(function(f){f(d.value)}).then(a,l)}c((i=i.apply(n,[])).next())})}(this,0,void 0,function(){var i,r,s,l,c,d,f,g=this;return function(n,t){var i,r,s,a,e={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return a={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(d){return function(f){return function c(d){if(i)throw new TypeError("Generator is already executing.");for(;e;)try{if(i=1,r&&(s=2&d[0]?r.return:d[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,d[1])).done)return s;switch(r=0,s&&(d=[2&d[0],s.value]),d[0]){case 0:case 1:s=d;break;case 4:return e.label++,{value:d[1],done:!1};case 5:e.label++,r=d[1],d=[0];continue;case 7:d=e.ops.pop(),e.trys.pop();continue;default:if(!(s=(s=e.trys).length>0&&s[s.length-1])&&(6===d[0]||2===d[0])){e=0;continue}if(3===d[0]&&(!s||d[1]>s[0]&&d[1]=200&&a.status<300?r(new AS(a.status,a.statusText,a.response||a.responseText)):s(new Ll(a.statusText,a.status))},a.onerror=function(){i.logger.log(P.Warning,"Error from HTTP request. "+a.status+": "+a.statusText+"."),s(new Ll(a.statusText,a.status))},a.ontimeout=function(){i.logger.log(P.Warning,"Timeout from HTTP request."),s(new om)},a.send(e.content||"")}):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t}(lm),aB=function(){var n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])};return function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}}(),lB=function(n){function t(e){var i=n.call(this)||this;if(typeof fetch<"u"||Mn.isNode)i.httpClient=new iB(e);else{if(!(typeof XMLHttpRequest<"u"))throw new Error("No usable HttpClient found.");i.httpClient=new oB(e)}return i}return aB(t,n),t.prototype.send=function(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new Fl):e.method?e.url?this.httpClient.send(e):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t.prototype.getCookieString=function(e){return this.httpClient.getCookieString(e)},t}(lm),Jo=function(){function n(){}return n.write=function(t){return""+t+n.RecordSeparator},n.parse=function(t){if(t[t.length-1]!==n.RecordSeparator)throw new Error("Message is incomplete.");var e=t.split(n.RecordSeparator);return e.pop(),e},n.RecordSeparatorCode=30,n.RecordSeparator=String.fromCharCode(n.RecordSeparatorCode),n}(),uB=function(){function n(){}return n.prototype.writeHandshakeRequest=function(t){return Jo.write(JSON.stringify(t))},n.prototype.parseHandshakeResponse=function(t){var i,r;if(cm(t)||typeof Buffer<"u"&&t instanceof Buffer){var s=new Uint8Array(t);if(-1===(a=s.indexOf(Jo.RecordSeparatorCode)))throw new Error("Message is incomplete.");var l=a+1;i=String.fromCharCode.apply(null,s.slice(0,l)),r=s.byteLength>l?s.slice(l).buffer:null}else{var a,c=t;if(-1===(a=c.indexOf(Jo.RecordSeparator)))throw new Error("Message is incomplete.");i=c.substring(0,l=a+1),r=c.length>l?c.substring(l):null}var d=Jo.parse(i),f=JSON.parse(d[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[r,f]},n}(),at=(()=>(function(n){n[n.Invocation=1]="Invocation",n[n.StreamItem=2]="StreamItem",n[n.Completion=3]="Completion",n[n.StreamInvocation=4]="StreamInvocation",n[n.CancelInvocation=5]="CancelInvocation",n[n.Ping=6]="Ping",n[n.Close=7]="Close"}(at||(at={})),at))(),cB=function(){function n(){this.observers=[]}return n.prototype.next=function(t){for(var e=0,i=this.observers;e0&&s[s.length-1])&&(6===d[0]||2===d[0])){e=0;continue}if(3===d[0]&&(!s||d[1]>s[0]&&d[1](function(n){n.Disconnected="Disconnected",n.Connecting="Connecting",n.Connected="Connected",n.Disconnecting="Disconnecting",n.Reconnecting="Reconnecting"}(wt||(wt={})),wt))(),fB=function(){function n(t,e,i,r){var s=this;this.nextKeepAlive=0,Jt.isRequired(t,"connection"),Jt.isRequired(e,"logger"),Jt.isRequired(i,"protocol"),this.serverTimeoutInMilliseconds=3e4,this.keepAliveIntervalInMilliseconds=15e3,this.logger=e,this.protocol=i,this.connection=t,this.reconnectPolicy=r,this.handshakeProtocol=new uB,this.connection.onreceive=function(a){return s.processIncomingData(a)},this.connection.onclose=function(a){return s.connectionClosed(a)},this.callbacks={},this.methods={},this.closedCallbacks=[],this.reconnectingCallbacks=[],this.reconnectedCallbacks=[],this.invocationId=0,this.receivedHandshakeResponse=!1,this.connectionState=wt.Disconnected,this.connectionStarted=!1,this.cachedPingMessage=this.protocol.writeMessage({type:at.Ping})}return n.create=function(t,e,i,r){return new n(t,e,i,r)},Object.defineProperty(n.prototype,"state",{get:function(){return this.connectionState},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"connectionId",{get:function(){return this.connection&&this.connection.connectionId||null},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"baseUrl",{get:function(){return this.connection.baseUrl||""},set:function(t){if(this.connectionState!==wt.Disconnected&&this.connectionState!==wt.Reconnecting)throw new Error("The HubConnection must be in the Disconnected or Reconnecting state to change the url.");if(!t)throw new Error("The HubConnection url must be a valid url.");this.connection.baseUrl=t},enumerable:!0,configurable:!0}),n.prototype.start=function(){return this.startPromise=this.startWithStateTransitions(),this.startPromise},n.prototype.startWithStateTransitions=function(){return Hl(this,void 0,void 0,function(){var t;return Vl(this,function(e){switch(e.label){case 0:if(this.connectionState!==wt.Disconnected)return[2,Promise.reject(new Error("Cannot start a HubConnection that is not in the 'Disconnected' state."))];this.connectionState=wt.Connecting,this.logger.log(P.Debug,"Starting HubConnection."),e.label=1;case 1:return e.trys.push([1,3,,4]),[4,this.startInternal()];case 2:return e.sent(),this.connectionState=wt.Connected,this.connectionStarted=!0,this.logger.log(P.Debug,"HubConnection connected successfully."),[3,4];case 3:return t=e.sent(),this.connectionState=wt.Disconnected,this.logger.log(P.Debug,"HubConnection failed to start successfully because of error '"+t+"'."),[2,Promise.reject(t)];case 4:return[2]}})})},n.prototype.startInternal=function(){return Hl(this,void 0,void 0,function(){var t,e,i,r=this;return Vl(this,function(s){switch(s.label){case 0:return this.stopDuringStartError=void 0,this.receivedHandshakeResponse=!1,t=new Promise(function(a,l){r.handshakeResolver=a,r.handshakeRejecter=l}),[4,this.connection.start(this.protocol.transferFormat)];case 1:s.sent(),s.label=2;case 2:return s.trys.push([2,5,,7]),e={protocol:this.protocol.name,version:this.protocol.version},this.logger.log(P.Debug,"Sending handshake request."),[4,this.sendMessage(this.handshakeProtocol.writeHandshakeRequest(e))];case 3:return s.sent(),this.logger.log(P.Information,"Using HubProtocol '"+this.protocol.name+"'."),this.cleanupTimeout(),this.resetTimeoutPeriod(),this.resetKeepAliveInterval(),[4,t];case 4:if(s.sent(),this.stopDuringStartError)throw this.stopDuringStartError;return[3,7];case 5:return i=s.sent(),this.logger.log(P.Debug,"Hub handshake failed with error '"+i+"' during start(). Stopping HubConnection."),this.cleanupTimeout(),this.cleanupPingTimer(),[4,this.connection.stop(i)];case 6:throw s.sent(),i;case 7:return[2]}})})},n.prototype.stop=function(){return Hl(this,void 0,void 0,function(){var t;return Vl(this,function(i){switch(i.label){case 0:return t=this.startPromise,this.stopPromise=this.stopInternal(),[4,this.stopPromise];case 1:i.sent(),i.label=2;case 2:return i.trys.push([2,4,,5]),[4,t];case 3:case 4:return i.sent(),[3,5];case 5:return[2]}})})},n.prototype.stopInternal=function(t){return this.connectionState===wt.Disconnected?(this.logger.log(P.Debug,"Call to HubConnection.stop("+t+") ignored because it is already in the disconnected state."),Promise.resolve()):this.connectionState===wt.Disconnecting?(this.logger.log(P.Debug,"Call to HttpConnection.stop("+t+") ignored because the connection is already in the disconnecting state."),this.stopPromise):(this.connectionState=wt.Disconnecting,this.logger.log(P.Debug,"Stopping HubConnection."),this.reconnectDelayHandle?(this.logger.log(P.Debug,"Connection stopped during reconnect delay. Done reconnecting."),clearTimeout(this.reconnectDelayHandle),this.reconnectDelayHandle=void 0,this.completeClose(),Promise.resolve()):(this.cleanupTimeout(),this.cleanupPingTimer(),this.stopDuringStartError=t||new Error("The connection was stopped before the hub handshake could complete."),this.connection.stop(t)))},n.prototype.stream=function(t){for(var e=this,i=[],r=1;r(function(n){n[n.None=0]="None",n[n.WebSockets=1]="WebSockets",n[n.ServerSentEvents=2]="ServerSentEvents",n[n.LongPolling=4]="LongPolling"}(en||(en={})),en))(),an=(()=>(function(n){n[n.Text=1]="Text",n[n.Binary=2]="Binary"}(an||(an={})),an))(),gB=function(){function n(){this.isAborted=!1,this.onabort=null}return n.prototype.abort=function(){this.isAborted||(this.isAborted=!0,this.onabort&&this.onabort())},Object.defineProperty(n.prototype,"signal",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"aborted",{get:function(){return this.isAborted},enumerable:!0,configurable:!0}),n}(),RS=Object.assign||function(n){for(var t,e=1,i=arguments.length;e0&&s[s.length-1])&&(6===d[0]||2===d[0])){e=0;continue}if(3===d[0]&&(!s||d[1]>s[0]&&d[1]0&&s[s.length-1])&&(6===d[0]||2===d[0])){e=0;continue}if(3===d[0]&&(!s||d[1]>s[0]&&d[1]0&&s[s.length-1])&&(6===d[0]||2===d[0])){e=0;continue}if(3===d[0]&&(!s||d[1]>s[0]&&d[1]0&&s[s.length-1])&&(6===d[0]||2===d[0])){e=0;continue}if(3===d[0]&&(!s||d[1]>s[0]&&d[1]0?[2,Promise.reject(new Error("Unable to connect to the server with any of the available transports. "+a.join(" ")))]:[2,Promise.reject(new Error("None of the transports supported by the client are supported by the server."))]}})})},n.prototype.constructTransport=function(t){switch(t){case en.WebSockets:if(!this.options.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new DB(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.WebSocket,this.options.headers||{});case en.ServerSentEvents:if(!this.options.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new vB(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.EventSource,this.options.withCredentials,this.options.headers||{});case en.LongPolling:return new OS(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.withCredentials,this.options.headers||{});default:throw new Error("Unknown transport: "+t+".")}},n.prototype.startTransport=function(t,e){var i=this;return this.transport.onreceive=this.onreceive,this.transport.onclose=function(r){return i.stopConnection(r)},this.transport.connect(t,e)},n.prototype.resolveTransportOrError=function(t,e,i){var r=en[t.transport];if(null==r)return this.logger.log(P.Debug,"Skipping transport '"+t.transport+"' because it is not supported by this client."),new Error("Skipping transport '"+t.transport+"' because it is not supported by this client.");if(!function bB(n,t){return!n||0!=(t&n)}(e,r))return this.logger.log(P.Debug,"Skipping transport '"+en[r]+"' because it was disabled by the client."),new Error("'"+en[r]+"' is disabled by the client.");if(!(t.transferFormats.map(function(a){return an[a]}).indexOf(i)>=0))return this.logger.log(P.Debug,"Skipping transport '"+en[r]+"' because it does not support the requested transfer format '"+an[i]+"'."),new Error("'"+en[r]+"' does not support "+an[i]+".");if(r===en.WebSockets&&!this.options.WebSocket||r===en.ServerSentEvents&&!this.options.EventSource)return this.logger.log(P.Debug,"Skipping transport '"+en[r]+"' because it is not supported in your environment.'"),new Error("'"+en[r]+"' is not supported in your environment.");this.logger.log(P.Debug,"Selecting transport '"+en[r]+"'.");try{return this.constructTransport(r)}catch(a){return a}},n.prototype.isITransport=function(t){return t&&"object"==typeof t&&"connect"in t},n.prototype.stopConnection=function(t){var e=this;if(this.logger.log(P.Debug,"HttpConnection.stopConnection("+t+") called while in state "+this.connectionState+"."),this.transport=void 0,t=this.stopError||t,this.stopError=void 0,"Disconnected"!==this.connectionState){if("Connecting"===this.connectionState)throw this.logger.log(P.Warning,"Call to HttpConnection.stopConnection("+t+") was ignored because the connection is still in the connecting state."),new Error("HttpConnection.stopConnection("+t+") was called while the connection is still in the connecting state.");if("Disconnecting"===this.connectionState&&this.stopPromiseResolver(),t?this.logger.log(P.Error,"Connection disconnected with error '"+t+"'."):this.logger.log(P.Information,"Connection disconnected."),this.sendQueue&&(this.sendQueue.stop().catch(function(i){e.logger.log(P.Error,"TransportSendQueue.stop() threw error '"+i+"'.")}),this.sendQueue=void 0),this.connectionId=void 0,this.connectionState="Disconnected",this.connectionStarted){this.connectionStarted=!1;try{this.onclose&&this.onclose(t)}catch(i){this.logger.log(P.Error,"HttpConnection.onclose("+t+") threw error '"+i+"'.")}}}else this.logger.log(P.Debug,"Call to HttpConnection.stopConnection("+t+") was ignored because the connection is already in the disconnected state.")},n.prototype.resolveUrl=function(t){if(0===t.lastIndexOf("https://",0)||0===t.lastIndexOf("http://",0))return t;if(!Mn.isBrowser||!window.document)throw new Error("Cannot resolve '"+t+"'.");var e=window.document.createElement("a");return e.href=t,this.logger.log(P.Information,"Normalizing '"+t+"' to '"+e.href+"'."),e.href},n.prototype.resolveNegotiateUrl=function(t){var e=t.indexOf("?"),i=t.substring(0,-1===e?t.length:e);return"/"!==i[i.length-1]&&(i+="/"),i+="negotiate",-1===(i+=-1===e?"":t.substring(e)).indexOf("negotiateVersion")&&(i+=-1===e?"?":"&",i+="negotiateVersion="+this.negotiateVersion),i},n}(),EB=function(){function n(t){this.transport=t,this.buffer=[],this.executing=!0,this.sendBufferedData=new xd,this.transportResult=new xd,this.sendLoopPromise=this.sendLoop()}return n.prototype.send=function(t){return this.bufferData(t),this.transportResult||(this.transportResult=new xd),this.transportResult.promise},n.prototype.stop=function(){return this.executing=!1,this.sendBufferedData.resolve(),this.sendLoopPromise},n.prototype.bufferData=function(t){if(this.buffer.length&&typeof this.buffer[0]!=typeof t)throw new Error("Expected data to be of type "+typeof this.buffer+" but was of type "+typeof t);this.buffer.push(t),this.sendBufferedData.resolve()},n.prototype.sendLoop=function(){return Is(this,void 0,void 0,function(){var t,e,i;return Xr(this,function(r){switch(r.label){case 0:return[4,this.sendBufferedData.promise];case 1:if(r.sent(),!this.executing)return this.transportResult&&this.transportResult.reject("Connection stopped."),[3,6];this.sendBufferedData=new xd,t=this.transportResult,this.transportResult=void 0,e="string"==typeof this.buffer[0]?this.buffer.join(""):n.concatBuffers(this.buffer),this.buffer.length=0,r.label=2;case 2:return r.trys.push([2,4,,5]),[4,this.transport.send(e)];case 3:return r.sent(),t.resolve(),[3,5];case 4:return i=r.sent(),t.reject(i),[3,5];case 5:return[3,0];case 6:return[2]}})})},n.concatBuffers=function(t){for(var e=t.map(function(c){return c.byteLength}).reduce(function(c,d){return c+d}),i=new Uint8Array(e),r=0,s=0,a=t;s"http://localhost:8080/api/",this.apiVersion="v4",this.channelUrl="",this.channelHubName="",this.clientId="",this.googleApiKey="",this.logLevel=0,this.isMobileApp=!1}get apiUrl(){return`${this.baseApiUrl()}/api/${this.apiVersion}`}}class LB{encodeKey(t){return encodeURIComponent(t)}encodeValue(t){return encodeURIComponent(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}let zl=(()=>{class n{constructor(e){this.config=e}logError(e,...i){this.config.logLevel>=2&&(i&&i.length?console.error(`[ERROR] - ${e}`,...i):console.error(`[ERROR] - ${e}`))}logWarning(e,...i){this.config.logLevel>=1&&(i&&i.length?console.warn(`[WARN] - ${e}`,...i):console.warn(`[WARN] - ${e}`))}logDebug(e,i,...r){this.config.logLevel>=0&&(r&&r.length?console.log(`[DEBUG] ${e} - ${i}`,...r):console.log(`[DEBUG] ${e} - ${i}`))}}return n.\u0275fac=function(e){return new(e||n)(U(Qn))},n.\u0275prov=ae({factory:function(){return new n(U(Qn))},token:n,providedIn:"root"}),n})(),jS=(()=>{class n{constructor(e,i){this.logger=e,this.config=i}read(e){const i=`${this.config.clientId}.${e}`,r=localStorage.getItem(i);return r?(this.logger.logDebug(this.config.clientId,`readKey ${i} length: ${r.length}`),JSON.parse(r)):(this.logger.logDebug(this.config.clientId,`readKey ${i} empty`),null)}write(e,i){return localStorage.setItem(`${this.config.clientId}.${e}`,JSON.stringify(i)),!0}remove(e){return localStorage.removeItem(`${this.config.clientId}.${e}`),!0}clear(){return localStorage.clear(),!0}}return n.\u0275fac=function(e){return new(e||n)(U(zl),U(Qn))},n.\u0275prov=ae({factory:function(){return new n(U(zl),U(Qn))},token:n,providedIn:"root"}),n})(),FB=(()=>{class n{constructor(e,i,r,s){this.http=e,this.config=i,this.storageService=r,this.logger=s,this.isRefreshing=!1,this.refreshTokenSubject=new bl(null),this.initalState={profile:void 0,tokens:void 0,authReady:!1},this.authReady$=new bl(!1),this.state=new bl(this.initalState),this.state$=this.state.asObservable(),this.tokens$=this.state.pipe(mn(a=>null!=a.authReady&&0!=a.authReady),He(a=>a.tokens)),this.profile$=this.state.pipe(mn(a=>null!=a.authReady&&0!=a.authReady),He(a=>a.profile)),this.loggedIn$=this.tokens$.pipe(He(a=>!!a))}init(){return this.startupTokenRefresh().pipe(O0(()=>this.scheduleRefresh()))}login(e){return this.getTokens(e,"password")}logout(){this.updateState({profile:void 0,tokens:void 0}),this.refreshSubscription$&&this.refreshSubscription$.unsubscribe(),this.removeToken()}refreshTokens(){this.logger.logDebug(this.config.clientId,"Starting refresh token flow");const e=this.retrieveTokens();return e&&e.refresh_token&&e.refresh_token.length>0?this.isRefreshing?this.refreshTokenSubject.pipe(mn(i=>null!==i),Kr(1),Wr(i=>Ss(i))):(this.isRefreshing=!0,this.logger.logDebug(this.config.clientId,"Retrived stored tokens"),this.getTokens({username:"",password:"",refresh_token:e.refresh_token},"refresh_token")):(this.logger.logDebug(this.config.clientId,"No stored tokens retrived"),Ss(null))}storeToken(e){const i=this.retrieveTokens();null!=i&&null==e.refresh_token&&(e.refresh_token=i.refresh_token),this.storageService.write("auth-tokens",e)}retrieveTokens(){return this.storageService.read("auth-tokens")}removeToken(){this.storageService.remove("auth-tokens")}updateState(e){const i=this.state.getValue();this.state.next(Object.assign({},i,e))}getTokens(e,i){let r=new ir;r=r.set("Content-Type","application/x-www-form-urlencoded");let s=new Cr({encoder:new LB});return s=s.set("grant_type",i),e.refresh_token&&e.refresh_token.length>0?s=s.append("refresh_token",e.refresh_token):(s=s.append("scope",this.config.isMobileApp?"openid profile offline_access mobile":"openid profile offline_access"),s=s.append("username",e.username),s=s.append("password",e.password)),this.logger.logDebug(this.config.clientId,"performing token connection"),this.http.post(`${this.config.apiUrl}/connect/token`,s,{headers:r}).pipe(He(a=>{const l=new Date;a.expiration_date=new Date(l.getTime()+1e3*a.expires_in).getTime().toString(),this.logger.logDebug(this.config.clientId,`got token expiration: ${a.expiration_date}`);const c=PS(a.id_token);return this.storeToken(a),this.updateState({authReady:!0,tokens:a,profile:c}),this.isRefreshing=!1,this.refreshTokenSubject.next(c),c}),Nl(a=>(this.isRefreshing=!1,this.refreshTokenSubject.next(null),Id(a))))}startupTokenRefresh(){return Ss(this.retrieveTokens()).pipe(He(e=>{if(!e)return this.updateState({authReady:!0}),Ss("No token in Storage");const i=PS(e.id_token);return this.updateState({tokens:e,profile:i}),+e.expiration_date>(new Date).getTime()&&this.updateState({authReady:!0}),this.refreshTokens()}),Nl(e=>(this.logout(),this.updateState({authReady:!0}),Ss(e))))}scheduleRefresh(){this.refreshSubscription$=this.tokens$.pipe(Kr(1),He(e=>{e&&(this.logger.logDebug(this.config.clientId,"Will refresh auth token in "+.8*e.expires_in*1e3),v0(.8*e.expires_in*1e3))}),He(()=>this.refreshTokens())).subscribe()}}return n.\u0275fac=function(e){return new(e||n)(U(Qr),U(Qn),U(jS),U(zl))},n.\u0275prov=ae({factory:function(){return new n(U(Qr),U(Qn),U(jS),U(zl))},token:n,providedIn:"root"}),n})(),BB=(()=>{class n{constructor(e,i,r){this.authService=e,this.config=i,this.logger=r,this.isRefreshing=!1,this.refreshTokenSubject=new bl(null)}intercept(e,i){if(this.shouldAddTokenToRequest(e.url)){const r=this.addAuthHeader(e);return i.handle(r).pipe(Nl(s=>s instanceof Xg&&401===s.status?this.handle401Error(e,i):Id(s)))}return i.handle(e)}handle401Error(e,i){return this.isRefreshing?this.refreshTokenSubject.pipe(mn(r=>null!==r),Kr(1),Wr(r=>i.handle(this.addAuthHeader(e)))):(this.isRefreshing=!0,this.refreshTokenSubject.next(null),this.authService.refreshTokens().pipe(Wr(r=>{this.isRefreshing=!1;const s=this.addAuthHeader(e),a=this.authService.retrieveTokens();return this.refreshTokenSubject.next(a.access_token),i.handle(s)}),Nl(r=>(this.isRefreshing=!1,this.authService.logout(),Id(r)))))}addAuthHeader(e){const i=this.authService.retrieveTokens();return i?e.clone({headers:e.headers.set("Authorization","Bearer "+i.access_token)}):e}handleResponseError(e,i,r){return 400!==e.status&&401===e.status?(this.logger.logDebug(this.config.clientId,`In handleResponseError got 401 response: ${i.url}`),Eg(1e4).pipe(Wr(()=>{const s=this.addAuthHeader(i);return r.handle(s)}))):Id(e)}shouldAddTokenToRequest(e){return!(!e.startsWith(this.config.baseApiUrl())||e.includes("/connect/token"))}}return n.\u0275fac=function(e){return new(e||n)(U(FB),U(Qn),U(zl))},n.\u0275prov=ae({token:n,factory:n.\u0275fac}),n})(),HB=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=At({type:n}),n.\u0275inj=Le({providers:[{provide:em,useClass:BB,multi:!0}]}),n})(),VB=(()=>{class n{static forRoot(e){return{ngModule:n,providers:[{provide:Qn,useFactory:()=>{let i=new Qn;return i.baseApiUrl=e.baseApiUrl,i.apiVersion=e.apiVersion,i.clientId=e.clientId,i.googleApiKey=e.googleApiKey,i.channelUrl=e.channelUrl,i.channelHubName=e.channelHubName,i.logLevel=e.logLevel,i.isMobileApp=e.isMobileApp,i}}]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=At({type:n}),n.\u0275inj=Le({imports:[[HB]]}),n})(),jB=(()=>{class n{constructor(e,i){this.http=e,this.config=i}getMapDataAndMarkers(){return this.http.get(this.config.apiUrl+"/Mapping/GetMapDataAndMarkers")}}return n.\u0275fac=function(e){return new(e||n)(U(Qr),U(Qn))},n.\u0275prov=ae({factory:function(){return new n(U(Qr),U(Qn))},token:n,providedIn:"root"}),n})(),UB=(()=>{class n{constructor(e,i){this.http=e,this.config=i}getShifts(){return this.http.get(this.config.apiUrl+"/Shifts/GetShifts")}getShift(e){return this.http.get(this.config.apiUrl+"/Shifts/GetShift?id="+e)}getTodaysShifts(){return this.http.get(this.config.apiUrl+"/Shifts/GetTodaysShifts")}getShiftDay(e){return this.http.get(this.config.apiUrl+"/Shifts/GetShiftDay?id="+e)}signupForShiftDay(e,i){return this.http.post(this.config.apiUrl+"/Shifts/SignupForShiftDay",{ShiftDayId:e,GroupId:i})}}return n.\u0275fac=function(e){return new(e||n)(U(Qr),U(Qn))},n.\u0275prov=ae({factory:function(){return new n(U(Qr),U(Qn))},token:n,providedIn:"root"}),n})();Window;const dH=["modalContent"];function hH(n,t){1&n&&(Z(0,"div",2)(1,"div",3),St(2,"div",4)(3,"div",5)(4,"div",6)(5,"div",7)(6,"div",8),Y(),St(7,"br"),It(8," Loading shift calendar... "),Y())}function fH(n,t){if(1&n){const e=Nt();Z(0,"mwl-calendar-month-view",19),Ie("dayClicked",function(r){return ee(e),R(2).dayClicked(r.day)})("eventClicked",function(r){return ee(e),R(2).handleEvent("Clicked",r.event)}),Y()}if(2&n){const e=R().$implicit,i=R();N("viewDate",i.viewDate)("events",e)("refresh",i.refresh)("activeDayIsOpen",i.activeDayIsOpen)}}function pH(n,t){if(1&n){const e=Nt();Z(0,"mwl-calendar-week-view",20),Ie("eventClicked",function(r){return ee(e),R(2).handleEvent("Clicked",r.event)}),Y()}if(2&n){const e=R().$implicit,i=R();N("viewDate",i.viewDate)("events",e)("refresh",i.refresh)}}function gH(n,t){if(1&n){const e=Nt();Z(0,"mwl-calendar-day-view",20),Ie("eventClicked",function(r){return ee(e),R(2).handleEvent("Clicked",r.event)}),Y()}if(2&n){const e=R().$implicit,i=R();N("viewDate",i.viewDate)("events",e)("refresh",i.refresh)}}function mH(n,t){if(1&n){const e=Nt();Z(0,"div")(1,"div",9)(2,"div",10)(3,"div",11)(4,"div",12),Ie("viewDateChange",function(r){return ee(e),R().viewDate=r})("viewDateChange",function(){return ee(e),R().closeOpenMonthViewDay()}),It(5," Previous "),Y(),Z(6,"div",13),Ie("viewDateChange",function(r){return ee(e),R().viewDate=r}),It(7," Today "),Y(),Z(8,"div",14),Ie("viewDateChange",function(r){return ee(e),R().viewDate=r})("viewDateChange",function(){return ee(e),R().closeOpenMonthViewDay()}),It(9," Next "),Y()()(),Z(10,"div",10)(11,"h3"),It(12),_t(13,"calendarDate"),Y()(),Z(14,"div",10)(15,"div",11)(16,"div",15),Ie("click",function(){ee(e);const r=R();return r.setView(r.CalendarView.Month)}),It(17," Month "),Y(),Z(18,"div",15),Ie("click",function(){ee(e);const r=R();return r.setView(r.CalendarView.Week)}),It(19," Week "),Y(),Z(20,"div",15),Ie("click",function(){ee(e);const r=R();return r.setView(r.CalendarView.Day)}),It(21," Day "),Y()()()(),St(22,"br"),Z(23,"div",16),ne(24,fH,1,4,"mwl-calendar-month-view",17),ne(25,pH,1,3,"mwl-calendar-week-view",18),ne(26,gH,1,3,"mwl-calendar-day-view",18),Y()()}if(2&n){const e=R();V(4),N("view",e.view)("viewDate",e.viewDate),V(2),N("viewDate",e.viewDate),V(2),N("view",e.view)("viewDate",e.viewDate),V(4),ps(Ti(13,16,e.viewDate,e.view+"ViewTitle","en")),V(4),pn("active",e.view===e.CalendarView.Month),V(2),pn("active",e.view===e.CalendarView.Week),V(2),pn("active",e.view===e.CalendarView.Day),V(3),N("ngSwitch",e.view),V(1),N("ngSwitchCase",e.CalendarView.Month),V(1),N("ngSwitchCase",e.CalendarView.Week),V(1),N("ngSwitchCase",e.CalendarView.Day)}}let vH=(()=>{class n{constructor(e,i){this.shiftProvider=e,this.http=i,this.view=wr.Month,this.CalendarView=wr,this.viewDate=new Date,this.refresh=new Me,this.activeDayIsOpen=!0,this.actions=[{label:'',a11yLabel:"Edit",onClick:({event:r})=>{this.handleEvent("Edited",r)}},{label:'',a11yLabel:"Delete",onClick:({event:r})=>{this.handleEvent("Deleted",r)}}],this.events$=this.http.get("/User/Shifts/GetShiftCalendarItems").pipe(He(r=>{if(r&&r.length>0)return r.map(s=>{if(s)return{title:s.Title,start:new Date(s.Start),end:new Date(s.End),color:{primary:s.Color,secondary:s.Color},allDay:s.IsAllDay,draggable:!1,resizable:{beforeStart:!1,afterEnd:!1},meta:{shift:s}}})}))}ngOnInit(){}ngAfterContentInit(){}dayClicked({date:e,events:i}){fS(e,this.viewDate)&&(this.activeDayIsOpen=!(hS(this.viewDate,e)&&!0===this.activeDayIsOpen||0===i.length),this.viewDate=e)}handleEvent(e,i){e&&"Clicked"===e&&i&&i.meta&&i.meta.shift&&(i.meta.shift.WorkshiftId?window.open(`/User/Workshifts/ViewDay?dayId=${i.meta.shift.WorkshiftDayId}`,"_self"):0===i.meta.shift.SignupType?window.open(`/User/Shifts/ViewShift?shiftDayId=${i.meta.shift.CalendarItemId}`,"_self"):window.open(`/User/Shifts/Signup?shiftDayId=${i.meta.shift.CalendarItemId}`,"_self"))}setView(e){this.view=e}closeOpenMonthViewDay(){this.activeDayIsOpen=!1}}return n.\u0275fac=function(e){return new(e||n)(O(UB),O(Qr))},n.\u0275cmp=ot({type:n,selectors:[["ng-component"]],viewQuery:function(e,i){if(1&e&&hp(dH,7),2&e){let r;dp(r=fp())&&(i.modalContent=r.first)}},decls:4,vars:4,consts:[["loading",""],[4,"ngIf","ngIfElse"],[1,"text-center"],[1,"sk-spinner","sk-spinner-wave"],[1,"sk-rect1"],[1,"sk-rect2",2,"padding-left","4px"],[1,"sk-rect3",2,"padding-left","4px"],[1,"sk-rect4",2,"padding-left","4px"],[1,"sk-rect5",2,"padding-left","4px"],[1,"row","text-center"],[1,"col-md-4"],[1,"btn-group"],["mwlCalendarPreviousView","",1,"btn","btn-primary",3,"view","viewDate","viewDateChange"],["mwlCalendarToday","",1,"btn","btn-outline-secondary",3,"viewDate","viewDateChange"],["mwlCalendarNextView","",1,"btn","btn-primary",3,"view","viewDate","viewDateChange"],[1,"btn","btn-primary",3,"click"],[3,"ngSwitch"],[3,"viewDate","events","refresh","activeDayIsOpen","dayClicked","eventClicked",4,"ngSwitchCase"],[3,"viewDate","events","refresh","eventClicked",4,"ngSwitchCase"],[3,"viewDate","events","refresh","activeDayIsOpen","dayClicked","eventClicked"],[3,"viewDate","events","refresh","eventClicked"]],template:function(e,i){if(1&e&&(ne(0,hH,9,0,"ng-template",null,0,qn),ne(2,mH,27,20,"div",1),_t(3,"async")),2&e){const r=$t(1);V(2),N("ngIf",Cc(3,2,i.events$))("ngIfElse",r)}},directives:[yr,mF,yF,vF,Vc,nC,bF,nS,xF],pipes:[Up,xl],styles:[""],changeDetection:0}),n})();var $l=B(407);const yH=["map"];function _H(n,t){if(1&n){const e=Nt();Z(0,"div",3),It(1," Show Calls: "),Z(2,"input",4),Ie("change",function(r){return ee(e),R().changeShowCalls(r)}),Y(),It(3," \xa0\xa0\xa0 Show Stations: "),Z(4,"input",4),Ie("change",function(r){return ee(e),R().changeShowStations(r)}),Y(),It(5," \xa0\xa0\xa0 Show Units: "),Z(6,"input",4),Ie("change",function(r){return ee(e),R().changeShowUnits(r)}),Y(),It(7," \xa0\xa0\xa0 Show Personnel: "),Z(8,"input",4),Ie("change",function(r){return ee(e),R().changeShowPeople(r)}),Y()()}if(2&n){const e=R();V(2),N("checked",e.showCalls),V(2),N("checked",e.showStations),V(2),N("checked",e.showUnits),V(2),N("checked",e.showPersonnel)}}let wH=(()=>{class n{constructor(e,i){this.mapProvider=e,this.cdRef=i,this.showCalls=!0,this.showStations=!0,this.showUnits=!0,this.showPersonnel=!0,this.markers=[]}ngOnInit(){this.mapProvider.getMapDataAndMarkers().subscribe(e=>{this.processMapData(e.Data)}),typeof this.showbuttons>"u"&&(this.showbuttons=!1),typeof this.mapheight>"u"&&(this.mapheight="600px"),this.cdRef.detectChanges()}changeShowCalls(e){this.showCalls=e.target.checked,this.mapProvider.getMapDataAndMarkers().subscribe(r=>{this.processMapData(r.Data)})}changeShowStations(e){this.showStations=e.target.checked,this.mapProvider.getMapDataAndMarkers().subscribe(r=>{this.processMapData(r.Data)})}changeShowUnits(e){this.showUnits=e.target.checked,this.mapProvider.getMapDataAndMarkers().subscribe(r=>{this.processMapData(r.Data)})}changeShowPeople(e){this.showPersonnel=e.target.checked,this.mapProvider.getMapDataAndMarkers().subscribe(r=>{this.processMapData(r.Data)})}processMapData(e){if(e){var i=this.getMapCenter(e);if(!this.map){this.map=$l.map(this.mapContainer.nativeElement,{doubleClickZoom:!1,zoomControl:!1});const a=window.rgOsmKey;$l.tileLayer("https://api.maptiler.com/maps/streets/{z}/{x}/{y}.png?key="+a,{attribution:'© OpenStreetMap contributors CC-BY-SA'}).addTo(this.map)}if(this.map.setView(i,this.getMapZoomLevel(e)),this.markers&&this.markers.length>=0){for(var r=0;r0){e&&e.MapMakerInfos&&e.MapMakerInfos.forEach(a=>{if(0==a.Type&&this.showCalls||1==a.Type&&this.showUnits||2==a.Type&&this.showStations){let l=$l.marker([a.Latitude,a.Longitude],{icon:$l.icon({iconUrl:"/images/mapping/"+a.ImagePath+".png",iconSize:[32,37],iconAnchor:[16,37]}),draggable:!1,title:a.Title}).bindTooltip(a.Title,{permanent:!0,direction:"bottom"}).addTo(this.map);this.markers.push(l)}});var s=$l.featureGroup(this.markers);this.map.fitBounds(s.getBounds())}}}getMapCenter(e){return[e.CenterLat,e.CenterLon]}getMapZoomLevel(e){return e.ZoomLevel}}return n.\u0275fac=function(e){return new(e||n)(O(jB),O(hl))},n.\u0275cmp=ot({type:n,selectors:[["ng-component"]],viewQuery:function(e,i){if(1&e&&hp(yH,5),2&e){let r;dp(r=fp())&&(i.mapContainer=r.first)}},inputs:{showbuttons:"showbuttons",mapheight:"mapheight"},decls:4,vars:3,consts:[["style","width: 100%; float: right; text-align: right;",4,"ngIf"],["id","map","name","map",2,"width","100%"],["map",""],[2,"width","100%","float","right","text-align","right"],["type","checkbox",3,"checked","change"]],template:function(e,i){1&e&&(Z(0,"div"),ne(1,_H,9,4,"div",0),St(2,"div",1,2),Y()),2&e&&(V(1),N("ngIf",i.showbuttons),V(1),pr("height",i.mapheight))},directives:[yr],styles:[""],changeDetection:0}),n})();const DH=()=>window.rgApiBaseUrl&&window.rgApiBaseUrl.length>0?window.rgApiBaseUrl.trim().toString():"https://api.resgrid.com";let bH=(()=>{class n{constructor(e){this.injector=e}ngDoBootstrap(){customElements.define("rg-shifts-calendar",SC(vH,{injector:this.injector})),customElements.define("rg-map",SC(wH,{injector:this.injector}))}}return n.\u0275fac=function(e){return new(e||n)(U(Cn))},n.\u0275mod=At({type:n}),n.\u0275inj=Le({providers:[],imports:[[Go,H2,_C,AO,kF.forRoot({provide:Dr,useFactory:b2}),VB.forRoot({baseApiUrl:DH,apiVersion:"v4",clientId:"RgWebApp",googleApiKey:window.rgGoogleMapsKey&&window.rgGoogleMapsKey.length>0?window.rgGoogleMapsKey.trim().toString():"",channelUrl:window.rgChannelUrl&&window.rgChannelUrl.length>0?window.rgChannelUrl.trim().toString():"https://events.resgrid.com",channelHubName:"eventingHub",logLevel:0,isMobileApp:!1})]]}),n})();(function aA(){kD=!1})(),ak().bootstrapModule(bH).catch(n=>console.error(n))},407:function(Zl,ql){!function(B){"use strict";function Ye(o){var u,h,p,m;for(h=1,p=arguments.length;h"u")&&L&&L.Mixin){o=Yt(o)?o:[o];for(var u=0;u0?Math.floor(o):Math.ceil(o)};function Te(o,u,h){return o instanceof fe?o:Yt(o)?new fe(o[0],o[1]):null==o?o:"object"==typeof o&&"x"in o&&"y"in o?new fe(o.x,o.y):new fe(o,u,h)}function pt(o,u){if(o)for(var h=u?[o,u]:o,p=0,m=h.length;p=this.min.x&&h.x<=this.max.x&&u.y>=this.min.y&&h.y<=this.max.y},intersects:function(o){o=Bn(o);var u=this.min,h=this.max,p=o.min,m=o.max;return m.x>=u.x&&p.x<=h.x&&m.y>=u.y&&p.y<=h.y},overlaps:function(o){o=Bn(o);var u=this.min,h=this.max,p=o.min,m=o.max;return m.x>u.x&&p.xu.y&&p.y=u.lat&&m.lat<=h.lat&&p.lng>=u.lng&&m.lng<=h.lng},intersects:function(o){o=Me(o);var u=this._southWest,h=this._northEast,p=o.getSouthWest(),m=o.getNorthEast();return m.lat>=u.lat&&p.lat<=h.lat&&m.lng>=u.lng&&p.lng<=h.lng},overlaps:function(o){o=Me(o);var u=this._southWest,h=this._northEast,p=o.getSouthWest(),m=o.getNorthEast();return m.lat>u.lat&&p.latu.lng&&p.lng1,uu=function(){var o=!1;try{var u=Object.defineProperty({},"passive",{get:function(){o=!0}});window.addEventListener("testPassiveEventSupport",nt,u),window.removeEventListener("testPassiveEventSupport",nt,u)}catch{}return o}(),Hn=!!document.createElement("canvas").getContext,ca=!(!document.createElementNS||!Nd("svg").createSVGRect),Ud=!!ca&&function(){var o=document.createElement("div");return o.innerHTML="","http://www.w3.org/2000/svg"===(o.firstChild&&o.firstChild.namespaceURI)}(),zd=!ca&&function(){try{var o=document.createElement("div");o.innerHTML='';var u=o.firstChild;return u.style.behavior="url(#default#VML)",u&&"object"==typeof u.adj}catch{return!1}}();function Xn(o){return navigator.userAgent.toLowerCase().indexOf(o)>=0}var J={ie:Fs,ielt9:fm,edge:ra,webkit:Jl,android:sa,android23:eu,androidStock:gm,opera:tu,chrome:Ri,gecko:nu,safari:mm,phantom:iu,opera12:Fd,win:Bd,ie3d:Hd,webkit3d:ru,gecko3d:Vd,any3d:vm,mobile:Bs,mobileWebkit:oa,mobileWebkit3d:su,msPointer:aa,pointer:la,touch:jd,touchNative:ua,mobileOpera:ou,mobileGecko:au,retina:lu,passiveEvents:uu,canvas:Hn,svg:ca,vml:zd,inlineSvg:Ud},cu=J.msPointer?"MSPointerDown":"pointerdown",du=J.msPointer?"MSPointerMove":"pointermove",Jn=J.msPointer?"MSPointerUp":"pointerup",hu=J.msPointer?"MSPointerCancel":"pointercancel",ei={touchstart:cu,touchmove:du,touchend:Jn,touchcancel:hu},da={touchstart:function pu(o,u){u.MSPOINTER_TYPE_TOUCH&&u.pointerType===u.MSPOINTER_TYPE_TOUCH&&Le(u),ns(o,u)},touchmove:ns,touchend:ns,touchcancel:ns},vi={},Wd=!1;function $d(o,u,h){return"touchstart"===u&&function Zd(){Wd||(document.addEventListener(cu,ha,!0),document.addEventListener(du,Gd,!0),document.addEventListener(Jn,Ir,!0),document.addEventListener(hu,Ir,!0),Wd=!0)}(),da[u]?(h=da[u].bind(this,h),o.addEventListener(ei[u],h,!1),h):(console.warn("wrong event specified:",u),L.Util.falseFn)}function ha(o){vi[o.pointerId]=o}function Gd(o){vi[o.pointerId]&&(vi[o.pointerId]=o)}function Ir(o){delete vi[o.pointerId]}function ns(o,u){if(u.pointerType!==(u.MSPOINTER_TYPE_MOUSE||"mouse")){for(var h in u.touches=[],vi)u.touches.push(vi[h]);u.changedTouches=[u],o(u)}}var Vs,js,xr,pa,jn,Hs=Ar(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),is=Ar(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),gu="webkitTransition"===is||"OTransition"===is?is+"End":"transitionend";function Pr(o){return"string"==typeof o?document.getElementById(o):o}function rn(o,u){var h=o.style[u]||o.currentStyle&&o.currentStyle[u];if((!h||"auto"===h)&&document.defaultView){var p=document.defaultView.getComputedStyle(o,null);h=p?p[u]:null}return"auto"===h?null:h}function _e(o,u,h){var p=document.createElement(o);return p.className=u||"",h&&h.appendChild(p),p}function rt(o){var u=o.parentNode;u&&u.removeChild(o)}function We(o){for(;o.firstChild;)o.removeChild(o.firstChild)}function Oi(o){var u=o.parentNode;u&&u.lastChild!==o&&u.appendChild(o)}function Re(o){var u=o.parentNode;u&&u.firstChild!==o&&u.insertBefore(o,u.firstChild)}function rs(o,u){if(void 0!==o.classList)return o.classList.contains(u);var h=ss(o);return h.length>0&&new RegExp("(^|\\s)"+u+"(\\s|$)").test(h)}function we(o,u){if(void 0!==o.classList)for(var h=ki(u),p=0,m=h.length;pthis.options.maxZoom)?this.setZoom(o):this},panInsideBounds:function(o,u){this._enforcingBounds=!0;var h=this.getCenter(),p=this._limitCenter(h,this._zoom,Me(o));return h.equals(p)||this.panTo(p,u),this._enforcingBounds=!1,this},panInside:function(o,u){var h=Te((u=u||{}).paddingTopLeft||u.padding||[0,0]),p=Te(u.paddingBottomRight||u.padding||[0,0]),m=this.project(this.getCenter()),_=this.project(o),C=this.getPixelBounds(),T=Bn([C.min.add(h),C.max.subtract(p)]),M=T.getSize();if(!T.contains(_)){this._enforcingBounds=!0;var k=_.subtract(T.getCenter()),q=T.extend(_).getSize().subtract(M);m.x+=k.x<0?-q.x:q.x,m.y+=k.y<0?-q.y:q.y,this.panTo(this.unproject(m),u),this._enforcingBounds=!1}return this},invalidateSize:function(o){if(!this._loaded)return this;o=Ye({animate:!1,pan:!0},!0===o?{animate:!0}:o);var u=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var h=this.getSize(),p=u.divideBy(2).round(),m=h.divideBy(2).round(),_=p.subtract(m);return _.x||_.y?(o.animate&&o.pan?this.panBy(_):(o.pan&&this._rawPanBy(_),this.fire("move"),o.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(Ke(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:u,newSize:h})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(o){if(o=this._locateOptions=Ye({timeout:1e4,watch:!1},o),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var u=Ke(this._handleGeolocationResponse,this),h=Ke(this._handleGeolocationError,this);return o.watch?this._locationWatchId=navigator.geolocation.watchPosition(u,h,o):navigator.geolocation.getCurrentPosition(u,h,o),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(o){if(this._container._leaflet_id){var u=o.code,h=o.message||(1===u?"permission denied":2===u?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:u,message:"Geolocation error: "+h+"."})}},_handleGeolocationResponse:function(o){if(this._container._leaflet_id){var p=new Qe(o.coords.latitude,o.coords.longitude),m=p.toBounds(2*o.coords.accuracy),_=this._locateOptions;if(_.setView){var C=this.getBoundsZoom(m);this.setView(p,_.maxZoom?Math.min(C,_.maxZoom):C)}var T={latlng:p,bounds:m,timestamp:o.timestamp};for(var M in o.coords)"number"==typeof o.coords[M]&&(T[M]=o.coords[M]);this.fire("locationfound",T)}},addHandler:function(o,u){if(!u)return this;var h=this[o]=new u(this);return this._handlers.push(h),this.options[o]&&h.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch{this._container._leaflet_id=void 0,this._containerId=void 0}var o;for(o in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),rt(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(xn(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[o].remove();for(o in this._panes)rt(this._panes[o]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(o,u){var p=_e("div","leaflet-pane"+(o?" leaflet-"+o.replace("Pane","")+"-pane":""),u||this._mapPane);return o&&(this._panes[o]=p),p},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var o=this.getPixelBounds();return new ln(this.unproject(o.getBottomLeft()),this.unproject(o.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(o,u,h){o=Me(o),h=Te(h||[0,0]);var p=this.getZoom()||0,m=this.getMinZoom(),_=this.getMaxZoom(),C=o.getNorthWest(),T=o.getSouthEast(),M=this.getSize().subtract(h),k=Bn(this.project(T,p),this.project(C,p)).getSize(),q=J.any3d?this.options.zoomSnap:1,Ce=M.x/k.x,Fe=M.y/k.y,$e=u?Math.max(Ce,Fe):Math.min(Ce,Fe);return p=this.getScaleZoom($e,p),q&&(p=Math.round(p/(q/100))*(q/100),p=u?Math.ceil(p/q)*q:Math.floor(p/q)*q),Math.max(m,Math.min(_,p))},getSize:function(){return(!this._size||this._sizeChanged)&&(this._size=new fe(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(o,u){var h=this._getTopLeftPoint(o,u);return new pt(h,h.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(o){return this.options.crs.getProjectedBounds(void 0===o?this.getZoom():o)},getPane:function(o){return"string"==typeof o?this._panes[o]:o},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(o,u){var h=this.options.crs;return u=void 0===u?this._zoom:u,h.scale(o)/h.scale(u)},getScaleZoom:function(o,u){var h=this.options.crs,p=h.zoom(o*h.scale(u=void 0===u?this._zoom:u));return isNaN(p)?1/0:p},project:function(o,u){return u=void 0===u?this._zoom:u,this.options.crs.latLngToPoint(gt(o),u)},unproject:function(o,u){return u=void 0===u?this._zoom:u,this.options.crs.pointToLatLng(Te(o),u)},layerPointToLatLng:function(o){var u=Te(o).add(this.getPixelOrigin());return this.unproject(u)},latLngToLayerPoint:function(o){return this.project(gt(o))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(o){return this.options.crs.wrapLatLng(gt(o))},wrapLatLngBounds:function(o){return this.options.crs.wrapLatLngBounds(Me(o))},distance:function(o,u){return this.options.crs.distance(gt(o),gt(u))},containerPointToLayerPoint:function(o){return Te(o).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(o){return Te(o).add(this._getMapPanePos())},containerPointToLatLng:function(o){var u=this.containerPointToLayerPoint(Te(o));return this.layerPointToLatLng(u)},latLngToContainerPoint:function(o){return this.layerPointToContainerPoint(this.latLngToLayerPoint(gt(o)))},mouseEventToContainerPoint:function(o){return ma(o,this._container)},mouseEventToLayerPoint:function(o){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(o))},mouseEventToLatLng:function(o){return this.layerPointToLatLng(this.mouseEventToLayerPoint(o))},_initContainer:function(o){var u=this._container=Pr(o);if(!u)throw new Error("Map container not found.");if(u._leaflet_id)throw new Error("Map container is already initialized.");De(u,"scroll",this._onScroll,this),this._containerId=Be(u)},_initLayout:function(){var o=this._container;this._fadeAnimated=this.options.fadeAnimation&&J.any3d,we(o,"leaflet-container"+(J.touch?" leaflet-touch":"")+(J.retina?" leaflet-retina":"")+(J.ielt9?" leaflet-oldie":"")+(J.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var u=rn(o,"position");"absolute"!==u&&"relative"!==u&&"fixed"!==u&&(o.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var o=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Oe(this._mapPane,new fe(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(we(o.markerPane,"leaflet-zoom-hide"),we(o.shadowPane,"leaflet-zoom-hide"))},_resetView:function(o,u){Oe(this._mapPane,new fe(0,0));var h=!this._loaded;this._loaded=!0,u=this._limitZoom(u),this.fire("viewprereset");var p=this._zoom!==u;this._moveStart(p,!1)._move(o,u)._moveEnd(p),this.fire("viewreset"),h&&this.fire("load")},_moveStart:function(o,u){return o&&this.fire("zoomstart"),u||this.fire("movestart"),this},_move:function(o,u,h,p){void 0===u&&(u=this._zoom);var m=this._zoom!==u;return this._zoom=u,this._lastCenter=o,this._pixelOrigin=this._getNewPixelOrigin(o),p?h&&h.pinch&&this.fire("zoom",h):((m||h&&h.pinch)&&this.fire("zoom",h),this.fire("move",h)),this},_moveEnd:function(o){return o&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return xn(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(o){Oe(this._mapPane,this._getMapPanePos().subtract(o))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(o){this._targets={},this._targets[Be(this._container)]=this;var u=o?st:De;u(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&u(window,"resize",this._onResize,this),J.any3d&&this.options.transform3DLimit&&(o?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){xn(this._resizeRequest),this._resizeRequest=Ht(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var o=this._getMapPanePos();Math.max(Math.abs(o.x),Math.abs(o.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(o,u){for(var p,h=[],m="mouseout"===u||"mouseover"===u,_=o.target||o.srcElement,C=!1;_;){if((p=this._targets[Be(_)])&&("click"===u||"preclick"===u)&&this._draggableMoved(p)){C=!0;break}if(p&&p.listens(u,!0)&&(m&&!zs(_,o)||(h.push(p),m))||_===this._container)break;_=_.parentNode}return!h.length&&!C&&!m&&this.listens(u,!0)&&(h=[this]),h},_isClickDisabled:function(o){for(;o!==this._container;){if(o._leaflet_disable_click)return!0;o=o.parentNode}},_handleDOMEvent:function(o){var u=o.target||o.srcElement;if(!(!this._loaded||u._leaflet_disable_events||"click"===o.type&&this._isClickDisabled(u))){var h=o.type;"mousedown"===h&&vu(u),this._fireDOMEvent(o,h)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(o,u,h){if("click"===o.type){var p=Ye({},o);p.type="preclick",this._fireDOMEvent(p,p.type,h)}var m=this._findEventTargets(o,u);if(h){for(var _=[],C=0;C0?Math.round(o-u)/2:Math.max(0,Math.ceil(o))-Math.max(0,Math.floor(u))},_limitZoom:function(o){var u=this.getMinZoom(),h=this.getMaxZoom(),p=J.any3d?this.options.zoomSnap:1;return p&&(o=Math.round(o/p)*p),Math.max(u,Math.min(h,o))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){vt(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(o,u){var h=this._getCenterOffset(o)._trunc();return!(!0!==(u&&u.animate)&&!this.getSize().contains(h)||(this.panBy(h,u),0))},_createAnimProxy:function(){var o=this._proxy=_e("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(o),this.on("zoomanim",function(u){var h=Hs,p=this._proxy.style[h];se(this._proxy,this.project(u.center,u.zoom),this.getZoomScale(u.zoom,1)),p===this._proxy.style[h]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){rt(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var o=this.getCenter(),u=this.getZoom();se(this._proxy,this.project(o,u),this.getZoomScale(u,1))},_catchTransitionEnd:function(o){this._animatingZoom&&o.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(o,u,h){if(this._animatingZoom)return!0;if(h=h||{},!this._zoomAnimated||!1===h.animate||this._nothingToAnimate()||Math.abs(u-this._zoom)>this.options.zoomAnimationThreshold)return!1;var p=this.getZoomScale(u),m=this._getCenterOffset(o)._divideBy(1-1/p);return!(!0!==h.animate&&!this.getSize().contains(m)||(Ht(function(){this._moveStart(!0,!1)._animateZoom(o,u,!0)},this),0))},_animateZoom:function(o,u,h,p){!this._mapPane||(h&&(this._animatingZoom=!0,this._animateToCenter=o,this._animateToZoom=u,we(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:o,zoom:u,noUpdate:p}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(Ke(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){!this._animatingZoom||(this._mapPane&&vt(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});var ie=mi.extend({options:{position:"topright"},initialize:function(o){ft(this,o)},getPosition:function(){return this.options.position},setPosition:function(o){var u=this._map;return u&&u.removeControl(this),this.options.position=o,u&&u.addControl(this),this},getContainer:function(){return this._container},addTo:function(o){this.remove(),this._map=o;var u=this._container=this.onAdd(o),h=this.getPosition(),p=o._controlCorners[h];return we(u,"leaflet-control"),-1!==h.indexOf("bottom")?p.insertBefore(u,p.firstChild):p.appendChild(u),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(rt(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(o){this._map&&o&&o.screenX>0&&o.screenY>0&&this._map.getContainer().focus()}}),sr=function(o){return new ie(o)};Ae.include({addControl:function(o){return o.addTo(this),this},removeControl:function(o){return o.remove(),this},_initControlPos:function(){var o=this._controlCorners={},u="leaflet-",h=this._controlContainer=_e("div",u+"control-container",this._container);function p(m,_){o[m+_]=_e("div",u+m+" "+u+_,h)}p("top","left"),p("top","right"),p("bottom","left"),p("bottom","right")},_clearControlPos:function(){for(var o in this._controlCorners)rt(this._controlCorners[o]);rt(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Cu=ie.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(o,u,h,p){return h1)?"":"none"),this._separator.style.display=u&&o?"":"none",this},_onLayerChange:function(o){this._handlingClick||this._update();var u=this._getLayer(Be(o.target)),h=u.overlay?"add"===o.type?"overlayadd":"overlayremove":"add"===o.type?"baselayerchange":null;h&&this._map.fire(h,u)},_createRadioElement:function(o,u){var h='",p=document.createElement("div");return p.innerHTML=h,p.firstChild},_addItem:function(o){var p,u=document.createElement("label"),h=this._map.hasLayer(o.layer);o.overlay?((p=document.createElement("input")).type="checkbox",p.className="leaflet-control-layers-selector",p.defaultChecked=h):p=this._createRadioElement("leaflet-base-layers_"+Be(this),h),this._layerControlInputs.push(p),p.layerId=Be(o.layer),De(p,"click",this._onInputClick,this);var m=document.createElement("span");m.innerHTML=" "+o.name;var _=document.createElement("span");return u.appendChild(_),_.appendChild(p),_.appendChild(m),(o.overlay?this._overlaysList:this._baseLayersList).appendChild(u),this._checkDisabledLayers(),u},_onInputClick:function(){var u,h,o=this._layerControlInputs,p=[],m=[];this._handlingClick=!0;for(var _=o.length-1;_>=0;_--)h=this._getLayer((u=o[_]).layerId).layer,u.checked?p.push(h):u.checked||m.push(h);for(_=0;_=0;m--)h=this._getLayer((u=o[m]).layerId).layer,u.disabled=void 0!==h.options.minZoom&&ph.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this}}),Gs=ie.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(o){var u="leaflet-control-zoom",h=_e("div",u+" leaflet-bar"),p=this.options;return this._zoomInButton=this._createButton(p.zoomInText,p.zoomInTitle,u+"-in",h,this._zoomIn),this._zoomOutButton=this._createButton(p.zoomOutText,p.zoomOutTitle,u+"-out",h,this._zoomOut),this._updateDisabled(),o.on("zoomend zoomlevelschange",this._updateDisabled,this),h},onRemove:function(o){o.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(o){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(o.shiftKey?3:1))},_createButton:function(o,u,h,p,m){var _=_e("a",h,p);return _.innerHTML=o,_.href="#",_.title=u,_.setAttribute("role","button"),_.setAttribute("aria-label",u),Us(_),De(_,"click",yi),De(_,"click",m,this),De(_,"click",this._refocusOnMap,this),_},_updateDisabled:function(){var o=this._map,u="leaflet-disabled";vt(this._zoomInButton,u),vt(this._zoomOutButton,u),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||o._zoom===o.getMinZoom())&&(we(this._zoomOutButton,u),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||o._zoom===o.getMaxZoom())&&(we(this._zoomInButton,u),this._zoomInButton.setAttribute("aria-disabled","true"))}});Ae.mergeOptions({zoomControl:!0}),Ae.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new Gs,this.addControl(this.zoomControl))});var _i=ie.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(o){var u="leaflet-control-scale",h=_e("div",u),p=this.options;return this._addScales(p,u+"-line",h),o.on(p.updateWhenIdle?"moveend":"move",this._update,this),o.whenReady(this._update,this),h},onRemove:function(o){o.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(o,u,h){o.metric&&(this._mScale=_e("div",u,h)),o.imperial&&(this._iScale=_e("div",u,h))},_update:function(){var o=this._map,u=o.getSize().y/2,h=o.distance(o.containerPointToLatLng([0,u]),o.containerPointToLatLng([this.options.maxWidth,u]));this._updateScales(h)},_updateScales:function(o){this.options.metric&&o&&this._updateMetric(o),this.options.imperial&&o&&this._updateImperial(o)},_updateMetric:function(o){var u=this._getRoundNum(o);this._updateScale(this._mScale,u<1e3?u+" m":u/1e3+" km",u/o)},_updateImperial:function(o){var h,p,m,u=3.2808399*o;u>5280?(p=this._getRoundNum(h=u/5280),this._updateScale(this._iScale,p+" mi",p/h)):(m=this._getRoundNum(u),this._updateScale(this._iScale,m+" ft",m/u))},_updateScale:function(o,u,h){o.style.width=Math.round(this.options.maxWidth*h)+"px",o.innerHTML=u},_getRoundNum:function(o){var u=Math.pow(10,(Math.floor(o)+"").length-1),h=o/u;return u*(h>=10?10:h>=5?5:h>=3?3:h>=2?2:1)}}),Su=ie.extend({options:{position:"bottomright",prefix:''+(J.inlineSvg?' ':"")+"Leaflet"},initialize:function(o){ft(this,o),this._attributions={}},onAdd:function(o){for(var u in o.attributionControl=this,this._container=_e("div","leaflet-control-attribution"),Us(this._container),o._layers)o._layers[u].getAttribution&&this.addAttribution(o._layers[u].getAttribution());return this._update(),o.on("layeradd",this._addAttribution,this),this._container},onRemove:function(o){o.off("layeradd",this._addAttribution,this)},_addAttribution:function(o){o.layer.getAttribution&&(this.addAttribution(o.layer.getAttribution()),o.layer.once("remove",function(){this.removeAttribution(o.layer.getAttribution())},this))},setPrefix:function(o){return this.options.prefix=o,this._update(),this},addAttribution:function(o){return o?(this._attributions[o]||(this._attributions[o]=0),this._attributions[o]++,this._update(),this):this},removeAttribution:function(o){return o?(this._attributions[o]&&(this._attributions[o]--,this._update()),this):this},_update:function(){if(this._map){var o=[];for(var u in this._attributions)this._attributions[u]&&o.push(u);var h=[];this.options.prefix&&h.push(this.options.prefix),o.length&&h.push(o.join(", ")),this._container.innerHTML=h.join(' ')}}});Ae.mergeOptions({attributionControl:!0}),Ae.addInitHook(function(){this.options.attributionControl&&(new Su).addTo(this)});ie.Layers=Cu,ie.Zoom=Gs,ie.Scale=_i,ie.Attribution=Su,sr.layers=function(o,u,h){return new Cu(o,u,h)},sr.zoom=function(o){return new Gs(o)},sr.scale=function(o){return new _i(o)},sr.attribution=function(o){return new Su(o)};var ni=mi.extend({initialize:function(o){this._map=o},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});ni.addTo=function(o,u){return o.addHandler(u,this),this};var qs,nh={Events:kt},bu=J.touch?"touchstart mousedown":"mousedown",or=Ns.extend({options:{clickTolerance:3},initialize:function(o,u,h,p){ft(this,p),this._element=o,this._dragStartTarget=u||o,this._preventOutline=h},enable:function(){this._enabled||(De(this._dragStartTarget,bu,this._onDown,this),this._enabled=!0)},disable:function(){!this._enabled||(or._dragging===this&&this.finishDrag(!0),st(this._dragStartTarget,bu,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(o){if(this._enabled&&(this._moved=!1,!rs(this._element,"leaflet-zoom-anim"))){if(o.touches&&1!==o.touches.length)return void(or._dragging===this&&this.finishDrag());if(!(or._dragging||o.shiftKey||1!==o.which&&1!==o.button&&!o.touches||(or._dragging=this,this._preventOutline&&vu(this._element),mu(),Vs(),this._moving))){this.fire("down");var u=o.touches?o.touches[0]:o,h=Xd(this._element);this._startPoint=new fe(u.clientX,u.clientY),this._startPos=rr(this._element),this._parentScale=yu(h);var p="mousedown"===o.type;De(document,p?"mousemove":"touchmove",this._onMove,this),De(document,p?"mouseup":"touchend touchcancel",this._onUp,this)}}},_onMove:function(o){if(this._enabled){if(o.touches&&o.touches.length>1)return void(this._moved=!0);var u=o.touches&&1===o.touches.length?o.touches[0]:o,h=new fe(u.clientX,u.clientY)._subtract(this._startPoint);!h.x&&!h.y||Math.abs(h.x)+Math.abs(h.y)u&&(h.push(o[p]),m=p);return m<_-1&&h.push(o[_-1]),h}(o,h),h)}function ih(o,u,h){return Math.sqrt(ls(o,u,h,!0))}function qe(o,u,h,p,m){var C,T,M,_=0;for(T=p+1;T<=m-1;T++)(M=ls(o[T],o[p],o[m],!0))>_&&(C=T,_=M);_>h&&(u[C]=1,qe(o,u,h,p,C),qe(o,u,h,C,m))}function Ys(o,u,h,p,m){var T,M,k,_=p?qs:sn(o,h),C=sn(u,h);for(qs=C;;){if(!(_|C))return[o,u];if(_&C)return!1;k=sn(M=os(o,u,T=_||C,h,m),h),T===_?(o=M,_=k):(u=M,C=k)}}function os(o,u,h,p,m){var k,q,_=u.x-o.x,C=u.y-o.y,T=p.min,M=p.max;return 8&h?(k=o.x+_*(M.y-o.y)/C,q=M.y):4&h?(k=o.x+_*(T.y-o.y)/C,q=T.y):2&h?(k=M.x,q=o.y+C*(M.x-o.x)/_):1&h&&(k=T.x,q=o.y+C*(T.x-o.x)/_),new fe(k,q,m)}function sn(o,u){var h=0;return o.xu.max.x&&(h|=2),o.yu.max.y&&(h|=8),h}function as(o,u){var h=u.x-o.x,p=u.y-o.y;return h*h+p*p}function ls(o,u,h,p){var k,m=u.x,_=u.y,C=h.x-m,T=h.y-_,M=C*C+T*T;return M>0&&((k=((o.x-m)*C+(o.y-_)*T)/M)>1?(m=h.x,_=h.y):k>0&&(m+=C*k,_+=T*k)),C=o.x-m,T=o.y-_,p?C*C+T*T:new fe(m,_)}function ot(o){return!Yt(o[0])||"object"!=typeof o[0][0]&&typeof o[0][0]<"u"}function Eu(o){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),ot(o)}var Tu={__proto__:null,simplify:Ze,pointToSegmentDistance:ih,closestPointOnSegment:function wm(o,u,h){return ls(o,u,h)},clipSegment:Ys,_getEdgeIntersection:os,_getBitCode:sn,_sqClosestPointOnSegment:ls,isFlat:ot,_flat:Eu};function va(o,u,h){var p,_,C,T,M,k,q,Ce,Fe,m=[1,4,2,8];for(_=0,q=o.length;_1e-7;T++)k=m*Math.sin(C),k=Math.pow((1-k)/(1+k),m/2),C+=M=Math.PI/2-2*Math.atan(_*k)-C;return new Qe(C*u,o.x*u/h)}},Iu={__proto__:null,LonLat:At,Mercator:ya,SphericalMercator:He},yt=Ye({},mt,{code:"EPSG:3395",projection:ya,transformation:function(){var o=.5/(Math.PI*ya.R);return Ls(o,.5,-o,.5)}()}),ct=Ye({},mt,{code:"EPSG:4326",projection:At,transformation:Ls(1/180,1,-1/180,.5)}),Kt=Ye({},ut,{projection:At,transformation:Ls(1,0,-1,0),scale:function(o){return Math.pow(2,o)},zoom:function(o){return Math.log(o)/Math.LN2},distance:function(o,u){var h=u.lng-o.lng,p=u.lat-o.lat;return Math.sqrt(h*h+p*p)},infinite:!0});ut.Earth=mt,ut.EPSG3395=yt,ut.EPSG3857=Mr,ut.EPSG900913=Od,ut.EPSG4326=ct,ut.Simple=Kt;var Rt=Ns.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(o){return o.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(o){return o&&o.removeLayer(this),this},getPane:function(o){return this._map.getPane(o?this.options[o]||o:this.options.pane)},addInteractiveTarget:function(o){return this._map._targets[Be(o)]=this,this},removeInteractiveTarget:function(o){return delete this._map._targets[Be(o)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(o){var u=o.target;if(u.hasLayer(this)){if(this._map=u,this._zoomAnimated=u._zoomAnimated,this.getEvents){var h=this.getEvents();u.on(h,this),this.once("remove",function(){u.off(h,this)},this)}this.onAdd(u),this.fire("add"),u.fire("layeradd",{layer:this})}}});Ae.include({addLayer:function(o){if(!o._layerAdd)throw new Error("The provided object is not a Layer.");var u=Be(o);return this._layers[u]||(this._layers[u]=o,o._mapToAdd=this,o.beforeAdd&&o.beforeAdd(this),this.whenReady(o._layerAdd,o)),this},removeLayer:function(o){var u=Be(o);return this._layers[u]?(this._loaded&&o.onRemove(this),delete this._layers[u],this._loaded&&(this.fire("layerremove",{layer:o}),o.fire("remove")),o._map=o._mapToAdd=null,this):this},hasLayer:function(o){return Be(o)in this._layers},eachLayer:function(o,u){for(var h in this._layers)o.call(u,this._layers[h]);return this},_addLayers:function(o){for(var u=0,h=(o=o?Yt(o)?o:[o]:[]).length;uthis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()u)return this._map.layerPointToLatLng([_.x-(C=(p-u)/h)*(_.x-m.x),_.y-C*(_.y-m.y)])},getBounds:function(){return this._bounds},addLatLng:function(o,u){return u=u||this._defaultShape(),o=gt(o),u.push(o),this._bounds.extend(o),this.redraw()},_setLatLngs:function(o){this._bounds=new ln,this._latlngs=this._convertLatLngs(o)},_defaultShape:function(){return ot(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(o){for(var u=[],h=ot(o),p=0,m=o.length;p=2&&u[0]instanceof Qe&&u[0].equals(u[h-1])&&u.pop(),u},_setLatLngs:function(o){cn.prototype._setLatLngs.call(this,o),ot(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return ot(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var o=this._renderer._bounds,u=this.options.weight,h=new fe(u,u);if(o=new pt(o.min.subtract(h),o.max.add(h)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(o)){if(this.options.noClip)return void(this._parts=this._rings);for(var _,p=0,m=this._rings.length;po.y!=(m=h[T]).y>o.y&&o.x<(m.x-p.x)*(o.y-p.y)/(m.y-p.y)+p.x&&(u=!u);return u||cn.prototype._containsPoint.call(this,o,!0)}});var yn=jt.extend({initialize:function(o,u){ft(this,u),this._layers={},o&&this.addData(o)},addData:function(o){var h,p,m,u=Yt(o)?o:o.features;if(u){for(h=0,p=u.length;h0?p:[u.src]}else{Yt(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(u.style,"objectFit")&&(u.style.objectFit="fill"),u.autoplay=!!this.options.autoplay,u.loop=!!this.options.loop,u.muted=!!this.options.muted,u.playsInline=!!this.options.playsInline;for(var _=0;_m?(u.height=m+"px",we(o,_)):vt(o,_),this._containerWidth=this._container.offsetWidth},_animateZoom:function(o){var u=this._map._latLngToNewLayerPoint(this._latlng,o.zoom,o.center),h=this._getAnchor();Oe(this._container,u.add(h))},_adjustPan:function(o){if(this.options.autoPan){this._map._panAnim&&this._map._panAnim.stop();var u=this._map,h=parseInt(rn(this._container,"marginBottom"),10)||0,p=this._container.offsetHeight+h,m=this._containerWidth,_=new fe(this._containerLeft,-p-this._containerBottom);_._add(rr(this._container));var C=u.layerPointToContainerPoint(_),T=Te(this.options.autoPanPadding),M=Te(this.options.autoPanPaddingTopLeft||T),k=Te(this.options.autoPanPaddingBottomRight||T),q=u.getSize(),Ce=0,Fe=0;C.x+m+k.x>q.x&&(Ce=C.x+m-q.x+k.x),C.x-Ce-M.x<0&&(Ce=C.x-M.x),C.y+p+k.y>q.y&&(Fe=C.y+p-q.y+k.y),C.y-Fe-M.y<0&&(Fe=C.y-M.y),(Ce||Fe)&&u.fire("autopanstart").panBy([Ce,Fe],{animate:o&&"moveend"===o.type})}},_getAnchor:function(){return Te(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});Ae.mergeOptions({closePopupOnClick:!0}),Ae.include({openPopup:function(o,u,h){return this._initOverlay(eo,o,u,h).openOn(this),this},closePopup:function(o){return(o=arguments.length?o:this._popup)&&o.close(),this}}),Rt.include({bindPopup:function(o,u){return this._popup=this._initOverlay(eo,this._popup,o,u),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(o){return this._popup&&this._popup._prepareOpen(o)&&this._popup.openOn(this._map),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(o){return this._popup&&this._popup.setContent(o),this},getPopup:function(){return this._popup},_openPopup:function(o){if(this._popup&&this._map){yi(o);var u=o.layer||o.target;if(this._popup._source===u&&!(u instanceof Xe))return void(this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(o.latlng));this._popup._source=u,this.openPopup(o.latlng)}},_movePopup:function(o){this._popup.setLatLng(o.latlng)},_onKeyPress:function(o){13===o.originalEvent.keyCode&&this._openPopup(o)}});var to=Tt.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(o){Tt.prototype.onAdd.call(this,o),this.setOpacity(this.options.opacity),o.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(o){Tt.prototype.onRemove.call(this,o),o.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var o=Tt.prototype.getEvents.call(this);return this.options.permanent||(o.preclick=this.close),o},_initLayout:function(){this._contentNode=this._container=_e("div","leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide"))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(o){var u,h,p=this._map,m=this._container,_=p.latLngToContainerPoint(p.getCenter()),C=p.layerPointToContainerPoint(o),T=this.options.direction,M=m.offsetWidth,k=m.offsetHeight,q=Te(this.options.offset),Ce=this._getAnchor();"top"===T?(u=M/2,h=k):"bottom"===T?(u=M/2,h=0):"center"===T?(u=M/2,h=k/2):"right"===T?(u=0,h=k/2):"left"===T?(u=M,h=k/2):C.x<_.x?(T="right",u=0,h=k/2):(T="left",u=M+2*(q.x+Ce.x),h=k/2),o=o.subtract(Te(u,h,!0)).add(q).add(Ce),vt(m,"leaflet-tooltip-right"),vt(m,"leaflet-tooltip-left"),vt(m,"leaflet-tooltip-top"),vt(m,"leaflet-tooltip-bottom"),we(m,"leaflet-tooltip-"+T),Oe(m,o)},_updatePosition:function(){var o=this._map.latLngToLayerPoint(this._latlng);this._setPosition(o)},setOpacity:function(o){this.options.opacity=o,this._container&&Vn(this._container,o)},_animateZoom:function(o){var u=this._map._latLngToNewLayerPoint(this._latlng,o.zoom,o.center);this._setPosition(u)},_getAnchor:function(){return Te(this._source&&this._source._getTooltipAnchor&&!this.options.sticky?this._source._getTooltipAnchor():[0,0])}});Ae.include({openTooltip:function(o,u,h){return this._initOverlay(to,o,u,h).openOn(this),this},closeTooltip:function(o){return o.close(),this}}),Rt.include({bindTooltip:function(o,u){return this._tooltip&&this.isTooltipOpen()&&this.unbindTooltip(),this._tooltip=this._initOverlay(to,this._tooltip,o,u),this._initTooltipInteractions(),this._tooltip.options.permanent&&this._map&&this._map.hasLayer(this)&&this.openTooltip(),this},unbindTooltip:function(){return this._tooltip&&(this._initTooltipInteractions(!0),this.closeTooltip(),this._tooltip=null),this},_initTooltipInteractions:function(o){if(o||!this._tooltipHandlersAdded){var u=o?"off":"on",h={remove:this.closeTooltip,move:this._moveTooltip};this._tooltip.options.permanent?h.add=this._openTooltip:(h.mouseover=this._openTooltip,h.mouseout=this.closeTooltip,h.click=this._openTooltip),this._tooltip.options.sticky&&(h.mousemove=this._moveTooltip),this[u](h),this._tooltipHandlersAdded=!o}},openTooltip:function(o){return this._tooltip&&this._tooltip._prepareOpen(o)&&this._tooltip.openOn(this._map),this},closeTooltip:function(){if(this._tooltip)return this._tooltip.close()},toggleTooltip:function(){return this._tooltip&&this._tooltip.toggle(this),this},isTooltipOpen:function(){return this._tooltip.isOpen()},setTooltipContent:function(o){return this._tooltip&&this._tooltip.setContent(o),this},getTooltip:function(){return this._tooltip},_openTooltip:function(o){!this._tooltip||!this._map||this._map.dragging&&this._map.dragging.moving()||(this._tooltip._source=o.layer||o.target,this.openTooltip(this._tooltip.options.sticky?o.latlng:void 0))},_moveTooltip:function(o){var h,p,u=o.latlng;this._tooltip.options.sticky&&o.originalEvent&&(h=this._map.mouseEventToContainerPoint(o.originalEvent),p=this._map.containerPointToLayerPoint(h),u=this._map.layerPointToLatLng(p)),this._tooltip.setLatLng(u)}});var sh=ge.extend({options:{iconSize:[12,12],html:!1,bgPos:null,className:"leaflet-div-icon"},createIcon:function(o){var u=o&&"DIV"===o.tagName?o:document.createElement("div"),h=this.options;if(h.html instanceof Element?(We(u),u.appendChild(h.html)):u.innerHTML=!1!==h.html?h.html:"",h.bgPos){var p=Te(h.bgPos);u.style.backgroundPosition=-p.x+"px "+-p.y+"px"}return this._setIconStyles(u,"icon"),u},createShadow:function(){return null}});ge.Default=Ut;var no=Rt.extend({options:{tileSize:256,opacity:1,updateWhenIdle:J.mobile,updateWhenZooming:!0,updateInterval:200,zIndex:1,bounds:null,minZoom:0,maxZoom:void 0,maxNativeZoom:void 0,minNativeZoom:void 0,noWrap:!1,pane:"tilePane",className:"",keepBuffer:2},initialize:function(o){ft(this,o)},onAdd:function(){this._initContainer(),this._levels={},this._tiles={},this._resetView()},beforeAdd:function(o){o._addZoomLimit(this)},onRemove:function(o){this._removeAllTiles(),rt(this._container),o._removeZoomLimit(this),this._container=null,this._tileZoom=void 0},bringToFront:function(){return this._map&&(Oi(this._container),this._setAutoZIndex(Math.max)),this},bringToBack:function(){return this._map&&(Re(this._container),this._setAutoZIndex(Math.min)),this},getContainer:function(){return this._container},setOpacity:function(o){return this.options.opacity=o,this._updateOpacity(),this},setZIndex:function(o){return this.options.zIndex=o,this._updateZIndex(),this},isLoading:function(){return this._loading},redraw:function(){if(this._map){this._removeAllTiles();var o=this._clampZoom(this._map.getZoom());o!==this._tileZoom&&(this._tileZoom=o,this._updateLevels()),this._update()}return this},getEvents:function(){var o={viewprereset:this._invalidateAll,viewreset:this._resetView,zoom:this._resetView,moveend:this._onMoveEnd};return this.options.updateWhenIdle||(this._onMove||(this._onMove=ea(this._onMoveEnd,this.options.updateInterval,this)),o.move=this._onMove),this._zoomAnimated&&(o.zoomanim=this._animateZoom),o},createTile:function(){return document.createElement("div")},getTileSize:function(){var o=this.options.tileSize;return o instanceof fe?o:new fe(o,o)},_updateZIndex:function(){this._container&&null!=this.options.zIndex&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(o){for(var _,u=this.getPane().children,h=-o(-1/0,1/0),p=0,m=u.length;pthis.options.maxZoom||hp&&this._retainParent(m,_,C,p))},_retainChildren:function(o,u,h,p){for(var m=2*o;m<2*o+2;m++)for(var _=2*u;_<2*u+2;_++){var C=new fe(m,_);C.z=h+1;var T=this._tileCoordsToKey(C),M=this._tiles[T];M&&M.active?M.retain=!0:(M&&M.loaded&&(M.retain=!0),h+1this.options.maxZoom||void 0!==this.options.minZoom&&m1)return void this._setView(o,h);for(var Ce=m.min.y;Ce<=m.max.y;Ce++)for(var Fe=m.min.x;Fe<=m.max.x;Fe++){var $e=new fe(Fe,Ce);if($e.z=this._tileZoom,this._isValidTile($e)){var Wi=this._tiles[this._tileCoordsToKey($e)];Wi?Wi.current=!0:C.push($e)}}if(C.sort(function(tt,Ta){return tt.distanceTo(_)-Ta.distanceTo(_)}),0!==C.length){this._loading||(this._loading=!0,this.fire("loading"));var so=document.createDocumentFragment();for(Fe=0;Feh.max.x)||!u.wrapLat&&(o.yh.max.y))return!1}if(!this.options.bounds)return!0;var p=this._tileCoordsToBounds(o);return Me(this.options.bounds).overlaps(p)},_keyToBounds:function(o){return this._tileCoordsToBounds(this._keyToTileCoords(o))},_tileCoordsToNwSe:function(o){var u=this._map,h=this.getTileSize(),p=o.scaleBy(h),m=p.add(h);return[u.unproject(p,o.z),u.unproject(m,o.z)]},_tileCoordsToBounds:function(o){var u=this._tileCoordsToNwSe(o),h=new ln(u[0],u[1]);return this.options.noWrap||(h=this._map.wrapLatLngBounds(h)),h},_tileCoordsToKey:function(o){return o.x+":"+o.y+":"+o.z},_keyToTileCoords:function(o){var u=o.split(":"),h=new fe(+u[0],+u[1]);return h.z=+u[2],h},_removeTile:function(o){var u=this._tiles[o];!u||(rt(u.el),delete this._tiles[o],this.fire("tileunload",{tile:u.el,coords:this._keyToTileCoords(o)}))},_initTile:function(o){we(o,"leaflet-tile");var u=this.getTileSize();o.style.width=u.x+"px",o.style.height=u.y+"px",o.onselectstart=nt,o.onmousemove=nt,J.ielt9&&this.options.opacity<1&&Vn(o,this.options.opacity)},_addTile:function(o,u){var h=this._getTilePos(o),p=this._tileCoordsToKey(o),m=this.createTile(this._wrapCoords(o),Ke(this._tileReady,this,o));this._initTile(m),this.createTile.length<2&&Ht(Ke(this._tileReady,this,o,null,m)),Oe(m,h),this._tiles[p]={el:m,coords:o,current:!0},u.appendChild(m),this.fire("tileloadstart",{tile:m,coords:o})},_tileReady:function(o,u,h){u&&this.fire("tileerror",{error:u,tile:h,coords:o});var p=this._tileCoordsToKey(o);(h=this._tiles[p])&&(h.loaded=+new Date,this._map._fadeAnimated?(Vn(h.el,0),xn(this._fadeFrame),this._fadeFrame=Ht(this._updateOpacity,this)):(h.active=!0,this._pruneTiles()),u||(we(h.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:h.el,coords:o})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),J.ielt9||!this._map._fadeAnimated?Ht(this._pruneTiles,this):setTimeout(Ke(this._pruneTiles,this),250)))},_getTilePos:function(o){return o.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(o){var u=new fe(this._wrapX?br(o.x,this._wrapX):o.x,this._wrapY?br(o.y,this._wrapY):o.y);return u.z=o.z,u},_pxBoundsToTileRange:function(o){var u=this.getTileSize();return new pt(o.min.unscaleBy(u).floor(),o.max.unscaleBy(u).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var o in this._tiles)if(!this._tiles[o].loaded)return!1;return!0}});var cs=no.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(o,u){this._url=o,(u=ft(this,u)).detectRetina&&J.retina&&u.maxZoom>0&&(u.tileSize=Math.floor(u.tileSize/2),u.zoomReverse?(u.zoomOffset--,u.minZoom++):(u.zoomOffset++,u.maxZoom--),u.minZoom=Math.max(0,u.minZoom)),"string"==typeof u.subdomains&&(u.subdomains=u.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(o,u){return this._url===o&&void 0===u&&(u=!0),this._url=o,u||this.redraw(),this},createTile:function(o,u){var h=document.createElement("img");return De(h,"load",Ke(this._tileOnLoad,this,u,h)),De(h,"error",Ke(this._tileOnError,this,u,h)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(h.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),"string"==typeof this.options.referrerPolicy&&(h.referrerPolicy=this.options.referrerPolicy),h.alt="",h.setAttribute("role","presentation"),h.src=this.getTileUrl(o),h},getTileUrl:function(o){var u={r:J.retina?"@2x":"",s:this._getSubdomain(o),x:o.x,y:o.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var h=this._globalTileRange.max.y-o.y;this.options.tms&&(u.y=h),u["-y"]=h}return ks(this._url,Ye(u,this.options))},_tileOnLoad:function(o,u){J.ielt9?setTimeout(Ke(o,this,null,u),0):o(null,u)},_tileOnError:function(o,u,h){var p=this.options.errorTileUrl;p&&u.getAttribute("src")!==p&&(u.src=p),o(h,u)},_onTileRemove:function(o){o.tile.onload=null},_getZoomForUrl:function(){var o=this._tileZoom;return this.options.zoomReverse&&(o=this.options.maxZoom-o),o+this.options.zoomOffset},_getSubdomain:function(o){var u=Math.abs(o.x+o.y)%this.options.subdomains.length;return this.options.subdomains[u]},_abortLoading:function(){var o,u;for(o in this._tiles)if(this._tiles[o].coords.z!==this._tileZoom&&((u=this._tiles[o].el).onload=nt,u.onerror=nt,!u.complete)){u.src=Rs;var h=this._tiles[o].coords;rt(u),delete this._tiles[o],this.fire("tileabort",{tile:u,coords:h})}},_removeTile:function(o){var u=this._tiles[o];if(u)return u.el.setAttribute("src",Rs),no.prototype._removeTile.call(this,o)},_tileReady:function(o,u,h){if(this._map&&(!h||h.getAttribute("src")!==Rs))return no.prototype._tileReady.call(this,o,u,h)}});function oh(o,u){return new cs(o,u)}var ah=cs.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(o,u){this._url=o;var h=Ye({},this.defaultWmsParams);for(var p in u)p in this.options||(h[p]=u[p]);var m=(u=ft(this,u)).detectRetina&&J.retina?2:1,_=this.getTileSize();h.width=_.x*m,h.height=_.y*m,this.wmsParams=h},onAdd:function(o){this._crs=this.options.crs||o.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version),this.wmsParams[this._wmsVersion>=1.3?"crs":"srs"]=this._crs.code,cs.prototype.onAdd.call(this,o)},getTileUrl:function(o){var u=this._tileCoordsToNwSe(o),h=this._crs,p=Bn(h.project(u[0]),h.project(u[1])),m=p.min,_=p.max,C=(this._wmsVersion>=1.3&&this._crs===ct?[m.y,m.x,_.y,_.x]:[m.x,m.y,_.x,_.y]).join(","),T=cs.prototype.getTileUrl.call(this,o);return T+Yl(this.wmsParams,T,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+C},setParams:function(o,u){return Ye(this.wmsParams,o),u||this.redraw(),this}});cs.WMS=ah,oh.wms=function bm(o,u){return new ah(o,u)};var Ui=Rt.extend({options:{padding:.1},initialize:function(o){ft(this,o),Be(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&we(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var o={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(o.zoomanim=this._onAnimZoom),o},_onAnimZoom:function(o){this._updateTransform(o.center,o.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(o,u){var h=this._map.getZoomScale(u,this._zoom),p=this._map.getSize().multiplyBy(.5+this.options.padding),m=this._map.project(this._center,u),_=p.multiplyBy(-h).add(m).subtract(this._map._getNewPixelOrigin(o,u));J.any3d?se(this._container,_,h):Oe(this._container,_)},_reset:function(){for(var o in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[o]._reset()},_onZoomEnd:function(){for(var o in this._layers)this._layers[o]._project()},_updatePaths:function(){for(var o in this._layers)this._layers[o]._update()},_update:function(){var o=this.options.padding,u=this._map.getSize(),h=this._map.containerPointToLayerPoint(u.multiplyBy(-o)).round();this._bounds=new pt(h,h.add(u.multiplyBy(1+2*o)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),lh=Ui.extend({options:{tolerance:0},getEvents:function(){var o=Ui.prototype.getEvents.call(this);return o.viewprereset=this._onViewPreReset,o},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){Ui.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var o=this._container=document.createElement("canvas");De(o,"mousemove",this._onMouseMove,this),De(o,"click dblclick mousedown mouseup contextmenu",this._onClick,this),De(o,"mouseout",this._handleMouseOut,this),o._leaflet_disable_events=!0,this._ctx=o.getContext("2d")},_destroyContainer:function(){xn(this._redrawRequest),delete this._ctx,rt(this._container),st(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var u in this._redrawBounds=null,this._layers)this._layers[u]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){Ui.prototype._update.call(this);var o=this._bounds,u=this._container,h=o.getSize(),p=J.retina?2:1;Oe(u,o.min),u.width=p*h.x,u.height=p*h.y,u.style.width=h.x+"px",u.style.height=h.y+"px",J.retina&&this._ctx.scale(2,2),this._ctx.translate(-o.min.x,-o.min.y),this.fire("update")}},_reset:function(){Ui.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(o){this._updateDashArray(o),this._layers[Be(o)]=o;var u=o._order={layer:o,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=u),this._drawLast=u,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(o){this._requestRedraw(o)},_removePath:function(o){var u=o._order,h=u.next,p=u.prev;h?h.prev=p:this._drawLast=p,p?p.next=h:this._drawFirst=h,delete o._order,delete this._layers[Be(o)],this._requestRedraw(o)},_updatePath:function(o){this._extendRedrawBounds(o),o._project(),o._update(),this._requestRedraw(o)},_updateStyle:function(o){this._updateDashArray(o),this._requestRedraw(o)},_updateDashArray:function(o){if("string"==typeof o.options.dashArray){var p,m,u=o.options.dashArray.split(/[, ]+/),h=[];for(m=0;m')}}catch{}return function(o){return document.createElement("<"+o+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),Em={_initContainer:function(){this._container=_e("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(Ui.prototype._update.call(this),this.fire("update"))},_initPath:function(o){var u=o._container=io("shape");we(u,"leaflet-vml-shape "+(this.options.className||"")),u.coordsize="1 1",o._path=io("path"),u.appendChild(o._path),this._updateStyle(o),this._layers[Be(o)]=o},_addPath:function(o){var u=o._container;this._container.appendChild(u),o.options.interactive&&o.addInteractiveTarget(u)},_removePath:function(o){var u=o._container;rt(u),o.removeInteractiveTarget(u),delete this._layers[Be(o)]},_updateStyle:function(o){var u=o._stroke,h=o._fill,p=o.options,m=o._container;m.stroked=!!p.stroke,m.filled=!!p.fill,p.stroke?(u||(u=o._stroke=io("stroke")),m.appendChild(u),u.weight=p.weight+"px",u.color=p.color,u.opacity=p.opacity,u.dashStyle=p.dashArray?Yt(p.dashArray)?p.dashArray.join(" "):p.dashArray.replace(/( *, *)/g," "):"",u.endcap=p.lineCap.replace("butt","flat"),u.joinstyle=p.lineJoin):u&&(m.removeChild(u),o._stroke=null),p.fill?(h||(h=o._fill=io("fill")),m.appendChild(h),h.color=p.fillColor||p.color,h.opacity=p.fillOpacity):h&&(m.removeChild(h),o._fill=null)},_updateCircle:function(o){var u=o._point.round(),h=Math.round(o._radius),p=Math.round(o._radiusY||h);this._setPath(o,o._empty()?"M0 0":"AL "+u.x+","+u.y+" "+h+","+p+" 0,23592600")},_setPath:function(o,u){o._path.v=u},_bringToFront:function(o){Oi(o._container)},_bringToBack:function(o){Re(o._container)}},Ca=J.vml?io:Nd,Lr=Ui.extend({_initContainer:function(){this._container=Ca("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=Ca("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){rt(this._container),st(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!this._map._animatingZoom||!this._bounds){Ui.prototype._update.call(this);var o=this._bounds,u=o.getSize(),h=this._container;(!this._svgSize||!this._svgSize.equals(u))&&(this._svgSize=u,h.setAttribute("width",u.x),h.setAttribute("height",u.y)),Oe(h,o.min),h.setAttribute("viewBox",[o.min.x,o.min.y,u.x,u.y].join(" ")),this.fire("update")}},_initPath:function(o){var u=o._path=Ca("path");o.options.className&&we(u,o.options.className),o.options.interactive&&we(u,"leaflet-interactive"),this._updateStyle(o),this._layers[Be(o)]=o},_addPath:function(o){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(o._path),o.addInteractiveTarget(o._path)},_removePath:function(o){rt(o._path),o.removeInteractiveTarget(o._path),delete this._layers[Be(o)]},_updatePath:function(o){o._project(),o._update()},_updateStyle:function(o){var u=o._path,h=o.options;!u||(h.stroke?(u.setAttribute("stroke",h.color),u.setAttribute("stroke-opacity",h.opacity),u.setAttribute("stroke-width",h.weight),u.setAttribute("stroke-linecap",h.lineCap),u.setAttribute("stroke-linejoin",h.lineJoin),h.dashArray?u.setAttribute("stroke-dasharray",h.dashArray):u.removeAttribute("stroke-dasharray"),h.dashOffset?u.setAttribute("stroke-dashoffset",h.dashOffset):u.removeAttribute("stroke-dashoffset")):u.setAttribute("stroke","none"),h.fill?(u.setAttribute("fill",h.fillColor||h.color),u.setAttribute("fill-opacity",h.fillOpacity),u.setAttribute("fill-rule",h.fillRule||"evenodd")):u.setAttribute("fill","none"))},_updatePoly:function(o,u){this._setPath(o,Ld(o._parts,u))},_updateCircle:function(o){var u=o._point,h=Math.max(Math.round(o._radius),1),m="a"+h+","+(Math.max(Math.round(o._radiusY),1)||h)+" 0 1,0 ",_=o._empty()?"M0 0":"M"+(u.x-h)+","+u.y+m+2*h+",0 "+m+2*-h+",0 ";this._setPath(o,_)},_setPath:function(o,u){o._path.setAttribute("d",u)},_bringToFront:function(o){Oi(o._path)},_bringToBack:function(o){Re(o._path)}});function ro(o){return J.svg||J.vml?new Lr(o):null}J.vml&&Lr.include(Em),Ae.include({getRenderer:function(o){var u=o.options.renderer||this._getPaneRenderer(o.options.pane)||this.options.renderer||this._renderer;return u||(u=this._renderer=this._createRenderer()),this.hasLayer(u)||this.addLayer(u),u},_getPaneRenderer:function(o){if("overlayPane"===o||void 0===o)return!1;var u=this._paneRenderers[o];return void 0===u&&(u=this._createRenderer({pane:o}),this._paneRenderers[o]=u),u},_createRenderer:function(o){return this.options.preferCanvas&&uh(o)||ro(o)}});var ch=Wn.extend({initialize:function(o,u){Wn.prototype.initialize.call(this,this._boundsToLatLngs(o),u)},setBounds:function(o){return this.setLatLngs(this._boundsToLatLngs(o))},_boundsToLatLngs:function(o){return[(o=Me(o)).getSouthWest(),o.getNorthWest(),o.getNorthEast(),o.getSouthEast()]}});Lr.create=Ca,Lr.pointsToPath=Ld,yn.geometryToLayer=Bi,yn.coordsToLatLng=Je,yn.coordsToLatLngs=Qs,yn.latLngToCoords=wa,yn.latLngsToCoords=lr,yn.getFeature=Hi,yn.asFeature=Vi,Ae.mergeOptions({boxZoom:!0});var dh=ni.extend({initialize:function(o){this._map=o,this._container=o._container,this._pane=o._panes.overlayPane,this._resetStateTimeout=0,o.on("unload",this._destroy,this)},addHooks:function(){De(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){st(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){rt(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(o){if(!o.shiftKey||1!==o.which&&1!==o.button)return!1;this._clearDeferredResetState(),this._resetState(),Vs(),mu(),this._startPoint=this._map.mouseEventToContainerPoint(o),De(document,{contextmenu:yi,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(o){this._moved||(this._moved=!0,this._box=_e("div","leaflet-zoom-box",this._container),we(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(o);var u=new pt(this._point,this._startPoint),h=u.getSize();Oe(this._box,u.min),this._box.style.width=h.x+"px",this._box.style.height=h.y+"px"},_finish:function(){this._moved&&(rt(this._box),vt(this._container,"leaflet-crosshair")),js(),fa(),st(document,{contextmenu:yi,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(o){if((1===o.which||1===o.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(Ke(this._resetState,this),0);var u=new ln(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(u).fire("boxzoomend",{boxZoomBounds:u})}},_onKeyDown:function(o){27===o.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});Ae.addInitHook("addHandler","boxZoom",dh),Ae.mergeOptions({doubleClickZoom:!0});var zi=ni.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(o){var u=this._map,h=u.getZoom(),p=u.options.zoomDelta,m=o.originalEvent.shiftKey?h-p:h+p;"center"===u.options.doubleClickZoom?u.setZoom(m):u.setZoomAround(o.containerPoint,m)}});Ae.addInitHook("addHandler","doubleClickZoom",zi),Ae.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var Sa=ni.extend({addHooks:function(){if(!this._draggable){var o=this._map;this._draggable=new or(o._mapPane,o._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),o.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),o.on("zoomend",this._onZoomEnd,this),o.whenReady(this._onZoomEnd,this))}we(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){vt(this._map._container,"leaflet-grab"),vt(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var o=this._map;if(o._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var u=Me(this._map.options.maxBounds);this._offsetLimit=Bn(this._map.latLngToContainerPoint(u.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(u.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;o.fire("movestart").fire("dragstart"),o.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(o){if(this._map.options.inertia){var u=this._lastTime=+new Date,h=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(h),this._times.push(u),this._prunePositions(u)}this._map.fire("move",o).fire("drag",o)},_prunePositions:function(o){for(;this._positions.length>1&&o-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var o=this._map.getSize().divideBy(2),u=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=u.subtract(o).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(o,u){return o-(o-u)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var o=this._draggable._newPos.subtract(this._draggable._startPos),u=this._offsetLimit;o.xu.max.x&&(o.x=this._viscousLimit(o.x,u.max.x)),o.y>u.max.y&&(o.y=this._viscousLimit(o.y,u.max.y)),this._draggable._newPos=this._draggable._startPos.add(o)}},_onPreDragWrap:function(){var o=this._worldWidth,u=Math.round(o/2),h=this._initialWorldOffset,p=this._draggable._newPos.x,m=(p-u+h)%o+u-h,_=(p+u+h)%o-u-h,C=Math.abs(m+h)0?_:-_))-u;this._delta=0,this._startTime=null,C&&("center"===o.options.scrollWheelZoom?o.setZoom(u+C):o.setZoomAround(this._lastMousePos,u+C))}});Ae.addInitHook("addHandler","scrollWheelZoom",ba);Ae.mergeOptions({tapHold:J.touchNative&&J.safari&&J.mobile,tapTolerance:15});var Pu=ni.extend({addHooks:function(){De(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){st(this._map._container,"touchstart",this._onDown,this)},_onDown:function(o){if(clearTimeout(this._holdTimeout),1===o.touches.length){var u=o.touches[0];this._startPos=this._newPos=new fe(u.clientX,u.clientY),this._holdTimeout=setTimeout(Ke(function(){this._cancel(),this._isTapValid()&&(De(document,"touchend",Le),De(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",u))},this),600),De(document,"touchend touchcancel contextmenu",this._cancel,this),De(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function o(){st(document,"touchend",Le),st(document,"touchend touchcancel",o)},_cancel:function(){clearTimeout(this._holdTimeout),st(document,"touchend touchcancel contextmenu",this._cancel,this),st(document,"touchmove",this._onMove,this)},_onMove:function(o){var u=o.touches[0];this._newPos=new fe(u.clientX,u.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(o,u){var h=new MouseEvent(o,{bubbles:!0,cancelable:!0,view:window,screenX:u.screenX,screenY:u.screenY,clientX:u.clientX,clientY:u.clientY});h._simulated=!0,u.target.dispatchEvent(h)}});Ae.addInitHook("addHandler","tapHold",Pu),Ae.mergeOptions({touchZoom:J.touch,bounceAtZoomLimits:!0});var Ea=ni.extend({addHooks:function(){we(this._map._container,"leaflet-touch-zoom"),De(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){vt(this._map._container,"leaflet-touch-zoom"),st(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(o){var u=this._map;if(o.touches&&2===o.touches.length&&!u._animatingZoom&&!this._zooming){var h=u.mouseEventToContainerPoint(o.touches[0]),p=u.mouseEventToContainerPoint(o.touches[1]);this._centerPoint=u.getSize()._divideBy(2),this._startLatLng=u.containerPointToLatLng(this._centerPoint),"center"!==u.options.touchZoom&&(this._pinchStartLatLng=u.containerPointToLatLng(h.add(p)._divideBy(2))),this._startDist=h.distanceTo(p),this._startZoom=u.getZoom(),this._moved=!1,this._zooming=!0,u._stop(),De(document,"touchmove",this._onTouchMove,this),De(document,"touchend touchcancel",this._onTouchEnd,this),Le(o)}},_onTouchMove:function(o){if(o.touches&&2===o.touches.length&&this._zooming){var u=this._map,h=u.mouseEventToContainerPoint(o.touches[0]),p=u.mouseEventToContainerPoint(o.touches[1]),m=h.distanceTo(p)/this._startDist;if(this._zoom=u.getScaleZoom(m,this._startZoom),!u.options.bounceAtZoomLimits&&(this._zoomu.getMaxZoom()&&m>1)&&(this._zoom=u._limitZoom(this._zoom)),"center"===u.options.touchZoom){if(this._center=this._startLatLng,1===m)return}else{var _=h._add(p)._divideBy(2)._subtract(this._centerPoint);if(1===m&&0===_.x&&0===_.y)return;this._center=u.unproject(u.project(this._pinchStartLatLng,this._zoom).subtract(_),this._zoom)}this._moved||(u._moveStart(!0,!1),this._moved=!0),xn(this._animRequest);var C=Ke(u._move,u,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=Ht(C,this,!0),Le(o)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,xn(this._animRequest),st(document,"touchmove",this._onTouchMove,this),st(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});Ae.addInitHook("addHandler","touchZoom",Ea),Ae.BoxZoom=dh,Ae.DoubleClickZoom=zi,Ae.Drag=Sa,Ae.Keyboard=ri,Ae.ScrollWheelZoom=ba,Ae.TapHold=Pu,Ae.TouchZoom=Ea,B.Bounds=pt,B.Browser=J,B.CRS=ut,B.Canvas=lh,B.Circle=me,B.CircleMarker=Fi,B.Class=mi,B.Control=ie,B.DivIcon=sh,B.DivOverlay=Tt,B.DomEvent=Ws,B.DomUtil=Jd,B.Draggable=or,B.Evented=Ns,B.FeatureGroup=jt,B.GeoJSON=yn,B.GridLayer=no,B.Handler=ni,B.Icon=ge,B.ImageOverlay=Xs,B.LatLng=Qe,B.LatLngBounds=ln,B.Layer=Rt,B.LayerGroup=kn,B.LineUtil=Tu,B.Map=Ae,B.Marker=Ct,B.Mixin=nh,B.Path=Xe,B.Point=fe,B.PolyUtil=Mu,B.Polygon=Wn,B.Polyline=cn,B.Popup=eo,B.PosAnimation=$s,B.Projection=Iu,B.Rectangle=ch,B.Renderer=Ui,B.SVG=Lr,B.SVGOverlay=us,B.TileLayer=cs,B.Tooltip=to,B.Transformation=ts,B.Util=na,B.VideoOverlay=Nn,B.bind=Ke,B.bounds=Bn,B.canvas=uh,B.circle=function Ks(o,u,h){return new me(o,u,h)},B.circleMarker=function Or(o,u){return new Fi(o,u)},B.control=sr,B.divIcon=function Cm(o){return new sh(o)},B.extend=Ye,B.featureGroup=function(o,u){return new jt(o,u)},B.geoJSON=ji,B.geoJson=Qt,B.gridLayer=function Sm(o){return new no(o)},B.icon=function dt(o){return new ge(o)},B.imageOverlay=function(o,u,h){return new Xs(o,u,h)},B.latLng=gt,B.latLngBounds=Me,B.layerGroup=function(o,u){return new kn(o,u)},B.map=function th(o,u){return new Ae(o,u)},B.marker=function ar(o,u){return new Ct(o,u)},B.point=Te,B.polygon=function dn(o,u){return new Wn(o,u)},B.polyline=function _a(o,u){return new cn(o,u)},B.popup=function(o,u){return new eo(o,u)},B.rectangle=function Tm(o,u){return new ch(o,u)},B.setOptions=ft,B.stamp=Be,B.svg=ro,B.svgOverlay=function Js(o,u,h){return new us(o,u,h)},B.tileLayer=oh,B.tooltip=function(o,u){return new to(o,u)},B.transformation=Ls,B.version="1.8.0",B.videoOverlay=function Da(o,u,h){return new Nn(o,u,h)};var Au=window.L;B.noConflict=function(){return window.L=Au,this},window.L=B}(ql)}},Zl=>{Zl(Zl.s=860)}]); \ No newline at end of file diff --git a/Web/Resgrid.Web/wwwroot/js/ng/main.js b/Web/Resgrid.Web/wwwroot/js/ng/main.js deleted file mode 100644 index b4bb7a0f7..000000000 --- a/Web/Resgrid.Web/wwwroot/js/ng/main.js +++ /dev/null @@ -1,1371 +0,0 @@ -"use strict"; -(self["webpackChunkApps"] = self["webpackChunkApps"] || []).push([["main"],{ - -/***/ 92: -/*!**********************************!*\ - !*** ./src/app/app.component.ts ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AppComponent: () => (/* binding */ AppComponent) -/* harmony export */ }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 7580); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common */ 316); - - -function AppComponent_pre_116_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "pre"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](1, "ng generate component xyz"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - } -} -function AppComponent_pre_117_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "pre"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](1, "ng add angular/material"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - } -} -function AppComponent_pre_118_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "pre"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](1, "ng add angular/pwa"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - } -} -function AppComponent_pre_119_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "pre"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](1, "ng add _____"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - } -} -function AppComponent_pre_120_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "pre"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](1, "ng test"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - } -} -function AppComponent_pre_121_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "pre"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](1, "ng build"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - } -} -class AppComponent { - constructor() { - this.title = 'Apps'; - } - static { - this.ɵfac = function AppComponent_Factory(t) { - return new (t || AppComponent)(); - }; - } - static { - this.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ - type: AppComponent, - selectors: [["ng-component"]], - decls: 151, - vars: 7, - consts: [["role", "banner", 1, "toolbar"], ["width", "40", "alt", "Angular Logo", "src", "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg=="], [1, "spacer"], ["aria-label", "Angular on twitter", "target", "_blank", "rel", "noopener", "href", "https://twitter.com/angular", "title", "Twitter"], ["id", "twitter-logo", "height", "24", "data-name", "Logo", "xmlns", "http://www.w3.org/2000/svg", "viewBox", "0 0 400 400"], ["width", "400", "height", "400", "fill", "none"], ["d", "M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23", "fill", "#fff"], ["aria-label", "Angular on YouTube", "target", "_blank", "rel", "noopener", "href", "https://youtube.com/angular", "title", "YouTube"], ["id", "youtube-logo", "height", "24", "width", "24", "data-name", "Logo", "xmlns", "http://www.w3.org/2000/svg", "viewBox", "0 0 24 24", "fill", "#fff"], ["d", "M0 0h24v24H0V0z", "fill", "none"], ["d", "M21.58 7.19c-.23-.86-.91-1.54-1.77-1.77C18.25 5 12 5 12 5s-6.25 0-7.81.42c-.86.23-1.54.91-1.77 1.77C2 8.75 2 12 2 12s0 3.25.42 4.81c.23.86.91 1.54 1.77 1.77C5.75 19 12 19 12 19s6.25 0 7.81-.42c.86-.23 1.54-.91 1.77-1.77C22 15.25 22 12 22 12s0-3.25-.42-4.81zM10 15V9l5.2 3-5.2 3z"], ["role", "main", 1, "content"], [1, "card", "highlight-card", "card-small"], ["id", "rocket", "xmlns", "http://www.w3.org/2000/svg", "width", "101.678", "height", "101.678", "viewBox", "0 0 101.678 101.678"], ["id", "Group_83", "data-name", "Group 83", "transform", "translate(-141 -696)"], ["id", "Ellipse_8", "data-name", "Ellipse 8", "cx", "50.839", "cy", "50.839", "r", "50.839", "transform", "translate(141 696)", "fill", "#dd0031"], ["id", "Group_47", "data-name", "Group 47", "transform", "translate(165.185 720.185)"], ["id", "Path_33", "data-name", "Path 33", "d", "M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z", "transform", "translate(0.371 3.363)", "fill", "#fff"], ["id", "Path_34", "data-name", "Path 34", "d", "M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z", "transform", "translate(0 0.005)", "fill", "#fff"], ["id", "rocket-smoke", "xmlns", "http://www.w3.org/2000/svg", "width", "516.119", "height", "1083.632", "viewBox", "0 0 516.119 1083.632"], ["id", "Path_40", "data-name", "Path 40", "d", "M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z", "transform", "translate(-147.025 -140.939)", "fill", "#f5f5f5"], [1, "card-container"], ["target", "_blank", "rel", "noopener", "href", "https://angular.io/tutorial", 1, "card"], ["xmlns", "http://www.w3.org/2000/svg", "width", "24", "height", "24", "viewBox", "0 0 24 24", 1, "material-icons"], ["d", "M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z"], ["d", "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"], ["target", "_blank", "rel", "noopener", "href", "https://angular.io/cli", 1, "card"], ["d", "M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"], ["target", "_blank", "rel", "noopener", "href", "https://material.angular.io", 1, "card"], ["xmlns", "http://www.w3.org/2000/svg", "width", "21.813", "height", "23.453", "viewBox", "0 0 179.2 192.7", 2, "margin-right", "8px"], ["fill", "#ffa726", "d", "M89.4 0 0 32l13.5 118.4 75.9 42.3 76-42.3L179.2 32 89.4 0z"], ["fill", "#fb8c00", "d", "M89.4 0v192.7l76-42.3L179.2 32 89.4 0z"], ["fill", "#ffe0b2", "d", "m102.9 146.3-63.3-30.5 36.3-22.4 63.7 30.6-36.7 22.3z"], ["fill", "#fff3e0", "d", "M102.9 122.8 39.6 92.2l36.3-22.3 63.7 30.6-36.7 22.3z"], ["fill", "#fff", "d", "M102.9 99.3 39.6 68.7l36.3-22.4 63.7 30.6-36.7 22.4z"], ["target", "_blank", "rel", "noopener", "href", "https://blog.angular.io/", 1, "card"], ["d", "M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z"], ["target", "_blank", "rel", "noopener", "href", "https://angular.io/devtools/", 1, "card"], ["xmlns", "http://www.w3.org/2000/svg", "enable-background", "new 0 0 24 24", "height", "24px", "viewBox", "0 0 24 24", "width", "24px", "fill", "#000000", 1, "material-icons"], ["fill", "none", "height", "24", "width", "24"], ["d", "M14.73,13.31C15.52,12.24,16,10.93,16,9.5C16,5.91,13.09,3,9.5,3S3,5.91,3,9.5C3,13.09,5.91,16,9.5,16 c1.43,0,2.74-0.48,3.81-1.27L19.59,21L21,19.59L14.73,13.31z M9.5,14C7.01,14,5,11.99,5,9.5S7.01,5,9.5,5S14,7.01,14,9.5 S11.99,14,9.5,14z"], ["points", "10.29,8.44 9.5,6 8.71,8.44 6.25,8.44 8.26,10.03 7.49,12.5 9.5,10.97 11.51,12.5 10.74,10.03 12.75,8.44"], ["type", "hidden"], ["selection", ""], ["tabindex", "0", 1, "card", "card-small", 3, "click"], ["d", "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"], [1, "terminal", 3, "ngSwitch"], [4, "ngSwitchDefault"], [4, "ngSwitchCase"], ["title", "Find a Local Meetup", "href", "https://www.meetup.com/find/?keywords=angular", "target", "_blank", "rel", "noopener", 1, "circle-link"], ["xmlns", "http://www.w3.org/2000/svg", "width", "24.607", "height", "23.447", "viewBox", "0 0 24.607 23.447"], ["id", "logo--mSwarm", "d", "M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z", "transform", "translate(0 0.123)", "fill", "#f64060"], ["title", "Join the Conversation on Discord", "href", "https://discord.gg/angular", "target", "_blank", "rel", "noopener", 1, "circle-link"], ["xmlns", "http://www.w3.org/2000/svg", "width", "26", "height", "26", "viewBox", "0 0 245 240"], ["d", "M104.4 103.9c-5.7 0-10.2 5-10.2 11.1s4.6 11.1 10.2 11.1c5.7 0 10.2-5 10.2-11.1.1-6.1-4.5-11.1-10.2-11.1zM140.9 103.9c-5.7 0-10.2 5-10.2 11.1s4.6 11.1 10.2 11.1c5.7 0 10.2-5 10.2-11.1s-4.5-11.1-10.2-11.1z"], ["d", "M189.5 20h-134C44.2 20 35 29.2 35 40.6v135.2c0 11.4 9.2 20.6 20.5 20.6h113.4l-5.3-18.5 12.8 11.9 12.1 11.2 21.5 19V40.6c0-11.4-9.2-20.6-20.5-20.6zm-38.6 130.6s-3.6-4.3-6.6-8.1c13.1-3.7 18.1-11.9 18.1-11.9-4.1 2.7-8 4.6-11.5 5.9-5 2.1-9.8 3.5-14.5 4.3-9.6 1.8-18.4 1.3-25.9-.1-5.7-1.1-10.6-2.7-14.7-4.3-2.3-.9-4.8-2-7.3-3.4-.3-.2-.6-.3-.9-.5-.2-.1-.3-.2-.4-.3-1.8-1-2.8-1.7-2.8-1.7s4.8 8 17.5 11.8c-3 3.8-6.7 8.3-6.7 8.3-22.1-.7-30.5-15.2-30.5-15.2 0-32.2 14.4-58.3 14.4-58.3 14.4-10.8 28.1-10.5 28.1-10.5l1 1.2c-18 5.2-26.3 13.1-26.3 13.1s2.2-1.2 5.9-2.9c10.7-4.7 19.2-6 22.7-6.3.6-.1 1.1-.2 1.7-.2 6.1-.8 13-1 20.2-.2 9.5 1.1 19.7 3.9 30.1 9.6 0 0-7.9-7.5-24.9-12.7l1.4-1.6s13.7-.3 28.1 10.5c0 0 14.4 26.1 14.4 58.3 0 0-8.5 14.5-30.6 15.2z"], ["href", "https://github.com/angular/angular", "target", "_blank", "rel", "noopener"], [1, "github-star-badge"], ["d", "M0 0h24v24H0z", "fill", "none"], ["d", "M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"], ["d", "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z", "fill", "#1976d2"], ["id", "clouds", "xmlns", "http://www.w3.org/2000/svg", "width", "2611.084", "height", "485.677", "viewBox", "0 0 2611.084 485.677"], ["id", "Path_39", "data-name", "Path 39", "d", "M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z", "transform", "translate(142.69 -634.312)", "fill", "#eee"]], - template: function AppComponent_Template(rf, ctx) { - if (rf & 1) { - const _r7 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](1, "img", 1); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](3, "Welcome"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](4, "div", 2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](5, "a", 3); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](6, "svg", 4); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](7, "rect", 5)(8, "path", 6); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](9, "a", 7); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](10, "svg", 8); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](11, "path", 9)(12, "path", 10); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](13, "div", 11)(14, "div", 12); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](15, "svg", 13)(16, "title"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](17, "Rocket Ship"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](18, "g", 14); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](19, "circle", 15); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](20, "g", 16); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](21, "path", 17)(22, "path", 18); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](23, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](24); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](25, "svg", 19)(26, "title"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](27, "Rocket Ship Smoke"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](28, "path", 20); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](29, "h2"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](30, "Resources"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](31, "p"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](32, "Here are some links to help you get started:"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](33, "div", 21)(34, "a", 22); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](35, "svg", 23); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](36, "path", 24); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](37, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](38, "Learn Angular"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](39, "svg", 23); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](40, "path", 25); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](41, "a", 26); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](42, "svg", 23); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](43, "path", 27); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](44, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](45, "CLI Documentation"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](46, "svg", 23); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](47, "path", 25); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](48, "a", 28); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](49, "svg", 29); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](50, "path", 30)(51, "path", 31)(52, "path", 32)(53, "path", 33)(54, "path", 34); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](55, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](56, "Angular Material"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](57, "svg", 23); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](58, "path", 25); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](59, "a", 35); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](60, "svg", 23); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](61, "path", 36); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](62, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](63, "Angular Blog"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](64, "svg", 23); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](65, "path", 25); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](66, "a", 37); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](67, "svg", 38)(68, "g"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](69, "rect", 39); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](70, "g")(71, "g"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](72, "path", 40)(73, "polygon", 41); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](74, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](75, "Angular DevTools"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](76, "svg", 23); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](77, "path", 25); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](78, "h2"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](79, "Next Steps"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](80, "p"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](81, "What do you want to do next with your app?"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](82, "input", 42, 43); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](84, "div", 21)(85, "button", 44); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function AppComponent_Template_button_click_85_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r7); - const _r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](83); - return _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵresetView"](_r0.value = "component"); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](86, "svg", 23); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](87, "path", 45); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](88, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](89, "New Component"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](90, "button", 44); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function AppComponent_Template_button_click_90_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r7); - const _r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](83); - return _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵresetView"](_r0.value = "material"); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](91, "svg", 23); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](92, "path", 45); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](93, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](94, "Angular Material"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](95, "button", 44); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function AppComponent_Template_button_click_95_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r7); - const _r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](83); - return _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵresetView"](_r0.value = "pwa"); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](96, "svg", 23); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](97, "path", 45); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](98, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](99, "Add PWA Support"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](100, "button", 44); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function AppComponent_Template_button_click_100_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r7); - const _r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](83); - return _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵresetView"](_r0.value = "dependency"); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](101, "svg", 23); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](102, "path", 45); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](103, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](104, "Add Dependency"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](105, "button", 44); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function AppComponent_Template_button_click_105_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r7); - const _r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](83); - return _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵresetView"](_r0.value = "test"); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](106, "svg", 23); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](107, "path", 45); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](108, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](109, "Run and Watch Tests"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](110, "button", 44); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function AppComponent_Template_button_click_110_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r7); - const _r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](83); - return _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵresetView"](_r0.value = "build"); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](111, "svg", 23); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](112, "path", 45); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](113, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](114, "Build for Production"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](115, "div", 46); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](116, AppComponent_pre_116_Template, 2, 0, "pre", 47)(117, AppComponent_pre_117_Template, 2, 0, "pre", 48)(118, AppComponent_pre_118_Template, 2, 0, "pre", 48)(119, AppComponent_pre_119_Template, 2, 0, "pre", 48)(120, AppComponent_pre_120_Template, 2, 0, "pre", 48)(121, AppComponent_pre_121_Template, 2, 0, "pre", 48); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](122, "div", 21)(123, "a", 49); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](124, "svg", 50)(125, "title"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](126, "Meetup Logo"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](127, "path", 51); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](128, "a", 52); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](129, "svg", 53)(130, "title"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](131, "Discord Logo"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](132, "path", 54)(133, "path", 55); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](134, "footer"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](135, " Love Angular?\u00A0 "); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](136, "a", 56); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](137, " Give our repo a star. "); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](138, "div", 57); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](139, "svg", 23); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](140, "path", 58)(141, "path", 59); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](142, " Star "); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceHTML"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](143, "a", 56); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnamespaceSVG"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](144, "svg", 23); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](145, "path", 60)(146, "path", 58); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](147, "svg", 61)(148, "title"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](149, "Gray Clouds Background"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](150, "path", 62); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()(); - } - if (rf & 2) { - const _r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](83); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](24); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate1"]("", ctx.title, " app is running!"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](91); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngSwitch", _r0.value); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngSwitchCase", "material"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngSwitchCase", "pwa"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngSwitchCase", "dependency"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngSwitchCase", "test"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngSwitchCase", "build"); - } - }, - dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_1__.NgSwitch, _angular_common__WEBPACK_IMPORTED_MODULE_1__.NgSwitchCase, _angular_common__WEBPACK_IMPORTED_MODULE_1__.NgSwitchDefault], - styles: ["/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZVJvb3QiOiIifQ== */", "[_nghost-%COMP%] {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 14px;\n color: #333;\n box-sizing: border-box;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n\n h1[_ngcontent-%COMP%], h2[_ngcontent-%COMP%], h3[_ngcontent-%COMP%], h4[_ngcontent-%COMP%], h5[_ngcontent-%COMP%], h6[_ngcontent-%COMP%] {\n margin: 8px 0;\n }\n\n p[_ngcontent-%COMP%] {\n margin: 0;\n }\n\n .spacer[_ngcontent-%COMP%] {\n flex: 1;\n }\n\n .toolbar[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 60px;\n display: flex;\n align-items: center;\n background-color: #1976d2;\n color: white;\n font-weight: 600;\n }\n\n .toolbar[_ngcontent-%COMP%] img[_ngcontent-%COMP%] {\n margin: 0 16px;\n }\n\n .toolbar[_ngcontent-%COMP%] #twitter-logo[_ngcontent-%COMP%] {\n height: 40px;\n margin: 0 8px;\n }\n\n .toolbar[_ngcontent-%COMP%] #youtube-logo[_ngcontent-%COMP%] {\n height: 40px;\n margin: 0 16px;\n }\n\n .toolbar[_ngcontent-%COMP%] #twitter-logo[_ngcontent-%COMP%]:hover, .toolbar[_ngcontent-%COMP%] #youtube-logo[_ngcontent-%COMP%]:hover {\n opacity: 0.8;\n }\n\n .content[_ngcontent-%COMP%] {\n display: flex;\n margin: 82px auto 32px;\n padding: 0 16px;\n max-width: 960px;\n flex-direction: column;\n align-items: center;\n }\n\n svg.material-icons[_ngcontent-%COMP%] {\n height: 24px;\n width: auto;\n }\n\n svg.material-icons[_ngcontent-%COMP%]:not(:last-child) {\n margin-right: 8px;\n }\n\n .card[_ngcontent-%COMP%] svg.material-icons[_ngcontent-%COMP%] path[_ngcontent-%COMP%] {\n fill: #888;\n }\n\n .card-container[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n margin-top: 16px;\n }\n\n .card[_ngcontent-%COMP%] {\n all: unset;\n border-radius: 4px;\n border: 1px solid #eee;\n background-color: #fafafa;\n height: 40px;\n width: 200px;\n margin: 0 8px 16px;\n padding: 16px;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n transition: all 0.2s ease-in-out;\n line-height: 24px;\n }\n\n .card-container[_ngcontent-%COMP%] .card[_ngcontent-%COMP%]:not(:last-child) {\n margin-right: 0;\n }\n\n .card.card-small[_ngcontent-%COMP%] {\n height: 16px;\n width: 168px;\n }\n\n .card-container[_ngcontent-%COMP%] .card[_ngcontent-%COMP%]:not(.highlight-card) {\n cursor: pointer;\n }\n\n .card-container[_ngcontent-%COMP%] .card[_ngcontent-%COMP%]:not(.highlight-card):hover {\n transform: translateY(-3px);\n box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35);\n }\n\n .card-container[_ngcontent-%COMP%] .card[_ngcontent-%COMP%]:not(.highlight-card):hover .material-icons[_ngcontent-%COMP%] path[_ngcontent-%COMP%] {\n fill: rgb(105, 103, 103);\n }\n\n .card.highlight-card[_ngcontent-%COMP%] {\n background-color: #1976d2;\n color: white;\n font-weight: 600;\n border: none;\n width: auto;\n min-width: 30%;\n position: relative;\n }\n\n .card.card.highlight-card[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n margin-left: 60px;\n }\n\n svg#rocket[_ngcontent-%COMP%] {\n width: 80px;\n position: absolute;\n left: -10px;\n top: -24px;\n }\n\n svg#rocket-smoke[_ngcontent-%COMP%] {\n height: calc(100vh - 95px);\n position: absolute;\n top: 10px;\n right: 180px;\n z-index: -10;\n }\n\n a[_ngcontent-%COMP%], a[_ngcontent-%COMP%]:visited, a[_ngcontent-%COMP%]:hover {\n color: #1976d2;\n text-decoration: none;\n }\n\n a[_ngcontent-%COMP%]:hover {\n color: #125699;\n }\n\n .terminal[_ngcontent-%COMP%] {\n position: relative;\n width: 80%;\n max-width: 600px;\n border-radius: 6px;\n padding-top: 45px;\n margin-top: 8px;\n overflow: hidden;\n background-color: rgb(15, 15, 16);\n }\n\n .terminal[_ngcontent-%COMP%]::before {\n content: \"\\2022 \\2022 \\2022\";\n position: absolute;\n top: 0;\n left: 0;\n height: 4px;\n background: rgb(58, 58, 58);\n color: #c2c3c4;\n width: 100%;\n font-size: 2rem;\n line-height: 0;\n padding: 14px 0;\n text-indent: 4px;\n }\n\n .terminal[_ngcontent-%COMP%] pre[_ngcontent-%COMP%] {\n font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n color: white;\n padding: 0 1rem 1rem;\n margin: 0;\n }\n\n .circle-link[_ngcontent-%COMP%] {\n height: 40px;\n width: 40px;\n border-radius: 40px;\n margin: 8px;\n background-color: white;\n border: 1px solid #eeeeee;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n transition: 1s ease-out;\n }\n\n .circle-link[_ngcontent-%COMP%]:hover {\n transform: translateY(-0.25rem);\n box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n }\n\n footer[_ngcontent-%COMP%] {\n margin-top: 8px;\n display: flex;\n align-items: center;\n line-height: 20px;\n }\n\n footer[_ngcontent-%COMP%] a[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n }\n\n .github-star-badge[_ngcontent-%COMP%] {\n color: #24292e;\n display: flex;\n align-items: center;\n font-size: 12px;\n padding: 3px 10px;\n border: 1px solid rgba(27,31,35,.2);\n border-radius: 3px;\n background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n margin-left: 4px;\n font-weight: 600;\n }\n\n .github-star-badge[_ngcontent-%COMP%]:hover {\n background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n border-color: rgba(27,31,35,.35);\n background-position: -.5em;\n }\n\n .github-star-badge[_ngcontent-%COMP%] .material-icons[_ngcontent-%COMP%] {\n height: 16px;\n width: 16px;\n margin-right: 4px;\n }\n\n svg#clouds[_ngcontent-%COMP%] {\n position: fixed;\n bottom: -160px;\n left: -230px;\n z-index: -10;\n width: 1920px;\n }\n\n \n\n @media screen and (max-width: 767px) {\n .card-container[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]:not(.circle-link), .terminal[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .card[_ngcontent-%COMP%]:not(.highlight-card) {\n height: 16px;\n margin: 8px 0;\n }\n\n .card.highlight-card[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n margin-left: 72px;\n }\n\n svg#rocket-smoke[_ngcontent-%COMP%] {\n right: 120px;\n transform: rotate(-5deg);\n }\n }\n\n @media screen and (max-width: 575px) {\n svg#rocket-smoke[_ngcontent-%COMP%] {\n display: none;\n visibility: hidden;\n }\n }"] - }); - } -} - -/***/ }), - -/***/ 635: -/*!*******************************!*\ - !*** ./src/app/app.module.ts ***! - \*******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AppModule: () => (/* binding */ AppModule) -/* harmony export */ }); -/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/platform-browser */ 436); -/* harmony import */ var _angular_elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/elements */ 5764); -/* harmony import */ var _app_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./app.component */ 92); -/* harmony import */ var _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/platform-browser/animations */ 3835); -/* harmony import */ var angular_calendar__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! angular-calendar */ 2239); -/* harmony import */ var angular_calendar_date_adapters_date_fns__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! angular-calendar/date-adapters/date-fns */ 6111); -/* harmony import */ var _componetns_shifts_shifts_calendar_shifts_calendar_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./componetns/shifts/shifts-calendar/shifts-calendar.component */ 8619); -/* harmony import */ var _resgrid_ngx_resgridlib__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @resgrid/ngx-resgridlib */ 2743); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/common */ 316); -/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/common/http */ 6443); -/* harmony import */ var _componetns_map_map_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./componetns/map/map.component */ 7625); -/* harmony import */ var _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/cdk/overlay */ 1570); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/forms */ 4456); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 7580); - - - - - - - - - - - - - - - - -const getBaseUrl = () => { - if (window['rgApiBaseUrl'] && window['rgApiBaseUrl'].length > 0) { - return window['rgApiBaseUrl'].trim().toString(); - } - return 'https://api.resgrid.com'; -}; -const getGoogleMapKey = () => { - if (window['rgGoogleMapsKey'] && window['rgGoogleMapsKey'].length > 0) { - return window['rgGoogleMapsKey'].trim().toString(); - } - return ''; -}; -const getEventingUrl = () => { - if (window['rgChannelUrl'] && window['rgChannelUrl'].length > 0) { - return window['rgChannelUrl'].trim().toString(); - } - return 'https://events.resgrid.com'; -}; -class AppModule { - constructor(injector) { - this.injector = injector; - } - ngDoBootstrap() { - customElements.define('rg-shifts-calendar', (0,_angular_elements__WEBPACK_IMPORTED_MODULE_3__.createCustomElement)(_componetns_shifts_shifts_calendar_shifts_calendar_component__WEBPACK_IMPORTED_MODULE_1__.ShiftsCalendarComponent, { - injector: this.injector - })); - customElements.define('rg-map', (0,_angular_elements__WEBPACK_IMPORTED_MODULE_3__.createCustomElement)(_componetns_map_map_component__WEBPACK_IMPORTED_MODULE_2__.MapComponent, { - injector: this.injector - })); - } - static { - this.ɵfac = function AppModule_Factory(t) { - return new (t || AppModule)(_angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injector)); - }; - } - static { - this.ɵmod = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdefineNgModule"]({ - type: AppModule - }); - } - static { - this.ɵinj = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdefineInjector"]({ - imports: [_angular_common__WEBPACK_IMPORTED_MODULE_5__.CommonModule, _angular_common_http__WEBPACK_IMPORTED_MODULE_6__.HttpClientModule, _angular_platform_browser__WEBPACK_IMPORTED_MODULE_7__.BrowserModule, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.FormsModule, _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_9__.BrowserAnimationsModule, angular_calendar__WEBPACK_IMPORTED_MODULE_10__.CalendarModule.forRoot({ - provide: angular_calendar__WEBPACK_IMPORTED_MODULE_10__.DateAdapter, - useFactory: angular_calendar_date_adapters_date_fns__WEBPACK_IMPORTED_MODULE_11__.adapterFactory - }), _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_12__.OverlayModule, _resgrid_ngx_resgridlib__WEBPACK_IMPORTED_MODULE_13__.NgxResgridLibModule.forRoot({ - baseApiUrl: getBaseUrl, - apiVersion: 'v4', - clientId: 'RgWebApp', - googleApiKey: getGoogleMapKey(), - channelUrl: getEventingUrl(), - channelHubName: 'eventingHub', - realtimeGeolocationHubName: '/geolocationHub', - logLevel: 0, - isMobileApp: false, - cacheProvider: null, - storageProvider: null - })] - }); - } -} -(function () { - (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵsetNgModuleScope"](AppModule, { - declarations: [_app_component__WEBPACK_IMPORTED_MODULE_0__.AppComponent, _componetns_shifts_shifts_calendar_shifts_calendar_component__WEBPACK_IMPORTED_MODULE_1__.ShiftsCalendarComponent, _componetns_map_map_component__WEBPACK_IMPORTED_MODULE_2__.MapComponent], - imports: [_angular_common__WEBPACK_IMPORTED_MODULE_5__.CommonModule, _angular_common_http__WEBPACK_IMPORTED_MODULE_6__.HttpClientModule, _angular_platform_browser__WEBPACK_IMPORTED_MODULE_7__.BrowserModule, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.FormsModule, _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_9__.BrowserAnimationsModule, angular_calendar__WEBPACK_IMPORTED_MODULE_10__.CalendarModule, _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_12__.OverlayModule, _resgrid_ngx_resgridlib__WEBPACK_IMPORTED_MODULE_13__.NgxResgridLibModule], - exports: [_componetns_shifts_shifts_calendar_shifts_calendar_component__WEBPACK_IMPORTED_MODULE_1__.ShiftsCalendarComponent, _componetns_map_map_component__WEBPACK_IMPORTED_MODULE_2__.MapComponent] - }); -})(); - -/***/ }), - -/***/ 7625: -/*!*************************************************!*\ - !*** ./src/app/componetns/map/map.component.ts ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ MapComponent: () => (/* binding */ MapComponent) -/* harmony export */ }); -/* harmony import */ var _resgrid_ngx_resgridlib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @resgrid/ngx-resgridlib */ 2743); -/* harmony import */ var leaflet__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! leaflet */ 7381); -/* harmony import */ var leaflet__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(leaflet__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ 8608); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ 3602); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs/operators */ 9803); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs/operators */ 6109); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 7580); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/common */ 316); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/forms */ 4456); -/* harmony import */ var _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/cdk/overlay */ 1570); - - - - - - - - - -const _c0 = ["map"]; -const _c1 = ["filterTextInput"]; -function MapComponent_ng_template_0_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 7)(1, "div", 8); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](2, "div", 9)(3, "div", 10)(4, "div", 11)(5, "div", 12)(6, "div", 13); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](7, "br"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](8, " Loading map... "); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } -} -function MapComponent_div_2_Template(rf, ctx) { - if (rf & 1) { - const _r5 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 14)(1, "div", 15)(2, "input", 16, 17); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("ngModelChange", function MapComponent_div_2_Template_input_ngModelChange_2_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r5); - const ctx_r4 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r4.filterText = $event); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](4, "\u00A0\u00A0\u00A0 Hide Labels: "); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](5, "input", 18); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("change", function MapComponent_div_2_Template_input_change_5_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r5); - const ctx_r6 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r6.changeHideLabels($event)); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](6, "div", 19); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](7, " Show Calls: "); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](8, "input", 18); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("change", function MapComponent_div_2_Template_input_change_8_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r5); - const ctx_r7 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r7.changeShowCalls($event)); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](9, " \u00A0\u00A0\u00A0 Show Stations: "); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](10, "input", 18); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("change", function MapComponent_div_2_Template_input_change_10_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r5); - const ctx_r8 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r8.changeShowStations($event)); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](11, " \u00A0\u00A0\u00A0 Show Units: "); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](12, "input", 18); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("change", function MapComponent_div_2_Template_input_change_12_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r5); - const ctx_r9 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r9.changeShowUnits($event)); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](13, " \u00A0\u00A0\u00A0 Show Personnel: "); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](14, "input", 18); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("change", function MapComponent_div_2_Template_input_change_14_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r5); - const ctx_r10 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r10.changeShowPeople($event)); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()()(); - } - if (rf & 2) { - const ctx_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngModel", ctx_r1.filterText); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("checked", ctx_r1.hideLabels); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("checked", ctx_r1.showCalls); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("checked", ctx_r1.showStations); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("checked", ctx_r1.showUnits); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("checked", ctx_r1.showPersonnel); - } -} -class MapComponent { - constructor(mapProvider, cdRef, realtimeGeolocationService, events, consts) { - this.mapProvider = mapProvider; - this.cdRef = cdRef; - this.realtimeGeolocationService = realtimeGeolocationService; - this.events = events; - this.consts = consts; - this.showCalls = true; - this.showStations = true; - this.showUnits = true; - this.showPersonnel = true; - this.hideLabels = false; - this.filterText = ''; - this.updateDate = ''; - this.signalRStarted = false; - this.markers = []; - } - ngOnInit() { - const date = new Date(); - this.updateDate = date.toString(); - this.mapProvider.getMapDataAndMarkers().pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_3__.take)(1)).subscribe(data => { - this.processMapData(data.Data); - }); - if (typeof this.showbuttons === 'undefined') { - this.showbuttons = false; - } - if (typeof this.mapheight === 'undefined') { - this.mapheight = '600px'; - } - this.cdRef.detectChanges(); - } - ngAfterViewInit() { - if (this.filterTextInput) { - this.filterTextInput.valueChanges.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.debounceTime)(500)).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_5__.distinctUntilChanged)()).subscribe(value => { - this.mapProvider.getMapDataAndMarkers().subscribe(data => { - this.processMapData(data.Data); - }); - }); - } - this.startSignalR(); - } - ngOnChanges() { - if (typeof this.showbuttons === 'undefined') { - this.showbuttons = false; - } - if (typeof this.mapheight === 'undefined') { - this.mapheight = '600px'; - } - this.cdRef.detectChanges(); - } - changeHideLabels(event) { - if (event && event.target) { - var checked = event.target.checked; - this.hideLabels = checked; - this.mapProvider.getMapDataAndMarkers().subscribe(data => { - this.processMapData(data.Data); - }); - } - } - changeShowCalls(event) { - if (event && event.target) { - var checked = event.target.checked; - this.showCalls = checked; - this.mapProvider.getMapDataAndMarkers().subscribe(data => { - this.processMapData(data.Data); - }); - } - } - changeShowStations(event) { - if (event && event.target) { - var checked = event.target.checked; - this.showStations = checked; - this.mapProvider.getMapDataAndMarkers().subscribe(data => { - this.processMapData(data.Data); - }); - } - } - changeShowUnits(event) { - if (event && event.target) { - var checked = event.target.checked; - this.showUnits = checked; - this.mapProvider.getMapDataAndMarkers().subscribe(data => { - this.processMapData(data.Data); - }); - } - } - changeShowPeople(event) { - if (event && event.target) { - var checked = event.target.checked; - this.showPersonnel = checked; - this.mapProvider.getMapDataAndMarkers().subscribe(data => { - this.processMapData(data.Data); - }); - } - } - getMapLayers() { - this.mapProvider.getMayLayers(0).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_3__.take)(1)).subscribe(data => { - if (data && data.Data && data.Data.LayerJson) { - this.clearLayers(); - var jsonData = JSON.parse(data.Data.LayerJson); - if (jsonData) { - jsonData.forEach(json => { - var myLayer = leaflet__WEBPACK_IMPORTED_MODULE_0__.geoJSON(json, { - //onEachFeature: this.colorlayer, - style: { - color: json.features[0].properties.color, - opacity: 0.7, - fillColor: json.features[0].properties.color, - //fillColor: json.features[0].properties.fillColor, - fillOpacity: 0.1 - } - }); //.addData(json);//.addTo(this.map); - this.layerControl.addOverlay(myLayer, json.features[0].properties.name); - this.layers.push(myLayer); - //myLayer.addData(json); - }); - } - } - }); - } - clearLayers() { - if (this.layers && this.layers.length > 0) { - this.layers.forEach(layer => { - try { - this.layerControl.removeLayer(layer); - this.map.removeLayer(layer); - } catch (error) {} - }); - this.layers = []; - } else { - this.layers = []; - } - } - colorlayer(feature, layer) { - layer.on('mouseover', function (e) { - layer.setStyle({ - fillOpacity: 0.4 - }); - }); - layer.on('mouseout', function (e) { - layer.setStyle({ - fillOpacity: 0 - }); - }); - } - processMapData(data) { - if (data) { - const date = new Date(); - this.updateDate = date.toString(); - this.clearLayers(); - var mapCenter = this.getMapCenter(data); - if (!this.map) { - var osm = leaflet__WEBPACK_IMPORTED_MODULE_0__.tileLayer(this.leafletosmurl, { - maxZoom: 19, - attribution: this.mapattribution - }); - this.baseMaps = { - OpenStreetMap: osm - }; - this.map = leaflet__WEBPACK_IMPORTED_MODULE_0__.map(this.mapContainer.nativeElement, { - //dragging: false, - doubleClickZoom: false, - zoomControl: true, - layers: [osm] - }); - this.layerControl = leaflet__WEBPACK_IMPORTED_MODULE_0__.control.layers(this.baseMaps).addTo(this.map); - } - //this.mapProvider.setMarkersForMap(this.map); - //this.setMapBounds(); - //if (this.map) { - this.map.setView(mapCenter, this.getMapZoomLevel(data)); - //} - // clear map markers - if (this.markers && this.markers.length >= 0) { - for (var i = 0; i < this.markers.length; i++) { - if (this.markers[i]) { - this.map.removeLayer(this.markers[i]); - } - } - this.markers = new Array(); - } - if (data.MapMakerInfos && data.MapMakerInfos.length > 0) { - if (data && data.MapMakerInfos) { - data.MapMakerInfos.forEach(markerInfo => { - if (this.filterText === '' || markerInfo.Title.toLowerCase().indexOf(this.filterText.toLowerCase()) >= 0) { - let markerTitle = ''; - let marker = null; - if (!this.hideLabels) markerTitle = markerInfo.Title; - if (markerInfo.Type == 0 && this.showCalls || markerInfo.Type == 1 && this.showUnits || markerInfo.Type == 2 && this.showStations || markerInfo.Type == 3 && this.showPersonnel) { - if (!this.hideLabels) { - marker = leaflet__WEBPACK_IMPORTED_MODULE_0__.marker([markerInfo.Latitude, markerInfo.Longitude], { - icon: leaflet__WEBPACK_IMPORTED_MODULE_0__.icon({ - iconUrl: '/images/Mapping/' + markerInfo.ImagePath + '.png', - iconSize: [32, 37], - iconAnchor: [16, 37] - }), - draggable: false, - title: markerTitle - }).bindTooltip(markerTitle, { - permanent: true, - direction: 'bottom' - }).addTo(this.map); - marker.elementId = markerInfo.Id; - } else { - marker = leaflet__WEBPACK_IMPORTED_MODULE_0__.marker([markerInfo.Latitude, markerInfo.Longitude], { - icon: leaflet__WEBPACK_IMPORTED_MODULE_0__.icon({ - iconUrl: '/images/Mapping/' + markerInfo.ImagePath + '.png', - iconSize: [32, 37], - iconAnchor: [16, 37] - }), - draggable: false, - title: markerTitle - }).addTo(this.map); - marker.elementId = markerInfo.Id; - } - } - if (marker) { - this.markers.push(marker); - } - } - }); - } - if (this.markers && this.markers.length > 0) { - var group = leaflet__WEBPACK_IMPORTED_MODULE_0__.featureGroup(this.markers); - this.map.fitBounds(group.getBounds()); - } - } - } - this.getMapLayers(); - } - getMapCenter(data) { - return [data.CenterLat, data.CenterLon]; - } - getMapZoomLevel(data) { - return data.ZoomLevel; - } - startSignalR() { - if (!this.signalRStarted) { - Object.defineProperty(WebSocket, 'OPEN', { - value: 1 - }); - this.realtimeGeolocationService.connectionState$.subscribe(state => { - if (state === _resgrid_ngx_resgridlib__WEBPACK_IMPORTED_MODULE_6__.ConnectionState.Disconnected) { - //this.realtimeGeolocationService.restart(this.departmentId); - } - }); - this.signalrInit(); - this.realtimeGeolocationService.start(); - this.signalRStarted = true; - } - } - stopSignalR() { - this.realtimeGeolocationService.stop(); - this.signalRStarted = false; - } - signalrInit() { - this.events.subscribe(this.consts.SIGNALR_EVENTS.PERSONNEL_LOCATION_UPDATED, data => { - console.log('person location updated event'); - if (data) { - let personMarker = lodash__WEBPACK_IMPORTED_MODULE_1__.find(this.markers, ['elementId', `p${data.userId}`]); - if (personMarker) { - const date = new Date(); - this.updateDate = date.toString(); - personMarker.setLatLng([data.latitude, data.longitude]); - } - } - }); - this.events.subscribe(this.consts.SIGNALR_EVENTS.UNIT_LOCATION_UPDATED, data => { - console.log('unit location updated event'); - if (data) { - let unitMarker = lodash__WEBPACK_IMPORTED_MODULE_1__.find(this.markers, ['elementId', `u${data.unitId}`]); - if (unitMarker) { - const date = new Date(); - this.updateDate = date.toString(); - unitMarker.setLatLng([data.latitude, data.longitude]); - } - } - }); - } - static { - this.ɵfac = function MapComponent_Factory(t) { - return new (t || MapComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_resgrid_ngx_resgridlib__WEBPACK_IMPORTED_MODULE_6__.MappingService), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.ChangeDetectorRef), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_resgrid_ngx_resgridlib__WEBPACK_IMPORTED_MODULE_6__.RealtimeGeolocationService), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_resgrid_ngx_resgridlib__WEBPACK_IMPORTED_MODULE_6__.EventsService), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_resgrid_ngx_resgridlib__WEBPACK_IMPORTED_MODULE_6__.Consts)); - }; - } - static { - this.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ - type: MapComponent, - selectors: [["ng-component"]], - viewQuery: function MapComponent_Query(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵviewQuery"](_c0, 5); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵviewQuery"](_c1, 5); - } - if (rf & 2) { - let _t; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵloadQuery"]()) && (ctx.mapContainer = _t.first); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵloadQuery"]()) && (ctx.filterTextInput = _t.first); - } - }, - inputs: { - showbuttons: "showbuttons", - mapheight: "mapheight", - departmentId: "departmentId", - leafletosmurl: "leafletosmurl", - mapattribution: "mapattribution" - }, - features: [_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵNgOnChangesFeature"]], - decls: 8, - vars: 5, - consts: [["cdkConnectedOverlay", "", 3, "cdkConnectedOverlayOpen"], ["cdkOverlayOrigin", ""], ["style", "width: 100%; padding-bottom: 4px;", 4, "ngIf"], ["id", "map", "name", "map", 2, "width", "100%"], ["map", ""], [2, "width", "100%"], [2, "font-size", "10px", "width", "90%", "float", "right", "text-align", "right", "margin-bottom", "8px"], [1, "text-center"], [1, "sk-spinner", "sk-spinner-wave"], [1, "sk-rect1"], [1, "sk-rect2", 2, "padding-left", "4px"], [1, "sk-rect3", 2, "padding-left", "4px"], [1, "sk-rect4", 2, "padding-left", "4px"], [1, "sk-rect5", 2, "padding-left", "4px"], [2, "width", "100%", "padding-bottom", "4px"], [2, "width", "50%", "float", "left", "text-align", "left"], ["type", "text", "placeholder", "filter markers text", 3, "ngModel", "ngModelChange"], ["filterTextInput", "ngModel"], ["type", "checkbox", 3, "checked", "change"], [2, "width", "50%", "float", "right", "text-align", "right"]], - template: function MapComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](0, MapComponent_ng_template_0_Template, 9, 0, "ng-template", 0); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](1, "div", 1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](2, MapComponent_div_2_Template, 15, 6, "div", 2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](3, "div", 3, 4); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](5, "div", 5)(6, "div", 6); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](7); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()()(); - } - if (rf & 2) { - const _r2 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("cdkConnectedOverlayOpen", _r2 === null); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", ctx.showbuttons == true); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵstyleProp"]("height", ctx.mapheight); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate1"](" Last Update: ", ctx.updateDate, " "); - } - }, - dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_7__.NgIf, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.DefaultValueAccessor, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.NgControlStatus, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.NgModel, _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_9__.CdkConnectedOverlay, _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_9__.CdkOverlayOrigin], - styles: ["/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZVJvb3QiOiIifQ== */"], - changeDetection: 0 - }); - } -} - -/***/ }), - -/***/ 8619: -/*!********************************************************************************!*\ - !*** ./src/app/componetns/shifts/shifts-calendar/shifts-calendar.component.ts ***! - \********************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ ShiftsCalendarComponent: () => (/* binding */ ShiftsCalendarComponent) -/* harmony export */ }); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! date-fns */ 3330); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! date-fns */ 6078); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ 3119); -/* harmony import */ var angular_calendar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! angular-calendar */ 2239); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ 5443); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 7580); -/* harmony import */ var _resgrid_ngx_resgridlib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @resgrid/ngx-resgridlib */ 2743); -/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/common/http */ 6443); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/common */ 316); - - - - - - - - - -const _c0 = ["modalContent"]; -function ShiftsCalendarComponent_ng_template_0_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 2)(1, "div", 3); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](2, "div", 4)(3, "div", 5)(4, "div", 6)(5, "div", 7)(6, "div", 8); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](7, "br"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](8, " Loading shift calendar... "); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - } -} -function ShiftsCalendarComponent_div_2_mwl_calendar_month_view_24_Template(rf, ctx) { - if (rf & 1) { - const _r8 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "mwl-calendar-month-view", 19); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("dayClicked", function ShiftsCalendarComponent_div_2_mwl_calendar_month_view_24_Template_mwl_calendar_month_view_dayClicked_0_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r8); - const ctx_r7 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵresetView"](ctx_r7.dayClicked($event.day)); - })("eventClicked", function ShiftsCalendarComponent_div_2_mwl_calendar_month_view_24_Template_mwl_calendar_month_view_eventClicked_0_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r8); - const ctx_r9 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵresetView"](ctx_r9.handleEvent("Clicked", $event.event)); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - } - if (rf & 2) { - const events_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"]().$implicit; - const ctx_r4 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("viewDate", ctx_r4.viewDate)("events", events_r3)("refresh", ctx_r4.refresh)("activeDayIsOpen", ctx_r4.activeDayIsOpen); - } -} -function ShiftsCalendarComponent_div_2_mwl_calendar_week_view_25_Template(rf, ctx) { - if (rf & 1) { - const _r12 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "mwl-calendar-week-view", 20); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("eventClicked", function ShiftsCalendarComponent_div_2_mwl_calendar_week_view_25_Template_mwl_calendar_week_view_eventClicked_0_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r12); - const ctx_r11 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵresetView"](ctx_r11.handleEvent("Clicked", $event.event)); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - } - if (rf & 2) { - const events_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"]().$implicit; - const ctx_r5 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("viewDate", ctx_r5.viewDate)("events", events_r3)("refresh", ctx_r5.refresh); - } -} -function ShiftsCalendarComponent_div_2_mwl_calendar_day_view_26_Template(rf, ctx) { - if (rf & 1) { - const _r15 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "mwl-calendar-day-view", 20); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("eventClicked", function ShiftsCalendarComponent_div_2_mwl_calendar_day_view_26_Template_mwl_calendar_day_view_eventClicked_0_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r15); - const ctx_r14 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵresetView"](ctx_r14.handleEvent("Clicked", $event.event)); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - } - if (rf & 2) { - const events_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"]().$implicit; - const ctx_r6 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("viewDate", ctx_r6.viewDate)("events", events_r3)("refresh", ctx_r6.refresh); - } -} -function ShiftsCalendarComponent_div_2_Template(rf, ctx) { - if (rf & 1) { - const _r18 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div")(1, "div", 9)(2, "div", 10)(3, "div", 11)(4, "div", 12); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("viewDateChange", function ShiftsCalendarComponent_div_2_Template_div_viewDateChange_4_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r18); - const ctx_r17 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵresetView"](ctx_r17.viewDate = $event); - })("viewDateChange", function ShiftsCalendarComponent_div_2_Template_div_viewDateChange_4_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r18); - const ctx_r19 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵresetView"](ctx_r19.closeOpenMonthViewDay()); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](5, " Previous "); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](6, "div", 13); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("viewDateChange", function ShiftsCalendarComponent_div_2_Template_div_viewDateChange_6_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r18); - const ctx_r20 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵresetView"](ctx_r20.viewDate = $event); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](7, " Today "); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](8, "div", 14); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("viewDateChange", function ShiftsCalendarComponent_div_2_Template_div_viewDateChange_8_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r18); - const ctx_r21 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵresetView"](ctx_r21.viewDate = $event); - })("viewDateChange", function ShiftsCalendarComponent_div_2_Template_div_viewDateChange_8_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r18); - const ctx_r22 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵresetView"](ctx_r22.closeOpenMonthViewDay()); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](9, " Next "); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](10, "div", 10)(11, "h3"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](12); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpipe"](13, "calendarDate"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](14, "div", 10)(15, "div", 11)(16, "div", 15); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function ShiftsCalendarComponent_div_2_Template_div_click_16_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r18); - const ctx_r23 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵresetView"](ctx_r23.setView(ctx_r23.CalendarView.Month)); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](17, " Month "); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](18, "div", 15); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function ShiftsCalendarComponent_div_2_Template_div_click_18_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r18); - const ctx_r24 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵresetView"](ctx_r24.setView(ctx_r24.CalendarView.Week)); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](19, " Week "); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](20, "div", 15); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function ShiftsCalendarComponent_div_2_Template_div_click_20_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r18); - const ctx_r25 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵresetView"](ctx_r25.setView(ctx_r25.CalendarView.Day)); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](21, " Day "); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](22, "br"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](23, "div", 16); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](24, ShiftsCalendarComponent_div_2_mwl_calendar_month_view_24_Template, 1, 4, "mwl-calendar-month-view", 17)(25, ShiftsCalendarComponent_div_2_mwl_calendar_week_view_25_Template, 1, 3, "mwl-calendar-week-view", 18)(26, ShiftsCalendarComponent_div_2_mwl_calendar_day_view_26_Template, 1, 3, "mwl-calendar-day-view", 18); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()(); - } - if (rf & 2) { - const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("view", ctx_r2.view)("viewDate", ctx_r2.viewDate); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("viewDate", ctx_r2.viewDate); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("view", ctx_r2.view)("viewDate", ctx_r2.viewDate); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpipeBind3"](13, 16, ctx_r2.viewDate, ctx_r2.view + "ViewTitle", "en")); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("active", ctx_r2.view === ctx_r2.CalendarView.Month); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("active", ctx_r2.view === ctx_r2.CalendarView.Week); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("active", ctx_r2.view === ctx_r2.CalendarView.Day); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngSwitch", ctx_r2.view); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngSwitchCase", ctx_r2.CalendarView.Month); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngSwitchCase", ctx_r2.CalendarView.Week); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngSwitchCase", ctx_r2.CalendarView.Day); - } -} -const colors = { - red: { - primary: '#ad2121', - secondary: '#FAE3E3' - }, - blue: { - primary: '#1e90ff', - secondary: '#D1E8FF' - }, - yellow: { - primary: '#e3bc08', - secondary: '#FDF1BA' - } -}; -class ShiftsCalendarComponent { - constructor(shiftProvider, http) { - this.shiftProvider = shiftProvider; - this.http = http; - this.view = angular_calendar__WEBPACK_IMPORTED_MODULE_1__.CalendarView.Month; - this.CalendarView = angular_calendar__WEBPACK_IMPORTED_MODULE_1__.CalendarView; - this.viewDate = new Date(); - this.refresh = new rxjs__WEBPACK_IMPORTED_MODULE_2__.Subject(); - this.activeDayIsOpen = true; - this.actions = [{ - label: '', - a11yLabel: 'Edit', - onClick: ({ - event - }) => { - this.handleEvent('Edited', event); - } - }, { - label: '', - a11yLabel: 'Delete', - onClick: ({ - event - }) => { - //this.events = this.events.filter((iEvent) => iEvent !== event); - this.handleEvent('Deleted', event); - } - }]; - this.events$ = this.http.get('/User/Shifts/GetShiftCalendarItems').pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_3__.map)(results => { - if (results && results.length > 0) { - return results.map(shift => { - if (shift) { - return { - title: shift.Title, - start: new Date(shift.Start), - end: new Date(shift.End), - color: { - primary: shift.Color, - secondary: shift.Color - }, - allDay: shift.IsAllDay, - draggable: false, - resizable: { - beforeStart: false, - afterEnd: false - }, - meta: { - shift - } - }; - } - }); - } - })); - } - ngOnInit() { - /* - this.shiftProvider - .getShifts() - .pipe(take(1)) - .subscribe((shifts) => { - if (shifts && shifts.PageSize > 0) { - this.events = shifts.Data.map((shift) => { - return { - title: shift.Name, - start: new Date(shift.StartDate), - end: new Date(shift.EndDate), - color: { - primary: shift.Color, - secondary: shift.Color, - }, - draggable: false, - resizable: { - beforeStart: false, - afterEnd: false, - }, - }; - }); - } - }); - */ - } - ngAfterContentInit() { - /* - this.http.get('/User/Shifts/GetShiftCalendarItems').subscribe((result: any) => { - if (result) { - this.events = result.map((shift) => { - return { - title: shift.Title, - start: new Date(shift.Start), - end: new Date(shift.End), - color: { - primary: shift.Color, - secondary: shift.Color, - }, - allDay: shift.IsAllDay, - draggable: false, - resizable: { - beforeStart: false, - afterEnd: false, - }, - }; - }); - } - });*/ - } - dayClicked({ - date, - events - }) { - if ((0,date_fns__WEBPACK_IMPORTED_MODULE_4__["default"])(date, this.viewDate)) { - if ((0,date_fns__WEBPACK_IMPORTED_MODULE_5__["default"])(this.viewDate, date) && this.activeDayIsOpen === true || events.length === 0) { - this.activeDayIsOpen = false; - } else { - this.activeDayIsOpen = true; - } - this.viewDate = date; - } - } - handleEvent(action, event) { - if (action) { - if (action === 'Clicked') { - if (event && event.meta && event.meta.shift) { - if (!event.meta.shift.WorkshiftId) { - if (event.meta.shift.SignupType === 0) { - window.open(`/User/Shifts/ViewShift?shiftDayId=${event.meta.shift.CalendarItemId}`, '_self'); - } else { - window.open(`/User/Shifts/Signup?shiftDayId=${event.meta.shift.CalendarItemId}`, '_self'); - } - } else { - window.open(`/User/Workshifts/ViewDay?dayId=${event.meta.shift.WorkshiftDayId}`, '_self'); - } - } - } - } - } - setView(view) { - this.view = view; - } - closeOpenMonthViewDay() { - this.activeDayIsOpen = false; - } - static { - this.ɵfac = function ShiftsCalendarComponent_Factory(t) { - return new (t || ShiftsCalendarComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_resgrid_ngx_resgridlib__WEBPACK_IMPORTED_MODULE_6__.ShiftsService), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_common_http__WEBPACK_IMPORTED_MODULE_7__.HttpClient)); - }; - } - static { - this.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ - type: ShiftsCalendarComponent, - selectors: [["ng-component"]], - viewQuery: function ShiftsCalendarComponent_Query(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵviewQuery"](_c0, 7); - } - if (rf & 2) { - let _t; - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.modalContent = _t.first); - } - }, - decls: 4, - vars: 4, - consts: [["loading", ""], [4, "ngIf", "ngIfElse"], [1, "text-center"], [1, "sk-spinner", "sk-spinner-wave"], [1, "sk-rect1"], [1, "sk-rect2", 2, "padding-left", "4px"], [1, "sk-rect3", 2, "padding-left", "4px"], [1, "sk-rect4", 2, "padding-left", "4px"], [1, "sk-rect5", 2, "padding-left", "4px"], [1, "row", "text-center"], [1, "col-md-4"], [1, "btn-group"], ["mwlCalendarPreviousView", "", 1, "btn", "btn-primary", 3, "view", "viewDate", "viewDateChange"], ["mwlCalendarToday", "", 1, "btn", "btn-outline-secondary", 3, "viewDate", "viewDateChange"], ["mwlCalendarNextView", "", 1, "btn", "btn-primary", 3, "view", "viewDate", "viewDateChange"], [1, "btn", "btn-primary", 3, "click"], [3, "ngSwitch"], [3, "viewDate", "events", "refresh", "activeDayIsOpen", "dayClicked", "eventClicked", 4, "ngSwitchCase"], [3, "viewDate", "events", "refresh", "eventClicked", 4, "ngSwitchCase"], [3, "viewDate", "events", "refresh", "activeDayIsOpen", "dayClicked", "eventClicked"], [3, "viewDate", "events", "refresh", "eventClicked"]], - template: function ShiftsCalendarComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](0, ShiftsCalendarComponent_ng_template_0_Template, 9, 0, "ng-template", null, 0, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplateRefExtractor"])(2, ShiftsCalendarComponent_div_2_Template, 27, 20, "div", 1); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpipe"](3, "async"); - } - if (rf & 2) { - const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpipeBind1"](3, 2, ctx.events$))("ngIfElse", _r1); - } - }, - dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_8__.NgIf, _angular_common__WEBPACK_IMPORTED_MODULE_8__.NgSwitch, _angular_common__WEBPACK_IMPORTED_MODULE_8__.NgSwitchCase, angular_calendar__WEBPACK_IMPORTED_MODULE_1__["ɵCalendarPreviousViewDirective"], angular_calendar__WEBPACK_IMPORTED_MODULE_1__["ɵCalendarNextViewDirective"], angular_calendar__WEBPACK_IMPORTED_MODULE_1__["ɵCalendarTodayDirective"], angular_calendar__WEBPACK_IMPORTED_MODULE_1__.CalendarMonthViewComponent, angular_calendar__WEBPACK_IMPORTED_MODULE_1__.CalendarWeekViewComponent, angular_calendar__WEBPACK_IMPORTED_MODULE_1__.CalendarDayViewComponent, _angular_common__WEBPACK_IMPORTED_MODULE_8__.AsyncPipe, angular_calendar__WEBPACK_IMPORTED_MODULE_1__["ɵCalendarDatePipe"]], - styles: ["/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZVJvb3QiOiIifQ== */"], - changeDetection: 0 - }); - } -} - -/***/ }), - -/***/ 5312: -/*!*****************************************!*\ - !*** ./src/environments/environment.ts ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ environment: () => (/* binding */ environment) -/* harmony export */ }); -// This file can be replaced during build by using the `fileReplacements` array. -// `ng build` replaces `environment.ts` with `environment.prod.ts`. -// The list of file replacements can be found in `angular.json`. -const environment = { - production: false, - baseApiUrl: 'https://qaapi.resgrid.com', - resgridApiUrl: '/api/v4', - channelUrl: 'https://qaevents.resgrid.com/', - channelHubName: 'eventingHub', - logLevel: 0, - what3WordsKey: 'W3WKEY', - isDemo: false, - demoToken: 'DEMOTOKEN', - version: '99.99.99', - osmMapKey: '', - mapTilerKey: '', - googleMapsKey: 'GOOGLEMAPKEY', - loggingKey: '' -}; -/* - * For easier debugging in development mode, you can import the following file - * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. - * - * This import should be commented out in production mode because it will have a negative impact - * on performance if an error is thrown. - */ -// import 'zone.js/plugins/zone-error'; // Included with Angular CLI. - -/***/ }), - -/***/ 4429: -/*!*********************!*\ - !*** ./src/main.ts ***! - \*********************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/platform-browser */ 436); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 7580); -/* harmony import */ var _app_app_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./app/app.module */ 635); -/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./environments/environment */ 5312); - - - - -if (_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.production) { - (0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.enableProdMode)(); -} -_angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__.platformBrowser().bootstrapModule(_app_app_module__WEBPACK_IMPORTED_MODULE_0__.AppModule).catch(err => console.error(err)); - -/***/ }) - -}, -/******/ __webpack_require__ => { // webpackRuntimeModules -/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) -/******/ __webpack_require__.O(0, ["vendor"], () => (__webpack_exec__(4429))); -/******/ var __webpack_exports__ = __webpack_require__.O(); -/******/ } -]); -//# sourceMappingURL=main.js.map \ No newline at end of file diff --git a/Web/Resgrid.Web/wwwroot/js/ng/polyfills.23572fc657073556.js b/Web/Resgrid.Web/wwwroot/js/ng/polyfills.23572fc657073556.js deleted file mode 100644 index 04b6d8896..000000000 --- a/Web/Resgrid.Web/wwwroot/js/ng/polyfills.23572fc657073556.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkApps=self.webpackChunkApps||[]).push([[429],{443:(ie,Ee,de)=>{de(583)},583:()=>{!function(e){const n=e.performance;function i(M){n&&n.mark&&n.mark(M)}function o(M,E){n&&n.measure&&n.measure(M,E)}i("Zone");const c=e.__Zone_symbol_prefix||"__zone_symbol__";function a(M){return c+M}const y=!0===e[a("forceDuplicateZoneCheck")];if(e.Zone){if(y||"function"!=typeof e.Zone.__symbol__)throw new Error("Zone already loaded.");return e.Zone}let d=(()=>{class M{constructor(t,r){this._parent=t,this._name=r?r.name||"unnamed":"",this._properties=r&&r.properties||{},this._zoneDelegate=new v(this,this._parent&&this._parent._zoneDelegate,r)}static assertZonePatched(){if(e.Promise!==oe.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 t=M.current;for(;t.parent;)t=t.parent;return t}static get current(){return U.zone}static get currentTask(){return re}static __load_patch(t,r,k=!1){if(oe.hasOwnProperty(t)){if(!k&&y)throw Error("Already loaded patch: "+t)}else if(!e["__Zone_disable_"+t]){const C="Zone:"+t;i(C),oe[t]=r(e,M,z),o(C,C)}}get parent(){return this._parent}get name(){return this._name}get(t){const r=this.getZoneWith(t);if(r)return r._properties[t]}getZoneWith(t){let r=this;for(;r;){if(r._properties.hasOwnProperty(t))return r;r=r._parent}return null}fork(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)}wrap(t,r){if("function"!=typeof t)throw new Error("Expecting function got: "+t);const k=this._zoneDelegate.intercept(this,t,r),C=this;return function(){return C.runGuarded(k,this,arguments,r)}}run(t,r,k,C){U={parent:U,zone:this};try{return this._zoneDelegate.invoke(this,t,r,k,C)}finally{U=U.parent}}runGuarded(t,r=null,k,C){U={parent:U,zone:this};try{try{return this._zoneDelegate.invoke(this,t,r,k,C)}catch($){if(this._zoneDelegate.handleError(this,$))throw $}}finally{U=U.parent}}runTask(t,r,k){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||K).name+"; Execution: "+this.name+")");if(t.state===x&&(t.type===Q||t.type===w))return;const C=t.state!=p;C&&t._transitionTo(p,A),t.runCount++;const $=re;re=t,U={parent:U,zone:this};try{t.type==w&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,r,k)}catch(l){if(this._zoneDelegate.handleError(this,l))throw l}}finally{t.state!==x&&t.state!==h&&(t.type==Q||t.data&&t.data.isPeriodic?C&&t._transitionTo(A,p):(t.runCount=0,this._updateTaskCount(t,-1),C&&t._transitionTo(x,p,x))),U=U.parent,re=$}}scheduleTask(t){if(t.zone&&t.zone!==this){let k=this;for(;k;){if(k===t.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${t.zone.name}`);k=k.parent}}t._transitionTo(X,x);const r=[];t._zoneDelegates=r,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(k){throw t._transitionTo(h,X,x),this._zoneDelegate.handleError(this,k),k}return t._zoneDelegates===r&&this._updateTaskCount(t,1),t.state==X&&t._transitionTo(A,X),t}scheduleMicroTask(t,r,k,C){return this.scheduleTask(new m(I,t,r,k,C,void 0))}scheduleMacroTask(t,r,k,C,$){return this.scheduleTask(new m(w,t,r,k,C,$))}scheduleEventTask(t,r,k,C,$){return this.scheduleTask(new m(Q,t,r,k,C,$))}cancelTask(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||K).name+"; Execution: "+this.name+")");t._transitionTo(G,A,p);try{this._zoneDelegate.cancelTask(this,t)}catch(r){throw t._transitionTo(h,G),this._zoneDelegate.handleError(this,r),r}return this._updateTaskCount(t,-1),t._transitionTo(x,G),t.runCount=0,t}_updateTaskCount(t,r){const k=t._zoneDelegates;-1==r&&(t._zoneDelegates=null);for(let C=0;CM.hasTask(t,r),onScheduleTask:(M,E,t,r)=>M.scheduleTask(t,r),onInvokeTask:(M,E,t,r,k,C)=>M.invokeTask(t,r,k,C),onCancelTask:(M,E,t,r)=>M.cancelTask(t,r)};class v{constructor(E,t,r){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=E,this._parentDelegate=t,this._forkZS=r&&(r&&r.onFork?r:t._forkZS),this._forkDlgt=r&&(r.onFork?t:t._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:t._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:t._interceptZS),this._interceptDlgt=r&&(r.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:t._invokeZS),this._invokeDlgt=r&&(r.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:t._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:t._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:t._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:t._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const k=r&&r.onHasTask;(k||t&&t._hasTaskZS)&&(this._hasTaskZS=k?r:P,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=E,r.onScheduleTask||(this._scheduleTaskZS=P,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=P,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=P,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(E,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,E,t):new d(E,t)}intercept(E,t,r){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,E,t,r):t}invoke(E,t,r,k,C){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,E,t,r,k,C):t.apply(r,k)}handleError(E,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,E,t)}scheduleTask(E,t){let r=t;if(this._scheduleTaskZS)this._hasTaskZS&&r._zoneDelegates.push(this._hasTaskDlgtOwner),r=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,E,t),r||(r=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=I)throw new Error("Task is missing scheduleFn.");R(t)}return r}invokeTask(E,t,r,k){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,E,t,r,k):t.callback.apply(r,k)}cancelTask(E,t){let r;if(this._cancelTaskZS)r=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,E,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");r=t.cancelFn(t)}return r}hasTask(E,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,E,t)}catch(r){this.handleError(E,r)}}_updateTaskCount(E,t){const r=this._taskCounts,k=r[E],C=r[E]=k+t;if(C<0)throw new Error("More tasks executed then were scheduled.");0!=k&&0!=C||this.hasTask(this.zone,{microTask:r.microTask>0,macroTask:r.macroTask>0,eventTask:r.eventTask>0,change:E})}}class m{constructor(E,t,r,k,C,$){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=E,this.source=t,this.data=k,this.scheduleFn=C,this.cancelFn=$,!r)throw new Error("callback is not defined");this.callback=r;const l=this;this.invoke=E===Q&&k&&k.useG?m.invokeTask:function(){return m.invokeTask.call(e,l,this,arguments)}}static invokeTask(E,t,r){E||(E=this),ee++;try{return E.runCount++,E.zone.runTask(E,t,r)}finally{1==ee&&_(),ee--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(x,X)}_transitionTo(E,t,r){if(this._state!==t&&this._state!==r)throw new Error(`${this.type} '${this.source}': can not transition to '${E}', expecting state '${t}'${r?" or '"+r+"'":""}, was '${this._state}'.`);this._state=E,E==x&&(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 L=a("setTimeout"),Z=a("Promise"),N=a("then");let J,B=[],H=!1;function q(M){if(J||e[Z]&&(J=e[Z].resolve(0)),J){let E=J[N];E||(E=J.then),E.call(J,M)}else e[L](M,0)}function R(M){0===ee&&0===B.length&&q(_),M&&B.push(M)}function _(){if(!H){for(H=!0;B.length;){const M=B;B=[];for(let E=0;EU,onUnhandledError:W,microtaskDrainDone:W,scheduleMicroTask:R,showUncaughtError:()=>!d[a("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:W,patchMethod:()=>W,bindArguments:()=>[],patchThen:()=>W,patchMacroTask:()=>W,patchEventPrototype:()=>W,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>W,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>W,wrapWithCurrentZone:()=>W,filterProperties:()=>[],attachOriginToPatched:()=>W,_redefineProperty:()=>W,patchCallbacks:()=>W,nativeScheduleMicroTask:q};let U={parent:null,zone:new d(null,null)},re=null,ee=0;function W(){}o("Zone","Zone"),e.Zone=d}(typeof window<"u"&&window||typeof self<"u"&&self||global);const ie=Object.getOwnPropertyDescriptor,Ee=Object.defineProperty,de=Object.getPrototypeOf,ge=Object.create,Ve=Array.prototype.slice,Oe="addEventListener",Se="removeEventListener",Ze=Zone.__symbol__(Oe),Ne=Zone.__symbol__(Se),ce="true",ae="false",ke=Zone.__symbol__("");function Ie(e,n){return Zone.current.wrap(e,n)}function Me(e,n,i,o,c){return Zone.current.scheduleMacroTask(e,n,i,o,c)}const j=Zone.__symbol__,Pe=typeof window<"u",Te=Pe?window:void 0,Y=Pe&&Te||"object"==typeof self&&self||global;function Le(e,n){for(let i=e.length-1;i>=0;i--)"function"==typeof e[i]&&(e[i]=Ie(e[i],n+"_"+i));return e}function Fe(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&typeof e.set>"u")}const Be=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,we=!("nw"in Y)&&typeof Y.process<"u"&&"[object process]"==={}.toString.call(Y.process),Ae=!we&&!Be&&!(!Pe||!Te.HTMLElement),Ue=typeof Y.process<"u"&&"[object process]"==={}.toString.call(Y.process)&&!Be&&!(!Pe||!Te.HTMLElement),Re={},We=function(e){if(!(e=e||Y.event))return;let n=Re[e.type];n||(n=Re[e.type]=j("ON_PROPERTY"+e.type));const i=this||e.target||Y,o=i[n];let c;if(Ae&&i===Te&&"error"===e.type){const a=e;c=o&&o.call(this,a.message,a.filename,a.lineno,a.colno,a.error),!0===c&&e.preventDefault()}else c=o&&o.apply(this,arguments),null!=c&&!c&&e.preventDefault();return c};function qe(e,n,i){let o=ie(e,n);if(!o&&i&&ie(i,n)&&(o={enumerable:!0,configurable:!0}),!o||!o.configurable)return;const c=j("on"+n+"patched");if(e.hasOwnProperty(c)&&e[c])return;delete o.writable,delete o.value;const a=o.get,y=o.set,d=n.slice(2);let P=Re[d];P||(P=Re[d]=j("ON_PROPERTY"+d)),o.set=function(v){let m=this;!m&&e===Y&&(m=Y),m&&("function"==typeof m[P]&&m.removeEventListener(d,We),y&&y.call(m,null),m[P]=v,"function"==typeof v&&m.addEventListener(d,We,!1))},o.get=function(){let v=this;if(!v&&e===Y&&(v=Y),!v)return null;const m=v[P];if(m)return m;if(a){let L=a.call(this);if(L)return o.set.call(this,L),"function"==typeof v.removeAttribute&&v.removeAttribute(n),L}return null},Ee(e,n,o),e[c]=!0}function Xe(e,n,i){if(n)for(let o=0;ofunction(y,d){const P=i(y,d);return P.cbIdx>=0&&"function"==typeof d[P.cbIdx]?Me(P.name,d[P.cbIdx],P,c):a.apply(y,d)})}function ue(e,n){e[j("OriginalDelegate")]=n}let ze=!1,je=!1;function ft(){if(ze)return je;ze=!0;try{const e=Te.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(je=!0)}catch{}return je}Zone.__load_patch("ZoneAwarePromise",(e,n,i)=>{const o=Object.getOwnPropertyDescriptor,c=Object.defineProperty,y=i.symbol,d=[],P=!0===e[y("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],v=y("Promise"),m=y("then");i.onUnhandledError=l=>{if(i.showUncaughtError()){const u=l&&l.rejection;u?console.error("Unhandled Promise rejection:",u instanceof Error?u.message:u,"; Zone:",l.zone.name,"; Task:",l.task&&l.task.source,"; Value:",u,u instanceof Error?u.stack:void 0):console.error(l)}},i.microtaskDrainDone=()=>{for(;d.length;){const l=d.shift();try{l.zone.runGuarded(()=>{throw l.throwOriginal?l.rejection:l})}catch(u){N(u)}}};const Z=y("unhandledPromiseRejectionHandler");function N(l){i.onUnhandledError(l);try{const u=n[Z];"function"==typeof u&&u.call(this,l)}catch{}}function B(l){return l&&l.then}function H(l){return l}function J(l){return t.reject(l)}const q=y("state"),R=y("value"),_=y("finally"),K=y("parentPromiseValue"),x=y("parentPromiseState"),A=null,p=!0,G=!1;function I(l,u){return s=>{try{z(l,u,s)}catch(f){z(l,!1,f)}}}const w=function(){let l=!1;return function(s){return function(){l||(l=!0,s.apply(null,arguments))}}},oe=y("currentTaskTrace");function z(l,u,s){const f=w();if(l===s)throw new TypeError("Promise resolved with itself");if(l[q]===A){let g=null;try{("object"==typeof s||"function"==typeof s)&&(g=s&&s.then)}catch(b){return f(()=>{z(l,!1,b)})(),l}if(u!==G&&s instanceof t&&s.hasOwnProperty(q)&&s.hasOwnProperty(R)&&s[q]!==A)re(s),z(l,s[q],s[R]);else if(u!==G&&"function"==typeof g)try{g.call(s,f(I(l,u)),f(I(l,!1)))}catch(b){f(()=>{z(l,!1,b)})()}else{l[q]=u;const b=l[R];if(l[R]=s,l[_]===_&&u===p&&(l[q]=l[x],l[R]=l[K]),u===G&&s instanceof Error){const T=n.currentTask&&n.currentTask.data&&n.currentTask.data.__creationTrace__;T&&c(s,oe,{configurable:!0,enumerable:!1,writable:!0,value:T})}for(let T=0;T{try{const D=l[R],O=!!s&&_===s[_];O&&(s[K]=D,s[x]=b);const S=u.run(T,void 0,O&&T!==J&&T!==H?[]:[D]);z(s,!0,S)}catch(D){z(s,!1,D)}},s)}const M=function(){},E=e.AggregateError;class t{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(u){return z(new this(null),p,u)}static reject(u){return z(new this(null),G,u)}static any(u){if(!u||"function"!=typeof u[Symbol.iterator])return Promise.reject(new E([],"All promises were rejected"));const s=[];let f=0;try{for(let T of u)f++,s.push(t.resolve(T))}catch{return Promise.reject(new E([],"All promises were rejected"))}if(0===f)return Promise.reject(new E([],"All promises were rejected"));let g=!1;const b=[];return new t((T,D)=>{for(let O=0;O{g||(g=!0,T(S))},S=>{b.push(S),f--,0===f&&(g=!0,D(new E(b,"All promises were rejected")))})})}static race(u){let s,f,g=new this((D,O)=>{s=D,f=O});function b(D){s(D)}function T(D){f(D)}for(let D of u)B(D)||(D=this.resolve(D)),D.then(b,T);return g}static all(u){return t.allWithCallback(u)}static allSettled(u){return(this&&this.prototype instanceof t?this:t).allWithCallback(u,{thenCallback:f=>({status:"fulfilled",value:f}),errorCallback:f=>({status:"rejected",reason:f})})}static allWithCallback(u,s){let f,g,b=new this((S,V)=>{f=S,g=V}),T=2,D=0;const O=[];for(let S of u){B(S)||(S=this.resolve(S));const V=D;try{S.then(F=>{O[V]=s?s.thenCallback(F):F,T--,0===T&&f(O)},F=>{s?(O[V]=s.errorCallback(F),T--,0===T&&f(O)):g(F)})}catch(F){g(F)}T++,D++}return T-=2,0===T&&f(O),b}constructor(u){const s=this;if(!(s instanceof t))throw new Error("Must be an instanceof Promise.");s[q]=A,s[R]=[];try{const f=w();u&&u(f(I(s,p)),f(I(s,G)))}catch(f){z(s,!1,f)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return t}then(u,s){var f;let g=null===(f=this.constructor)||void 0===f?void 0:f[Symbol.species];(!g||"function"!=typeof g)&&(g=this.constructor||t);const b=new g(M),T=n.current;return this[q]==A?this[R].push(T,b,u,s):ee(this,T,b,u,s),b}catch(u){return this.then(null,u)}finally(u){var s;let f=null===(s=this.constructor)||void 0===s?void 0:s[Symbol.species];(!f||"function"!=typeof f)&&(f=t);const g=new f(M);g[_]=_;const b=n.current;return this[q]==A?this[R].push(b,g,u,u):ee(this,b,g,u,u),g}}t.resolve=t.resolve,t.reject=t.reject,t.race=t.race,t.all=t.all;const r=e[v]=e.Promise;e.Promise=t;const k=y("thenPatched");function C(l){const u=l.prototype,s=o(u,"then");if(s&&(!1===s.writable||!s.configurable))return;const f=u.then;u[m]=f,l.prototype.then=function(g,b){return new t((D,O)=>{f.call(this,D,O)}).then(g,b)},l[k]=!0}return i.patchThen=C,r&&(C(r),le(e,"fetch",l=>function $(l){return function(u,s){let f=l.apply(u,s);if(f instanceof t)return f;let g=f.constructor;return g[k]||C(g),f}}(l))),Promise[n.__symbol__("uncaughtPromiseErrors")]=d,t}),Zone.__load_patch("toString",e=>{const n=Function.prototype.toString,i=j("OriginalDelegate"),o=j("Promise"),c=j("Error"),a=function(){if("function"==typeof this){const v=this[i];if(v)return"function"==typeof v?n.call(v):Object.prototype.toString.call(v);if(this===Promise){const m=e[o];if(m)return n.call(m)}if(this===Error){const m=e[c];if(m)return n.call(m)}}return n.call(this)};a[i]=n,Function.prototype.toString=a;const y=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":y.call(this)}});let ye=!1;if(typeof window<"u")try{const e=Object.defineProperty({},"passive",{get:function(){ye=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch{ye=!1}const ht={useG:!0},te={},Ye={},$e=new RegExp("^"+ke+"(\\w+)(true|false)$"),Ke=j("propagationStopped");function Je(e,n){const i=(n?n(e):e)+ae,o=(n?n(e):e)+ce,c=ke+i,a=ke+o;te[e]={},te[e][ae]=c,te[e][ce]=a}function dt(e,n,i,o){const c=o&&o.add||Oe,a=o&&o.rm||Se,y=o&&o.listeners||"eventListeners",d=o&&o.rmAll||"removeAllListeners",P=j(c),v="."+c+":",Z=function(R,_,K){if(R.isRemoved)return;const x=R.callback;let X;"object"==typeof x&&x.handleEvent&&(R.callback=p=>x.handleEvent(p),R.originalDelegate=x);try{R.invoke(R,_,[K])}catch(p){X=p}const A=R.options;return A&&"object"==typeof A&&A.once&&_[a].call(_,K.type,R.originalDelegate?R.originalDelegate:R.callback,A),X};function N(R,_,K){if(!(_=_||e.event))return;const x=R||_.target||e,X=x[te[_.type][K?ce:ae]];if(X){const A=[];if(1===X.length){const p=Z(X[0],x,_);p&&A.push(p)}else{const p=X.slice();for(let G=0;G{throw G})}}}const B=function(R){return N(this,R,!1)},H=function(R){return N(this,R,!0)};function J(R,_){if(!R)return!1;let K=!0;_&&void 0!==_.useG&&(K=_.useG);const x=_&&_.vh;let X=!0;_&&void 0!==_.chkDup&&(X=_.chkDup);let A=!1;_&&void 0!==_.rt&&(A=_.rt);let p=R;for(;p&&!p.hasOwnProperty(c);)p=de(p);if(!p&&R[c]&&(p=R),!p||p[P])return!1;const G=_&&_.eventNameToString,h={},I=p[P]=p[c],w=p[j(a)]=p[a],Q=p[j(y)]=p[y],oe=p[j(d)]=p[d];let z;function U(s,f){return!ye&&"object"==typeof s&&s?!!s.capture:ye&&f?"boolean"==typeof s?{capture:s,passive:!0}:s?"object"==typeof s&&!1!==s.passive?Object.assign(Object.assign({},s),{passive:!0}):s:{passive:!0}:s}_&&_.prepend&&(z=p[j(_.prepend)]=p[_.prepend]);const t=K?function(s){if(!h.isExisting)return I.call(h.target,h.eventName,h.capture?H:B,h.options)}:function(s){return I.call(h.target,h.eventName,s.invoke,h.options)},r=K?function(s){if(!s.isRemoved){const f=te[s.eventName];let g;f&&(g=f[s.capture?ce:ae]);const b=g&&s.target[g];if(b)for(let T=0;Tfunction(c,a){c[Ke]=!0,o&&o.apply(c,a)})}function Et(e,n,i,o,c){const a=Zone.__symbol__(o);if(n[a])return;const y=n[a]=n[o];n[o]=function(d,P,v){return P&&P.prototype&&c.forEach(function(m){const L=`${i}.${o}::`+m,Z=P.prototype;try{if(Z.hasOwnProperty(m)){const N=e.ObjectGetOwnPropertyDescriptor(Z,m);N&&N.value?(N.value=e.wrapWithCurrentZone(N.value,L),e._redefineProperty(P.prototype,m,N)):Z[m]&&(Z[m]=e.wrapWithCurrentZone(Z[m],L))}else Z[m]&&(Z[m]=e.wrapWithCurrentZone(Z[m],L))}catch{}}),y.call(n,d,P,v)},e.attachOriginToPatched(n[o],y)}function et(e,n,i){if(!i||0===i.length)return n;const o=i.filter(a=>a.target===e);if(!o||0===o.length)return n;const c=o[0].ignoreProperties;return n.filter(a=>-1===c.indexOf(a))}function tt(e,n,i,o){e&&Xe(e,et(e,n,i),o)}function He(e){return Object.getOwnPropertyNames(e).filter(n=>n.startsWith("on")&&n.length>2).map(n=>n.substring(2))}Zone.__load_patch("util",(e,n,i)=>{const o=He(e);i.patchOnProperties=Xe,i.patchMethod=le,i.bindArguments=Le,i.patchMacroTask=lt;const c=n.__symbol__("BLACK_LISTED_EVENTS"),a=n.__symbol__("UNPATCHED_EVENTS");e[a]&&(e[c]=e[a]),e[c]&&(n[c]=n[a]=e[c]),i.patchEventPrototype=_t,i.patchEventTarget=dt,i.isIEOrEdge=ft,i.ObjectDefineProperty=Ee,i.ObjectGetOwnPropertyDescriptor=ie,i.ObjectCreate=ge,i.ArraySlice=Ve,i.patchClass=ve,i.wrapWithCurrentZone=Ie,i.filterProperties=et,i.attachOriginToPatched=ue,i._redefineProperty=Object.defineProperty,i.patchCallbacks=Et,i.getGlobalObjects=()=>({globalSources:Ye,zoneSymbolEventNames:te,eventNames:o,isBrowser:Ae,isMix:Ue,isNode:we,TRUE_STR:ce,FALSE_STR:ae,ZONE_SYMBOL_PREFIX:ke,ADD_EVENT_LISTENER_STR:Oe,REMOVE_EVENT_LISTENER_STR:Se})});const Ce=j("zoneTask");function pe(e,n,i,o){let c=null,a=null;i+=o;const y={};function d(v){const m=v.data;return m.args[0]=function(){return v.invoke.apply(this,arguments)},m.handleId=c.apply(e,m.args),v}function P(v){return a.call(e,v.data.handleId)}c=le(e,n+=o,v=>function(m,L){if("function"==typeof L[0]){const Z={isPeriodic:"Interval"===o,delay:"Timeout"===o||"Interval"===o?L[1]||0:void 0,args:L},N=L[0];L[0]=function(){try{return N.apply(this,arguments)}finally{Z.isPeriodic||("number"==typeof Z.handleId?delete y[Z.handleId]:Z.handleId&&(Z.handleId[Ce]=null))}};const B=Me(n,L[0],Z,d,P);if(!B)return B;const H=B.data.handleId;return"number"==typeof H?y[H]=B:H&&(H[Ce]=B),H&&H.ref&&H.unref&&"function"==typeof H.ref&&"function"==typeof H.unref&&(B.ref=H.ref.bind(H),B.unref=H.unref.bind(H)),"number"==typeof H||H?H:B}return v.apply(e,L)}),a=le(e,i,v=>function(m,L){const Z=L[0];let N;"number"==typeof Z?N=y[Z]:(N=Z&&Z[Ce],N||(N=Z)),N&&"string"==typeof N.type?"notScheduled"!==N.state&&(N.cancelFn&&N.data.isPeriodic||0===N.runCount)&&("number"==typeof Z?delete y[Z]:Z&&(Z[Ce]=null),N.zone.cancelTask(N)):v.apply(e,L)})}Zone.__load_patch("legacy",e=>{const n=e[Zone.__symbol__("legacyPatch")];n&&n()}),Zone.__load_patch("queueMicrotask",(e,n,i)=>{i.patchMethod(e,"queueMicrotask",o=>function(c,a){n.current.scheduleMicroTask("queueMicrotask",a[0])})}),Zone.__load_patch("timers",e=>{const n="set",i="clear";pe(e,n,i,"Timeout"),pe(e,n,i,"Interval"),pe(e,n,i,"Immediate")}),Zone.__load_patch("requestAnimationFrame",e=>{pe(e,"request","cancel","AnimationFrame"),pe(e,"mozRequest","mozCancel","AnimationFrame"),pe(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(e,n)=>{const i=["alert","prompt","confirm"];for(let o=0;ofunction(P,v){return n.current.run(a,e,v,d)})}),Zone.__load_patch("EventTarget",(e,n,i)=>{(function mt(e,n){n.patchEventPrototype(e,n)})(e,i),function pt(e,n){if(Zone[n.symbol("patchEventTarget")])return;const{eventNames:i,zoneSymbolEventNames:o,TRUE_STR:c,FALSE_STR:a,ZONE_SYMBOL_PREFIX:y}=n.getGlobalObjects();for(let P=0;P{ve("MutationObserver"),ve("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(e,n,i)=>{ve("IntersectionObserver")}),Zone.__load_patch("FileReader",(e,n,i)=>{ve("FileReader")}),Zone.__load_patch("on_property",(e,n,i)=>{!function Tt(e,n){if(we&&!Ue||Zone[e.symbol("patchEvents")])return;const i=n.__Zone_ignore_on_properties;let o=[];if(Ae){const c=window;o=o.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);const a=function ut(){try{const e=Te.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:c,ignoreProperties:["error"]}]:[];tt(c,He(c),i&&i.concat(a),de(c))}o=o.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let c=0;c{!function yt(e,n){const{isBrowser:i,isMix:o}=n.getGlobalObjects();(i||o)&&e.customElements&&"customElements"in e&&n.patchCallbacks(n,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(e,i)}),Zone.__load_patch("XHR",(e,n)=>{!function P(v){const m=v.XMLHttpRequest;if(!m)return;const L=m.prototype;let N=L[Ze],B=L[Ne];if(!N){const h=v.XMLHttpRequestEventTarget;if(h){const I=h.prototype;N=I[Ze],B=I[Ne]}}const H="readystatechange",J="scheduled";function q(h){const I=h.data,w=I.target;w[a]=!1,w[d]=!1;const Q=w[c];N||(N=w[Ze],B=w[Ne]),Q&&B.call(w,H,Q);const oe=w[c]=()=>{if(w.readyState===w.DONE)if(!I.aborted&&w[a]&&h.state===J){const U=w[n.__symbol__("loadfalse")];if(0!==w.status&&U&&U.length>0){const re=h.invoke;h.invoke=function(){const ee=w[n.__symbol__("loadfalse")];for(let W=0;Wfunction(h,I){return h[o]=0==I[2],h[y]=I[1],K.apply(h,I)}),X=j("fetchTaskAborting"),A=j("fetchTaskScheduling"),p=le(L,"send",()=>function(h,I){if(!0===n.current[A]||h[o])return p.apply(h,I);{const w={target:h,url:h[y],isPeriodic:!1,args:I,aborted:!1},Q=Me("XMLHttpRequest.send",R,w,q,_);h&&!0===h[d]&&!w.aborted&&Q.state===J&&Q.invoke()}}),G=le(L,"abort",()=>function(h,I){const w=function Z(h){return h[i]}(h);if(w&&"string"==typeof w.type){if(null==w.cancelFn||w.data&&w.data.aborted)return;w.zone.cancelTask(w)}else if(!0===n.current[X])return G.apply(h,I)})}(e);const i=j("xhrTask"),o=j("xhrSync"),c=j("xhrListener"),a=j("xhrScheduled"),y=j("xhrURL"),d=j("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",e=>{e.navigator&&e.navigator.geolocation&&function at(e,n){const i=e.constructor.name;for(let o=0;o{const P=function(){return d.apply(this,Le(arguments,i+"."+c))};return ue(P,d),P})(a)}}}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(e,n)=>{function i(o){return function(c){Qe(e,o).forEach(y=>{const d=e.PromiseRejectionEvent;if(d){const P=new d(o,{promise:c.promise,reason:c.rejection});y.invoke(P)}})}}e.PromiseRejectionEvent&&(n[j("unhandledPromiseRejectionHandler")]=i("unhandledrejection"),n[j("rejectionHandledHandler")]=i("rejectionhandled"))})}},ie=>{ie(ie.s=443)}]); \ No newline at end of file diff --git a/Web/Resgrid.Web/wwwroot/js/ng/polyfills.js b/Web/Resgrid.Web/wwwroot/js/ng/polyfills.js deleted file mode 100644 index 362574f14..000000000 --- a/Web/Resgrid.Web/wwwroot/js/ng/polyfills.js +++ /dev/null @@ -1,2919 +0,0 @@ -"use strict"; -(self["webpackChunkApps"] = self["webpackChunkApps"] || []).push([["polyfills"],{ - -/***/ 4050: -/*!**************************!*\ - !*** ./src/polyfills.ts ***! - \**************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var zone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! zone.js */ 4124); -/* harmony import */ var zone_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(zone_js__WEBPACK_IMPORTED_MODULE_0__); -/** - * This file includes polyfills needed by Angular and is loaded before the app. - * You can add your own extra polyfills to this file. - * - * This file is divided into 2 sections: - * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. - * 2. Application imports. Files imported after ZoneJS that should be loaded before your main - * file. - * - * The current setup is for so-called "evergreen" browsers; the last versions of browsers that - * automatically update themselves. This includes recent versions of Safari, Chrome (including - * Opera), Edge on the desktop, and iOS and Chrome on mobile. - * - * Learn more in https://angular.io/guide/browser-support - */ -/*************************************************************************************************** - * BROWSER POLYFILLS - */ -/** - * By default, zone.js will patch all possible macroTask and DomEvents - * user can disable parts of macroTask/DomEvents patch by setting following flags - * because those flags need to be set before `zone.js` being loaded, and webpack - * will put import in the top of bundle, so user need to create a separate file - * in this directory (for example: zone-flags.ts), and put the following flags - * into that file, and then add the following code before importing zone.js. - * import './zone-flags'; - * - * The flags allowed in zone-flags.ts are listed here. - * - * The following flags will work for all browsers. - * - * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame - * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick - * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames - * - * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js - * with the following flag, it will bypass `zone.js` patch for IE/Edge - * - * (window as any).__Zone_enable_cross_context_check = true; - * - */ -/*************************************************************************************************** - * Zone JS is required by default for Angular itself. - */ - // Included with Angular CLI. -/*************************************************************************************************** - * APPLICATION IMPORTS - */ - -/***/ }), - -/***/ 4124: -/*!***********************************************!*\ - !*** ./node_modules/zone.js/fesm2015/zone.js ***! - \***********************************************/ -/***/ (() => { - - - -/** - * @license Angular v - * (c) 2010-2024 Google LLC. https://angular.io/ - * License: MIT - */ -const global = globalThis; -// __Zone_symbol_prefix global can be used to override the default zone -// symbol prefix with a custom one if needed. -function __symbol__(name) { - const symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__'; - return symbolPrefix + name; -} -function initZone() { - const performance = global['performance']; - function mark(name) { - performance && performance['mark'] && performance['mark'](name); - } - function performanceMeasure(name, label) { - performance && performance['measure'] && performance['measure'](name, label); - } - mark('Zone'); - class ZoneImpl { - // tslint:disable-next-line:require-internal-with-underscore - static { - this.__symbol__ = __symbol__; - } - static assertZonePatched() { - if (global['Promise'] !== patches['ZoneAwarePromise']) { - throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' + 'has been overwritten.\n' + 'Most 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 zone = ZoneImpl.current; - while (zone.parent) { - zone = zone.parent; - } - return zone; - } - static get current() { - return _currentZoneFrame.zone; - } - static get currentTask() { - return _currentTask; - } - // tslint:disable-next-line:require-internal-with-underscore - static __load_patch(name, fn, ignoreDuplicate = false) { - if (patches.hasOwnProperty(name)) { - // `checkDuplicate` option is defined from global variable - // so it works for all modules. - // `ignoreDuplicate` can work for the specified module - const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true; - if (!ignoreDuplicate && checkDuplicate) { - throw Error('Already loaded patch: ' + name); - } - } else if (!global['__Zone_disable_' + name]) { - const perfName = 'Zone:' + name; - mark(perfName); - patches[name] = fn(global, ZoneImpl, _api); - performanceMeasure(perfName, perfName); - } - } - get parent() { - return this._parent; - } - get name() { - return this._name; - } - constructor(parent, zoneSpec) { - this._parent = parent; - this._name = zoneSpec ? zoneSpec.name || 'unnamed' : ''; - this._properties = zoneSpec && zoneSpec.properties || {}; - this._zoneDelegate = new _ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec); - } - get(key) { - const zone = this.getZoneWith(key); - if (zone) return zone._properties[key]; - } - getZoneWith(key) { - let current = this; - while (current) { - if (current._properties.hasOwnProperty(key)) { - return current; - } - current = current._parent; - } - return null; - } - fork(zoneSpec) { - if (!zoneSpec) throw new Error('ZoneSpec required!'); - return this._zoneDelegate.fork(this, zoneSpec); - } - wrap(callback, source) { - if (typeof callback !== 'function') { - throw new Error('Expecting function got: ' + callback); - } - const _callback = this._zoneDelegate.intercept(this, callback, source); - const zone = this; - return function () { - return zone.runGuarded(_callback, this, arguments, source); - }; - } - run(callback, applyThis, applyArgs, source) { - _currentZoneFrame = { - parent: _currentZoneFrame, - zone: this - }; - try { - return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source); - } finally { - _currentZoneFrame = _currentZoneFrame.parent; - } - } - runGuarded(callback, applyThis = null, applyArgs, source) { - _currentZoneFrame = { - parent: _currentZoneFrame, - zone: this - }; - try { - try { - return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source); - } catch (error) { - if (this._zoneDelegate.handleError(this, error)) { - throw error; - } - } - } finally { - _currentZoneFrame = _currentZoneFrame.parent; - } - } - runTask(task, applyThis, applyArgs) { - if (task.zone != this) { - throw new Error('A task can only be run in the zone of creation! (Creation: ' + (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')'); - } - const zoneTask = task; - // https://github.com/angular/zone.js/issues/778, sometimes eventTask - // will run in notScheduled(canceled) state, we should not try to - // run such kind of task but just return - const { - type, - data: { - isPeriodic = false, - isRefreshable = false - } = {} - } = task; - if (task.state === notScheduled && (type === eventTask || type === macroTask)) { - return; - } - const reEntryGuard = task.state != running; - reEntryGuard && zoneTask._transitionTo(running, scheduled); - const previousTask = _currentTask; - _currentTask = zoneTask; - _currentZoneFrame = { - parent: _currentZoneFrame, - zone: this - }; - try { - if (type == macroTask && task.data && !isPeriodic && !isRefreshable) { - task.cancelFn = undefined; - } - try { - return this._zoneDelegate.invokeTask(this, zoneTask, applyThis, applyArgs); - } catch (error) { - if (this._zoneDelegate.handleError(this, error)) { - throw error; - } - } - } finally { - // if the task's state is notScheduled or unknown, then it has already been cancelled - // we should not reset the state to scheduled - const state = task.state; - if (state !== notScheduled && state !== unknown) { - if (type == eventTask || isPeriodic || isRefreshable && state === scheduling) { - reEntryGuard && zoneTask._transitionTo(scheduled, running, scheduling); - } else { - const zoneDelegates = zoneTask._zoneDelegates; - this._updateTaskCount(zoneTask, -1); - reEntryGuard && zoneTask._transitionTo(notScheduled, running, notScheduled); - if (isRefreshable) { - zoneTask._zoneDelegates = zoneDelegates; - } - } - } - _currentZoneFrame = _currentZoneFrame.parent; - _currentTask = previousTask; - } - } - scheduleTask(task) { - if (task.zone && task.zone !== this) { - // check if the task was rescheduled, the newZone - // should not be the children of the original zone - let newZone = this; - while (newZone) { - if (newZone === task.zone) { - throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${task.zone.name}`); - } - newZone = newZone.parent; - } - } - task._transitionTo(scheduling, notScheduled); - const zoneDelegates = []; - task._zoneDelegates = zoneDelegates; - task._zone = this; - try { - task = this._zoneDelegate.scheduleTask(this, task); - } catch (err) { - // should set task's state to unknown when scheduleTask throw error - // because the err may from reschedule, so the fromState maybe notScheduled - task._transitionTo(unknown, scheduling, notScheduled); - // TODO: @JiaLiPassion, should we check the result from handleError? - this._zoneDelegate.handleError(this, err); - throw err; - } - if (task._zoneDelegates === zoneDelegates) { - // we have to check because internally the delegate can reschedule the task. - this._updateTaskCount(task, 1); - } - if (task.state == scheduling) { - task._transitionTo(scheduled, scheduling); - } - return task; - } - scheduleMicroTask(source, callback, data, customSchedule) { - return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined)); - } - scheduleMacroTask(source, callback, data, customSchedule, customCancel) { - return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel)); - } - scheduleEventTask(source, callback, data, customSchedule, customCancel) { - return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel)); - } - cancelTask(task) { - if (task.zone != this) throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' + (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')'); - if (task.state !== scheduled && task.state !== running) { - return; - } - task._transitionTo(canceling, scheduled, running); - try { - this._zoneDelegate.cancelTask(this, task); - } catch (err) { - // if error occurs when cancelTask, transit the state to unknown - task._transitionTo(unknown, canceling); - this._zoneDelegate.handleError(this, err); - throw err; - } - this._updateTaskCount(task, -1); - task._transitionTo(notScheduled, canceling); - task.runCount = -1; - return task; - } - _updateTaskCount(task, count) { - const zoneDelegates = task._zoneDelegates; - if (count == -1) { - task._zoneDelegates = null; - } - for (let i = 0; i < zoneDelegates.length; i++) { - zoneDelegates[i]._updateTaskCount(task.type, count); - } - } - } - const DELEGATE_ZS = { - name: '', - onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState), - onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task), - onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs), - onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task) - }; - class _ZoneDelegate { - get zone() { - return this._zone; - } - constructor(zone, parentDelegate, zoneSpec) { - this._taskCounts = { - 'microTask': 0, - 'macroTask': 0, - 'eventTask': 0 - }; - this._zone = zone; - this._parentDelegate = parentDelegate; - this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS); - this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt); - this._forkCurrZone = zoneSpec && (zoneSpec.onFork ? this._zone : parentDelegate._forkCurrZone); - this._interceptZS = zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS); - this._interceptDlgt = zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt); - this._interceptCurrZone = zoneSpec && (zoneSpec.onIntercept ? this._zone : parentDelegate._interceptCurrZone); - this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS); - this._invokeDlgt = zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt); - this._invokeCurrZone = zoneSpec && (zoneSpec.onInvoke ? this._zone : parentDelegate._invokeCurrZone); - this._handleErrorZS = zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS); - this._handleErrorDlgt = zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt); - this._handleErrorCurrZone = zoneSpec && (zoneSpec.onHandleError ? this._zone : parentDelegate._handleErrorCurrZone); - this._scheduleTaskZS = zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS); - this._scheduleTaskDlgt = zoneSpec && (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt); - this._scheduleTaskCurrZone = zoneSpec && (zoneSpec.onScheduleTask ? this._zone : parentDelegate._scheduleTaskCurrZone); - this._invokeTaskZS = zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS); - this._invokeTaskDlgt = zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt); - this._invokeTaskCurrZone = zoneSpec && (zoneSpec.onInvokeTask ? this._zone : parentDelegate._invokeTaskCurrZone); - this._cancelTaskZS = zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS); - this._cancelTaskDlgt = zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt); - this._cancelTaskCurrZone = zoneSpec && (zoneSpec.onCancelTask ? this._zone : parentDelegate._cancelTaskCurrZone); - this._hasTaskZS = null; - this._hasTaskDlgt = null; - this._hasTaskDlgtOwner = null; - this._hasTaskCurrZone = null; - const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask; - const parentHasTask = parentDelegate && parentDelegate._hasTaskZS; - if (zoneSpecHasTask || parentHasTask) { - // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such - // a case all task related interceptors must go through this ZD. We can't short circuit it. - this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS; - this._hasTaskDlgt = parentDelegate; - this._hasTaskDlgtOwner = this; - this._hasTaskCurrZone = this._zone; - if (!zoneSpec.onScheduleTask) { - this._scheduleTaskZS = DELEGATE_ZS; - this._scheduleTaskDlgt = parentDelegate; - this._scheduleTaskCurrZone = this._zone; - } - if (!zoneSpec.onInvokeTask) { - this._invokeTaskZS = DELEGATE_ZS; - this._invokeTaskDlgt = parentDelegate; - this._invokeTaskCurrZone = this._zone; - } - if (!zoneSpec.onCancelTask) { - this._cancelTaskZS = DELEGATE_ZS; - this._cancelTaskDlgt = parentDelegate; - this._cancelTaskCurrZone = this._zone; - } - } - } - fork(targetZone, zoneSpec) { - return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) : new ZoneImpl(targetZone, zoneSpec); - } - intercept(targetZone, callback, source) { - return this._interceptZS ? this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) : callback; - } - invoke(targetZone, callback, applyThis, applyArgs, source) { - return this._invokeZS ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) : callback.apply(applyThis, applyArgs); - } - handleError(targetZone, error) { - return this._handleErrorZS ? this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) : true; - } - scheduleTask(targetZone, task) { - let returnTask = task; - if (this._scheduleTaskZS) { - if (this._hasTaskZS) { - returnTask._zoneDelegates.push(this._hasTaskDlgtOwner); - } - returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task); - if (!returnTask) returnTask = task; - } else { - if (task.scheduleFn) { - task.scheduleFn(task); - } else if (task.type == microTask) { - scheduleMicroTask(task); - } else { - throw new Error('Task is missing scheduleFn.'); - } - } - return returnTask; - } - invokeTask(targetZone, task, applyThis, applyArgs) { - return this._invokeTaskZS ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) : task.callback.apply(applyThis, applyArgs); - } - cancelTask(targetZone, task) { - let value; - if (this._cancelTaskZS) { - value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task); - } else { - if (!task.cancelFn) { - throw Error('Task is not cancelable'); - } - value = task.cancelFn(task); - } - return value; - } - hasTask(targetZone, isEmpty) { - // hasTask should not throw error so other ZoneDelegate - // can still trigger hasTask callback - try { - this._hasTaskZS && this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty); - } catch (err) { - this.handleError(targetZone, err); - } - } - // tslint:disable-next-line:require-internal-with-underscore - _updateTaskCount(type, count) { - const counts = this._taskCounts; - const prev = counts[type]; - const next = counts[type] = prev + count; - if (next < 0) { - throw new Error('More tasks executed then were scheduled.'); - } - if (prev == 0 || next == 0) { - const isEmpty = { - microTask: counts['microTask'] > 0, - macroTask: counts['macroTask'] > 0, - eventTask: counts['eventTask'] > 0, - change: type - }; - this.hasTask(this._zone, isEmpty); - } - } - } - class ZoneTask { - constructor(type, source, callback, options, scheduleFn, cancelFn) { - // tslint:disable-next-line:require-internal-with-underscore - this._zone = null; - this.runCount = 0; - // tslint:disable-next-line:require-internal-with-underscore - this._zoneDelegates = null; - // tslint:disable-next-line:require-internal-with-underscore - this._state = 'notScheduled'; - this.type = type; - this.source = source; - this.data = options; - this.scheduleFn = scheduleFn; - this.cancelFn = cancelFn; - if (!callback) { - throw new Error('callback is not defined'); - } - this.callback = callback; - const self = this; - // TODO: @JiaLiPassion options should have interface - if (type === eventTask && options && options.useG) { - this.invoke = ZoneTask.invokeTask; - } else { - this.invoke = function () { - return ZoneTask.invokeTask.call(global, self, this, arguments); - }; - } - } - static invokeTask(task, target, args) { - if (!task) { - task = this; - } - _numberOfNestedTaskFrames++; - try { - task.runCount++; - return task.zone.runTask(task, target, args); - } finally { - if (_numberOfNestedTaskFrames == 1) { - drainMicroTaskQueue(); - } - _numberOfNestedTaskFrames--; - } - } - get zone() { - return this._zone; - } - get state() { - return this._state; - } - cancelScheduleRequest() { - this._transitionTo(notScheduled, scheduling); - } - // tslint:disable-next-line:require-internal-with-underscore - _transitionTo(toState, fromState1, fromState2) { - if (this._state === fromState1 || this._state === fromState2) { - this._state = toState; - if (toState == notScheduled) { - this._zoneDelegates = null; - } - } else { - throw new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? " or '" + fromState2 + "'" : ''}, was '${this._state}'.`); - } - } - toString() { - if (this.data && typeof this.data.handleId !== 'undefined') { - return this.data.handleId.toString(); - } else { - return Object.prototype.toString.call(this); - } - } - // add toJSON method to prevent cyclic error when - // call JSON.stringify(zoneTask) - toJSON() { - return { - type: this.type, - state: this.state, - source: this.source, - zone: this.zone.name, - runCount: this.runCount - }; - } - } - ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - /// MICROTASK QUEUE - ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - const symbolSetTimeout = __symbol__('setTimeout'); - const symbolPromise = __symbol__('Promise'); - const symbolThen = __symbol__('then'); - let _microTaskQueue = []; - let _isDrainingMicrotaskQueue = false; - let nativeMicroTaskQueuePromise; - function nativeScheduleMicroTask(func) { - if (!nativeMicroTaskQueuePromise) { - if (global[symbolPromise]) { - nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0); - } - } - if (nativeMicroTaskQueuePromise) { - let nativeThen = nativeMicroTaskQueuePromise[symbolThen]; - if (!nativeThen) { - // native Promise is not patchable, we need to use `then` directly - // issue 1078 - nativeThen = nativeMicroTaskQueuePromise['then']; - } - nativeThen.call(nativeMicroTaskQueuePromise, func); - } else { - global[symbolSetTimeout](func, 0); - } - } - function scheduleMicroTask(task) { - // if we are not running in any task, and there has not been anything scheduled - // we must bootstrap the initial task creation by manually scheduling the drain - if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) { - // We are not running in Task, so we need to kickstart the microtask queue. - nativeScheduleMicroTask(drainMicroTaskQueue); - } - task && _microTaskQueue.push(task); - } - function drainMicroTaskQueue() { - if (!_isDrainingMicrotaskQueue) { - _isDrainingMicrotaskQueue = true; - while (_microTaskQueue.length) { - const queue = _microTaskQueue; - _microTaskQueue = []; - for (let i = 0; i < queue.length; i++) { - const task = queue[i]; - try { - task.zone.runTask(task, null, null); - } catch (error) { - _api.onUnhandledError(error); - } - } - } - _api.microtaskDrainDone(); - _isDrainingMicrotaskQueue = false; - } - } - ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - /// BOOTSTRAP - ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - const NO_ZONE = { - name: 'NO ZONE' - }; - const notScheduled = 'notScheduled', - scheduling = 'scheduling', - scheduled = 'scheduled', - running = 'running', - canceling = 'canceling', - unknown = 'unknown'; - const microTask = 'microTask', - macroTask = 'macroTask', - eventTask = 'eventTask'; - const patches = {}; - const _api = { - symbol: __symbol__, - currentZoneFrame: () => _currentZoneFrame, - onUnhandledError: noop, - microtaskDrainDone: noop, - scheduleMicroTask: scheduleMicroTask, - showUncaughtError: () => !ZoneImpl[__symbol__('ignoreConsoleErrorUncaughtError')], - patchEventTarget: () => [], - patchOnProperties: noop, - patchMethod: () => noop, - bindArguments: () => [], - patchThen: () => noop, - patchMacroTask: () => noop, - patchEventPrototype: () => noop, - isIEOrEdge: () => false, - getGlobalObjects: () => undefined, - ObjectDefineProperty: () => noop, - ObjectGetOwnPropertyDescriptor: () => undefined, - ObjectCreate: () => undefined, - ArraySlice: () => [], - patchClass: () => noop, - wrapWithCurrentZone: () => noop, - filterProperties: () => [], - attachOriginToPatched: () => noop, - _redefineProperty: () => noop, - patchCallbacks: () => noop, - nativeScheduleMicroTask: nativeScheduleMicroTask - }; - let _currentZoneFrame = { - parent: null, - zone: new ZoneImpl(null, null) - }; - let _currentTask = null; - let _numberOfNestedTaskFrames = 0; - function noop() {} - performanceMeasure('Zone', 'Zone'); - return ZoneImpl; -} -function loadZone() { - // if global['Zone'] already exists (maybe zone.js was already loaded or - // some other lib also registered a global object named Zone), we may need - // to throw an error, but sometimes user may not want this error. - // For example, - // we have two web pages, page1 includes zone.js, page2 doesn't. - // and the 1st time user load page1 and page2, everything work fine, - // but when user load page2 again, error occurs because global['Zone'] already exists. - // so we add a flag to let user choose whether to throw this error or not. - // By default, if existing Zone is from zone.js, we will not throw the error. - const global = globalThis; - const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true; - if (global['Zone'] && (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function')) { - throw new Error('Zone already loaded.'); - } - // Initialize global `Zone` constant. - global['Zone'] ??= initZone(); - return global['Zone']; -} - -/** - * Suppress closure compiler errors about unknown 'Zone' variable - * @fileoverview - * @suppress {undefinedVars,globalThis,missingRequire} - */ -// issue #989, to reduce bundle size, use short name -/** Object.getOwnPropertyDescriptor */ -const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; -/** Object.defineProperty */ -const ObjectDefineProperty = Object.defineProperty; -/** Object.getPrototypeOf */ -const ObjectGetPrototypeOf = Object.getPrototypeOf; -/** Object.create */ -const ObjectCreate = Object.create; -/** Array.prototype.slice */ -const ArraySlice = Array.prototype.slice; -/** addEventListener string const */ -const ADD_EVENT_LISTENER_STR = 'addEventListener'; -/** removeEventListener string const */ -const REMOVE_EVENT_LISTENER_STR = 'removeEventListener'; -/** zoneSymbol addEventListener */ -const ZONE_SYMBOL_ADD_EVENT_LISTENER = __symbol__(ADD_EVENT_LISTENER_STR); -/** zoneSymbol removeEventListener */ -const ZONE_SYMBOL_REMOVE_EVENT_LISTENER = __symbol__(REMOVE_EVENT_LISTENER_STR); -/** true string const */ -const TRUE_STR = 'true'; -/** false string const */ -const FALSE_STR = 'false'; -/** Zone symbol prefix string const. */ -const ZONE_SYMBOL_PREFIX = __symbol__(''); -function wrapWithCurrentZone(callback, source) { - return Zone.current.wrap(callback, source); -} -function scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) { - return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel); -} -const zoneSymbol = __symbol__; -const isWindowExists = typeof window !== 'undefined'; -const internalWindow = isWindowExists ? window : undefined; -const _global = isWindowExists && internalWindow || globalThis; -const REMOVE_ATTRIBUTE = 'removeAttribute'; -function bindArguments(args, source) { - for (let i = args.length - 1; i >= 0; i--) { - if (typeof args[i] === 'function') { - args[i] = wrapWithCurrentZone(args[i], source + '_' + i); - } - } - return args; -} -function patchPrototype(prototype, fnNames) { - const source = prototype.constructor['name']; - for (let i = 0; i < fnNames.length; i++) { - const name = fnNames[i]; - const delegate = prototype[name]; - if (delegate) { - const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name); - if (!isPropertyWritable(prototypeDesc)) { - continue; - } - prototype[name] = (delegate => { - const patched = function () { - return delegate.apply(this, bindArguments(arguments, source + '.' + name)); - }; - attachOriginToPatched(patched, delegate); - return patched; - })(delegate); - } - } -} -function isPropertyWritable(propertyDesc) { - if (!propertyDesc) { - return true; - } - if (propertyDesc.writable === false) { - return false; - } - return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined'); -} -const isWebWorker = typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope; -// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify -// this code. -const isNode = !('nw' in _global) && typeof _global.process !== 'undefined' && _global.process.toString() === '[object process]'; -const isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']); -// we are in electron of nw, so we are both browser and nodejs -// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify -// this code. -const isMix = typeof _global.process !== 'undefined' && _global.process.toString() === '[object process]' && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']); -const zoneSymbolEventNames$1 = {}; -const enableBeforeunloadSymbol = zoneSymbol('enable_beforeunload'); -const wrapFn = function (event) { - // https://github.com/angular/zone.js/issues/911, in IE, sometimes - // event will be undefined, so we need to use window.event - event = event || _global.event; - if (!event) { - return; - } - let eventNameSymbol = zoneSymbolEventNames$1[event.type]; - if (!eventNameSymbol) { - eventNameSymbol = zoneSymbolEventNames$1[event.type] = zoneSymbol('ON_PROPERTY' + event.type); - } - const target = this || event.target || _global; - const listener = target[eventNameSymbol]; - let result; - if (isBrowser && target === internalWindow && event.type === 'error') { - // window.onerror have different signature - // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror - // and onerror callback will prevent default when callback return true - const errorEvent = event; - result = listener && listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error); - if (result === true) { - event.preventDefault(); - } - } else { - result = listener && listener.apply(this, arguments); - if ( - // https://github.com/angular/angular/issues/47579 - // https://www.w3.org/TR/2011/WD-html5-20110525/history.html#beforeunloadevent - // This is the only specific case we should check for. The spec defines that the - // `returnValue` attribute represents the message to show the user. When the event - // is created, this attribute must be set to the empty string. - event.type === 'beforeunload' && - // To prevent any breaking changes resulting from this change, given that - // it was already causing a significant number of failures in G3, we have hidden - // that behavior behind a global configuration flag. Consumers can enable this - // flag explicitly if they want the `beforeunload` event to be handled as defined - // in the specification. - _global[enableBeforeunloadSymbol] && - // The IDL event definition is `attribute DOMString returnValue`, so we check whether - // `typeof result` is a string. - typeof result === 'string') { - event.returnValue = result; - } else if (result != undefined && !result) { - event.preventDefault(); - } - } - return result; -}; -function patchProperty(obj, prop, prototype) { - let desc = ObjectGetOwnPropertyDescriptor(obj, prop); - if (!desc && prototype) { - // when patch window object, use prototype to check prop exist or not - const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop); - if (prototypeDesc) { - desc = { - enumerable: true, - configurable: true - }; - } - } - // if the descriptor not exists or is not configurable - // just return - if (!desc || !desc.configurable) { - return; - } - const onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched'); - if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) { - return; - } - // A property descriptor cannot have getter/setter and be writable - // deleting the writable and value properties avoids this error: - // - // TypeError: property descriptors must not specify a value or be writable when a - // getter or setter has been specified - delete desc.writable; - delete desc.value; - const originalDescGet = desc.get; - const originalDescSet = desc.set; - // slice(2) cuz 'onclick' -> 'click', etc - const eventName = prop.slice(2); - let eventNameSymbol = zoneSymbolEventNames$1[eventName]; - if (!eventNameSymbol) { - eventNameSymbol = zoneSymbolEventNames$1[eventName] = zoneSymbol('ON_PROPERTY' + eventName); - } - desc.set = function (newValue) { - // in some of windows's onproperty callback, this is undefined - // so we need to check it - let target = this; - if (!target && obj === _global) { - target = _global; - } - if (!target) { - return; - } - const previousValue = target[eventNameSymbol]; - if (typeof previousValue === 'function') { - target.removeEventListener(eventName, wrapFn); - } - // issue #978, when onload handler was added before loading zone.js - // we should remove it with originalDescSet - originalDescSet && originalDescSet.call(target, null); - target[eventNameSymbol] = newValue; - if (typeof newValue === 'function') { - target.addEventListener(eventName, wrapFn, false); - } - }; - // The getter would return undefined for unassigned properties but the default value of an - // unassigned property is null - desc.get = function () { - // in some of windows's onproperty callback, this is undefined - // so we need to check it - let target = this; - if (!target && obj === _global) { - target = _global; - } - if (!target) { - return null; - } - const listener = target[eventNameSymbol]; - if (listener) { - return listener; - } else if (originalDescGet) { - // result will be null when use inline event attribute, - // such as - // because the onclick function is internal raw uncompiled handler - // the onclick will be evaluated when first time event was triggered or - // the property is accessed, https://github.com/angular/zone.js/issues/525 - // so we should use original native get to retrieve the handler - let value = originalDescGet.call(this); - if (value) { - desc.set.call(this, value); - if (typeof target[REMOVE_ATTRIBUTE] === 'function') { - target.removeAttribute(prop); - } - return value; - } - } - return null; - }; - ObjectDefineProperty(obj, prop, desc); - obj[onPropPatchedSymbol] = true; -} -function patchOnProperties(obj, properties, prototype) { - if (properties) { - for (let i = 0; i < properties.length; i++) { - patchProperty(obj, 'on' + properties[i], prototype); - } - } else { - const onProperties = []; - for (const prop in obj) { - if (prop.slice(0, 2) == 'on') { - onProperties.push(prop); - } - } - for (let j = 0; j < onProperties.length; j++) { - patchProperty(obj, onProperties[j], prototype); - } - } -} -const originalInstanceKey = zoneSymbol('originalInstance'); -// wrap some native API on `window` -function patchClass(className) { - const OriginalClass = _global[className]; - if (!OriginalClass) return; - // keep original class in global - _global[zoneSymbol(className)] = OriginalClass; - _global[className] = function () { - const a = bindArguments(arguments, className); - switch (a.length) { - case 0: - this[originalInstanceKey] = new OriginalClass(); - break; - case 1: - this[originalInstanceKey] = new OriginalClass(a[0]); - break; - case 2: - this[originalInstanceKey] = new OriginalClass(a[0], a[1]); - break; - case 3: - this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]); - break; - case 4: - this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]); - break; - default: - throw new Error('Arg list too long.'); - } - }; - // attach original delegate to patched function - attachOriginToPatched(_global[className], OriginalClass); - const instance = new OriginalClass(function () {}); - let prop; - for (prop in instance) { - // https://bugs.webkit.org/show_bug.cgi?id=44721 - if (className === 'XMLHttpRequest' && prop === 'responseBlob') continue; - (function (prop) { - if (typeof instance[prop] === 'function') { - _global[className].prototype[prop] = function () { - return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments); - }; - } else { - ObjectDefineProperty(_global[className].prototype, prop, { - set: function (fn) { - if (typeof fn === 'function') { - this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop); - // keep callback in wrapped function so we can - // use it in Function.prototype.toString to return - // the native one. - attachOriginToPatched(this[originalInstanceKey][prop], fn); - } else { - this[originalInstanceKey][prop] = fn; - } - }, - get: function () { - return this[originalInstanceKey][prop]; - } - }); - } - })(prop); - } - for (prop in OriginalClass) { - if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) { - _global[className][prop] = OriginalClass[prop]; - } - } -} -function patchMethod(target, name, patchFn) { - let proto = target; - while (proto && !proto.hasOwnProperty(name)) { - proto = ObjectGetPrototypeOf(proto); - } - if (!proto && target[name]) { - // somehow we did not find it, but we can see it. This happens on IE for Window properties. - proto = target; - } - const delegateName = zoneSymbol(name); - let delegate = null; - if (proto && (!(delegate = proto[delegateName]) || !proto.hasOwnProperty(delegateName))) { - delegate = proto[delegateName] = proto[name]; - // check whether proto[name] is writable - // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob - const desc = proto && ObjectGetOwnPropertyDescriptor(proto, name); - if (isPropertyWritable(desc)) { - const patchDelegate = patchFn(delegate, delegateName, name); - proto[name] = function () { - return patchDelegate(this, arguments); - }; - attachOriginToPatched(proto[name], delegate); - } - } - return delegate; -} -// TODO: @JiaLiPassion, support cancel task later if necessary -function patchMacroTask(obj, funcName, metaCreator) { - let setNative = null; - function scheduleTask(task) { - const data = task.data; - data.args[data.cbIdx] = function () { - task.invoke.apply(this, arguments); - }; - setNative.apply(data.target, data.args); - return task; - } - setNative = patchMethod(obj, funcName, delegate => function (self, args) { - const meta = metaCreator(self, args); - if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') { - return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask); - } else { - // cause an error by calling it directly. - return delegate.apply(self, args); - } - }); -} -function attachOriginToPatched(patched, original) { - patched[zoneSymbol('OriginalDelegate')] = original; -} -let isDetectedIEOrEdge = false; -let ieOrEdge = false; -function isIE() { - try { - const ua = internalWindow.navigator.userAgent; - if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) { - return true; - } - } catch (error) {} - return false; -} -function isIEOrEdge() { - if (isDetectedIEOrEdge) { - return ieOrEdge; - } - isDetectedIEOrEdge = true; - try { - const ua = internalWindow.navigator.userAgent; - if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) { - ieOrEdge = true; - } - } catch (error) {} - return ieOrEdge; -} -function isFunction(value) { - return typeof value === 'function'; -} -function isNumber(value) { - return typeof value === 'number'; -} - -/** - * @fileoverview - * @suppress {missingRequire} - */ -// Note that passive event listeners are now supported by most modern browsers, -// including Chrome, Firefox, Safari, and Edge. There's a pending change that -// would remove support for legacy browsers by zone.js. Removing `passiveSupported` -// from the codebase will reduce the final code size for existing apps that still use zone.js. -let passiveSupported = false; -if (typeof window !== 'undefined') { - try { - const options = Object.defineProperty({}, 'passive', { - get: function () { - passiveSupported = true; - } - }); - // Note: We pass the `options` object as the event handler too. This is not compatible with the - // signature of `addEventListener` or `removeEventListener` but enables us to remove the handler - // without an actual handler. - window.addEventListener('test', options, options); - window.removeEventListener('test', options, options); - } catch (err) { - passiveSupported = false; - } -} -// an identifier to tell ZoneTask do not create a new invoke closure -const OPTIMIZED_ZONE_EVENT_TASK_DATA = { - useG: true -}; -const zoneSymbolEventNames = {}; -const globalSources = {}; -const EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\w+)(true|false)$'); -const IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped'); -function prepareEventNames(eventName, eventNameToString) { - const falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR; - const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR; - const symbol = ZONE_SYMBOL_PREFIX + falseEventName; - const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName; - zoneSymbolEventNames[eventName] = {}; - zoneSymbolEventNames[eventName][FALSE_STR] = symbol; - zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture; -} -function patchEventTarget(_global, api, apis, patchOptions) { - const ADD_EVENT_LISTENER = patchOptions && patchOptions.add || ADD_EVENT_LISTENER_STR; - const REMOVE_EVENT_LISTENER = patchOptions && patchOptions.rm || REMOVE_EVENT_LISTENER_STR; - const LISTENERS_EVENT_LISTENER = patchOptions && patchOptions.listeners || 'eventListeners'; - const REMOVE_ALL_LISTENERS_EVENT_LISTENER = patchOptions && patchOptions.rmAll || 'removeAllListeners'; - const zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER); - const ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':'; - const PREPEND_EVENT_LISTENER = 'prependListener'; - const PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':'; - const invokeTask = function (task, target, event) { - // for better performance, check isRemoved which is set - // by removeEventListener - if (task.isRemoved) { - return; - } - const delegate = task.callback; - if (typeof delegate === 'object' && delegate.handleEvent) { - // create the bind version of handleEvent when invoke - task.callback = event => delegate.handleEvent(event); - task.originalDelegate = delegate; - } - // invoke static task.invoke - // need to try/catch error here, otherwise, the error in one event listener - // will break the executions of the other event listeners. Also error will - // not remove the event listener when `once` options is true. - let error; - try { - task.invoke(task, target, [event]); - } catch (err) { - error = err; - } - const options = task.options; - if (options && typeof options === 'object' && options.once) { - // if options.once is true, after invoke once remove listener here - // only browser need to do this, nodejs eventEmitter will cal removeListener - // inside EventEmitter.once - const delegate = task.originalDelegate ? task.originalDelegate : task.callback; - target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate, options); - } - return error; - }; - function globalCallback(context, event, isCapture) { - // https://github.com/angular/zone.js/issues/911, in IE, sometimes - // event will be undefined, so we need to use window.event - event = event || _global.event; - if (!event) { - return; - } - // event.target is needed for Samsung TV and SourceBuffer - // || global is needed https://github.com/angular/zone.js/issues/190 - const target = context || event.target || _global; - const tasks = target[zoneSymbolEventNames[event.type][isCapture ? TRUE_STR : FALSE_STR]]; - if (tasks) { - const errors = []; - // invoke all tasks which attached to current target with given event.type and capture = false - // for performance concern, if task.length === 1, just invoke - if (tasks.length === 1) { - const err = invokeTask(tasks[0], target, event); - err && errors.push(err); - } else { - // https://github.com/angular/zone.js/issues/836 - // copy the tasks array before invoke, to avoid - // the callback will remove itself or other listener - const copyTasks = tasks.slice(); - for (let i = 0; i < copyTasks.length; i++) { - if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) { - break; - } - const err = invokeTask(copyTasks[i], target, event); - err && errors.push(err); - } - } - // Since there is only one error, we don't need to schedule microTask - // to throw the error. - if (errors.length === 1) { - throw errors[0]; - } else { - for (let i = 0; i < errors.length; i++) { - const err = errors[i]; - api.nativeScheduleMicroTask(() => { - throw err; - }); - } - } - } - } - // global shared zoneAwareCallback to handle all event callback with capture = false - const globalZoneAwareCallback = function (event) { - return globalCallback(this, event, false); - }; - // global shared zoneAwareCallback to handle all event callback with capture = true - const globalZoneAwareCaptureCallback = function (event) { - return globalCallback(this, event, true); - }; - function patchEventTargetMethods(obj, patchOptions) { - if (!obj) { - return false; - } - let useGlobalCallback = true; - if (patchOptions && patchOptions.useG !== undefined) { - useGlobalCallback = patchOptions.useG; - } - const validateHandler = patchOptions && patchOptions.vh; - let checkDuplicate = true; - if (patchOptions && patchOptions.chkDup !== undefined) { - checkDuplicate = patchOptions.chkDup; - } - let returnTarget = false; - if (patchOptions && patchOptions.rt !== undefined) { - returnTarget = patchOptions.rt; - } - let proto = obj; - while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) { - proto = ObjectGetPrototypeOf(proto); - } - if (!proto && obj[ADD_EVENT_LISTENER]) { - // somehow we did not find it, but we can see it. This happens on IE for Window properties. - proto = obj; - } - if (!proto) { - return false; - } - if (proto[zoneSymbolAddEventListener]) { - return false; - } - const eventNameToString = patchOptions && patchOptions.eventNameToString; - // We use a shared global `taskData` to pass data for `scheduleEventTask`, - // eliminating the need to create a new object solely for passing data. - // WARNING: This object has a static lifetime, meaning it is not created - // each time `addEventListener` is called. It is instantiated only once - // and captured by reference inside the `addEventListener` and - // `removeEventListener` functions. Do not add any new properties to this - // object, as doing so would necessitate maintaining the information - // between `addEventListener` calls. - const taskData = {}; - const nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER]; - const nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] = proto[REMOVE_EVENT_LISTENER]; - const nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] = proto[LISTENERS_EVENT_LISTENER]; - const nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] = proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER]; - let nativePrependEventListener; - if (patchOptions && patchOptions.prepend) { - nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] = proto[patchOptions.prepend]; - } - /** - * This util function will build an option object with passive option - * to handle all possible input from the user. - */ - function buildEventListenerOptions(options, passive) { - if (!passiveSupported && typeof options === 'object' && options) { - // doesn't support passive but user want to pass an object as options. - // this will not work on some old browser, so we just pass a boolean - // as useCapture parameter - return !!options.capture; - } - if (!passiveSupported || !passive) { - return options; - } - if (typeof options === 'boolean') { - return { - capture: options, - passive: true - }; - } - if (!options) { - return { - passive: true - }; - } - if (typeof options === 'object' && options.passive !== false) { - return { - ...options, - passive: true - }; - } - return options; - } - const customScheduleGlobal = function (task) { - // if there is already a task for the eventName + capture, - // just return, because we use the shared globalZoneAwareCallback here. - if (taskData.isExisting) { - return; - } - return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options); - }; - /** - * In the context of events and listeners, this function will be - * called at the end by `cancelTask`, which, in turn, calls `task.cancelFn`. - * Cancelling a task is primarily used to remove event listeners from - * the task target. - */ - const customCancelGlobal = function (task) { - // if task is not marked as isRemoved, this call is directly - // from Zone.prototype.cancelTask, we should remove the task - // from tasksList of target first - if (!task.isRemoved) { - const symbolEventNames = zoneSymbolEventNames[task.eventName]; - let symbolEventName; - if (symbolEventNames) { - symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR]; - } - const existingTasks = symbolEventName && task.target[symbolEventName]; - if (existingTasks) { - for (let i = 0; i < existingTasks.length; i++) { - const existingTask = existingTasks[i]; - if (existingTask === task) { - existingTasks.splice(i, 1); - // set isRemoved to data for faster invokeTask check - task.isRemoved = true; - if (task.removeAbortListener) { - task.removeAbortListener(); - task.removeAbortListener = null; - } - if (existingTasks.length === 0) { - // all tasks for the eventName + capture have gone, - // remove globalZoneAwareCallback and remove the task cache from target - task.allRemoved = true; - task.target[symbolEventName] = null; - } - break; - } - } - } - } - // if all tasks for the eventName + capture have gone, - // we will really remove the global event callback, - // if not, return - if (!task.allRemoved) { - return; - } - return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options); - }; - const customScheduleNonGlobal = function (task) { - return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options); - }; - const customSchedulePrepend = function (task) { - return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options); - }; - const customCancelNonGlobal = function (task) { - return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options); - }; - const customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal; - const customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal; - const compareTaskCallbackVsDelegate = function (task, delegate) { - const typeOfDelegate = typeof delegate; - return typeOfDelegate === 'function' && task.callback === delegate || typeOfDelegate === 'object' && task.originalDelegate === delegate; - }; - const compare = patchOptions && patchOptions.diff ? patchOptions.diff : compareTaskCallbackVsDelegate; - const unpatchedEvents = Zone[zoneSymbol('UNPATCHED_EVENTS')]; - const passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')]; - function copyEventListenerOptions(options) { - if (typeof options === 'object' && options !== null) { - // We need to destructure the target `options` object since it may - // be frozen or sealed (possibly provided implicitly by a third-party - // library), or its properties may be readonly. - const newOptions = { - ...options - }; - // The `signal` option was recently introduced, which caused regressions in - // third-party scenarios where `AbortController` was directly provided to - // `addEventListener` as options. For instance, in cases like - // `document.addEventListener('keydown', callback, abortControllerInstance)`, - // which is valid because `AbortController` includes a `signal` getter, spreading - // `{...options}` wouldn't copy the `signal`. Additionally, using `Object.create` - // isn't feasible since `AbortController` is a built-in object type, and attempting - // to create a new object directly with it as the prototype might result in - // unexpected behavior. - if (options.signal) { - newOptions.signal = options.signal; - } - return newOptions; - } - return options; - } - const makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget = false, prepend = false) { - return function () { - const target = this || _global; - let eventName = arguments[0]; - if (patchOptions && patchOptions.transferEventName) { - eventName = patchOptions.transferEventName(eventName); - } - let delegate = arguments[1]; - if (!delegate) { - return nativeListener.apply(this, arguments); - } - if (isNode && eventName === 'uncaughtException') { - // don't patch uncaughtException of nodejs to prevent endless loop - return nativeListener.apply(this, arguments); - } - // don't create the bind delegate function for handleEvent - // case here to improve addEventListener performance - // we will create the bind delegate when invoke - let isHandleEvent = false; - if (typeof delegate !== 'function') { - if (!delegate.handleEvent) { - return nativeListener.apply(this, arguments); - } - isHandleEvent = true; - } - if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) { - return; - } - const passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1; - const options = copyEventListenerOptions(buildEventListenerOptions(arguments[2], passive)); - const signal = options?.signal; - if (signal?.aborted) { - // the signal is an aborted one, just return without attaching the event listener. - return; - } - if (unpatchedEvents) { - // check unpatched list - for (let i = 0; i < unpatchedEvents.length; i++) { - if (eventName === unpatchedEvents[i]) { - if (passive) { - return nativeListener.call(target, eventName, delegate, options); - } else { - return nativeListener.apply(this, arguments); - } - } - } - } - const capture = !options ? false : typeof options === 'boolean' ? true : options.capture; - const once = options && typeof options === 'object' ? options.once : false; - const zone = Zone.current; - let symbolEventNames = zoneSymbolEventNames[eventName]; - if (!symbolEventNames) { - prepareEventNames(eventName, eventNameToString); - symbolEventNames = zoneSymbolEventNames[eventName]; - } - const symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR]; - let existingTasks = target[symbolEventName]; - let isExisting = false; - if (existingTasks) { - // already have task registered - isExisting = true; - if (checkDuplicate) { - for (let i = 0; i < existingTasks.length; i++) { - if (compare(existingTasks[i], delegate)) { - // same callback, same capture, same event name, just return - return; - } - } - } - } else { - existingTasks = target[symbolEventName] = []; - } - let source; - const constructorName = target.constructor['name']; - const targetSource = globalSources[constructorName]; - if (targetSource) { - source = targetSource[eventName]; - } - if (!source) { - source = constructorName + addSource + (eventNameToString ? eventNameToString(eventName) : eventName); - } - // In the code below, `options` should no longer be reassigned; instead, it - // should only be mutated. This is because we pass that object to the native - // `addEventListener`. - // It's generally recommended to use the same object reference for options. - // This ensures consistency and avoids potential issues. - taskData.options = options; - if (once) { - // When using `addEventListener` with the `once` option, we don't pass - // the `once` option directly to the native `addEventListener` method. - // Instead, we keep the `once` setting and handle it ourselves. - taskData.options.once = false; - } - taskData.target = target; - taskData.capture = capture; - taskData.eventName = eventName; - taskData.isExisting = isExisting; - const data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined; - // keep taskData into data to allow onScheduleEventTask to access the task information - if (data) { - data.taskData = taskData; - } - if (signal) { - // When using `addEventListener` with the `signal` option, we don't pass - // the `signal` option directly to the native `addEventListener` method. - // Instead, we keep the `signal` setting and handle it ourselves. - taskData.options.signal = undefined; - } - // The `scheduleEventTask` function will ultimately call `customScheduleGlobal`, - // which in turn calls the native `addEventListener`. This is why `taskData.options` - // is updated before scheduling the task, as `customScheduleGlobal` uses - // `taskData.options` to pass it to the native `addEventListener`. - const task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn); - if (signal) { - // after task is scheduled, we need to store the signal back to task.options - taskData.options.signal = signal; - // Wrapping `task` in a weak reference would not prevent memory leaks. Weak references are - // primarily used for preventing strong references cycles. `onAbort` is always reachable - // as it's an event listener, so its closure retains a strong reference to the `task`. - const onAbort = () => task.zone.cancelTask(task); - nativeListener.call(signal, 'abort', onAbort, { - once: true - }); - // We need to remove the `abort` listener when the event listener is going to be removed, - // as it creates a closure that captures `task`. This closure retains a reference to the - // `task` object even after it goes out of scope, preventing `task` from being garbage - // collected. - task.removeAbortListener = () => signal.removeEventListener('abort', onAbort); - } - // should clear taskData.target to avoid memory leak - // issue, https://github.com/angular/angular/issues/20442 - taskData.target = null; - // need to clear up taskData because it is a global object - if (data) { - data.taskData = null; - } - // have to save those information to task in case - // application may call task.zone.cancelTask() directly - if (once) { - taskData.options.once = true; - } - if (!(!passiveSupported && typeof task.options === 'boolean')) { - // if not support passive, and we pass an option object - // to addEventListener, we should save the options to task - task.options = options; - } - task.target = target; - task.capture = capture; - task.eventName = eventName; - if (isHandleEvent) { - // save original delegate for compare to check duplicate - task.originalDelegate = delegate; - } - if (!prepend) { - existingTasks.push(task); - } else { - existingTasks.unshift(task); - } - if (returnTarget) { - return target; - } - }; - }; - proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget); - if (nativePrependEventListener) { - proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true); - } - proto[REMOVE_EVENT_LISTENER] = function () { - const target = this || _global; - let eventName = arguments[0]; - if (patchOptions && patchOptions.transferEventName) { - eventName = patchOptions.transferEventName(eventName); - } - const options = arguments[2]; - const capture = !options ? false : typeof options === 'boolean' ? true : options.capture; - const delegate = arguments[1]; - if (!delegate) { - return nativeRemoveEventListener.apply(this, arguments); - } - if (validateHandler && !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) { - return; - } - const symbolEventNames = zoneSymbolEventNames[eventName]; - let symbolEventName; - if (symbolEventNames) { - symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR]; - } - const existingTasks = symbolEventName && target[symbolEventName]; - // `existingTasks` may not exist if the `addEventListener` was called before - // it was patched by zone.js. Please refer to the attached issue for - // clarification, particularly after the `if` condition, before calling - // the native `removeEventListener`. - if (existingTasks) { - for (let i = 0; i < existingTasks.length; i++) { - const existingTask = existingTasks[i]; - if (compare(existingTask, delegate)) { - existingTasks.splice(i, 1); - // set isRemoved to data for faster invokeTask check - existingTask.isRemoved = true; - if (existingTasks.length === 0) { - // all tasks for the eventName + capture have gone, - // remove globalZoneAwareCallback and remove the task cache from target - existingTask.allRemoved = true; - target[symbolEventName] = null; - // in the target, we have an event listener which is added by on_property - // such as target.onclick = function() {}, so we need to clear this internal - // property too if all delegates with capture=false were removed - // https:// github.com/angular/angular/issues/31643 - // https://github.com/angular/angular/issues/54581 - if (!capture && typeof eventName === 'string') { - const onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName; - target[onPropertySymbol] = null; - } - } - // In all other conditions, when `addEventListener` is called after being - // patched by zone.js, we would always find an event task on the `EventTarget`. - // This will trigger `cancelFn` on the `existingTask`, leading to `customCancelGlobal`, - // which ultimately removes an event listener and cleans up the abort listener - // (if an `AbortSignal` was provided when scheduling a task). - existingTask.zone.cancelTask(existingTask); - if (returnTarget) { - return target; - } - return; - } - } - } - // https://github.com/angular/zone.js/issues/930 - // We may encounter a situation where the `addEventListener` was - // called on the event target before zone.js is loaded, resulting - // in no task being stored on the event target due to its invocation - // of the native implementation. In this scenario, we simply need to - // invoke the native `removeEventListener`. - return nativeRemoveEventListener.apply(this, arguments); - }; - proto[LISTENERS_EVENT_LISTENER] = function () { - const target = this || _global; - let eventName = arguments[0]; - if (patchOptions && patchOptions.transferEventName) { - eventName = patchOptions.transferEventName(eventName); - } - const listeners = []; - const tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName); - for (let i = 0; i < tasks.length; i++) { - const task = tasks[i]; - let delegate = task.originalDelegate ? task.originalDelegate : task.callback; - listeners.push(delegate); - } - return listeners; - }; - proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () { - const target = this || _global; - let eventName = arguments[0]; - if (!eventName) { - const keys = Object.keys(target); - for (let i = 0; i < keys.length; i++) { - const prop = keys[i]; - const match = EVENT_NAME_SYMBOL_REGX.exec(prop); - let evtName = match && match[1]; - // in nodejs EventEmitter, removeListener event is - // used for monitoring the removeListener call, - // so just keep removeListener eventListener until - // all other eventListeners are removed - if (evtName && evtName !== 'removeListener') { - this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName); - } - } - // remove removeListener listener finally - this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener'); - } else { - if (patchOptions && patchOptions.transferEventName) { - eventName = patchOptions.transferEventName(eventName); - } - const symbolEventNames = zoneSymbolEventNames[eventName]; - if (symbolEventNames) { - const symbolEventName = symbolEventNames[FALSE_STR]; - const symbolCaptureEventName = symbolEventNames[TRUE_STR]; - const tasks = target[symbolEventName]; - const captureTasks = target[symbolCaptureEventName]; - if (tasks) { - const removeTasks = tasks.slice(); - for (let i = 0; i < removeTasks.length; i++) { - const task = removeTasks[i]; - let delegate = task.originalDelegate ? task.originalDelegate : task.callback; - this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options); - } - } - if (captureTasks) { - const removeTasks = captureTasks.slice(); - for (let i = 0; i < removeTasks.length; i++) { - const task = removeTasks[i]; - let delegate = task.originalDelegate ? task.originalDelegate : task.callback; - this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options); - } - } - } - } - if (returnTarget) { - return this; - } - }; - // for native toString patch - attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener); - attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener); - if (nativeRemoveAllListeners) { - attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners); - } - if (nativeListeners) { - attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners); - } - return true; - } - let results = []; - for (let i = 0; i < apis.length; i++) { - results[i] = patchEventTargetMethods(apis[i], patchOptions); - } - return results; -} -function findEventTasks(target, eventName) { - if (!eventName) { - const foundTasks = []; - for (let prop in target) { - const match = EVENT_NAME_SYMBOL_REGX.exec(prop); - let evtName = match && match[1]; - if (evtName && (!eventName || evtName === eventName)) { - const tasks = target[prop]; - if (tasks) { - for (let i = 0; i < tasks.length; i++) { - foundTasks.push(tasks[i]); - } - } - } - } - return foundTasks; - } - let symbolEventName = zoneSymbolEventNames[eventName]; - if (!symbolEventName) { - prepareEventNames(eventName); - symbolEventName = zoneSymbolEventNames[eventName]; - } - const captureFalseTasks = target[symbolEventName[FALSE_STR]]; - const captureTrueTasks = target[symbolEventName[TRUE_STR]]; - if (!captureFalseTasks) { - return captureTrueTasks ? captureTrueTasks.slice() : []; - } else { - return captureTrueTasks ? captureFalseTasks.concat(captureTrueTasks) : captureFalseTasks.slice(); - } -} -function patchEventPrototype(global, api) { - const Event = global['Event']; - if (Event && Event.prototype) { - api.patchMethod(Event.prototype, 'stopImmediatePropagation', delegate => function (self, args) { - self[IMMEDIATE_PROPAGATION_SYMBOL] = true; - // we need to call the native stopImmediatePropagation - // in case in some hybrid application, some part of - // application will be controlled by zone, some are not - delegate && delegate.apply(self, args); - }); - } -} - -/** - * @fileoverview - * @suppress {missingRequire} - */ -function patchQueueMicrotask(global, api) { - api.patchMethod(global, 'queueMicrotask', delegate => { - return function (self, args) { - Zone.current.scheduleMicroTask('queueMicrotask', args[0]); - }; - }); -} - -/** - * @fileoverview - * @suppress {missingRequire} - */ -const taskSymbol = zoneSymbol('zoneTask'); -function patchTimer(window, setName, cancelName, nameSuffix) { - let setNative = null; - let clearNative = null; - setName += nameSuffix; - cancelName += nameSuffix; - const tasksByHandleId = {}; - function scheduleTask(task) { - const data = task.data; - data.args[0] = function () { - return task.invoke.apply(this, arguments); - }; - const handleOrId = setNative.apply(window, data.args); - // Whlist on Node.js when get can the ID by using `[Symbol.toPrimitive]()` we do - // to this so that we do not cause potentally leaks when using `setTimeout` - // since this can be periodic when using `.refresh`. - if (isNumber(handleOrId)) { - data.handleId = handleOrId; - } else { - data.handle = handleOrId; - // On Node.js a timeout and interval can be restarted over and over again by using the `.refresh` method. - data.isRefreshable = isFunction(handleOrId.refresh); - } - return task; - } - function clearTask(task) { - const { - handle, - handleId - } = task.data; - return clearNative.call(window, handle ?? handleId); - } - setNative = patchMethod(window, setName, delegate => function (self, args) { - if (isFunction(args[0])) { - const options = { - isRefreshable: false, - isPeriodic: nameSuffix === 'Interval', - delay: nameSuffix === 'Timeout' || nameSuffix === 'Interval' ? args[1] || 0 : undefined, - args: args - }; - const callback = args[0]; - args[0] = function timer() { - try { - return callback.apply(this, arguments); - } finally { - // issue-934, task will be cancelled - // even it is a periodic task such as - // setInterval - // https://github.com/angular/angular/issues/40387 - // Cleanup tasksByHandleId should be handled before scheduleTask - // Since some zoneSpec may intercept and doesn't trigger - // scheduleFn(scheduleTask) provided here. - const { - handle, - handleId, - isPeriodic, - isRefreshable - } = options; - if (!isPeriodic && !isRefreshable) { - if (handleId) { - // in non-nodejs env, we remove timerId - // from local cache - delete tasksByHandleId[handleId]; - } else if (handle) { - // Node returns complex objects as handleIds - // we remove task reference from timer object - handle[taskSymbol] = null; - } - } - } - }; - const task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask); - if (!task) { - return task; - } - // Node.js must additionally support the ref and unref functions. - const { - handleId, - handle, - isRefreshable, - isPeriodic - } = task.data; - if (handleId) { - // for non nodejs env, we save handleId: task - // mapping in local cache for clearTimeout - tasksByHandleId[handleId] = task; - } else if (handle) { - // for nodejs env, we save task - // reference in timerId Object for clearTimeout - handle[taskSymbol] = task; - if (isRefreshable && !isPeriodic) { - const originalRefresh = handle.refresh; - handle.refresh = function () { - const { - zone, - state - } = task; - if (state === 'notScheduled') { - task._state = 'scheduled'; - zone._updateTaskCount(task, 1); - } else if (state === 'running') { - task._state = 'scheduling'; - } - return originalRefresh.call(this); - }; - } - } - return handle ?? handleId ?? task; - } else { - // cause an error by calling it directly. - return delegate.apply(window, args); - } - }); - clearNative = patchMethod(window, cancelName, delegate => function (self, args) { - const id = args[0]; - let task; - if (isNumber(id)) { - // non nodejs env. - task = tasksByHandleId[id]; - delete tasksByHandleId[id]; - } else { - // nodejs env ?? other environments. - task = id?.[taskSymbol]; - if (task) { - id[taskSymbol] = null; - } else { - task = id; - } - } - if (task?.type) { - if (task.cancelFn) { - // Do not cancel already canceled functions - task.zone.cancelTask(task); - } - } else { - // cause an error by calling it directly. - delegate.apply(window, args); - } - }); -} -function patchCustomElements(_global, api) { - const { - isBrowser, - isMix - } = api.getGlobalObjects(); - if (!isBrowser && !isMix || !_global['customElements'] || !('customElements' in _global)) { - return; - } - // https://html.spec.whatwg.org/multipage/custom-elements.html#concept-custom-element-definition-lifecycle-callbacks - const callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback', 'formAssociatedCallback', 'formDisabledCallback', 'formResetCallback', 'formStateRestoreCallback']; - api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks); -} -function eventTargetPatch(_global, api) { - if (Zone[api.symbol('patchEventTarget')]) { - // EventTarget is already patched. - return; - } - const { - eventNames, - zoneSymbolEventNames, - TRUE_STR, - FALSE_STR, - ZONE_SYMBOL_PREFIX - } = api.getGlobalObjects(); - // predefine all __zone_symbol__ + eventName + true/false string - for (let i = 0; i < eventNames.length; i++) { - const eventName = eventNames[i]; - const falseEventName = eventName + FALSE_STR; - const trueEventName = eventName + TRUE_STR; - const symbol = ZONE_SYMBOL_PREFIX + falseEventName; - const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName; - zoneSymbolEventNames[eventName] = {}; - zoneSymbolEventNames[eventName][FALSE_STR] = symbol; - zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture; - } - const EVENT_TARGET = _global['EventTarget']; - if (!EVENT_TARGET || !EVENT_TARGET.prototype) { - return; - } - api.patchEventTarget(_global, api, [EVENT_TARGET && EVENT_TARGET.prototype]); - return true; -} -function patchEvent(global, api) { - api.patchEventPrototype(global, api); -} - -/** - * @fileoverview - * @suppress {globalThis} - */ -function filterProperties(target, onProperties, ignoreProperties) { - if (!ignoreProperties || ignoreProperties.length === 0) { - return onProperties; - } - const tip = ignoreProperties.filter(ip => ip.target === target); - if (!tip || tip.length === 0) { - return onProperties; - } - const targetIgnoreProperties = tip[0].ignoreProperties; - return onProperties.filter(op => targetIgnoreProperties.indexOf(op) === -1); -} -function patchFilteredProperties(target, onProperties, ignoreProperties, prototype) { - // check whether target is available, sometimes target will be undefined - // because different browser or some 3rd party plugin. - if (!target) { - return; - } - const filteredProperties = filterProperties(target, onProperties, ignoreProperties); - patchOnProperties(target, filteredProperties, prototype); -} -/** - * Get all event name properties which the event name startsWith `on` - * from the target object itself, inherited properties are not considered. - */ -function getOnEventNames(target) { - return Object.getOwnPropertyNames(target).filter(name => name.startsWith('on') && name.length > 2).map(name => name.substring(2)); -} -function propertyDescriptorPatch(api, _global) { - if (isNode && !isMix) { - return; - } - if (Zone[api.symbol('patchEvents')]) { - // events are already been patched by legacy patch. - return; - } - const ignoreProperties = _global['__Zone_ignore_on_properties']; - // for browsers that we can patch the descriptor: Chrome & Firefox - let patchTargets = []; - if (isBrowser) { - const internalWindow = window; - patchTargets = patchTargets.concat(['Document', 'SVGElement', 'Element', 'HTMLElement', 'HTMLBodyElement', 'HTMLMediaElement', 'HTMLFrameSetElement', 'HTMLFrameElement', 'HTMLIFrameElement', 'HTMLMarqueeElement', 'Worker']); - const ignoreErrorProperties = isIE() ? [{ - target: internalWindow, - ignoreProperties: ['error'] - }] : []; - // in IE/Edge, onProp not exist in window object, but in WindowPrototype - // so we need to pass WindowPrototype to check onProp exist or not - patchFilteredProperties(internalWindow, getOnEventNames(internalWindow), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow)); - } - patchTargets = patchTargets.concat(['XMLHttpRequest', 'XMLHttpRequestEventTarget', 'IDBIndex', 'IDBRequest', 'IDBOpenDBRequest', 'IDBDatabase', 'IDBTransaction', 'IDBCursor', 'WebSocket']); - for (let i = 0; i < patchTargets.length; i++) { - const target = _global[patchTargets[i]]; - target && target.prototype && patchFilteredProperties(target.prototype, getOnEventNames(target.prototype), ignoreProperties); - } -} - -/** - * @fileoverview - * @suppress {missingRequire} - */ -function patchBrowser(Zone) { - Zone.__load_patch('legacy', global => { - const legacyPatch = global[Zone.__symbol__('legacyPatch')]; - if (legacyPatch) { - legacyPatch(); - } - }); - Zone.__load_patch('timers', global => { - const set = 'set'; - const clear = 'clear'; - patchTimer(global, set, clear, 'Timeout'); - patchTimer(global, set, clear, 'Interval'); - patchTimer(global, set, clear, 'Immediate'); - }); - Zone.__load_patch('requestAnimationFrame', global => { - patchTimer(global, 'request', 'cancel', 'AnimationFrame'); - patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame'); - patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame'); - }); - Zone.__load_patch('blocking', (global, Zone) => { - const blockingMethods = ['alert', 'prompt', 'confirm']; - for (let i = 0; i < blockingMethods.length; i++) { - const name = blockingMethods[i]; - patchMethod(global, name, (delegate, symbol, name) => { - return function (s, args) { - return Zone.current.run(delegate, global, args, name); - }; - }); - } - }); - Zone.__load_patch('EventTarget', (global, Zone, api) => { - patchEvent(global, api); - eventTargetPatch(global, api); - // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener - const XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget']; - if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) { - api.patchEventTarget(global, api, [XMLHttpRequestEventTarget.prototype]); - } - }); - Zone.__load_patch('MutationObserver', (global, Zone, api) => { - patchClass('MutationObserver'); - patchClass('WebKitMutationObserver'); - }); - Zone.__load_patch('IntersectionObserver', (global, Zone, api) => { - patchClass('IntersectionObserver'); - }); - Zone.__load_patch('FileReader', (global, Zone, api) => { - patchClass('FileReader'); - }); - Zone.__load_patch('on_property', (global, Zone, api) => { - propertyDescriptorPatch(api, global); - }); - Zone.__load_patch('customElements', (global, Zone, api) => { - patchCustomElements(global, api); - }); - Zone.__load_patch('XHR', (global, Zone) => { - // Treat XMLHttpRequest as a macrotask. - patchXHR(global); - const XHR_TASK = zoneSymbol('xhrTask'); - const XHR_SYNC = zoneSymbol('xhrSync'); - const XHR_LISTENER = zoneSymbol('xhrListener'); - const XHR_SCHEDULED = zoneSymbol('xhrScheduled'); - const XHR_URL = zoneSymbol('xhrURL'); - const XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled'); - function patchXHR(window) { - const XMLHttpRequest = window['XMLHttpRequest']; - if (!XMLHttpRequest) { - // XMLHttpRequest is not available in service worker - return; - } - const XMLHttpRequestPrototype = XMLHttpRequest.prototype; - function findPendingTask(target) { - return target[XHR_TASK]; - } - let oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER]; - let oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; - if (!oriAddListener) { - const XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget']; - if (XMLHttpRequestEventTarget) { - const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype; - oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER]; - oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; - } - } - const READY_STATE_CHANGE = 'readystatechange'; - const SCHEDULED = 'scheduled'; - function scheduleTask(task) { - const data = task.data; - const target = data.target; - target[XHR_SCHEDULED] = false; - target[XHR_ERROR_BEFORE_SCHEDULED] = false; - // remove existing event listener - const listener = target[XHR_LISTENER]; - if (!oriAddListener) { - oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER]; - oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; - } - if (listener) { - oriRemoveListener.call(target, READY_STATE_CHANGE, listener); - } - const newListener = target[XHR_LISTENER] = () => { - if (target.readyState === target.DONE) { - // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with - // readyState=4 multiple times, so we need to check task state here - if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) { - // check whether the xhr has registered onload listener - // if that is the case, the task should invoke after all - // onload listeners finish. - // Also if the request failed without response (status = 0), the load event handler - // will not be triggered, in that case, we should also invoke the placeholder callback - // to close the XMLHttpRequest::send macroTask. - // https://github.com/angular/angular/issues/38795 - const loadTasks = target[Zone.__symbol__('loadfalse')]; - if (target.status !== 0 && loadTasks && loadTasks.length > 0) { - const oriInvoke = task.invoke; - task.invoke = function () { - // need to load the tasks again, because in other - // load listener, they may remove themselves - const loadTasks = target[Zone.__symbol__('loadfalse')]; - for (let i = 0; i < loadTasks.length; i++) { - if (loadTasks[i] === task) { - loadTasks.splice(i, 1); - } - } - if (!data.aborted && task.state === SCHEDULED) { - oriInvoke.call(task); - } - }; - loadTasks.push(task); - } else { - task.invoke(); - } - } else if (!data.aborted && target[XHR_SCHEDULED] === false) { - // error occurs when xhr.send() - target[XHR_ERROR_BEFORE_SCHEDULED] = true; - } - } - }; - oriAddListener.call(target, READY_STATE_CHANGE, newListener); - const storedTask = target[XHR_TASK]; - if (!storedTask) { - target[XHR_TASK] = task; - } - sendNative.apply(target, data.args); - target[XHR_SCHEDULED] = true; - return task; - } - function placeholderCallback() {} - function clearTask(task) { - const data = task.data; - // Note - ideally, we would call data.target.removeEventListener here, but it's too late - // to prevent it from firing. So instead, we store info for the event listener. - data.aborted = true; - return abortNative.apply(data.target, data.args); - } - const openNative = patchMethod(XMLHttpRequestPrototype, 'open', () => function (self, args) { - self[XHR_SYNC] = args[2] == false; - self[XHR_URL] = args[1]; - return openNative.apply(self, args); - }); - const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send'; - const fetchTaskAborting = zoneSymbol('fetchTaskAborting'); - const fetchTaskScheduling = zoneSymbol('fetchTaskScheduling'); - const sendNative = patchMethod(XMLHttpRequestPrototype, 'send', () => function (self, args) { - if (Zone.current[fetchTaskScheduling] === true) { - // a fetch is scheduling, so we are using xhr to polyfill fetch - // and because we already schedule macroTask for fetch, we should - // not schedule a macroTask for xhr again - return sendNative.apply(self, args); - } - if (self[XHR_SYNC]) { - // if the XHR is sync there is no task to schedule, just execute the code. - return sendNative.apply(self, args); - } else { - const options = { - target: self, - url: self[XHR_URL], - isPeriodic: false, - args: args, - aborted: false - }; - const task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask); - if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted && task.state === SCHEDULED) { - // xhr request throw error when send - // we should invoke task instead of leaving a scheduled - // pending macroTask - task.invoke(); - } - } - }); - const abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', () => function (self, args) { - const task = findPendingTask(self); - if (task && typeof task.type == 'string') { - // If the XHR has already completed, do nothing. - // If the XHR has already been aborted, do nothing. - // Fix #569, call abort multiple times before done will cause - // macroTask task count be negative number - if (task.cancelFn == null || task.data && task.data.aborted) { - return; - } - task.zone.cancelTask(task); - } else if (Zone.current[fetchTaskAborting] === true) { - // the abort is called from fetch polyfill, we need to call native abort of XHR. - return abortNative.apply(self, args); - } - // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no - // task - // to cancel. Do nothing. - }); - } - }); - Zone.__load_patch('geolocation', global => { - /// GEO_LOCATION - if (global['navigator'] && global['navigator'].geolocation) { - patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']); - } - }); - Zone.__load_patch('PromiseRejectionEvent', (global, Zone) => { - // handle unhandled promise rejection - function findPromiseRejectionHandler(evtName) { - return function (e) { - const eventTasks = findEventTasks(global, evtName); - eventTasks.forEach(eventTask => { - // windows has added unhandledrejection event listener - // trigger the event listener - const PromiseRejectionEvent = global['PromiseRejectionEvent']; - if (PromiseRejectionEvent) { - const evt = new PromiseRejectionEvent(evtName, { - promise: e.promise, - reason: e.rejection - }); - eventTask.invoke(evt); - } - }); - }; - } - if (global['PromiseRejectionEvent']) { - Zone[zoneSymbol('unhandledPromiseRejectionHandler')] = findPromiseRejectionHandler('unhandledrejection'); - Zone[zoneSymbol('rejectionHandledHandler')] = findPromiseRejectionHandler('rejectionhandled'); - } - }); - Zone.__load_patch('queueMicrotask', (global, Zone, api) => { - patchQueueMicrotask(global, api); - }); -} -function patchPromise(Zone) { - Zone.__load_patch('ZoneAwarePromise', (global, Zone, api) => { - const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - const ObjectDefineProperty = Object.defineProperty; - function readableObjectToString(obj) { - if (obj && obj.toString === Object.prototype.toString) { - const className = obj.constructor && obj.constructor.name; - return (className ? className : '') + ': ' + JSON.stringify(obj); - } - return obj ? obj.toString() : Object.prototype.toString.call(obj); - } - const __symbol__ = api.symbol; - const _uncaughtPromiseErrors = []; - const isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] !== false; - const symbolPromise = __symbol__('Promise'); - const symbolThen = __symbol__('then'); - const creationTrace = '__creationTrace__'; - api.onUnhandledError = e => { - if (api.showUncaughtError()) { - const rejection = e && e.rejection; - if (rejection) { - console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined); - } else { - console.error(e); - } - } - }; - api.microtaskDrainDone = () => { - while (_uncaughtPromiseErrors.length) { - const uncaughtPromiseError = _uncaughtPromiseErrors.shift(); - try { - uncaughtPromiseError.zone.runGuarded(() => { - if (uncaughtPromiseError.throwOriginal) { - throw uncaughtPromiseError.rejection; - } - throw uncaughtPromiseError; - }); - } catch (error) { - handleUnhandledRejection(error); - } - } - }; - const UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler'); - function handleUnhandledRejection(e) { - api.onUnhandledError(e); - try { - const handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL]; - if (typeof handler === 'function') { - handler.call(this, e); - } - } catch (err) {} - } - function isThenable(value) { - return value && value.then; - } - function forwardResolution(value) { - return value; - } - function forwardRejection(rejection) { - return ZoneAwarePromise.reject(rejection); - } - const symbolState = __symbol__('state'); - const symbolValue = __symbol__('value'); - const symbolFinally = __symbol__('finally'); - const symbolParentPromiseValue = __symbol__('parentPromiseValue'); - const symbolParentPromiseState = __symbol__('parentPromiseState'); - const source = 'Promise.then'; - const UNRESOLVED = null; - const RESOLVED = true; - const REJECTED = false; - const REJECTED_NO_CATCH = 0; - function makeResolver(promise, state) { - return v => { - try { - resolvePromise(promise, state, v); - } catch (err) { - resolvePromise(promise, false, err); - } - // Do not return value or you will break the Promise spec. - }; - } - const once = function () { - let wasCalled = false; - return function wrapper(wrappedFunction) { - return function () { - if (wasCalled) { - return; - } - wasCalled = true; - wrappedFunction.apply(null, arguments); - }; - }; - }; - const TYPE_ERROR = 'Promise resolved with itself'; - const CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace'); - // Promise Resolution - function resolvePromise(promise, state, value) { - const onceWrapper = once(); - if (promise === value) { - throw new TypeError(TYPE_ERROR); - } - if (promise[symbolState] === UNRESOLVED) { - // should only get value.then once based on promise spec. - let then = null; - try { - if (typeof value === 'object' || typeof value === 'function') { - then = value && value.then; - } - } catch (err) { - onceWrapper(() => { - resolvePromise(promise, false, err); - })(); - return promise; - } - // if (value instanceof ZoneAwarePromise) { - if (state !== REJECTED && value instanceof ZoneAwarePromise && value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) && value[symbolState] !== UNRESOLVED) { - clearRejectedNoCatch(value); - resolvePromise(promise, value[symbolState], value[symbolValue]); - } else if (state !== REJECTED && typeof then === 'function') { - try { - then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false))); - } catch (err) { - onceWrapper(() => { - resolvePromise(promise, false, err); - })(); - } - } else { - promise[symbolState] = state; - const queue = promise[symbolValue]; - promise[symbolValue] = value; - if (promise[symbolFinally] === symbolFinally) { - // the promise is generated by Promise.prototype.finally - if (state === RESOLVED) { - // the state is resolved, should ignore the value - // and use parent promise value - promise[symbolState] = promise[symbolParentPromiseState]; - promise[symbolValue] = promise[symbolParentPromiseValue]; - } - } - // record task information in value when error occurs, so we can - // do some additional work such as render longStackTrace - if (state === REJECTED && value instanceof Error) { - // check if longStackTraceZone is here - const trace = Zone.currentTask && Zone.currentTask.data && Zone.currentTask.data[creationTrace]; - if (trace) { - // only keep the long stack trace into error when in longStackTraceZone - ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { - configurable: true, - enumerable: false, - writable: true, - value: trace - }); - } - } - for (let i = 0; i < queue.length;) { - scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]); - } - if (queue.length == 0 && state == REJECTED) { - promise[symbolState] = REJECTED_NO_CATCH; - let uncaughtPromiseError = value; - try { - // Here we throws a new Error to print more readable error log - // and if the value is not an error, zone.js builds an `Error` - // Object here to attach the stack information. - throw new Error('Uncaught (in promise): ' + readableObjectToString(value) + (value && value.stack ? '\n' + value.stack : '')); - } catch (err) { - uncaughtPromiseError = err; - } - if (isDisableWrappingUncaughtPromiseRejection) { - // If disable wrapping uncaught promise reject - // use the value instead of wrapping it. - uncaughtPromiseError.throwOriginal = true; - } - uncaughtPromiseError.rejection = value; - uncaughtPromiseError.promise = promise; - uncaughtPromiseError.zone = Zone.current; - uncaughtPromiseError.task = Zone.currentTask; - _uncaughtPromiseErrors.push(uncaughtPromiseError); - api.scheduleMicroTask(); // to make sure that it is running - } - } - } - // Resolving an already resolved promise is a noop. - return promise; - } - const REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler'); - function clearRejectedNoCatch(promise) { - if (promise[symbolState] === REJECTED_NO_CATCH) { - // if the promise is rejected no catch status - // and queue.length > 0, means there is a error handler - // here to handle the rejected promise, we should trigger - // windows.rejectionhandled eventHandler or nodejs rejectionHandled - // eventHandler - try { - const handler = Zone[REJECTION_HANDLED_HANDLER]; - if (handler && typeof handler === 'function') { - handler.call(this, { - rejection: promise[symbolValue], - promise: promise - }); - } - } catch (err) {} - promise[symbolState] = REJECTED; - for (let i = 0; i < _uncaughtPromiseErrors.length; i++) { - if (promise === _uncaughtPromiseErrors[i].promise) { - _uncaughtPromiseErrors.splice(i, 1); - } - } - } - } - function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) { - clearRejectedNoCatch(promise); - const promiseState = promise[symbolState]; - const delegate = promiseState ? typeof onFulfilled === 'function' ? onFulfilled : forwardResolution : typeof onRejected === 'function' ? onRejected : forwardRejection; - zone.scheduleMicroTask(source, () => { - try { - const parentPromiseValue = promise[symbolValue]; - const isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally]; - if (isFinallyPromise) { - // if the promise is generated from finally call, keep parent promise's state and value - chainPromise[symbolParentPromiseValue] = parentPromiseValue; - chainPromise[symbolParentPromiseState] = promiseState; - } - // should not pass value to finally callback - const value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ? [] : [parentPromiseValue]); - resolvePromise(chainPromise, true, value); - } catch (error) { - // if error occurs, should always return this error - resolvePromise(chainPromise, false, error); - } - }, chainPromise); - } - const ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }'; - const noop = function () {}; - const AggregateError = global.AggregateError; - class ZoneAwarePromise { - static toString() { - return ZONE_AWARE_PROMISE_TO_STRING; - } - static resolve(value) { - if (value instanceof ZoneAwarePromise) { - return value; - } - return resolvePromise(new this(null), RESOLVED, value); - } - static reject(error) { - return resolvePromise(new this(null), REJECTED, error); - } - static withResolvers() { - const result = {}; - result.promise = new ZoneAwarePromise((res, rej) => { - result.resolve = res; - result.reject = rej; - }); - return result; - } - static any(values) { - if (!values || typeof values[Symbol.iterator] !== 'function') { - return Promise.reject(new AggregateError([], 'All promises were rejected')); - } - const promises = []; - let count = 0; - try { - for (let v of values) { - count++; - promises.push(ZoneAwarePromise.resolve(v)); - } - } catch (err) { - return Promise.reject(new AggregateError([], 'All promises were rejected')); - } - if (count === 0) { - return Promise.reject(new AggregateError([], 'All promises were rejected')); - } - let finished = false; - const errors = []; - return new ZoneAwarePromise((resolve, reject) => { - for (let i = 0; i < promises.length; i++) { - promises[i].then(v => { - if (finished) { - return; - } - finished = true; - resolve(v); - }, err => { - errors.push(err); - count--; - if (count === 0) { - finished = true; - reject(new AggregateError(errors, 'All promises were rejected')); - } - }); - } - }); - } - static race(values) { - let resolve; - let reject; - let promise = new this((res, rej) => { - resolve = res; - reject = rej; - }); - function onResolve(value) { - resolve(value); - } - function onReject(error) { - reject(error); - } - for (let value of values) { - if (!isThenable(value)) { - value = this.resolve(value); - } - value.then(onResolve, onReject); - } - return promise; - } - static all(values) { - return ZoneAwarePromise.allWithCallback(values); - } - static allSettled(values) { - const P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise; - return P.allWithCallback(values, { - thenCallback: value => ({ - status: 'fulfilled', - value - }), - errorCallback: err => ({ - status: 'rejected', - reason: err - }) - }); - } - static allWithCallback(values, callback) { - let resolve; - let reject; - let promise = new this((res, rej) => { - resolve = res; - reject = rej; - }); - // Start at 2 to prevent prematurely resolving if .then is called immediately. - let unresolvedCount = 2; - let valueIndex = 0; - const resolvedValues = []; - for (let value of values) { - if (!isThenable(value)) { - value = this.resolve(value); - } - const curValueIndex = valueIndex; - try { - value.then(value => { - resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value; - unresolvedCount--; - if (unresolvedCount === 0) { - resolve(resolvedValues); - } - }, err => { - if (!callback) { - reject(err); - } else { - resolvedValues[curValueIndex] = callback.errorCallback(err); - unresolvedCount--; - if (unresolvedCount === 0) { - resolve(resolvedValues); - } - } - }); - } catch (thenErr) { - reject(thenErr); - } - unresolvedCount++; - valueIndex++; - } - // Make the unresolvedCount zero-based again. - unresolvedCount -= 2; - if (unresolvedCount === 0) { - resolve(resolvedValues); - } - return promise; - } - constructor(executor) { - const promise = this; - if (!(promise instanceof ZoneAwarePromise)) { - throw new Error('Must be an instanceof Promise.'); - } - promise[symbolState] = UNRESOLVED; - promise[symbolValue] = []; // queue; - try { - const onceWrapper = once(); - executor && executor(onceWrapper(makeResolver(promise, RESOLVED)), onceWrapper(makeResolver(promise, REJECTED))); - } catch (error) { - resolvePromise(promise, false, error); - } - } - get [Symbol.toStringTag]() { - return 'Promise'; - } - get [Symbol.species]() { - return ZoneAwarePromise; - } - then(onFulfilled, onRejected) { - // We must read `Symbol.species` safely because `this` may be anything. For instance, `this` - // may be an object without a prototype (created through `Object.create(null)`); thus - // `this.constructor` will be undefined. One of the use cases is SystemJS creating - // prototype-less objects (modules) via `Object.create(null)`. The SystemJS creates an empty - // object and copies promise properties into that object (within the `getOrCreateLoad` - // function). The zone.js then checks if the resolved value has the `then` method and - // invokes it with the `value` context. Otherwise, this will throw an error: `TypeError: - // Cannot read properties of undefined (reading 'Symbol(Symbol.species)')`. - let C = this.constructor?.[Symbol.species]; - if (!C || typeof C !== 'function') { - C = this.constructor || ZoneAwarePromise; - } - const chainPromise = new C(noop); - const zone = Zone.current; - if (this[symbolState] == UNRESOLVED) { - this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected); - } else { - scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected); - } - return chainPromise; - } - catch(onRejected) { - return this.then(null, onRejected); - } - finally(onFinally) { - // See comment on the call to `then` about why thee `Symbol.species` is safely accessed. - let C = this.constructor?.[Symbol.species]; - if (!C || typeof C !== 'function') { - C = ZoneAwarePromise; - } - const chainPromise = new C(noop); - chainPromise[symbolFinally] = symbolFinally; - const zone = Zone.current; - if (this[symbolState] == UNRESOLVED) { - this[symbolValue].push(zone, chainPromise, onFinally, onFinally); - } else { - scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally); - } - return chainPromise; - } - } - // Protect against aggressive optimizers dropping seemingly unused properties. - // E.g. Closure Compiler in advanced mode. - ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve; - ZoneAwarePromise['reject'] = ZoneAwarePromise.reject; - ZoneAwarePromise['race'] = ZoneAwarePromise.race; - ZoneAwarePromise['all'] = ZoneAwarePromise.all; - const NativePromise = global[symbolPromise] = global['Promise']; - global['Promise'] = ZoneAwarePromise; - const symbolThenPatched = __symbol__('thenPatched'); - function patchThen(Ctor) { - const proto = Ctor.prototype; - const prop = ObjectGetOwnPropertyDescriptor(proto, 'then'); - if (prop && (prop.writable === false || !prop.configurable)) { - // check Ctor.prototype.then propertyDescriptor is writable or not - // in meteor env, writable is false, we should ignore such case - return; - } - const originalThen = proto.then; - // Keep a reference to the original method. - proto[symbolThen] = originalThen; - Ctor.prototype.then = function (onResolve, onReject) { - const wrapped = new ZoneAwarePromise((resolve, reject) => { - originalThen.call(this, resolve, reject); - }); - return wrapped.then(onResolve, onReject); - }; - Ctor[symbolThenPatched] = true; - } - api.patchThen = patchThen; - function zoneify(fn) { - return function (self, args) { - let resultPromise = fn.apply(self, args); - if (resultPromise instanceof ZoneAwarePromise) { - return resultPromise; - } - let ctor = resultPromise.constructor; - if (!ctor[symbolThenPatched]) { - patchThen(ctor); - } - return resultPromise; - }; - } - if (NativePromise) { - patchThen(NativePromise); - patchMethod(global, 'fetch', delegate => zoneify(delegate)); - } - // This is not part of public API, but it is useful for tests, so we expose it. - Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors; - return ZoneAwarePromise; - }); -} -function patchToString(Zone) { - // override Function.prototype.toString to make zone.js patched function - // look like native function - Zone.__load_patch('toString', global => { - // patch Func.prototype.toString to let them look like native - const originalFunctionToString = Function.prototype.toString; - const ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate'); - const PROMISE_SYMBOL = zoneSymbol('Promise'); - const ERROR_SYMBOL = zoneSymbol('Error'); - const newFunctionToString = function toString() { - if (typeof this === 'function') { - const originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL]; - if (originalDelegate) { - if (typeof originalDelegate === 'function') { - return originalFunctionToString.call(originalDelegate); - } else { - return Object.prototype.toString.call(originalDelegate); - } - } - if (this === Promise) { - const nativePromise = global[PROMISE_SYMBOL]; - if (nativePromise) { - return originalFunctionToString.call(nativePromise); - } - } - if (this === Error) { - const nativeError = global[ERROR_SYMBOL]; - if (nativeError) { - return originalFunctionToString.call(nativeError); - } - } - } - return originalFunctionToString.call(this); - }; - newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString; - Function.prototype.toString = newFunctionToString; - // patch Object.prototype.toString to let them look like native - const originalObjectToString = Object.prototype.toString; - const PROMISE_OBJECT_TO_STRING = '[object Promise]'; - Object.prototype.toString = function () { - if (typeof Promise === 'function' && this instanceof Promise) { - return PROMISE_OBJECT_TO_STRING; - } - return originalObjectToString.call(this); - }; - }); -} -function patchCallbacks(api, target, targetName, method, callbacks) { - const symbol = Zone.__symbol__(method); - if (target[symbol]) { - return; - } - const nativeDelegate = target[symbol] = target[method]; - target[method] = function (name, opts, options) { - if (opts && opts.prototype) { - callbacks.forEach(function (callback) { - const source = `${targetName}.${method}::` + callback; - const prototype = opts.prototype; - // Note: the `patchCallbacks` is used for patching the `document.registerElement` and - // `customElements.define`. We explicitly wrap the patching code into try-catch since - // callbacks may be already patched by other web components frameworks (e.g. LWC), and they - // make those properties non-writable. This means that patching callback will throw an error - // `cannot assign to read-only property`. See this code as an example: - // https://github.com/salesforce/lwc/blob/master/packages/@lwc/engine-core/src/framework/base-bridge-element.ts#L180-L186 - // We don't want to stop the application rendering if we couldn't patch some - // callback, e.g. `attributeChangedCallback`. - try { - if (prototype.hasOwnProperty(callback)) { - const descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback); - if (descriptor && descriptor.value) { - descriptor.value = api.wrapWithCurrentZone(descriptor.value, source); - api._redefineProperty(opts.prototype, callback, descriptor); - } else if (prototype[callback]) { - prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source); - } - } else if (prototype[callback]) { - prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source); - } - } catch { - // Note: we leave the catch block empty since there's no way to handle the error related - // to non-writable property. - } - }); - } - return nativeDelegate.call(target, name, opts, options); - }; - api.attachOriginToPatched(target[method], nativeDelegate); -} -function patchUtil(Zone) { - Zone.__load_patch('util', (global, Zone, api) => { - // Collect native event names by looking at properties - // on the global namespace, e.g. 'onclick'. - const eventNames = getOnEventNames(global); - api.patchOnProperties = patchOnProperties; - api.patchMethod = patchMethod; - api.bindArguments = bindArguments; - api.patchMacroTask = patchMacroTask; - // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` - // to define which events will not be patched by `Zone.js`. In newer version (>=0.9.0), we - // change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep the name consistent with - // angular repo. The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be - // supported for backwards compatibility. - const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS'); - const SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS'); - if (global[SYMBOL_UNPATCHED_EVENTS]) { - global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS]; - } - if (global[SYMBOL_BLACK_LISTED_EVENTS]) { - Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] = global[SYMBOL_BLACK_LISTED_EVENTS]; - } - api.patchEventPrototype = patchEventPrototype; - api.patchEventTarget = patchEventTarget; - api.isIEOrEdge = isIEOrEdge; - api.ObjectDefineProperty = ObjectDefineProperty; - api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor; - api.ObjectCreate = ObjectCreate; - api.ArraySlice = ArraySlice; - api.patchClass = patchClass; - api.wrapWithCurrentZone = wrapWithCurrentZone; - api.filterProperties = filterProperties; - api.attachOriginToPatched = attachOriginToPatched; - api._redefineProperty = Object.defineProperty; - api.patchCallbacks = patchCallbacks; - api.getGlobalObjects = () => ({ - globalSources, - zoneSymbolEventNames, - eventNames, - isBrowser, - isMix, - isNode, - TRUE_STR, - FALSE_STR, - ZONE_SYMBOL_PREFIX, - ADD_EVENT_LISTENER_STR, - REMOVE_EVENT_LISTENER_STR - }); - }); -} -function patchCommon(Zone) { - patchPromise(Zone); - patchToString(Zone); - patchUtil(Zone); -} -const Zone$1 = loadZone(); -patchCommon(Zone$1); -patchBrowser(Zone$1); - -/***/ }) - -}, -/******/ __webpack_require__ => { // webpackRuntimeModules -/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) -/******/ var __webpack_exports__ = (__webpack_exec__(4050)); -/******/ } -]); -//# sourceMappingURL=polyfills.js.map \ No newline at end of file diff --git a/Web/Resgrid.Web/wwwroot/js/ng/react-elements.css b/Web/Resgrid.Web/wwwroot/js/ng/react-elements.css new file mode 100644 index 000000000..f884dd39d --- /dev/null +++ b/Web/Resgrid.Web/wwwroot/js/ng/react-elements.css @@ -0,0 +1 @@ +@charset "UTF-8";.rg-element-root{box-sizing:border-box}.rg-card{background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 1px 2px #0f172a14}.rg-loading{display:flex;min-height:120px;align-items:center;justify-content:center;color:#4b5563;font-size:14px}.rg-loading__stack{display:inline-flex;align-items:center;gap:12px}.rg-loading__spinner{width:18px;height:18px;border-radius:50%;border:2px solid rgba(59,130,246,.2);border-top-color:#2563eb;animation:rg-spin .8s linear infinite}.rg-error{padding:12px 14px;color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;font-size:13px}@keyframes rg-spin{to{transform:rotate(360deg)}}.rg-map{font-size:13px;color:#111827}.rg-map__toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.rg-map__toolbar-section{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.rg-map__search{width:220px;max-width:100%;padding:7px 10px;border:1px solid #cbd5e1;border-radius:6px;outline:none}.rg-map__search:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.rg-map__checkbox,.rg-map__layer-toggle{display:inline-flex;align-items:center;gap:6px;font-weight:400}.rg-map__message{margin-bottom:8px}.rg-map__viewport{position:relative;width:100%;min-height:320px;overflow:hidden;border:1px solid #d1d5db;border-radius:6px;background:#f8fafc}.rg-map__canvas,.rg-map__canvas .leaflet-container,.rg-map__canvas .mapboxgl-map{width:100%;height:100%}.rg-map__layers{position:absolute;top:12px;right:12px;z-index:450;width:240px;max-width:calc(100% - 24px);padding:12px}.rg-map__layers-title{margin-bottom:8px;font-weight:600}.rg-map__layer-list{display:flex;flex-direction:column;gap:6px}.rg-map__overlay{position:absolute;inset:0;z-index:500;background:#ffffffb8}.rg-map__footer{display:flex;justify-content:flex-end;padding-top:8px;color:#6b7280;font-size:12px}.rg-map__tooltip{padding:2px 6px;border:1px solid #111827;color:#111827;background:#fff;font-size:11px;font-weight:600}.rg-map__tooltip:before{border-top-color:#111827}.rg-map__marker{display:inline-flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer}.rg-map__marker-icon{width:32px;height:37px;object-fit:contain;pointer-events:none}.rg-map__marker-label{max-width:180px;padding:2px 6px;border:1px solid #111827;border-radius:4px;color:#111827;background:#fffffff5;font-size:11px;font-weight:600;line-height:1.2;text-align:center;white-space:nowrap}@media (max-width: 900px){.rg-map__toolbar{align-items:stretch}.rg-map__layers{position:static;width:auto;max-width:none;margin:12px}}.rbc-btn{color:inherit;font:inherit;margin:0}button.rbc-btn{overflow:visible;text-transform:none;-webkit-appearance:button;-moz-appearance:button;appearance:button;cursor:pointer}button[disabled].rbc-btn{cursor:not-allowed}button.rbc-input::-moz-focus-inner{border:0;padding:0}.rbc-calendar{-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.rbc-m-b-negative-3{margin-bottom:-3px}.rbc-h-full{height:100%}.rbc-calendar *,.rbc-calendar *:before,.rbc-calendar *:after{-webkit-box-sizing:inherit;box-sizing:inherit}.rbc-abs-full,.rbc-row-bg{overflow:hidden;position:absolute;inset:0}.rbc-ellipsis,.rbc-show-more,.rbc-row-segment .rbc-event-content,.rbc-event-label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rbc-rtl{direction:rtl}.rbc-off-range{color:#999}.rbc-off-range-bg{background:#e6e6e6}.rbc-header{overflow:hidden;-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;text-overflow:ellipsis;white-space:nowrap;padding:0 3px;text-align:center;vertical-align:middle;font-weight:700;font-size:90%;min-height:0;border-bottom:1px solid #ddd}.rbc-header+.rbc-header{border-left:1px solid #ddd}.rbc-rtl .rbc-header+.rbc-header{border-left-width:0;border-right:1px solid #ddd}.rbc-header>a,.rbc-header>a:active,.rbc-header>a:visited{color:inherit;text-decoration:none}.rbc-button-link{color:inherit;background:none;margin:0;padding:0;border:none;cursor:pointer;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.rbc-row-content{position:relative;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none;z-index:4}.rbc-row-content-scrollable{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%}.rbc-row-content-scrollable .rbc-row-content-scroll-container{height:100%;overflow-y:scroll;-ms-overflow-style:none;scrollbar-width:none}.rbc-row-content-scrollable .rbc-row-content-scroll-container::-webkit-scrollbar{display:none}.rbc-today{background-color:#eaf6ff}.rbc-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:10px;font-size:16px}.rbc-toolbar .rbc-toolbar-label{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding:0 10px;text-align:center}.rbc-toolbar button{color:#373a3c;display:inline-block;margin:0;text-align:center;vertical-align:middle;background:none;background-image:none;border:1px solid #ccc;padding:.375rem 1rem;border-radius:4px;line-height:normal;white-space:nowrap}.rbc-toolbar button:active,.rbc-toolbar button.rbc-active{background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px #00000020;background-color:#e6e6e6;border-color:#adadad}.rbc-toolbar button:active:hover,.rbc-toolbar button:active:focus,.rbc-toolbar button.rbc-active:hover,.rbc-toolbar button.rbc-active:focus{color:#373a3c;background-color:#d4d4d4;border-color:#8c8c8c}.rbc-toolbar button:focus{color:#373a3c;background-color:#e6e6e6;border-color:#adadad}.rbc-toolbar button:hover{color:#373a3c;cursor:pointer;background-color:#e6e6e6;border-color:#adadad}.rbc-btn-group{display:inline-block;white-space:nowrap}.rbc-btn-group>button:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.rbc-btn-group>button:last-child:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.rbc-rtl .rbc-btn-group>button:first-child:not(:last-child){border-radius:0 4px 4px 0}.rbc-rtl .rbc-btn-group>button:last-child:not(:first-child){border-radius:4px 0 0 4px}.rbc-btn-group>button:not(:first-child):not(:last-child){border-radius:0}.rbc-btn-group button+button{margin-left:-1px}.rbc-rtl .rbc-btn-group button+button{margin-left:0;margin-right:-1px}.rbc-btn-group+.rbc-btn-group,.rbc-btn-group+button{margin-left:10px}@media (max-width: 767px){.rbc-toolbar{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.rbc-event,.rbc-day-slot .rbc-background-event{border:none;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none;margin:0;padding:2px 5px;background-color:#3174ad;border-radius:5px;color:#fff;cursor:pointer;width:100%;text-align:left}.rbc-slot-selecting .rbc-event,.rbc-slot-selecting .rbc-day-slot .rbc-background-event,.rbc-day-slot .rbc-slot-selecting .rbc-background-event{cursor:inherit;pointer-events:none}.rbc-event.rbc-selected,.rbc-day-slot .rbc-selected.rbc-background-event{background-color:#265985}.rbc-event:focus,.rbc-day-slot .rbc-background-event:focus{outline:5px auto #3b99fc}.rbc-event-label{font-size:80%}.rbc-event-overlaps{-webkit-box-shadow:-1px 1px 5px 0px rgba(51,51,51,.5);box-shadow:-1px 1px 5px #33333380}.rbc-event-continues-prior{border-top-left-radius:0;border-bottom-left-radius:0}.rbc-event-continues-after{border-top-right-radius:0;border-bottom-right-radius:0}.rbc-event-continues-earlier{border-top-left-radius:0;border-top-right-radius:0}.rbc-event-continues-later{border-bottom-left-radius:0;border-bottom-right-radius:0}.rbc-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.rbc-row-segment{padding:0 1px 1px}.rbc-selected-cell{background-color:#0000001a}.rbc-show-more{background-color:#ffffff4d;z-index:4;font-weight:700;font-size:85%;height:auto;line-height:normal;color:#3174ad}.rbc-show-more:hover,.rbc-show-more:focus{color:#265985}.rbc-month-view{position:relative;border:1px solid #ddd;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;width:100%;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none;height:100%}.rbc-month-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.rbc-month-row{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;-ms-flex-preferred-size:0px;flex-basis:0px;overflow:hidden;height:100%}.rbc-month-row+.rbc-month-row{border-top:1px solid #ddd}.rbc-date-cell{-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0;min-width:0;padding-right:5px;text-align:right}.rbc-date-cell.rbc-now{font-weight:700}.rbc-date-cell>a,.rbc-date-cell>a:active,.rbc-date-cell>a:visited{color:inherit;text-decoration:none}.rbc-row-bg{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;overflow:hidden;right:1px}.rbc-day-bg{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%}.rbc-day-bg+.rbc-day-bg{border-left:1px solid #ddd}.rbc-rtl .rbc-day-bg+.rbc-day-bg{border-left-width:0;border-right:1px solid #ddd}.rbc-overlay{position:absolute;z-index:5;border:1px solid #e5e5e5;background-color:#fff;-webkit-box-shadow:0 5px 15px rgba(0,0,0,.25);box-shadow:0 5px 15px #00000040;padding:10px}.rbc-overlay>*+*{margin-top:1px}.rbc-overlay-header{border-bottom:1px solid #e5e5e5;margin:-10px -10px 5px;padding:2px 10px}.rbc-agenda-view{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;overflow:auto}.rbc-agenda-view table.rbc-agenda-table{width:100%;border:1px solid #ddd;border-spacing:0;border-collapse:collapse}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td{padding:5px 10px;vertical-align:top}.rbc-agenda-view table.rbc-agenda-table .rbc-agenda-time-cell{padding-left:15px;padding-right:15px;text-transform:lowercase}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left:1px solid #ddd}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left-width:0;border-right:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table tbody>tr+tr{border-top:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table thead>tr>th{padding:3px 5px;text-align:left;border-bottom:1px solid #ddd}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table thead>tr>th{text-align:right}.rbc-agenda-time-cell{text-transform:lowercase}.rbc-agenda-time-cell .rbc-continues-after:after{content:" »"}.rbc-agenda-time-cell .rbc-continues-prior:before{content:"« "}.rbc-agenda-date-cell,.rbc-agenda-time-cell{white-space:nowrap}.rbc-agenda-event-cell{width:100%}.rbc-time-column{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:100%}.rbc-time-column .rbc-timeslot-group{-webkit-box-flex:1;-ms-flex:1;flex:1}.rbc-timeslot-group{border-bottom:1px solid #ddd;min-height:40px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.rbc-time-gutter,.rbc-header-gutter{-webkit-box-flex:0;-ms-flex:none;flex:none}.rbc-label{padding:0 5px}.rbc-day-slot{position:relative}.rbc-day-slot .rbc-events-container{inset:0;position:absolute;margin-right:10px}.rbc-day-slot .rbc-events-container.rbc-rtl{left:10px;right:0}.rbc-day-slot .rbc-event,.rbc-day-slot .rbc-background-event{border:1px solid #265985;display:-webkit-box;display:-ms-flexbox;display:flex;max-height:100%;min-height:20px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column wrap;flex-flow:column wrap;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;overflow:hidden;position:absolute}.rbc-day-slot .rbc-background-event{opacity:.75}.rbc-day-slot .rbc-event-label{-webkit-box-flex:0;-ms-flex:none;flex:none;padding-right:5px;width:auto}.rbc-day-slot .rbc-event-content{width:100%;-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0;word-wrap:break-word;line-height:1;height:100%;min-height:1em}.rbc-day-slot .rbc-time-slot{border-top:1px solid #f7f7f7}.rbc-time-view-resources .rbc-time-gutter,.rbc-time-view-resources .rbc-time-header-gutter{position:sticky;left:0;background-color:#fff;border-right:1px solid #ddd;z-index:10;margin-right:-1px}.rbc-time-view-resources .rbc-time-header{overflow:hidden}.rbc-time-view-resources .rbc-time-header-content{min-width:auto;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;-ms-flex-preferred-size:0px;flex-basis:0px}.rbc-time-view-resources .rbc-time-header-cell-single-day{display:none}.rbc-time-view-resources .rbc-day-slot{min-width:140px}.rbc-time-view-resources .rbc-header,.rbc-time-view-resources .rbc-day-bg{width:140px;-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0;-ms-flex-preferred-size:0 px;flex-basis:0 px}.rbc-time-header-content+.rbc-time-header-content{margin-left:-1px}.rbc-time-slot{-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0}.rbc-time-slot.rbc-now{font-weight:700}.rbc-day-header{text-align:center}.rbc-slot-selection{z-index:10;position:absolute;background-color:#00000080;color:#fff;font-size:75%;width:100%;padding:3px}.rbc-slot-selecting{cursor:move}.rbc-time-view{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;border:1px solid #ddd;min-height:0}.rbc-time-view .rbc-time-gutter{white-space:nowrap;text-align:right}.rbc-time-view .rbc-allday-cell{-webkit-box-sizing:content-box;box-sizing:content-box;width:100%;height:100%;position:relative}.rbc-time-view .rbc-allday-cell+.rbc-allday-cell{border-left:1px solid #ddd}.rbc-time-view .rbc-allday-events{position:relative;z-index:4}.rbc-time-view .rbc-row{-webkit-box-sizing:border-box;box-sizing:border-box;min-height:20px}.rbc-time-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.rbc-time-header.rbc-overflowing{border-right:1px solid #ddd}.rbc-rtl .rbc-time-header.rbc-overflowing{border-right-width:0;border-left:1px solid #ddd}.rbc-time-header>.rbc-row:first-child{border-bottom:1px solid #ddd}.rbc-time-header>.rbc-row.rbc-row-resource{border-bottom:1px solid #ddd}.rbc-time-header-cell-single-day{display:none}.rbc-time-header-content{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;min-width:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;border-left:1px solid #ddd}.rbc-rtl .rbc-time-header-content{border-left-width:0;border-right:1px solid #ddd}.rbc-time-header-content>.rbc-row.rbc-row-resource{border-bottom:1px solid #ddd;-ms-flex-negative:0;flex-shrink:0}.rbc-time-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;width:100%;border-top:2px solid #ddd;overflow-y:auto;position:relative}.rbc-time-content>.rbc-time-gutter{-webkit-box-flex:0;-ms-flex:none;flex:none}.rbc-time-content>*+*>*{border-left:1px solid #ddd}.rbc-rtl .rbc-time-content>*+*>*{border-left-width:0;border-right:1px solid #ddd}.rbc-time-content>.rbc-day-slot{width:100%;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.rbc-current-time-indicator{position:absolute;z-index:3;left:0;right:0;height:1px;background-color:#74ad31;pointer-events:none}.rbc-resource-grouping.rbc-time-header-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.rbc-resource-grouping .rbc-row .rbc-header{width:141px}.rg-shifts{color:#111827;font-size:13px}.rg-shifts__calendar,.rg-shifts .rbc-calendar{min-height:760px}.rg-shifts .rbc-toolbar{gap:12px;margin-bottom:18px}.rg-shifts .rbc-toolbar button{border:1px solid #2563eb;border-radius:4px;background:#2563eb;color:#fff;padding:6px 12px}.rg-shifts .rbc-toolbar button:hover,.rg-shifts .rbc-toolbar button:focus{border-color:#1d4ed8;background:#1d4ed8;color:#fff}.rg-shifts .rbc-toolbar button.rbc-active{border-color:#1e40af;background:#1e40af;color:#fff}.rg-shifts .rbc-month-view,.rg-shifts .rbc-time-view{overflow:hidden;border:1px solid #d1d5db;border-radius:6px}.rg-shifts .rbc-header{padding:8px 0;font-weight:600}.rg-shifts .rbc-today{background:#eff6ff}.rg-shifts .rbc-off-range-bg{background:#f8fafc}.rg-shifts .rbc-event{box-shadow:none}.rg-omnibar{display:flex;flex-direction:column;gap:12px;max-width:640px;color:#111827;font-size:13px}.rg-omnibar__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.rg-omnibar__title{font-size:18px;font-weight:600}.rg-omnibar__count{color:#6b7280;font-size:12px}.rg-omnibar__input{width:100%;padding:10px 12px;border:1px solid #cbd5e1;border-radius:6px;outline:none}.rg-omnibar__input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.rg-omnibar__results{display:flex;flex-direction:column;gap:8px}.rg-omnibar__item{display:flex;width:100%;flex-direction:column;gap:4px;padding:12px;border:1px solid #dbe2ea;border-radius:6px;background:#fff;text-align:left;transition:border-color .15s ease,background .15s ease}.rg-omnibar__item:hover,.rg-omnibar__item--active{border-color:#2563eb;background:#eff6ff}.rg-omnibar__item-label{font-size:14px;font-weight:600}.rg-omnibar__item-description,.rg-omnibar__empty{color:#6b7280}.mapboxgl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgb(0 0 0/0)}.mapboxgl-canvas{left:0;position:absolute;top:0}.mapboxgl-map:-webkit-full-screen{height:100%;width:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass{cursor:grab;-webkit-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer{cursor:pointer}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active{cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:none}.mapboxgl-ctrl-bottom,.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-left,.mapboxgl-ctrl-right,.mapboxgl-ctrl-top,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.mapboxgl-ctrl-top-left{left:0;top:0}.mapboxgl-ctrl-top{left:50%;top:0;transform:translate(-50%)}.mapboxgl-ctrl-top-right{right:0;top:0}.mapboxgl-ctrl-right{right:0;top:50%;transform:translateY(-50%)}.mapboxgl-ctrl-bottom-right{bottom:0;right:0}.mapboxgl-ctrl-bottom{bottom:0;left:50%;transform:translate(-50%)}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-left{left:0;top:50%;transform:translateY(-50%)}.mapboxgl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{float:left;margin:10px 0 0 10px}.mapboxgl-ctrl-top .mapboxgl-ctrl{float:left;margin:10px 0}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{float:right;margin:10px 10px 0 0}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl,.mapboxgl-ctrl-right .mapboxgl-ctrl{float:right;margin:0 10px 10px 0}.mapboxgl-ctrl-bottom .mapboxgl-ctrl{float:left;margin:10px 0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl,.mapboxgl-ctrl-left .mapboxgl-ctrl{float:left;margin:0 0 10px 10px}.mapboxgl-ctrl-group{background:#fff;border-radius:4px}.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px #0000001a}@media (-ms-high-contrast:active){.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.mapboxgl-ctrl-group button{background-color:initial;border:0;box-sizing:border-box;cursor:pointer;display:block;height:32px;outline:none;overflow:hidden;padding:0;width:32px}.mapboxgl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media (-ms-high-contrast:active){.mapboxgl-ctrl-icon{background-color:initial}.mapboxgl-ctrl-group button+button{border-top:1px solid ButtonText}}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon{opacity:.25}.mapboxgl-ctrl-group button:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:only-child{border-radius:inherit}.mapboxgl-ctrl button:not(:disabled):hover{background-color:#eee}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-arrow-up .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='%23333' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4.29289 11.7071C4.68342 12.0976 5.31658 12.0976 5.70711 11.7071L9 8.41421L12.2929 11.7071C12.6834 12.0976 13.3166 12.0976 13.7071 11.7071C14.0976 11.3166 14.0976 10.6834 13.7071 10.2929L9.70711 6.29289C9.31658 5.90237 8.68342 5.90237 8.29289 6.29289L4.29289 10.2929C3.90237 10.6834 3.90237 11.3166 4.29289 11.7071Z' fill='%23333333'/%3E%3C/svg%3E");background-size:18px 18px}.mapboxgl-ctrl button.mapboxgl-ctrl-arrow-down .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='%23333' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4.29289 6.29289C4.68342 5.90237 5.31658 5.90237 5.70711 6.29289L9 9.58579L12.2929 6.29289C12.6834 5.90237 13.3166 5.90237 13.7071 6.29289C14.0976 6.68342 14.0976 7.31658 13.7071 7.70711L9.70711 11.7071C9.31658 12.0976 8.68342 12.0976 8.29289 11.7071L4.29289 7.70711C3.90237 7.31658 3.90237 6.68342 4.29289 6.29289Z' fill='%23333333'/%3E%3C/svg%3E");background-size:18px 18px}.mapboxgl-ctrl button.mapboxgl-ctrl-indoor-toggle .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='%23333' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M4.0017 3.0017L4.0017 15.0017L10.0017 15.0017V12.0017H12.0017V15.0017H14.0017L14.0017 3.0017C14.0097 2.86829 13.9894 2.73469 13.9419 2.60973C13.8945 2.48477 13.8211 2.37129 13.7266 2.27678C13.6321 2.18228 13.5186 2.10889 13.3937 2.06147C13.2687 2.01405 13.1351 1.99368 13.0017 2.0017L5.0017 2.0017C4.86829 1.99368 4.73469 2.01405 4.60973 2.06147C4.48477 2.10889 4.37129 2.18228 4.27678 2.27678C4.18228 2.37129 4.10889 2.48477 4.06147 2.60973C4.01405 2.73469 3.99368 2.86829 4.0017 3.0017ZM8.0017 14.0017H6.0017V12.0017H8.0017V14.0017ZM8.0017 10.0017H6.0017L6.0017 8.0017H8.0017V10.0017ZM8.0017 6.0017L6.0017 6.0017V4.0017H8.0017V6.0017ZM12.0017 10.0017H10.0017V8.0017H12.0017V10.0017ZM12.0017 6.0017H10.0017V4.0017L12.0017 4.0017V6.0017Z' fill='%23333333'/%3E%3C/svg%3E");background-size:18px 18px}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-indoor-toggle .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='%23fff' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M4.0017 3.0017L4.0017 15.0017L10.0017 15.0017V12.0017H12.0017V15.0017H14.0017L14.0017 3.0017C14.0097 2.86829 13.9894 2.73469 13.9419 2.60973C13.8945 2.48477 13.8211 2.37129 13.7266 2.27678C13.6321 2.18228 13.5186 2.10889 13.3937 2.06147C13.2687 2.01405 13.1351 1.99368 13.0017 2.0017L5.0017 2.0017C4.86829 1.99368 4.73469 2.01405 4.60973 2.06147C4.48477 2.10889 4.37129 2.18228 4.27678 2.27678C4.18228 2.37129 4.10889 2.48477 4.06147 2.60973C4.01405 2.73469 3.99368 2.86829 4.0017 3.0017ZM8.0017 14.0017H6.0017V12.0017H8.0017V14.0017ZM8.0017 10.0017H6.0017L6.0017 8.0017H8.0017V10.0017ZM8.0017 6.0017L6.0017 6.0017V4.0017H8.0017V6.0017ZM12.0017 10.0017H10.0017V8.0017H12.0017V10.0017ZM12.0017 6.0017H10.0017V4.0017L12.0017 4.0017V6.0017Z' fill='%23333333'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-indoor-toggle .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='%23000' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M4.0017 3.0017L4.0017 15.0017L10.0017 15.0017V12.0017H12.0017V15.0017H14.0017L14.0017 3.0017C14.0097 2.86829 13.9894 2.73469 13.9419 2.60973C13.8945 2.48477 13.8211 2.37129 13.7266 2.27678C13.6321 2.18228 13.5186 2.10889 13.3937 2.06147C13.2687 2.01405 13.1351 1.99368 13.0017 2.0017L5.0017 2.0017C4.86829 1.99368 4.73469 2.01405 4.60973 2.06147C4.48477 2.10889 4.37129 2.18228 4.27678 2.27678C4.18228 2.37129 4.10889 2.48477 4.06147 2.60973C4.01405 2.73469 3.99368 2.86829 4.0017 3.0017ZM8.0017 14.0017H6.0017V12.0017H8.0017V14.0017ZM8.0017 10.0017H6.0017L6.0017 8.0017H8.0017V10.0017ZM8.0017 6.0017L6.0017 6.0017V4.0017H8.0017V6.0017ZM12.0017 10.0017H10.0017V8.0017H12.0017V10.0017ZM12.0017 6.0017H10.0017V4.0017L12.0017 4.0017V6.0017Z' fill='%23333333'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon{animation:mapboxgl-spin 2s linear infinite}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}}@keyframes mapboxgl-spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='0.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='0.9' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}@media (-ms-high-contrast:active){a.mapboxgl-ctrl-logo{background-color:initial;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23000'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E")}}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{background-color:#ffffff80;margin:0;padding:0 5px}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{background-color:#fff;border-radius:12px;box-sizing:initial;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{background-color:#ffffff80;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{background-color:#0000000d}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{right:0;top:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{left:0;top:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}.mapboxgl-ctrl-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{left:0}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.mapboxgl-ctrl-attrib a{color:#000000bf;text-decoration:none}.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{font-weight:700;margin-left:2px}.mapboxgl-attrib-empty{display:none}.mapboxgl-ctrl-scale{background-color:#ffffffbf;border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px;white-space:nowrap}.mapboxgl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{flex-direction:column-reverse}.mapboxgl-popup-anchor-left{flex-direction:row}.mapboxgl-popup-anchor-right{flex-direction:row-reverse}.mapboxgl-popup-tip{border:10px solid #0000;height:0;width:0;z-index:1}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.mapboxgl-popup-close-button{background-color:initial;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.mapboxgl-popup-close-button:hover{background-color:#eee}.mapboxgl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px #0000001a;padding:10px 10px 15px;pointer-events:auto;position:relative}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer{display:none}.mapboxgl-popup-track-pointer *{pointer-events:none;user-select:none}.mapboxgl-map:hover .mapboxgl-popup-track-pointer{display:flex}.mapboxgl-map:active .mapboxgl-popup-track-pointer{display:none}.mapboxgl-marker{left:0;opacity:1;position:absolute;top:0;transition:opacity .2s;will-change:transform}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.mapboxgl-user-location-dot:before{animation:mapboxgl-user-location-dot-pulse 2s infinite;content:"";position:absolute}.mapboxgl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px #00000059;box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading{height:0;width:0}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-bottom:7.5px solid #4aa1eb;content:"";position:absolute}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-left:7.5px solid #0000;transform:translateY(-28px) skewY(-20deg)}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after{border-right:7.5px solid #0000;transform:translate(7.5px,-28px) skewY(20deg)}@keyframes mapboxgl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}@media print{.mapbox-improve-map{display:none}}.mapboxgl-scroll-zoom-blocker,.mapboxgl-touch-pan-blocker{align-items:center;background:#000000b3;color:#fff;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;height:100%;justify-content:center;left:0;opacity:0;pointer-events:none;position:absolute;text-align:center;top:0;transition:opacity .75s ease-in-out;transition-delay:1s;width:100%}.mapboxgl-scroll-zoom-blocker-show,.mapboxgl-touch-pan-blocker-show{opacity:1;transition:opacity .1s ease-in-out}.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page,.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button{font-size:16px;font-weight:700;text-align:center}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button-selected{background-color:#ccc;color:#000}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button-selected:hover{background-color:#ccc}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}} diff --git a/Web/Resgrid.Web/wwwroot/js/ng/react-elements.js b/Web/Resgrid.Web/wwwroot/js/ng/react-elements.js new file mode 100644 index 000000000..d3df2a6d9 --- /dev/null +++ b/Web/Resgrid.Web/wwwroot/js/ng/react-elements.js @@ -0,0 +1,2 @@ +import "./chunks/elements-BnCXm89z.js"; +//# sourceMappingURL=react-elements.js.map diff --git a/Web/Resgrid.Web/wwwroot/js/ng/runtime.1a4e2ecd996ea63f.js b/Web/Resgrid.Web/wwwroot/js/ng/runtime.1a4e2ecd996ea63f.js deleted file mode 100644 index 12d8f5338..000000000 --- a/Web/Resgrid.Web/wwwroot/js/ng/runtime.1a4e2ecd996ea63f.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,p={},_={};function n(e){var a=_[e];if(void 0!==a)return a.exports;var r=_[e]={exports:{}};return p[e].call(r.exports,r,r.exports,n),r.exports}n.m=p,e=[],n.O=(a,r,s,l)=>{if(!r){var c=1/0;for(f=0;f=l)&&Object.keys(n.O).every(h=>n.O[h](r[t]))?r.splice(t--,1):(o=!1,l0&&e[f-1][2]>l;f--)e[f]=e[f-1];e[f]=[r,s,l]},n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a}),a},n.d=(e,a)=>{for(var r in a)n.o(a,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),(()=>{var e={666:0};n.O.j=s=>0===e[s];var a=(s,l)=>{var t,u,[f,c,o]=l,v=0;if(f.some(d=>0!==e[d])){for(t in c)n.o(c,t)&&(n.m[t]=c[t]);if(o)var b=o(n)}for(s&&s(l);v{"use strict";var e,v={},i={};function a(e){var n=i[e];if(void 0!==n)return n.exports;var r=i[e]={id:e,loaded:!1,exports:{}};return v[e].call(r.exports,r,r.exports,a),r.loaded=!0,r.exports}a.m=v,e=[],a.O=(n,r,s,t)=>{if(!r){var u=1/0;for(f=0;f=t)&&Object.keys(a.O).every(_=>a.O[_](r[l]))?r.splice(l--,1):(o=!1,t0&&e[f-1][2]>t;f--)e[f]=e[f-1];e[f]=[r,s,t]},a.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return a.d(n,{a:n}),n},a.d=(e,n)=>{for(var r in n)a.o(n,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},a.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e={666:0};a.O.j=s=>0===e[s];var n=(s,t)=>{var l,c,[f,u,o]=t,p=0;if(f.some(h=>0!==e[h])){for(l in u)a.o(u,l)&&(a.m[l]=u[l]);if(o)var d=o(a)}for(s&&s(t);p { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({}); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ id: moduleId, -/******/ loaded: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.loaded = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var [chunkIds, fn, priority] = deferred[i]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/node module decorator */ -/******/ (() => { -/******/ __webpack_require__.nmd = (module) => { -/******/ module.paths = []; -/******/ if (!module.children) module.children = []; -/******/ return module; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "runtime": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var [chunkIds, moreModules, runtime] = data; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkApps"] = self["webpackChunkApps"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ -/******/ })() -; -//# sourceMappingURL=runtime.js.map \ No newline at end of file diff --git a/Web/Resgrid.Web/wwwroot/js/ng/styles.6e462343e310d4b8.css b/Web/Resgrid.Web/wwwroot/js/ng/styles.6e462343e310d4b8.css deleted file mode 100644 index a15a24e5c..000000000 --- a/Web/Resgrid.Web/wwwroot/js/ng/styles.6e462343e310d4b8.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.cal-month-view .cal-header{text-align:center;font-weight:bolder}.cal-month-view .cal-header .cal-cell{padding:5px 0;overflow:hidden;text-overflow:ellipsis;display:block;white-space:nowrap}.cal-month-view .cal-days{border:1px solid;border-bottom:0}.cal-month-view .cal-cell-top{min-height:78px;flex:1}.cal-month-view .cal-cell-row{-js-display:flex;display:flex}.cal-month-view .cal-cell{float:left;flex:1;-js-display:flex;display:flex;flex-direction:column;align-items:stretch}.cal-month-view .cal-cell .cal-event{pointer-events:all!important}.cal-month-view .cal-day-cell{min-height:100px}@media all and (-ms-high-contrast: none){.cal-month-view .cal-day-cell{display:block}}.cal-month-view .cal-day-cell:not(:last-child){border-right:1px solid}[dir=rtl] .cal-month-view .cal-day-cell:not(:last-child){border-right:initial;border-left:1px solid}.cal-month-view .cal-days .cal-cell-row{border-bottom:1px solid}.cal-month-view .cal-day-badge{margin-top:18px;margin-left:10px;display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:middle;border-radius:10px}.cal-month-view .cal-day-number{font-size:1.2em;font-weight:400;opacity:.5;margin-top:15px;margin-right:15px;float:right;margin-bottom:10px}.cal-month-view .cal-events{flex:1;align-items:flex-end;margin:3px;line-height:10px;-js-display:flex;display:flex;flex-wrap:wrap}.cal-month-view .cal-event{width:10px;height:10px;border-radius:50%;display:inline-block;margin:2px}.cal-month-view .cal-day-cell.cal-in-month.cal-has-events{cursor:pointer}.cal-month-view .cal-day-cell.cal-out-month .cal-day-number{opacity:.1;cursor:default}.cal-month-view .cal-day-cell.cal-today .cal-day-number{font-size:1.9em}.cal-month-view .cal-open-day-events{padding:15px}.cal-month-view .cal-open-day-events .cal-event{position:relative;top:2px}.cal-month-view .cal-out-month .cal-day-badge,.cal-month-view .cal-out-month .cal-event{opacity:.3}.cal-month-view .cal-draggable{cursor:move}.cal-month-view .cal-drag-active *{pointer-events:none}.cal-month-view .cal-event-title{cursor:pointer}.cal-month-view .cal-event-title:hover{text-decoration:underline}.cal-month-view{background-color:#fff}.cal-month-view .cal-cell-row:hover{background-color:#fafafa}.cal-month-view .cal-cell-row .cal-cell:hover,.cal-month-view .cal-cell.cal-has-events.cal-open{background-color:#ededed}.cal-month-view .cal-days{border-color:#e1e1e1}.cal-month-view .cal-day-cell:not(:last-child){border-right-color:#e1e1e1}[dir=rtl] .cal-month-view .cal-day-cell:not(:last-child){border-right-color:initial;border-left-color:#e1e1e1}.cal-month-view .cal-days .cal-cell-row{border-bottom-color:#e1e1e1}.cal-month-view .cal-day-badge{background-color:#b94a48;color:#fff}.cal-month-view .cal-event{background-color:#1e90ff;border-color:#d1e8ff;color:#fff}.cal-month-view .cal-day-cell.cal-weekend .cal-day-number{color:#8b0000}.cal-month-view .cal-day-cell.cal-today{background-color:#e8fde7}.cal-month-view .cal-day-cell.cal-drag-over{background-color:#e0e0e0!important}.cal-month-view .cal-open-day-events{color:#fff;background-color:#555;box-shadow:inset 0 0 15px #00000080}.cal-week-view *{box-sizing:border-box}.cal-week-view .cal-day-headers{-js-display:flex;display:flex;padding-left:70px;border:1px solid}[dir=rtl] .cal-week-view .cal-day-headers{padding-left:initial;padding-right:70px}.cal-week-view .cal-day-headers .cal-header{flex:1;text-align:center;padding:5px}.cal-week-view .cal-day-headers .cal-header:not(:last-child){border-right:1px solid}[dir=rtl] .cal-week-view .cal-day-headers .cal-header:not(:last-child){border-right:initial;border-left:1px solid}.cal-week-view .cal-day-headers .cal-header:first-child{border-left:1px solid}[dir=rtl] .cal-week-view .cal-day-headers .cal-header:first-child{border-left:initial;border-right:1px solid}.cal-week-view .cal-day-headers span{font-weight:400;opacity:.5}.cal-week-view .cal-day-column{flex-grow:1;border-left:solid 1px}[dir=rtl] .cal-week-view .cal-day-column{border-left:initial;border-right:solid 1px}.cal-week-view .cal-event{font-size:12px;border:1px solid;direction:ltr}.cal-week-view .cal-time-label-column{width:70px;height:100%}.cal-week-view .cal-current-time-marker{position:absolute;width:100%;height:2px;z-index:2}.cal-week-view .cal-all-day-events{border:solid 1px;border-top:0;border-bottom-width:3px;padding-top:3px;position:relative}.cal-week-view .cal-all-day-events .cal-day-columns{height:100%;width:100%;-js-display:flex;display:flex;position:absolute;top:0;z-index:0}.cal-week-view .cal-all-day-events .cal-events-row{position:relative;height:31px;margin-left:70px}[dir=rtl] .cal-week-view .cal-all-day-events .cal-events-row{margin-left:initial;margin-right:70px}.cal-week-view .cal-all-day-events .cal-event-container{display:inline-block;position:absolute}.cal-week-view .cal-all-day-events .cal-event-container.resize-active{z-index:1;pointer-events:none}.cal-week-view .cal-all-day-events .cal-event{padding:0 5px;margin-left:2px;margin-right:2px;height:28px;line-height:28px}.cal-week-view .cal-all-day-events .cal-starts-within-week .cal-event{border-top-left-radius:5px;border-bottom-left-radius:5px}[dir=rtl] .cal-week-view .cal-all-day-events .cal-starts-within-week .cal-event{border-top-left-radius:initial;border-bottom-left-radius:initial;border-top-right-radius:5px!important;border-bottom-right-radius:5px!important}.cal-week-view .cal-all-day-events .cal-ends-within-week .cal-event{border-top-right-radius:5px;border-bottom-right-radius:5px}[dir=rtl] .cal-week-view .cal-all-day-events .cal-ends-within-week .cal-event{border-top-right-radius:initial;border-bottom-right-radius:initial;border-top-left-radius:5px;border-bottom-left-radius:5px}.cal-week-view .cal-all-day-events .cal-time-label-column{-js-display:flex;display:flex;align-items:center;justify-content:center;font-size:14px}.cal-week-view .cal-all-day-events .cal-resize-handle{width:6px;height:100%;cursor:col-resize;position:absolute;top:0}.cal-week-view .cal-all-day-events .cal-resize-handle.cal-resize-handle-after-end{right:0}[dir=rtl] .cal-week-view .cal-all-day-events .cal-resize-handle.cal-resize-handle-after-end{right:initial;left:0}.cal-week-view .cal-event,.cal-week-view .cal-header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-week-view .cal-drag-active{pointer-events:none;z-index:1}.cal-week-view .cal-drag-active *{pointer-events:none}.cal-week-view .cal-time-events{position:relative;border:solid 1px;border-top:0;-js-display:flex;display:flex}.cal-week-view .cal-time-events .cal-day-columns{-js-display:flex;display:flex;flex-grow:1}.cal-week-view .cal-time-events .cal-day-column,.cal-week-view .cal-time-events .cal-events-container{position:relative}.cal-week-view .cal-time-events .cal-event-container{position:absolute;z-index:1}.cal-week-view .cal-time-events .cal-event{width:calc(100% - 2px);height:calc(100% - 2px);margin:1px;padding:0 5px;line-height:25px}.cal-week-view .cal-time-events .cal-resize-handle{width:100%;height:4px;cursor:row-resize;position:absolute}.cal-week-view .cal-time-events .cal-resize-handle.cal-resize-handle-after-end{bottom:0}.cal-week-view .cal-hour-segment{position:relative}.cal-week-view .cal-hour-segment:after{content:"\a0"}.cal-week-view .cal-event-container:not(.cal-draggable){cursor:pointer}.cal-week-view .cal-draggable{cursor:move}.cal-week-view mwl-calendar-week-view-hour-segment,.cal-week-view .cal-hour-segment{display:block}.cal-week-view .cal-hour:not(:last-child) .cal-hour-segment,.cal-week-view .cal-hour:last-child :not(:last-child) .cal-hour-segment{border-bottom:thin dashed}.cal-week-view .cal-time{font-weight:700;padding-top:5px;width:70px;text-align:center}.cal-week-view .cal-hour-segment.cal-after-hour-start .cal-time{display:none}.cal-week-view .cal-starts-within-day .cal-event{border-top-left-radius:5px;border-top-right-radius:5px}.cal-week-view .cal-ends-within-day .cal-event{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cal-week-view{background-color:#fff;border-top:solid 1px #e1e1e1}.cal-week-view .cal-day-headers{border-color:#e1e1e1;border-top:0}.cal-week-view .cal-day-headers .cal-header:not(:last-child){border-right-color:#e1e1e1}[dir=rtl] .cal-week-view .cal-day-headers .cal-header:not(:last-child){border-right-color:initial;border-left:solid 1px #e1e1e1!important}.cal-week-view .cal-day-headers .cal-header:first-child{border-left-color:#e1e1e1}[dir=rtl] .cal-week-view .cal-day-headers .cal-header:first-child{border-left-color:initial;border-right-color:#e1e1e1}.cal-week-view .cal-day-headers .cal-header:hover,.cal-week-view .cal-day-headers .cal-drag-over{background-color:#ededed}.cal-week-view .cal-day-column{border-left-color:#e1e1e1}[dir=rtl] .cal-week-view .cal-day-column{border-left-color:initial;border-right-color:#e1e1e1}.cal-week-view .cal-event{background-color:#d1e8ff;border-color:#1e90ff;color:#1e90ff}.cal-week-view .cal-all-day-events{border-color:#e1e1e1}.cal-week-view .cal-header.cal-today{background-color:#e8fde7}.cal-week-view .cal-header.cal-weekend span{color:#8b0000}.cal-week-view .cal-time-events{border-color:#e1e1e1}.cal-week-view .cal-time-events .cal-day-columns:not(.cal-resize-active) .cal-hour-segment:hover{background-color:#ededed}.cal-week-view .cal-hour-odd{background-color:#fafafa}.cal-week-view .cal-drag-over .cal-hour-segment{background-color:#ededed}.cal-week-view .cal-hour:not(:last-child) .cal-hour-segment,.cal-week-view .cal-hour:last-child :not(:last-child) .cal-hour-segment{border-bottom-color:#e1e1e1}.cal-week-view .cal-current-time-marker{background-color:#ea4334}.cal-day-view mwl-calendar-week-view-header{display:none}.cal-day-view .cal-events-container{margin-left:70px}[dir=rtl] .cal-day-view .cal-events-container{margin-left:initial;margin-right:70px}.cal-day-view .cal-day-column{border-left:0}.cal-day-view .cal-current-time-marker{margin-left:70px;width:calc(100% - 70px)}[dir=rtl] .cal-day-view .cal-current-time-marker{margin-left:initial;margin-right:70px}.cal-tooltip{position:absolute;z-index:1070;display:block;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.5;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;font-size:11px;word-wrap:break-word;opacity:.9}.cal-tooltip.cal-tooltip-top{padding:5px 0;margin-top:-3px}.cal-tooltip.cal-tooltip-top .cal-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0}.cal-tooltip.cal-tooltip-right{padding:0 5px;margin-left:3px}.cal-tooltip.cal-tooltip-right .cal-tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0}.cal-tooltip.cal-tooltip-bottom{padding:5px 0;margin-top:3px}.cal-tooltip.cal-tooltip-bottom .cal-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px}.cal-tooltip.cal-tooltip-left{padding:0 5px;margin-left:-3px}.cal-tooltip.cal-tooltip-left .cal-tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px}.cal-tooltip-inner{max-width:200px;padding:3px 8px;text-align:center;border-radius:.25rem}.cal-tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.cal-tooltip.cal-tooltip-top .cal-tooltip-arrow{border-top-color:#000}.cal-tooltip.cal-tooltip-right .cal-tooltip-arrow{border-right-color:#000}.cal-tooltip.cal-tooltip-bottom .cal-tooltip-arrow{border-bottom-color:#000}.cal-tooltip.cal-tooltip-left .cal-tooltip-arrow{border-left-color:#000}.cal-tooltip-inner{color:#fff;background-color:#000}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll} diff --git a/Web/Resgrid.Web/wwwroot/js/ng/styles.css b/Web/Resgrid.Web/wwwroot/js/ng/styles.css deleted file mode 100644 index 882243565..000000000 --- a/Web/Resgrid.Web/wwwroot/js/ng/styles.css +++ /dev/null @@ -1,616 +0,0 @@ -/*!************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[2]!./node_modules/angular-calendar/css/angular-calendar.css ***! - \************************************************************************************************************************************************************************************************************************************************/ -@charset "UTF-8"; -.cal-month-view .cal-header { - text-align: center; - font-weight: bolder; -} -.cal-month-view .cal-header .cal-cell { - padding: 5px 0; - overflow: hidden; - text-overflow: ellipsis; - display: block; - white-space: nowrap; -} -.cal-month-view .cal-days { - border: 1px solid; - border-bottom: 0; -} -.cal-month-view .cal-cell-top { - min-height: 78px; - flex: 1; -} -.cal-month-view .cal-cell-row { - -js-display: flex; - display: flex; -} -.cal-month-view .cal-cell { - float: left; - flex: 1; - -js-display: flex; - display: flex; - flex-direction: column; - align-items: stretch; -} -.cal-month-view .cal-cell .cal-event { - pointer-events: all !important; -} -.cal-month-view .cal-day-cell { - min-height: 100px; -} -@media all and (-ms-high-contrast: none) { - .cal-month-view .cal-day-cell { - display: block; - } -} -.cal-month-view .cal-day-cell:not(:last-child) { - border-right: 1px solid; -} -[dir=rtl] .cal-month-view .cal-day-cell:not(:last-child) { - border-right: initial; - border-left: 1px solid; -} -.cal-month-view .cal-days .cal-cell-row { - border-bottom: 1px solid; -} -.cal-month-view .cal-day-badge { - margin-top: 18px; - margin-left: 10px; - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: 700; - line-height: 1; - text-align: center; - white-space: nowrap; - vertical-align: middle; - border-radius: 10px; -} -.cal-month-view .cal-day-number { - font-size: 1.2em; - font-weight: 400; - opacity: 0.5; - margin-top: 15px; - margin-right: 15px; - float: right; - margin-bottom: 10px; -} -.cal-month-view .cal-events { - flex: 1; - align-items: flex-end; - margin: 3px; - line-height: 10px; - -js-display: flex; - display: flex; - flex-wrap: wrap; -} -.cal-month-view .cal-event { - width: 10px; - height: 10px; - border-radius: 50%; - display: inline-block; - margin: 2px; -} -.cal-month-view .cal-day-cell.cal-in-month.cal-has-events { - cursor: pointer; -} -.cal-month-view .cal-day-cell.cal-out-month .cal-day-number { - opacity: 0.1; - cursor: default; -} -.cal-month-view .cal-day-cell.cal-today .cal-day-number { - font-size: 1.9em; -} -.cal-month-view .cal-open-day-events { - padding: 15px; -} -.cal-month-view .cal-open-day-events .cal-event { - position: relative; - top: 2px; -} -.cal-month-view .cal-out-month .cal-day-badge, -.cal-month-view .cal-out-month .cal-event { - opacity: 0.3; -} -.cal-month-view .cal-draggable { - cursor: move; -} -.cal-month-view .cal-drag-active * { - pointer-events: none; -} -.cal-month-view .cal-event-title { - cursor: pointer; -} -.cal-month-view .cal-event-title:hover { - text-decoration: underline; -} - -.cal-month-view { - background-color: #fff; -} -.cal-month-view .cal-cell-row:hover { - background-color: #fafafa; -} -.cal-month-view .cal-cell-row .cal-cell:hover, -.cal-month-view .cal-cell.cal-has-events.cal-open { - background-color: #ededed; -} -.cal-month-view .cal-days { - border-color: #e1e1e1; -} -.cal-month-view .cal-day-cell:not(:last-child) { - border-right-color: #e1e1e1; -} -[dir=rtl] .cal-month-view .cal-day-cell:not(:last-child) { - border-right-color: initial; - border-left-color: #e1e1e1; -} -.cal-month-view .cal-days .cal-cell-row { - border-bottom-color: #e1e1e1; -} -.cal-month-view .cal-day-badge { - background-color: #b94a48; - color: #fff; -} -.cal-month-view .cal-event { - background-color: #1e90ff; - border-color: #d1e8ff; - color: #fff; -} -.cal-month-view .cal-day-cell.cal-weekend .cal-day-number { - color: #8b0000; -} -.cal-month-view .cal-day-cell.cal-today { - background-color: #e8fde7; -} -.cal-month-view .cal-day-cell.cal-drag-over { - background-color: #e0e0e0 !important; -} -.cal-month-view .cal-open-day-events { - color: #fff; - background-color: #555; - box-shadow: inset 0 0 15px 0 rgba(0, 0, 0, 0.5); -} - -.cal-week-view { - /* stylelint-disable-next-line selector-type-no-unknown */ -} -.cal-week-view * { - box-sizing: border-box; -} -.cal-week-view .cal-day-headers { - -js-display: flex; - display: flex; - padding-left: 70px; - border: 1px solid; -} -[dir=rtl] .cal-week-view .cal-day-headers { - padding-left: initial; - padding-right: 70px; -} -.cal-week-view .cal-day-headers .cal-header { - flex: 1; - text-align: center; - padding: 5px; -} -.cal-week-view .cal-day-headers .cal-header:not(:last-child) { - border-right: 1px solid; -} -[dir=rtl] .cal-week-view .cal-day-headers .cal-header:not(:last-child) { - border-right: initial; - border-left: 1px solid; -} -.cal-week-view .cal-day-headers .cal-header:first-child { - border-left: 1px solid; -} -[dir=rtl] .cal-week-view .cal-day-headers .cal-header:first-child { - border-left: initial; - border-right: 1px solid; -} -.cal-week-view .cal-day-headers span { - font-weight: 400; - opacity: 0.5; -} -.cal-week-view .cal-day-column { - flex-grow: 1; - border-left: solid 1px; -} -[dir=rtl] .cal-week-view .cal-day-column { - border-left: initial; - border-right: solid 1px; -} -.cal-week-view .cal-event { - font-size: 12px; - border: 1px solid; - direction: ltr; -} -.cal-week-view .cal-time-label-column { - width: 70px; - height: 100%; -} -.cal-week-view .cal-current-time-marker { - position: absolute; - width: 100%; - height: 2px; - z-index: 2; -} -.cal-week-view .cal-all-day-events { - border: solid 1px; - border-top: 0; - border-bottom-width: 3px; - padding-top: 3px; - position: relative; -} -.cal-week-view .cal-all-day-events .cal-day-columns { - height: 100%; - width: 100%; - -js-display: flex; - display: flex; - position: absolute; - top: 0; - z-index: 0; -} -.cal-week-view .cal-all-day-events .cal-events-row { - position: relative; - height: 31px; - margin-left: 70px; -} -[dir=rtl] .cal-week-view .cal-all-day-events .cal-events-row { - margin-left: initial; - margin-right: 70px; -} -.cal-week-view .cal-all-day-events .cal-event-container { - display: inline-block; - position: absolute; -} -.cal-week-view .cal-all-day-events .cal-event-container.resize-active { - z-index: 1; - pointer-events: none; -} -.cal-week-view .cal-all-day-events .cal-event { - padding: 0 5px; - margin-left: 2px; - margin-right: 2px; - height: 28px; - line-height: 28px; -} -.cal-week-view .cal-all-day-events .cal-starts-within-week .cal-event { - border-top-left-radius: 5px; - border-bottom-left-radius: 5px; -} -[dir=rtl] .cal-week-view .cal-all-day-events .cal-starts-within-week .cal-event { - border-top-left-radius: initial; - border-bottom-left-radius: initial; - border-top-right-radius: 5px !important; - border-bottom-right-radius: 5px !important; -} -.cal-week-view .cal-all-day-events .cal-ends-within-week .cal-event { - border-top-right-radius: 5px; - border-bottom-right-radius: 5px; -} -[dir=rtl] .cal-week-view .cal-all-day-events .cal-ends-within-week .cal-event { - border-top-right-radius: initial; - border-bottom-right-radius: initial; - border-top-left-radius: 5px; - border-bottom-left-radius: 5px; -} -.cal-week-view .cal-all-day-events .cal-time-label-column { - -js-display: flex; - display: flex; - align-items: center; - justify-content: center; - font-size: 14px; -} -.cal-week-view .cal-all-day-events .cal-resize-handle { - width: 6px; - height: 100%; - cursor: col-resize; - position: absolute; - top: 0; -} -.cal-week-view .cal-all-day-events .cal-resize-handle.cal-resize-handle-after-end { - right: 0; -} -[dir=rtl] .cal-week-view .cal-all-day-events .cal-resize-handle.cal-resize-handle-after-end { - right: initial; - left: 0; -} -.cal-week-view .cal-event, -.cal-week-view .cal-header { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.cal-week-view .cal-drag-active { - pointer-events: none; - z-index: 1; -} -.cal-week-view .cal-drag-active * { - pointer-events: none; -} -.cal-week-view .cal-time-events { - position: relative; - border: solid 1px; - border-top: 0; - -js-display: flex; - display: flex; -} -.cal-week-view .cal-time-events .cal-day-columns { - -js-display: flex; - display: flex; - flex-grow: 1; -} -.cal-week-view .cal-time-events .cal-day-column { - position: relative; -} -.cal-week-view .cal-time-events .cal-events-container { - position: relative; -} -.cal-week-view .cal-time-events .cal-event-container { - position: absolute; - z-index: 1; -} -.cal-week-view .cal-time-events .cal-event { - width: calc(100% - 2px); - height: calc(100% - 2px); - margin: 1px; - padding: 0 5px; - line-height: 25px; -} -.cal-week-view .cal-time-events .cal-resize-handle { - width: 100%; - height: 4px; - cursor: row-resize; - position: absolute; -} -.cal-week-view .cal-time-events .cal-resize-handle.cal-resize-handle-after-end { - bottom: 0; -} -.cal-week-view .cal-hour-segment { - position: relative; -} -.cal-week-view .cal-hour-segment::after { - content: " "; -} -.cal-week-view .cal-event-container:not(.cal-draggable) { - cursor: pointer; -} -.cal-week-view .cal-draggable { - cursor: move; -} -.cal-week-view mwl-calendar-week-view-hour-segment, -.cal-week-view .cal-hour-segment { - display: block; -} -.cal-week-view .cal-hour:not(:last-child) .cal-hour-segment, -.cal-week-view .cal-hour:last-child :not(:last-child) .cal-hour-segment { - border-bottom: thin dashed; -} -.cal-week-view .cal-time { - font-weight: bold; - padding-top: 5px; - width: 70px; - text-align: center; -} -.cal-week-view .cal-hour-segment.cal-after-hour-start .cal-time { - display: none; -} -.cal-week-view .cal-starts-within-day .cal-event { - border-top-left-radius: 5px; - border-top-right-radius: 5px; -} -.cal-week-view .cal-ends-within-day .cal-event { - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; -} - -.cal-week-view { - background-color: #fff; - border-top: solid 1px #e1e1e1; -} -.cal-week-view .cal-day-headers { - border-color: #e1e1e1; - border-top: 0; -} -.cal-week-view .cal-day-headers .cal-header:not(:last-child) { - border-right-color: #e1e1e1; -} -[dir=rtl] .cal-week-view .cal-day-headers .cal-header:not(:last-child) { - border-right-color: initial; - border-left: solid 1px #e1e1e1 !important; -} -.cal-week-view .cal-day-headers .cal-header:first-child { - border-left-color: #e1e1e1; -} -[dir=rtl] .cal-week-view .cal-day-headers .cal-header:first-child { - border-left-color: initial; - border-right-color: #e1e1e1; -} -.cal-week-view .cal-day-headers .cal-header:hover, -.cal-week-view .cal-day-headers .cal-drag-over { - background-color: #ededed; -} -.cal-week-view .cal-day-column { - border-left-color: #e1e1e1; -} -[dir=rtl] .cal-week-view .cal-day-column { - border-left-color: initial; - border-right-color: #e1e1e1; -} -.cal-week-view .cal-event { - background-color: #d1e8ff; - border-color: #1e90ff; - color: #1e90ff; -} -.cal-week-view .cal-all-day-events { - border-color: #e1e1e1; -} -.cal-week-view .cal-header.cal-today { - background-color: #e8fde7; -} -.cal-week-view .cal-header.cal-weekend span { - color: #8b0000; -} -.cal-week-view .cal-time-events { - border-color: #e1e1e1; -} -.cal-week-view .cal-time-events .cal-day-columns:not(.cal-resize-active) .cal-hour-segment:hover { - background-color: #ededed; -} -.cal-week-view .cal-hour-odd { - background-color: #fafafa; -} -.cal-week-view .cal-drag-over .cal-hour-segment { - background-color: #ededed; -} -.cal-week-view .cal-hour:not(:last-child) .cal-hour-segment, -.cal-week-view .cal-hour:last-child :not(:last-child) .cal-hour-segment { - border-bottom-color: #e1e1e1; -} -.cal-week-view .cal-current-time-marker { - background-color: #ea4334; -} - -.cal-day-view { - /* stylelint-disable-next-line selector-type-no-unknown */ -} -.cal-day-view mwl-calendar-week-view-header { - display: none; -} -.cal-day-view .cal-events-container { - margin-left: 70px; -} -[dir=rtl] .cal-day-view .cal-events-container { - margin-left: initial; - margin-right: 70px; -} -.cal-day-view .cal-day-column { - border-left: 0; -} -.cal-day-view .cal-current-time-marker { - margin-left: 70px; - width: calc(100% - 70px); -} -[dir=rtl] .cal-day-view .cal-current-time-marker { - margin-left: initial; - margin-right: 70px; -} - -.cal-tooltip { - position: absolute; - z-index: 1070; - display: block; - font-style: normal; - font-weight: normal; - letter-spacing: normal; - line-break: auto; - line-height: 1.5; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - white-space: normal; - word-break: normal; - word-spacing: normal; - font-size: 11px; - word-wrap: break-word; - opacity: 0.9; -} - -.cal-tooltip.cal-tooltip-top { - padding: 5px 0; - margin-top: -3px; -} - -.cal-tooltip.cal-tooltip-top .cal-tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; -} - -.cal-tooltip.cal-tooltip-right { - padding: 0 5px; - margin-left: 3px; -} - -.cal-tooltip.cal-tooltip-right .cal-tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; -} - -.cal-tooltip.cal-tooltip-bottom { - padding: 5px 0; - margin-top: 3px; -} - -.cal-tooltip.cal-tooltip-bottom .cal-tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; -} - -.cal-tooltip.cal-tooltip-left { - padding: 0 5px; - margin-left: -3px; -} - -.cal-tooltip.cal-tooltip-left .cal-tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; -} - -.cal-tooltip-inner { - max-width: 200px; - padding: 3px 8px; - text-align: center; - border-radius: 0.25rem; -} - -.cal-tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} - -.cal-tooltip.cal-tooltip-top .cal-tooltip-arrow { - border-top-color: #000; -} - -.cal-tooltip.cal-tooltip-right .cal-tooltip-arrow { - border-right-color: #000; -} - -.cal-tooltip.cal-tooltip-bottom .cal-tooltip-arrow { - border-bottom-color: #000; -} - -.cal-tooltip.cal-tooltip-left .cal-tooltip-arrow { - border-left-color: #000; -} - -.cal-tooltip-inner { - color: #fff; - background-color: #000; -} - -/*!****************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[2]!./node_modules/@angular/cdk/overlay-prebuilt.css ***! - \****************************************************************************************************************************************************************************************************************************************/ -.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll} -/*!**********************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[2]!./src/styles.css?ngGlobalStyle ***! - \**********************************************************************************************************************************************************************************************************************/ -/* You can add global styles to this file, and also import other style files */ - - -/*# sourceMappingURL=styles.css.map*/ \ No newline at end of file diff --git a/Web/Resgrid.Web/wwwroot/js/ng/styles.f0de54956caa9d30.css b/Web/Resgrid.Web/wwwroot/js/ng/styles.f0de54956caa9d30.css deleted file mode 100644 index ae002ee38..000000000 --- a/Web/Resgrid.Web/wwwroot/js/ng/styles.f0de54956caa9d30.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.cal-month-view .cal-header{text-align:center;font-weight:bolder}.cal-month-view .cal-header .cal-cell{padding:5px 0;overflow:hidden;text-overflow:ellipsis;display:block;white-space:nowrap}.cal-month-view .cal-days{border:1px solid;border-bottom:0}.cal-month-view .cal-cell-top{min-height:78px;flex:1}.cal-month-view .cal-cell-row{-js-display:flex;display:flex}.cal-month-view .cal-cell{float:left;flex:1;-js-display:flex;display:flex;flex-direction:column;align-items:stretch}.cal-month-view .cal-cell .cal-event{pointer-events:all!important}.cal-month-view .cal-day-cell{min-height:100px}@media all and (-ms-high-contrast: none){.cal-month-view .cal-day-cell{display:block}}.cal-month-view .cal-day-cell:not(:last-child){border-right:1px solid}[dir=rtl] .cal-month-view .cal-day-cell:not(:last-child){border-right:initial;border-left:1px solid}.cal-month-view .cal-days .cal-cell-row{border-bottom:1px solid}.cal-month-view .cal-day-badge{margin-top:18px;margin-left:10px;display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:middle;border-radius:10px}.cal-month-view .cal-day-number{font-size:1.2em;font-weight:400;opacity:.5;margin-top:15px;margin-right:15px;float:right;margin-bottom:10px}.cal-month-view .cal-events{flex:1;align-items:flex-end;margin:3px;line-height:10px;-js-display:flex;display:flex;flex-wrap:wrap}.cal-month-view .cal-event{width:10px;height:10px;border-radius:50%;display:inline-block;margin:2px}.cal-month-view .cal-day-cell.cal-in-month.cal-has-events{cursor:pointer}.cal-month-view .cal-day-cell.cal-out-month .cal-day-number{opacity:.1;cursor:default}.cal-month-view .cal-day-cell.cal-today .cal-day-number{font-size:1.9em}.cal-month-view .cal-open-day-events{padding:15px}.cal-month-view .cal-open-day-events .cal-event{position:relative;top:2px}.cal-month-view .cal-out-month .cal-day-badge,.cal-month-view .cal-out-month .cal-event{opacity:.3}.cal-month-view .cal-draggable{cursor:move}.cal-month-view .cal-drag-active *{pointer-events:none}.cal-month-view .cal-event-title{cursor:pointer}.cal-month-view .cal-event-title:hover{text-decoration:underline}.cal-month-view{background-color:#fff}.cal-month-view .cal-cell-row:hover{background-color:#fafafa}.cal-month-view .cal-cell-row .cal-cell:hover,.cal-month-view .cal-cell.cal-has-events.cal-open{background-color:#ededed}.cal-month-view .cal-days{border-color:#e1e1e1}.cal-month-view .cal-day-cell:not(:last-child){border-right-color:#e1e1e1}[dir=rtl] .cal-month-view .cal-day-cell:not(:last-child){border-right-color:initial;border-left-color:#e1e1e1}.cal-month-view .cal-days .cal-cell-row{border-bottom-color:#e1e1e1}.cal-month-view .cal-day-badge{background-color:#b94a48;color:#fff}.cal-month-view .cal-event{background-color:#1e90ff;border-color:#d1e8ff;color:#fff}.cal-month-view .cal-day-cell.cal-weekend .cal-day-number{color:#8b0000}.cal-month-view .cal-day-cell.cal-today{background-color:#e8fde7}.cal-month-view .cal-day-cell.cal-drag-over{background-color:#e0e0e0!important}.cal-month-view .cal-open-day-events{color:#fff;background-color:#555;box-shadow:inset 0 0 15px #00000080}.cal-week-view *{box-sizing:border-box}.cal-week-view .cal-day-headers{-js-display:flex;display:flex;padding-left:70px;border:1px solid}[dir=rtl] .cal-week-view .cal-day-headers{padding-left:initial;padding-right:70px}.cal-week-view .cal-day-headers .cal-header{flex:1;text-align:center;padding:5px}.cal-week-view .cal-day-headers .cal-header:not(:last-child){border-right:1px solid}[dir=rtl] .cal-week-view .cal-day-headers .cal-header:not(:last-child){border-right:initial;border-left:1px solid}.cal-week-view .cal-day-headers .cal-header:first-child{border-left:1px solid}[dir=rtl] .cal-week-view .cal-day-headers .cal-header:first-child{border-left:initial;border-right:1px solid}.cal-week-view .cal-day-headers span{font-weight:400;opacity:.5}.cal-week-view .cal-day-column{flex-grow:1;border-left:solid 1px}[dir=rtl] .cal-week-view .cal-day-column{border-left:initial;border-right:solid 1px}.cal-week-view .cal-event{font-size:12px;border:1px solid;direction:ltr}.cal-week-view .cal-time-label-column{width:70px;height:100%}.cal-week-view .cal-current-time-marker{position:absolute;width:100%;height:2px;z-index:2}.cal-week-view .cal-all-day-events{border:solid 1px;border-top:0;border-bottom-width:3px;padding-top:3px;position:relative}.cal-week-view .cal-all-day-events .cal-day-columns{height:100%;width:100%;-js-display:flex;display:flex;position:absolute;top:0;z-index:0}.cal-week-view .cal-all-day-events .cal-events-row{position:relative;height:31px;margin-left:70px}[dir=rtl] .cal-week-view .cal-all-day-events .cal-events-row{margin-left:initial;margin-right:70px}.cal-week-view .cal-all-day-events .cal-event-container{display:inline-block;position:absolute}.cal-week-view .cal-all-day-events .cal-event-container.resize-active{z-index:1;pointer-events:none}.cal-week-view .cal-all-day-events .cal-event{padding:0 5px;margin-left:2px;margin-right:2px;height:28px;line-height:28px}.cal-week-view .cal-all-day-events .cal-starts-within-week .cal-event{border-top-left-radius:5px;border-bottom-left-radius:5px}[dir=rtl] .cal-week-view .cal-all-day-events .cal-starts-within-week .cal-event{border-top-left-radius:initial;border-bottom-left-radius:initial;border-top-right-radius:5px!important;border-bottom-right-radius:5px!important}.cal-week-view .cal-all-day-events .cal-ends-within-week .cal-event{border-top-right-radius:5px;border-bottom-right-radius:5px}[dir=rtl] .cal-week-view .cal-all-day-events .cal-ends-within-week .cal-event{border-top-right-radius:initial;border-bottom-right-radius:initial;border-top-left-radius:5px;border-bottom-left-radius:5px}.cal-week-view .cal-all-day-events .cal-time-label-column{-js-display:flex;display:flex;align-items:center;justify-content:center;font-size:14px}.cal-week-view .cal-all-day-events .cal-resize-handle{width:6px;height:100%;cursor:col-resize;position:absolute;top:0}.cal-week-view .cal-all-day-events .cal-resize-handle.cal-resize-handle-after-end{right:0}[dir=rtl] .cal-week-view .cal-all-day-events .cal-resize-handle.cal-resize-handle-after-end{right:initial;left:0}.cal-week-view .cal-event,.cal-week-view .cal-header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-week-view .cal-drag-active{pointer-events:none;z-index:1}.cal-week-view .cal-drag-active *{pointer-events:none}.cal-week-view .cal-time-events{position:relative;border:solid 1px;border-top:0;-js-display:flex;display:flex}.cal-week-view .cal-time-events .cal-day-columns{-js-display:flex;display:flex;flex-grow:1}.cal-week-view .cal-time-events .cal-day-column,.cal-week-view .cal-time-events .cal-events-container{position:relative}.cal-week-view .cal-time-events .cal-event-container{position:absolute;z-index:1}.cal-week-view .cal-time-events .cal-event{width:calc(100% - 2px);height:calc(100% - 2px);margin:1px;padding:0 5px;line-height:25px}.cal-week-view .cal-time-events .cal-resize-handle{width:100%;height:4px;cursor:row-resize;position:absolute}.cal-week-view .cal-time-events .cal-resize-handle.cal-resize-handle-after-end{bottom:0}.cal-week-view .cal-hour-segment{position:relative}.cal-week-view .cal-hour-segment:after{content:"\a0"}.cal-week-view .cal-event-container:not(.cal-draggable){cursor:pointer}.cal-week-view .cal-draggable{cursor:move}.cal-week-view mwl-calendar-week-view-hour-segment,.cal-week-view .cal-hour-segment{display:block}.cal-week-view .cal-hour:not(:last-child) .cal-hour-segment,.cal-week-view .cal-hour:last-child :not(:last-child) .cal-hour-segment{border-bottom:thin dashed}.cal-week-view .cal-time{font-weight:700;padding-top:5px;width:70px;text-align:center}.cal-week-view .cal-hour-segment.cal-after-hour-start .cal-time{display:none}.cal-week-view .cal-starts-within-day .cal-event{border-top-left-radius:5px;border-top-right-radius:5px}.cal-week-view .cal-ends-within-day .cal-event{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cal-week-view{background-color:#fff;border-top:solid 1px #e1e1e1}.cal-week-view .cal-day-headers{border-color:#e1e1e1;border-top:0}.cal-week-view .cal-day-headers .cal-header:not(:last-child){border-right-color:#e1e1e1}[dir=rtl] .cal-week-view .cal-day-headers .cal-header:not(:last-child){border-right-color:initial;border-left:solid 1px #e1e1e1!important}.cal-week-view .cal-day-headers .cal-header:first-child{border-left-color:#e1e1e1}[dir=rtl] .cal-week-view .cal-day-headers .cal-header:first-child{border-left-color:initial;border-right-color:#e1e1e1}.cal-week-view .cal-day-headers .cal-header:hover,.cal-week-view .cal-day-headers .cal-drag-over{background-color:#ededed}.cal-week-view .cal-day-column{border-left-color:#e1e1e1}[dir=rtl] .cal-week-view .cal-day-column{border-left-color:initial;border-right-color:#e1e1e1}.cal-week-view .cal-event{background-color:#d1e8ff;border-color:#1e90ff;color:#1e90ff}.cal-week-view .cal-all-day-events{border-color:#e1e1e1}.cal-week-view .cal-header.cal-today{background-color:#e8fde7}.cal-week-view .cal-header.cal-weekend span{color:#8b0000}.cal-week-view .cal-time-events{border-color:#e1e1e1}.cal-week-view .cal-time-events .cal-day-columns:not(.cal-resize-active) .cal-hour-segment:hover{background-color:#ededed}.cal-week-view .cal-hour-odd{background-color:#fafafa}.cal-week-view .cal-drag-over .cal-hour-segment{background-color:#ededed}.cal-week-view .cal-hour:not(:last-child) .cal-hour-segment,.cal-week-view .cal-hour:last-child :not(:last-child) .cal-hour-segment{border-bottom-color:#e1e1e1}.cal-week-view .cal-current-time-marker{background-color:#ea4334}.cal-day-view mwl-calendar-week-view-header{display:none}.cal-day-view .cal-events-container{margin-left:70px}[dir=rtl] .cal-day-view .cal-events-container{margin-left:initial;margin-right:70px}.cal-day-view .cal-day-column{border-left:0}.cal-day-view .cal-current-time-marker{margin-left:70px;width:calc(100% - 70px)}[dir=rtl] .cal-day-view .cal-current-time-marker{margin-left:initial;margin-right:70px}.cal-tooltip{position:absolute;z-index:1070;display:block;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.5;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;font-size:11px;word-wrap:break-word;opacity:.9}.cal-tooltip.cal-tooltip-top{padding:5px 0;margin-top:-3px}.cal-tooltip.cal-tooltip-top .cal-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0}.cal-tooltip.cal-tooltip-right{padding:0 5px;margin-left:3px}.cal-tooltip.cal-tooltip-right .cal-tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0}.cal-tooltip.cal-tooltip-bottom{padding:5px 0;margin-top:3px}.cal-tooltip.cal-tooltip-bottom .cal-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px}.cal-tooltip.cal-tooltip-left{padding:0 5px;margin-left:-3px}.cal-tooltip.cal-tooltip-left .cal-tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px}.cal-tooltip-inner{max-width:200px;padding:3px 8px;text-align:center;border-radius:.25rem}.cal-tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.cal-tooltip.cal-tooltip-top .cal-tooltip-arrow{border-top-color:#000}.cal-tooltip.cal-tooltip-right .cal-tooltip-arrow{border-right-color:#000}.cal-tooltip.cal-tooltip-bottom .cal-tooltip-arrow{border-bottom-color:#000}.cal-tooltip.cal-tooltip-left .cal-tooltip-arrow{border-left-color:#000}.cal-tooltip-inner{color:#fff;background-color:#000} diff --git a/Web/Resgrid.Web/wwwroot/js/ng/vendor.js b/Web/Resgrid.Web/wwwroot/js/ng/vendor.js deleted file mode 100644 index b627adf0a..000000000 --- a/Web/Resgrid.Web/wwwroot/js/ng/vendor.js +++ /dev/null @@ -1,156061 +0,0 @@ -(self["webpackChunkApps"] = self["webpackChunkApps"] || []).push([["vendor"],{ - -/***/ 8786: -/*!**********************************************************************!*\ - !*** ./node_modules/@mattlewis92/dom-autoscroller/dist/bundle.es.js ***! - \**********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -function getDef(f, d) { - if (typeof f === 'undefined') { - return typeof d === 'undefined' ? f : d; - } - return f; -} -function boolean(func, def) { - func = getDef(func, def); - if (typeof func === 'function') { - return function f() { - var arguments$1 = arguments; - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments$1[_key]; - } - return !!func.apply(this, args); - }; - } - return !!func ? function () { - return true; - } : function () { - return false; - }; -} -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { - return typeof obj; -} : function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; -}; - -/** - * Returns `true` if provided input is Element. - * @name isElement - * @param {*} [input] - * @returns {boolean} - */ -var isElement$1 = function (input) { - return input != null && (typeof input === 'undefined' ? 'undefined' : _typeof(input)) === 'object' && input.nodeType === 1 && _typeof(input.style) === 'object' && _typeof(input.ownerDocument) === 'object'; -}; -function indexOfElement(elements, element) { - element = resolveElement(element, true); - if (!isElement$1(element)) { - return -1; - } - for (var i = 0; i < elements.length; i++) { - if (elements[i] === element) { - return i; - } - } - return -1; -} -function hasElement(elements, element) { - return -1 !== indexOfElement(elements, element); -} -function pushElements(elements, toAdd) { - for (var i = 0; i < toAdd.length; i++) { - if (!hasElement(elements, toAdd[i])) { - elements.push(toAdd[i]); - } - } - return toAdd; -} -function addElements(elements) { - var arguments$1 = arguments; - var toAdd = [], - len = arguments.length - 1; - while (len-- > 0) { - toAdd[len] = arguments$1[len + 1]; - } - toAdd = toAdd.map(resolveElement); - return pushElements(elements, toAdd); -} -function removeElements(elements) { - var arguments$1 = arguments; - var toRemove = [], - len = arguments.length - 1; - while (len-- > 0) { - toRemove[len] = arguments$1[len + 1]; - } - return toRemove.map(resolveElement).reduce(function (last, e) { - var index = indexOfElement(elements, e); - if (index !== -1) { - return last.concat(elements.splice(index, 1)); - } - return last; - }, []); -} -function resolveElement(element, noThrow) { - if (typeof element === 'string') { - try { - return document.querySelector(element); - } catch (e) { - throw e; - } - } - if (!isElement$1(element) && !noThrow) { - throw new TypeError(element + " is not a DOM element."); - } - return element; -} -function createPointCB(object, options) { - // A persistent object (as opposed to returned object) is used to save memory - // This is good to prevent layout thrashing, or for games, and such - - // NOTE - // This uses IE fixes which should be OK to remove some day. :) - // Some speed will be gained by removal of these. - - // pointCB should be saved in a variable on return - // This allows the usage of element.removeEventListener - - options = options || {}; - var allowUpdate = boolean(options.allowUpdate, true); - - /*if(typeof options.allowUpdate === 'function'){ - allowUpdate = options.allowUpdate; - }else{ - allowUpdate = function(){return true;}; - }*/ - - return function pointCB(event) { - event = event || window.event; // IE-ism - object.target = event.target || event.srcElement || event.originalTarget; - object.element = this; - object.type = event.type; - if (!allowUpdate(event)) { - return; - } - - // Support touch - // http://www.creativebloq.com/javascript/make-your-site-work-touch-devices-51411644 - - if (event.targetTouches) { - object.x = event.targetTouches[0].clientX; - object.y = event.targetTouches[0].clientY; - object.pageX = event.targetTouches[0].pageX; - object.pageY = event.targetTouches[0].pageY; - object.screenX = event.targetTouches[0].screenX; - object.screenY = event.targetTouches[0].screenY; - } else { - // If pageX/Y aren't available and clientX/Y are, - // calculate pageX/Y - logic taken from jQuery. - // (This is to support old IE) - // NOTE Hopefully this can be removed soon. - - if (event.pageX === null && event.clientX !== null) { - var eventDoc = event.target && event.target.ownerDocument || document; - var doc = eventDoc.documentElement; - var body = eventDoc.body; - object.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0); - object.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0); - } else { - object.pageX = event.pageX; - object.pageY = event.pageY; - } - - // pageX, and pageY change with page scroll - // so we're not going to use those for x, and y. - // NOTE Most browsers also alias clientX/Y with x/y - // so that's something to consider down the road. - - object.x = event.clientX; - object.y = event.clientY; - object.screenX = event.screenX; - object.screenY = event.screenY; - } - object.clientX = object.x; - object.clientY = object.y; - }; - - //NOTE Remember accessibility, Aria roles, and labels. -} -function createWindowRect() { - var props = { - top: { - value: 0, - enumerable: true - }, - left: { - value: 0, - enumerable: true - }, - right: { - value: window.innerWidth, - enumerable: true - }, - bottom: { - value: window.innerHeight, - enumerable: true - }, - width: { - value: window.innerWidth, - enumerable: true - }, - height: { - value: window.innerHeight, - enumerable: true - }, - x: { - value: 0, - enumerable: true - }, - y: { - value: 0, - enumerable: true - } - }; - if (Object.create) { - return Object.create({}, props); - } else { - var rect = {}; - Object.defineProperties(rect, props); - return rect; - } -} -function getClientRect(el) { - if (el === window) { - return createWindowRect(); - } else { - try { - var rect = el.getBoundingClientRect(); - if (rect.x === undefined) { - rect.x = rect.left; - rect.y = rect.top; - } - return rect; - } catch (e) { - throw new TypeError("Can't call getBoundingClientRect on " + el); - } - } -} -function pointInside(point, el) { - var rect = getClientRect(el); - return point.y > rect.top && point.y < rect.bottom && point.x > rect.left && point.x < rect.right; -} -var objectCreate = void 0; -if (typeof Object.create != 'function') { - objectCreate = function (undefined$1) { - var Temp = function Temp() {}; - return function (prototype, propertiesObject) { - if (prototype !== Object(prototype) && prototype !== null) { - throw TypeError('Argument must be an object, or null'); - } - Temp.prototype = prototype || {}; - var result = new Temp(); - Temp.prototype = null; - if (propertiesObject !== undefined$1) { - Object.defineProperties(result, propertiesObject); - } - - // to imitate the case of Object.create(null) - if (prototype === null) { - result.__proto__ = null; - } - return result; - }; - }(); -} else { - objectCreate = Object.create; -} -var objectCreate$1 = objectCreate; -var mouseEventProps = ['altKey', 'button', 'buttons', 'clientX', 'clientY', 'ctrlKey', 'metaKey', 'movementX', 'movementY', 'offsetX', 'offsetY', 'pageX', 'pageY', 'region', 'relatedTarget', 'screenX', 'screenY', 'shiftKey', 'which', 'x', 'y']; -function createDispatcher(element) { - var defaultSettings = { - screenX: 0, - screenY: 0, - clientX: 0, - clientY: 0, - ctrlKey: false, - shiftKey: false, - altKey: false, - metaKey: false, - button: 0, - buttons: 1, - relatedTarget: null, - region: null - }; - if (element !== undefined) { - element.addEventListener('mousemove', onMove); - } - function onMove(e) { - for (var i = 0; i < mouseEventProps.length; i++) { - defaultSettings[mouseEventProps[i]] = e[mouseEventProps[i]]; - } - } - var dispatch = function () { - if (MouseEvent) { - return function m1(element, initMove, data) { - var evt = new MouseEvent('mousemove', createMoveInit(defaultSettings, initMove)); - - //evt.dispatched = 'mousemove'; - setSpecial(evt, data); - return element.dispatchEvent(evt); - }; - } else if (typeof document.createEvent === 'function') { - return function m2(element, initMove, data) { - var settings = createMoveInit(defaultSettings, initMove); - var evt = document.createEvent('MouseEvents'); - evt.initMouseEvent("mousemove", true, - //can bubble - true, - //cancelable - window, - //view - 0, - //detail - settings.screenX, - //0, //screenX - settings.screenY, - //0, //screenY - settings.clientX, - //80, //clientX - settings.clientY, - //20, //clientY - settings.ctrlKey, - //false, //ctrlKey - settings.altKey, - //false, //altKey - settings.shiftKey, - //false, //shiftKey - settings.metaKey, - //false, //metaKey - settings.button, - //0, //button - settings.relatedTarget //null //relatedTarget - ); - - //evt.dispatched = 'mousemove'; - setSpecial(evt, data); - return element.dispatchEvent(evt); - }; - } else if (typeof document.createEventObject === 'function') { - return function m3(element, initMove, data) { - var evt = document.createEventObject(); - var settings = createMoveInit(defaultSettings, initMove); - for (var name in settings) { - evt[name] = settings[name]; - } - - //evt.dispatched = 'mousemove'; - setSpecial(evt, data); - return element.dispatchEvent(evt); - }; - } - }(); - function destroy() { - if (element) { - element.removeEventListener('mousemove', onMove, false); - } - defaultSettings = null; - } - return { - destroy: destroy, - dispatch: dispatch - }; -} -function createMoveInit(defaultSettings, initMove) { - initMove = initMove || {}; - var settings = objectCreate$1(defaultSettings); - for (var i = 0; i < mouseEventProps.length; i++) { - if (initMove[mouseEventProps[i]] !== undefined) { - settings[mouseEventProps[i]] = initMove[mouseEventProps[i]]; - } - } - return settings; -} -function setSpecial(e, data) { - console.log('data ', data); - e.data = data || {}; - e.dispatched = 'mousemove'; -} -var prefix = ['webkit', 'moz', 'ms', 'o']; -var requestFrame = function () { - if (typeof window === "undefined") { - return function () {}; - } - for (var i = 0, limit = prefix.length; i < limit && !window.requestAnimationFrame; ++i) { - window.requestAnimationFrame = window[prefix[i] + 'RequestAnimationFrame']; - } - if (!window.requestAnimationFrame) { - var lastTime = 0; - window.requestAnimationFrame = function (callback) { - var now = new Date().getTime(); - var ttc = Math.max(0, 16 - now - lastTime); - var timer = window.setTimeout(function () { - return callback(now + ttc); - }, ttc); - lastTime = now + ttc; - return timer; - }; - } - return window.requestAnimationFrame.bind(window); -}(); -var cancelFrame = function () { - if (typeof window === "undefined") { - return function () {}; - } - for (var i = 0, limit = prefix.length; i < limit && !window.cancelAnimationFrame; ++i) { - window.cancelAnimationFrame = window[prefix[i] + 'CancelAnimationFrame'] || window[prefix[i] + 'CancelRequestAnimationFrame']; - } - if (!window.cancelAnimationFrame) { - window.cancelAnimationFrame = function (timer) { - window.clearTimeout(timer); - }; - } - return window.cancelAnimationFrame.bind(window); -}(); -function AutoScroller(elements, options) { - if (options === void 0) options = {}; - var self = this; - var maxSpeed = 4, - scrolling = false; - if (typeof options.margin !== 'object') { - var margin = options.margin || -1; - this.margin = { - left: margin, - right: margin, - top: margin, - bottom: margin - }; - } else { - this.margin = options.margin; - } - - //this.scrolling = false; - this.scrollWhenOutside = options.scrollWhenOutside || false; - var point = {}, - pointCB = createPointCB(point), - dispatcher = createDispatcher(), - down = false; - window.addEventListener('mousemove', pointCB, false); - window.addEventListener('touchmove', pointCB, false); - if (!isNaN(options.maxSpeed)) { - maxSpeed = options.maxSpeed; - } - if (typeof maxSpeed !== 'object') { - maxSpeed = { - left: maxSpeed, - right: maxSpeed, - top: maxSpeed, - bottom: maxSpeed - }; - } - this.autoScroll = boolean(options.autoScroll); - this.syncMove = boolean(options.syncMove, false); - this.destroy = function (forceCleanAnimation) { - window.removeEventListener('mousemove', pointCB, false); - window.removeEventListener('touchmove', pointCB, false); - window.removeEventListener('mousedown', onDown, false); - window.removeEventListener('touchstart', onDown, false); - window.removeEventListener('mouseup', onUp, false); - window.removeEventListener('touchend', onUp, false); - window.removeEventListener('pointerup', onUp, false); - window.removeEventListener('mouseleave', onMouseOut, false); - window.removeEventListener('mousemove', onMove, false); - window.removeEventListener('touchmove', onMove, false); - window.removeEventListener('scroll', setScroll, true); - elements = []; - if (forceCleanAnimation) { - cleanAnimation(); - } - }; - this.add = function () { - var element = [], - len = arguments.length; - while (len--) element[len] = arguments[len]; - addElements.apply(void 0, [elements].concat(element)); - return this; - }; - this.remove = function () { - var element = [], - len = arguments.length; - while (len--) element[len] = arguments[len]; - return removeElements.apply(void 0, [elements].concat(element)); - }; - var hasWindow = null, - windowAnimationFrame; - if (Object.prototype.toString.call(elements) !== '[object Array]') { - elements = [elements]; - } - (function (temp) { - elements = []; - temp.forEach(function (element) { - if (element === window) { - hasWindow = window; - } else { - self.add(element); - } - }); - })(elements); - Object.defineProperties(this, { - down: { - get: function () { - return down; - } - }, - maxSpeed: { - get: function () { - return maxSpeed; - } - }, - point: { - get: function () { - return point; - } - }, - scrolling: { - get: function () { - return scrolling; - } - } - }); - var current = null, - animationFrame; - window.addEventListener('mousedown', onDown, false); - window.addEventListener('touchstart', onDown, false); - window.addEventListener('mouseup', onUp, false); - window.addEventListener('touchend', onUp, false); - - /* - IE does not trigger mouseup event when scrolling. - It is a known issue that Microsoft won't fix. - https://connect.microsoft.com/IE/feedback/details/783058/scrollbar-trigger-mousedown-but-not-mouseup - IE supports pointer events instead - */ - window.addEventListener('pointerup', onUp, false); - window.addEventListener('mousemove', onMove, false); - window.addEventListener('touchmove', onMove, false); - window.addEventListener('mouseleave', onMouseOut, false); - window.addEventListener('scroll', setScroll, true); - function setScroll(e) { - for (var i = 0; i < elements.length; i++) { - if (elements[i] === e.target) { - scrolling = true; - break; - } - } - if (scrolling) { - requestFrame(function () { - return scrolling = false; - }); - } - } - function onDown() { - down = true; - } - function onUp() { - down = false; - cleanAnimation(); - } - function cleanAnimation() { - cancelFrame(animationFrame); - cancelFrame(windowAnimationFrame); - } - function onMouseOut() { - down = false; - } - function getTarget(target) { - if (!target) { - return null; - } - if (current === target) { - return target; - } - if (hasElement(elements, target)) { - return target; - } - while (target = target.parentNode) { - if (hasElement(elements, target)) { - return target; - } - } - return null; - } - function getElementUnderPoint() { - var underPoint = null; - for (var i = 0; i < elements.length; i++) { - if (inside(point, elements[i])) { - underPoint = elements[i]; - } - } - return underPoint; - } - function onMove(event) { - if (!self.autoScroll()) { - return; - } - if (event['dispatched']) { - return; - } - var target = event.target, - body = document.body; - if (current && !inside(point, current)) { - if (!self.scrollWhenOutside) { - current = null; - } - } - if (target && target.parentNode === body) { - //The special condition to improve speed. - target = getElementUnderPoint(); - } else { - target = getTarget(target); - if (!target) { - target = getElementUnderPoint(); - } - } - if (target && target !== current) { - current = target; - } - if (hasWindow) { - cancelFrame(windowAnimationFrame); - windowAnimationFrame = requestFrame(scrollWindow); - } - if (!current) { - return; - } - cancelFrame(animationFrame); - animationFrame = requestFrame(scrollTick); - } - function scrollWindow() { - autoScroll(hasWindow); - cancelFrame(windowAnimationFrame); - windowAnimationFrame = requestFrame(scrollWindow); - } - function scrollTick() { - if (!current) { - return; - } - autoScroll(current); - cancelFrame(animationFrame); - animationFrame = requestFrame(scrollTick); - } - function autoScroll(el) { - var rect = getClientRect(el), - scrollx, - scrolly; - if (point.x < rect.left + self.margin.left) { - scrollx = Math.floor(Math.max(-1, (point.x - rect.left) / self.margin.left - 1) * self.maxSpeed.left); - } else if (point.x > rect.right - self.margin.right) { - scrollx = Math.ceil(Math.min(1, (point.x - rect.right) / self.margin.right + 1) * self.maxSpeed.right); - } else { - scrollx = 0; - } - if (point.y < rect.top + self.margin.top) { - scrolly = Math.floor(Math.max(-1, (point.y - rect.top) / self.margin.top - 1) * self.maxSpeed.top); - } else if (point.y > rect.bottom - self.margin.bottom) { - scrolly = Math.ceil(Math.min(1, (point.y - rect.bottom) / self.margin.bottom + 1) * self.maxSpeed.bottom); - } else { - scrolly = 0; - } - if (self.syncMove()) { - /* - Notes about mousemove event dispatch. - screen(X/Y) should need to be updated. - Some other properties might need to be set. - Keep the syncMove option default false until all inconsistencies are taken care of. - */ - dispatcher.dispatch(el, { - pageX: point.pageX + scrollx, - pageY: point.pageY + scrolly, - clientX: point.x + scrollx, - clientY: point.y + scrolly - }); - } - setTimeout(function () { - if (scrolly) { - scrollY(el, scrolly); - } - if (scrollx) { - scrollX(el, scrollx); - } - }); - } - function scrollY(el, amount) { - if (el === window) { - window.scrollTo(el.pageXOffset, el.pageYOffset + amount); - } else { - el.scrollTop += amount; - } - } - function scrollX(el, amount) { - if (el === window) { - window.scrollTo(el.pageXOffset + amount, el.pageYOffset); - } else { - el.scrollLeft += amount; - } - } -} -function AutoScrollerFactory(element, options) { - return new AutoScroller(element, options); -} -function inside(point, el, rect) { - if (!rect) { - return pointInside(point, el); - } else { - return point.y > rect.top && point.y < rect.bottom && point.x > rect.left && point.x < rect.right; - } -} - -/* -git remote add origin https://github.com/hollowdoor/dom_autoscroller.git -git push -u origin master -*/ - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AutoScrollerFactory); - -/***/ }), - -/***/ 663: -/*!*********************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/AbortController.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AbortController: () => (/* binding */ AbortController) -/* harmony export */ }); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController -// We don't actually ever use the API being polyfilled, we always use the polyfill because -// it's a very new API right now. -// Not exported from index. -/** @private */ -var AbortController = /** @class */function () { - function AbortController() { - this.isAborted = false; - this.onabort = null; - } - AbortController.prototype.abort = function () { - if (!this.isAborted) { - this.isAborted = true; - if (this.onabort) { - this.onabort(); - } - } - }; - Object.defineProperty(AbortController.prototype, "signal", { - get: function () { - return this; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(AbortController.prototype, "aborted", { - get: function () { - return this.isAborted; - }, - enumerable: true, - configurable: true - }); - return AbortController; -}(); - - -/***/ }), - -/***/ 1515: -/*!***********************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js ***! - \***********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ DefaultHttpClient: () => (/* binding */ DefaultHttpClient) -/* harmony export */ }); -/* harmony import */ var _Errors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Errors */ 9490); -/* harmony import */ var _FetchHttpClient__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FetchHttpClient */ 8250); -/* harmony import */ var _HttpClient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./HttpClient */ 1598); -/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Utils */ 1720); -/* harmony import */ var _XhrHttpClient__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./XhrHttpClient */ 3000); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -var __extends = undefined && undefined.__extends || function () { - var extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - }; - return function (d, b) { - extendStatics(d, b); - function __() { - this.constructor = d; - } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - - - - - -/** Default implementation of {@link @microsoft/signalr.HttpClient}. */ -var DefaultHttpClient = /** @class */function (_super) { - __extends(DefaultHttpClient, _super); - /** Creates a new instance of the {@link @microsoft/signalr.DefaultHttpClient}, using the provided {@link @microsoft/signalr.ILogger} to log messages. */ - function DefaultHttpClient(logger) { - var _this = _super.call(this) || this; - if (typeof fetch !== "undefined" || _Utils__WEBPACK_IMPORTED_MODULE_3__.Platform.isNode) { - _this.httpClient = new _FetchHttpClient__WEBPACK_IMPORTED_MODULE_1__.FetchHttpClient(logger); - } else if (typeof XMLHttpRequest !== "undefined") { - _this.httpClient = new _XhrHttpClient__WEBPACK_IMPORTED_MODULE_4__.XhrHttpClient(logger); - } else { - throw new Error("No usable HttpClient found."); - } - return _this; - } - /** @inheritDoc */ - DefaultHttpClient.prototype.send = function (request) { - // Check that abort was not signaled before calling send - if (request.abortSignal && request.abortSignal.aborted) { - return Promise.reject(new _Errors__WEBPACK_IMPORTED_MODULE_0__.AbortError()); - } - if (!request.method) { - return Promise.reject(new Error("No method defined.")); - } - if (!request.url) { - return Promise.reject(new Error("No url defined.")); - } - return this.httpClient.send(request); - }; - DefaultHttpClient.prototype.getCookieString = function (url) { - return this.httpClient.getCookieString(url); - }; - return DefaultHttpClient; -}(_HttpClient__WEBPACK_IMPORTED_MODULE_2__.HttpClient); - - -/***/ }), - -/***/ 9221: -/*!****************************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js ***! - \****************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ DefaultReconnectPolicy: () => (/* binding */ DefaultReconnectPolicy) -/* harmony export */ }); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -// 0, 2, 10, 30 second delays before reconnect attempts. -var DEFAULT_RETRY_DELAYS_IN_MILLISECONDS = [0, 2000, 10000, 30000, null]; -/** @private */ -var DefaultReconnectPolicy = /** @class */function () { - function DefaultReconnectPolicy(retryDelays) { - this.retryDelays = retryDelays !== undefined ? retryDelays.concat([null]) : DEFAULT_RETRY_DELAYS_IN_MILLISECONDS; - } - DefaultReconnectPolicy.prototype.nextRetryDelayInMilliseconds = function (retryContext) { - return this.retryDelays[retryContext.previousRetryCount]; - }; - return DefaultReconnectPolicy; -}(); - - -/***/ }), - -/***/ 9490: -/*!************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/Errors.js ***! - \************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AbortError: () => (/* binding */ AbortError), -/* harmony export */ HttpError: () => (/* binding */ HttpError), -/* harmony export */ TimeoutError: () => (/* binding */ TimeoutError) -/* harmony export */ }); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -var __extends = undefined && undefined.__extends || function () { - var extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - }; - return function (d, b) { - extendStatics(d, b); - function __() { - this.constructor = d; - } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); -/** Error thrown when an HTTP request fails. */ -var HttpError = /** @class */function (_super) { - __extends(HttpError, _super); - /** Constructs a new instance of {@link @microsoft/signalr.HttpError}. - * - * @param {string} errorMessage A descriptive error message. - * @param {number} statusCode The HTTP status code represented by this error. - */ - function HttpError(errorMessage, statusCode) { - var _newTarget = this.constructor; - var _this = this; - var trueProto = _newTarget.prototype; - _this = _super.call(this, errorMessage) || this; - _this.statusCode = statusCode; - // Workaround issue in Typescript compiler - // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200 - _this.__proto__ = trueProto; - return _this; - } - return HttpError; -}(Error); - -/** Error thrown when a timeout elapses. */ -var TimeoutError = /** @class */function (_super) { - __extends(TimeoutError, _super); - /** Constructs a new instance of {@link @microsoft/signalr.TimeoutError}. - * - * @param {string} errorMessage A descriptive error message. - */ - function TimeoutError(errorMessage) { - var _newTarget = this.constructor; - if (errorMessage === void 0) { - errorMessage = "A timeout occurred."; - } - var _this = this; - var trueProto = _newTarget.prototype; - _this = _super.call(this, errorMessage) || this; - // Workaround issue in Typescript compiler - // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200 - _this.__proto__ = trueProto; - return _this; - } - return TimeoutError; -}(Error); - -/** Error thrown when an action is aborted. */ -var AbortError = /** @class */function (_super) { - __extends(AbortError, _super); - /** Constructs a new instance of {@link AbortError}. - * - * @param {string} errorMessage A descriptive error message. - */ - function AbortError(errorMessage) { - var _newTarget = this.constructor; - if (errorMessage === void 0) { - errorMessage = "An abort occurred."; - } - var _this = this; - var trueProto = _newTarget.prototype; - _this = _super.call(this, errorMessage) || this; - // Workaround issue in Typescript compiler - // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200 - _this.__proto__ = trueProto; - return _this; - } - return AbortError; -}(Error); - - -/***/ }), - -/***/ 8250: -/*!*********************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ FetchHttpClient: () => (/* binding */ FetchHttpClient) -/* harmony export */ }); -/* harmony import */ var _Errors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Errors */ 9490); -/* harmony import */ var _HttpClient__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HttpClient */ 1598); -/* harmony import */ var _ILogger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ILogger */ 7422); -/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Utils */ 1720); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -var __extends = undefined && undefined.__extends || function () { - var extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - }; - return function (d, b) { - extendStatics(d, b); - function __() { - this.constructor = d; - } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); -var __assign = undefined && undefined.__assign || Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; -}; -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : new P(function (resolve) { - resolve(result.value); - }).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: - case 1: - t = op; - break; - case 4: - _.label++; - return { - value: op[1], - done: false - }; - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - case 7: - op = _.ops.pop(); - _.trys.pop(); - continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - if (t && _.label < t[2]) { - _.label = t[2]; - _.ops.push(op); - break; - } - if (t[2]) _.ops.pop(); - _.trys.pop(); - continue; - } - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - -var FetchHttpClient = /** @class */function (_super) { - __extends(FetchHttpClient, _super); - function FetchHttpClient(logger) { - var _this = _super.call(this) || this; - _this.logger = logger; - if (typeof fetch === "undefined") { - // In order to ignore the dynamic require in webpack builds we need to do this magic - // @ts-ignore: TS doesn't know about these names - var requireFunc = true ? require : 0; - // Cookies aren't automatically handled in Node so we need to add a CookieJar to preserve cookies across requests - _this.jar = new (requireFunc("tough-cookie").CookieJar)(); - _this.fetchType = requireFunc("node-fetch"); - // node-fetch doesn't have a nice API for getting and setting cookies - // fetch-cookie will wrap a fetch implementation with a default CookieJar or a provided one - _this.fetchType = requireFunc("fetch-cookie")(_this.fetchType, _this.jar); - // Node needs EventListener methods on AbortController which our custom polyfill doesn't provide - _this.abortControllerType = requireFunc("abort-controller"); - } else { - _this.fetchType = fetch.bind(self); - _this.abortControllerType = AbortController; - } - return _this; - } - /** @inheritDoc */ - FetchHttpClient.prototype.send = function (request) { - return __awaiter(this, void 0, void 0, function () { - var abortController, error, timeoutId, msTimeout, response, e_1, content, payload; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - // Check that abort was not signaled before calling send - if (request.abortSignal && request.abortSignal.aborted) { - throw new _Errors__WEBPACK_IMPORTED_MODULE_0__.AbortError(); - } - if (!request.method) { - throw new Error("No method defined."); - } - if (!request.url) { - throw new Error("No url defined."); - } - abortController = new this.abortControllerType(); - // Hook our abortSignal into the abort controller - if (request.abortSignal) { - request.abortSignal.onabort = function () { - abortController.abort(); - error = new _Errors__WEBPACK_IMPORTED_MODULE_0__.AbortError(); - }; - } - timeoutId = null; - if (request.timeout) { - msTimeout = request.timeout; - timeoutId = setTimeout(function () { - abortController.abort(); - _this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Warning, "Timeout from HTTP request."); - error = new _Errors__WEBPACK_IMPORTED_MODULE_0__.TimeoutError(); - }, msTimeout); - } - _a.label = 1; - case 1: - _a.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.fetchType(request.url, { - body: request.content, - cache: "no-cache", - credentials: request.withCredentials === true ? "include" : "same-origin", - headers: __assign({ - "Content-Type": "text/plain;charset=UTF-8", - "X-Requested-With": "XMLHttpRequest" - }, request.headers), - method: request.method, - mode: "cors", - redirect: "manual", - signal: abortController.signal - })]; - case 2: - response = _a.sent(); - return [3 /*break*/, 5]; - case 3: - e_1 = _a.sent(); - if (error) { - throw error; - } - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Warning, "Error from HTTP request. " + e_1 + "."); - throw e_1; - case 4: - if (timeoutId) { - clearTimeout(timeoutId); - } - if (request.abortSignal) { - request.abortSignal.onabort = null; - } - return [7 /*endfinally*/]; - case 5: - if (!response.ok) { - throw new _Errors__WEBPACK_IMPORTED_MODULE_0__.HttpError(response.statusText, response.status); - } - content = deserializeContent(response, request.responseType); - return [4 /*yield*/, content]; - case 6: - payload = _a.sent(); - return [2 /*return*/, new _HttpClient__WEBPACK_IMPORTED_MODULE_1__.HttpResponse(response.status, response.statusText, payload)]; - } - }); - }); - }; - FetchHttpClient.prototype.getCookieString = function (url) { - var cookies = ""; - if (_Utils__WEBPACK_IMPORTED_MODULE_3__.Platform.isNode && this.jar) { - // @ts-ignore: unused variable - this.jar.getCookies(url, function (e, c) { - return cookies = c.join("; "); - }); - } - return cookies; - }; - return FetchHttpClient; -}(_HttpClient__WEBPACK_IMPORTED_MODULE_1__.HttpClient); - -function deserializeContent(response, responseType) { - var content; - switch (responseType) { - case "arraybuffer": - content = response.arrayBuffer(); - break; - case "text": - content = response.text(); - break; - case "blob": - case "document": - case "json": - throw new Error(responseType + " is not supported."); - default: - content = response.text(); - break; - } - return content; -} - -/***/ }), - -/***/ 8448: -/*!***********************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js ***! - \***********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ HandshakeProtocol: () => (/* binding */ HandshakeProtocol) -/* harmony export */ }); -/* harmony import */ var _TextMessageFormat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TextMessageFormat */ 7876); -/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Utils */ 1720); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - - -/** @private */ -var HandshakeProtocol = /** @class */function () { - function HandshakeProtocol() {} - // Handshake request is always JSON - HandshakeProtocol.prototype.writeHandshakeRequest = function (handshakeRequest) { - return _TextMessageFormat__WEBPACK_IMPORTED_MODULE_0__.TextMessageFormat.write(JSON.stringify(handshakeRequest)); - }; - HandshakeProtocol.prototype.parseHandshakeResponse = function (data) { - var responseMessage; - var messageData; - var remainingData; - if ((0,_Utils__WEBPACK_IMPORTED_MODULE_1__.isArrayBuffer)(data) || typeof Buffer !== "undefined" && data instanceof Buffer) { - // Format is binary but still need to read JSON text from handshake response - var binaryData = new Uint8Array(data); - var separatorIndex = binaryData.indexOf(_TextMessageFormat__WEBPACK_IMPORTED_MODULE_0__.TextMessageFormat.RecordSeparatorCode); - if (separatorIndex === -1) { - throw new Error("Message is incomplete."); - } - // content before separator is handshake response - // optional content after is additional messages - var responseLength = separatorIndex + 1; - messageData = String.fromCharCode.apply(null, binaryData.slice(0, responseLength)); - remainingData = binaryData.byteLength > responseLength ? binaryData.slice(responseLength).buffer : null; - } else { - var textData = data; - var separatorIndex = textData.indexOf(_TextMessageFormat__WEBPACK_IMPORTED_MODULE_0__.TextMessageFormat.RecordSeparator); - if (separatorIndex === -1) { - throw new Error("Message is incomplete."); - } - // content before separator is handshake response - // optional content after is additional messages - var responseLength = separatorIndex + 1; - messageData = textData.substring(0, responseLength); - remainingData = textData.length > responseLength ? textData.substring(responseLength) : null; - } - // At this point we should have just the single handshake message - var messages = _TextMessageFormat__WEBPACK_IMPORTED_MODULE_0__.TextMessageFormat.parse(messageData); - var response = JSON.parse(messages[0]); - if (response.type) { - throw new Error("Expected a handshake response from the server."); - } - responseMessage = response; - // multiple messages could have arrived with handshake - // return additional data to be parsed as usual, or null if all parsed - return [remainingData, responseMessage]; - }; - return HandshakeProtocol; -}(); - - -/***/ }), - -/***/ 1598: -/*!****************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/HttpClient.js ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ HttpClient: () => (/* binding */ HttpClient), -/* harmony export */ HttpResponse: () => (/* binding */ HttpResponse) -/* harmony export */ }); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -var __assign = undefined && undefined.__assign || Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; -}; -/** Represents an HTTP response. */ -var HttpResponse = /** @class */function () { - function HttpResponse(statusCode, statusText, content) { - this.statusCode = statusCode; - this.statusText = statusText; - this.content = content; - } - return HttpResponse; -}(); - -/** Abstraction over an HTTP client. - * - * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms. - */ -var HttpClient = /** @class */function () { - function HttpClient() {} - HttpClient.prototype.get = function (url, options) { - return this.send(__assign({}, options, { - method: "GET", - url: url - })); - }; - HttpClient.prototype.post = function (url, options) { - return this.send(__assign({}, options, { - method: "POST", - url: url - })); - }; - HttpClient.prototype.delete = function (url, options) { - return this.send(__assign({}, options, { - method: "DELETE", - url: url - })); - }; - /** Gets all cookies that apply to the specified URL. - * - * @param url The URL that the cookies are valid for. - * @returns {string} A string containing all the key-value cookie pairs for the specified URL. - */ - // @ts-ignore - HttpClient.prototype.getCookieString = function (url) { - return ""; - }; - return HttpClient; -}(); - - -/***/ }), - -/***/ 4085: -/*!********************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/HttpConnection.js ***! - \********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ HttpConnection: () => (/* binding */ HttpConnection), -/* harmony export */ TransportSendQueue: () => (/* binding */ TransportSendQueue) -/* harmony export */ }); -/* harmony import */ var _DefaultHttpClient__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DefaultHttpClient */ 1515); -/* harmony import */ var _ILogger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ILogger */ 7422); -/* harmony import */ var _ITransport__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ITransport */ 893); -/* harmony import */ var _LongPollingTransport__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./LongPollingTransport */ 8335); -/* harmony import */ var _ServerSentEventsTransport__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ServerSentEventsTransport */ 4312); -/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Utils */ 1720); -/* harmony import */ var _WebSocketTransport__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./WebSocketTransport */ 6817); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -var __assign = undefined && undefined.__assign || Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; -}; -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : new P(function (resolve) { - resolve(result.value); - }).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: - case 1: - t = op; - break; - case 4: - _.label++; - return { - value: op[1], - done: false - }; - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - case 7: - op = _.ops.pop(); - _.trys.pop(); - continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - if (t && _.label < t[2]) { - _.label = t[2]; - _.ops.push(op); - break; - } - if (t[2]) _.ops.pop(); - _.trys.pop(); - continue; - } - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - - - -var MAX_REDIRECTS = 100; -/** @private */ -var HttpConnection = /** @class */function () { - function HttpConnection(url, options) { - if (options === void 0) { - options = {}; - } - this.stopPromiseResolver = function () {}; - this.features = {}; - this.negotiateVersion = 1; - _Utils__WEBPACK_IMPORTED_MODULE_5__.Arg.isRequired(url, "url"); - this.logger = (0,_Utils__WEBPACK_IMPORTED_MODULE_5__.createLogger)(options.logger); - this.baseUrl = this.resolveUrl(url); - options = options || {}; - options.logMessageContent = options.logMessageContent === undefined ? false : options.logMessageContent; - if (typeof options.withCredentials === "boolean" || options.withCredentials === undefined) { - options.withCredentials = options.withCredentials === undefined ? true : options.withCredentials; - } else { - throw new Error("withCredentials option was not a 'boolean' or 'undefined' value"); - } - var webSocketModule = null; - var eventSourceModule = null; - if (_Utils__WEBPACK_IMPORTED_MODULE_5__.Platform.isNode && "function" !== "undefined") { - // In order to ignore the dynamic require in webpack builds we need to do this magic - // @ts-ignore: TS doesn't know about these names - var requireFunc = true ? require : 0; - webSocketModule = requireFunc("ws"); - eventSourceModule = requireFunc("eventsource"); - } - if (!_Utils__WEBPACK_IMPORTED_MODULE_5__.Platform.isNode && typeof WebSocket !== "undefined" && !options.WebSocket) { - options.WebSocket = WebSocket; - } else if (_Utils__WEBPACK_IMPORTED_MODULE_5__.Platform.isNode && !options.WebSocket) { - if (webSocketModule) { - options.WebSocket = webSocketModule; - } - } - if (!_Utils__WEBPACK_IMPORTED_MODULE_5__.Platform.isNode && typeof EventSource !== "undefined" && !options.EventSource) { - options.EventSource = EventSource; - } else if (_Utils__WEBPACK_IMPORTED_MODULE_5__.Platform.isNode && !options.EventSource) { - if (typeof eventSourceModule !== "undefined") { - options.EventSource = eventSourceModule; - } - } - this.httpClient = options.httpClient || new _DefaultHttpClient__WEBPACK_IMPORTED_MODULE_0__.DefaultHttpClient(this.logger); - this.connectionState = "Disconnected" /* Disconnected */; - this.connectionStarted = false; - this.options = options; - this.onreceive = null; - this.onclose = null; - } - HttpConnection.prototype.start = function (transferFormat) { - return __awaiter(this, void 0, void 0, function () { - var message, message; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - transferFormat = transferFormat || _ITransport__WEBPACK_IMPORTED_MODULE_2__.TransferFormat.Binary; - _Utils__WEBPACK_IMPORTED_MODULE_5__.Arg.isIn(transferFormat, _ITransport__WEBPACK_IMPORTED_MODULE_2__.TransferFormat, "transferFormat"); - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Debug, "Starting connection with transfer format '" + _ITransport__WEBPACK_IMPORTED_MODULE_2__.TransferFormat[transferFormat] + "'."); - if (this.connectionState !== "Disconnected" /* Disconnected */) { - return [2 /*return*/, Promise.reject(new Error("Cannot start an HttpConnection that is not in the 'Disconnected' state."))]; - } - this.connectionState = "Connecting" /* Connecting */; - this.startInternalPromise = this.startInternal(transferFormat); - return [4 /*yield*/, this.startInternalPromise]; - case 1: - _a.sent(); - if (!(this.connectionState === "Disconnecting" /* Disconnecting */)) return [3 /*break*/, 3]; - message = "Failed to start the HttpConnection before stop() was called."; - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Error, message); - // We cannot await stopPromise inside startInternal since stopInternal awaits the startInternalPromise. - return [4 /*yield*/, this.stopPromise]; - case 2: - // We cannot await stopPromise inside startInternal since stopInternal awaits the startInternalPromise. - _a.sent(); - return [2 /*return*/, Promise.reject(new Error(message))]; - case 3: - if (this.connectionState !== "Connected" /* Connected */) { - message = "HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!"; - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Error, message); - return [2 /*return*/, Promise.reject(new Error(message))]; - } - _a.label = 4; - case 4: - this.connectionStarted = true; - return [2 /*return*/]; - } - }); - }); - }; - HttpConnection.prototype.send = function (data) { - if (this.connectionState !== "Connected" /* Connected */) { - return Promise.reject(new Error("Cannot send data if the connection is not in the 'Connected' State.")); - } - if (!this.sendQueue) { - this.sendQueue = new TransportSendQueue(this.transport); - } - // Transport will not be null if state is connected - return this.sendQueue.send(data); - }; - HttpConnection.prototype.stop = function (error) { - return __awaiter(this, void 0, void 0, function () { - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (this.connectionState === "Disconnected" /* Disconnected */) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Debug, "Call to HttpConnection.stop(" + error + ") ignored because the connection is already in the disconnected state."); - return [2 /*return*/, Promise.resolve()]; - } - if (this.connectionState === "Disconnecting" /* Disconnecting */) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Debug, "Call to HttpConnection.stop(" + error + ") ignored because the connection is already in the disconnecting state."); - return [2 /*return*/, this.stopPromise]; - } - this.connectionState = "Disconnecting" /* Disconnecting */; - this.stopPromise = new Promise(function (resolve) { - // Don't complete stop() until stopConnection() completes. - _this.stopPromiseResolver = resolve; - }); - // stopInternal should never throw so just observe it. - return [4 /*yield*/, this.stopInternal(error)]; - case 1: - // stopInternal should never throw so just observe it. - _a.sent(); - return [4 /*yield*/, this.stopPromise]; - case 2: - _a.sent(); - return [2 /*return*/]; - } - }); - }); - }; - HttpConnection.prototype.stopInternal = function (error) { - return __awaiter(this, void 0, void 0, function () { - var e_1, e_2; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - // Set error as soon as possible otherwise there is a race between - // the transport closing and providing an error and the error from a close message - // We would prefer the close message error. - this.stopError = error; - _a.label = 1; - case 1: - _a.trys.push([1, 3,, 4]); - return [4 /*yield*/, this.startInternalPromise]; - case 2: - _a.sent(); - return [3 /*break*/, 4]; - case 3: - e_1 = _a.sent(); - return [3 /*break*/, 4]; - case 4: - if (!this.transport) return [3 /*break*/, 9]; - _a.label = 5; - case 5: - _a.trys.push([5, 7,, 8]); - return [4 /*yield*/, this.transport.stop()]; - case 6: - _a.sent(); - return [3 /*break*/, 8]; - case 7: - e_2 = _a.sent(); - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Error, "HttpConnection.transport.stop() threw error '" + e_2 + "'."); - this.stopConnection(); - return [3 /*break*/, 8]; - case 8: - this.transport = undefined; - return [3 /*break*/, 10]; - case 9: - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Debug, "HttpConnection.transport is undefined in HttpConnection.stop() because start() failed."); - _a.label = 10; - case 10: - return [2 /*return*/]; - } - }); - }); - }; - HttpConnection.prototype.startInternal = function (transferFormat) { - return __awaiter(this, void 0, void 0, function () { - var url, negotiateResponse, redirects, _loop_1, this_1, e_3; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.baseUrl; - this.accessTokenFactory = this.options.accessTokenFactory; - _a.label = 1; - case 1: - _a.trys.push([1, 12,, 13]); - if (!this.options.skipNegotiation) return [3 /*break*/, 5]; - if (!(this.options.transport === _ITransport__WEBPACK_IMPORTED_MODULE_2__.HttpTransportType.WebSockets)) return [3 /*break*/, 3]; - // No need to add a connection ID in this case - this.transport = this.constructTransport(_ITransport__WEBPACK_IMPORTED_MODULE_2__.HttpTransportType.WebSockets); - // We should just call connect directly in this case. - // No fallback or negotiate in this case. - return [4 /*yield*/, this.startTransport(url, transferFormat)]; - case 2: - // We should just call connect directly in this case. - // No fallback or negotiate in this case. - _a.sent(); - return [3 /*break*/, 4]; - case 3: - throw new Error("Negotiation can only be skipped when using the WebSocket transport directly."); - case 4: - return [3 /*break*/, 11]; - case 5: - negotiateResponse = null; - redirects = 0; - _loop_1 = function () { - var accessToken_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4 /*yield*/, this_1.getNegotiationResponse(url)]; - case 1: - negotiateResponse = _a.sent(); - // the user tries to stop the connection when it is being started - if (this_1.connectionState === "Disconnecting" /* Disconnecting */ || this_1.connectionState === "Disconnected" /* Disconnected */) { - throw new Error("The connection was stopped during negotiation."); - } - if (negotiateResponse.error) { - throw new Error(negotiateResponse.error); - } - if (negotiateResponse.ProtocolVersion) { - throw new Error("Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details."); - } - if (negotiateResponse.url) { - url = negotiateResponse.url; - } - if (negotiateResponse.accessToken) { - accessToken_1 = negotiateResponse.accessToken; - this_1.accessTokenFactory = function () { - return accessToken_1; - }; - } - redirects++; - return [2 /*return*/]; - } - }); - }; - this_1 = this; - _a.label = 6; - case 6: - return [5 /*yield**/, _loop_1()]; - case 7: - _a.sent(); - _a.label = 8; - case 8: - if (negotiateResponse.url && redirects < MAX_REDIRECTS) return [3 /*break*/, 6]; - _a.label = 9; - case 9: - if (redirects === MAX_REDIRECTS && negotiateResponse.url) { - throw new Error("Negotiate redirection limit exceeded."); - } - return [4 /*yield*/, this.createTransport(url, this.options.transport, negotiateResponse, transferFormat)]; - case 10: - _a.sent(); - _a.label = 11; - case 11: - if (this.transport instanceof _LongPollingTransport__WEBPACK_IMPORTED_MODULE_3__.LongPollingTransport) { - this.features.inherentKeepAlive = true; - } - if (this.connectionState === "Connecting" /* Connecting */) { - // Ensure the connection transitions to the connected state prior to completing this.startInternalPromise. - // start() will handle the case when stop was called and startInternal exits still in the disconnecting state. - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Debug, "The HttpConnection connected successfully."); - this.connectionState = "Connected" /* Connected */; - } - return [3 /*break*/, 13]; - case 12: - e_3 = _a.sent(); - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Error, "Failed to start the connection: " + e_3); - this.connectionState = "Disconnected" /* Disconnected */; - this.transport = undefined; - // if start fails, any active calls to stop assume that start will complete the stop promise - this.stopPromiseResolver(); - return [2 /*return*/, Promise.reject(e_3)]; - case 13: - return [2 /*return*/]; - } - }); - }); - }; - HttpConnection.prototype.getNegotiationResponse = function (url) { - return __awaiter(this, void 0, void 0, function () { - var headers, token, _a, name, value, negotiateUrl, response, negotiateResponse, e_4; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - headers = {}; - if (!this.accessTokenFactory) return [3 /*break*/, 2]; - return [4 /*yield*/, this.accessTokenFactory()]; - case 1: - token = _b.sent(); - if (token) { - headers["Authorization"] = "Bearer " + token; - } - _b.label = 2; - case 2: - _a = (0,_Utils__WEBPACK_IMPORTED_MODULE_5__.getUserAgentHeader)(), name = _a[0], value = _a[1]; - headers[name] = value; - negotiateUrl = this.resolveNegotiateUrl(url); - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Debug, "Sending negotiation request: " + negotiateUrl + "."); - _b.label = 3; - case 3: - _b.trys.push([3, 5,, 6]); - return [4 /*yield*/, this.httpClient.post(negotiateUrl, { - content: "", - headers: __assign({}, headers, this.options.headers), - withCredentials: this.options.withCredentials - })]; - case 4: - response = _b.sent(); - if (response.statusCode !== 200) { - return [2 /*return*/, Promise.reject(new Error("Unexpected status code returned from negotiate '" + response.statusCode + "'"))]; - } - negotiateResponse = JSON.parse(response.content); - if (!negotiateResponse.negotiateVersion || negotiateResponse.negotiateVersion < 1) { - // Negotiate version 0 doesn't use connectionToken - // So we set it equal to connectionId so all our logic can use connectionToken without being aware of the negotiate version - negotiateResponse.connectionToken = negotiateResponse.connectionId; - } - return [2 /*return*/, negotiateResponse]; - case 5: - e_4 = _b.sent(); - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Error, "Failed to complete negotiation with the server: " + e_4); - return [2 /*return*/, Promise.reject(e_4)]; - case 6: - return [2 /*return*/]; - } - }); - }); - }; - HttpConnection.prototype.createConnectUrl = function (url, connectionToken) { - if (!connectionToken) { - return url; - } - return url + (url.indexOf("?") === -1 ? "?" : "&") + ("id=" + connectionToken); - }; - HttpConnection.prototype.createTransport = function (url, requestedTransport, negotiateResponse, requestedTransferFormat) { - return __awaiter(this, void 0, void 0, function () { - var connectUrl, transportExceptions, transports, negotiate, _i, transports_1, endpoint, transportOrError, ex_1, ex_2, message; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - connectUrl = this.createConnectUrl(url, negotiateResponse.connectionToken); - if (!this.isITransport(requestedTransport)) return [3 /*break*/, 2]; - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Debug, "Connection was provided an instance of ITransport, using that directly."); - this.transport = requestedTransport; - return [4 /*yield*/, this.startTransport(connectUrl, requestedTransferFormat)]; - case 1: - _a.sent(); - this.connectionId = negotiateResponse.connectionId; - return [2 /*return*/]; - case 2: - transportExceptions = []; - transports = negotiateResponse.availableTransports || []; - negotiate = negotiateResponse; - _i = 0, transports_1 = transports; - _a.label = 3; - case 3: - if (!(_i < transports_1.length)) return [3 /*break*/, 13]; - endpoint = transports_1[_i]; - transportOrError = this.resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat); - if (!(transportOrError instanceof Error)) return [3 /*break*/, 4]; - // Store the error and continue, we don't want to cause a re-negotiate in these cases - transportExceptions.push(endpoint.transport + " failed: " + transportOrError); - return [3 /*break*/, 12]; - case 4: - if (!this.isITransport(transportOrError)) return [3 /*break*/, 12]; - this.transport = transportOrError; - if (!!negotiate) return [3 /*break*/, 9]; - _a.label = 5; - case 5: - _a.trys.push([5, 7,, 8]); - return [4 /*yield*/, this.getNegotiationResponse(url)]; - case 6: - negotiate = _a.sent(); - return [3 /*break*/, 8]; - case 7: - ex_1 = _a.sent(); - return [2 /*return*/, Promise.reject(ex_1)]; - case 8: - connectUrl = this.createConnectUrl(url, negotiate.connectionToken); - _a.label = 9; - case 9: - _a.trys.push([9, 11,, 12]); - return [4 /*yield*/, this.startTransport(connectUrl, requestedTransferFormat)]; - case 10: - _a.sent(); - this.connectionId = negotiate.connectionId; - return [2 /*return*/]; - case 11: - ex_2 = _a.sent(); - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Error, "Failed to start the transport '" + endpoint.transport + "': " + ex_2); - negotiate = undefined; - transportExceptions.push(endpoint.transport + " failed: " + ex_2); - if (this.connectionState !== "Connecting" /* Connecting */) { - message = "Failed to select transport before stop() was called."; - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Debug, message); - return [2 /*return*/, Promise.reject(new Error(message))]; - } - return [3 /*break*/, 12]; - case 12: - _i++; - return [3 /*break*/, 3]; - case 13: - if (transportExceptions.length > 0) { - return [2 /*return*/, Promise.reject(new Error("Unable to connect to the server with any of the available transports. " + transportExceptions.join(" ")))]; - } - return [2 /*return*/, Promise.reject(new Error("None of the transports supported by the client are supported by the server."))]; - } - }); - }); - }; - HttpConnection.prototype.constructTransport = function (transport) { - switch (transport) { - case _ITransport__WEBPACK_IMPORTED_MODULE_2__.HttpTransportType.WebSockets: - if (!this.options.WebSocket) { - throw new Error("'WebSocket' is not supported in your environment."); - } - return new _WebSocketTransport__WEBPACK_IMPORTED_MODULE_6__.WebSocketTransport(this.httpClient, this.accessTokenFactory, this.logger, this.options.logMessageContent || false, this.options.WebSocket, this.options.headers || {}); - case _ITransport__WEBPACK_IMPORTED_MODULE_2__.HttpTransportType.ServerSentEvents: - if (!this.options.EventSource) { - throw new Error("'EventSource' is not supported in your environment."); - } - return new _ServerSentEventsTransport__WEBPACK_IMPORTED_MODULE_4__.ServerSentEventsTransport(this.httpClient, this.accessTokenFactory, this.logger, this.options.logMessageContent || false, this.options.EventSource, this.options.withCredentials, this.options.headers || {}); - case _ITransport__WEBPACK_IMPORTED_MODULE_2__.HttpTransportType.LongPolling: - return new _LongPollingTransport__WEBPACK_IMPORTED_MODULE_3__.LongPollingTransport(this.httpClient, this.accessTokenFactory, this.logger, this.options.logMessageContent || false, this.options.withCredentials, this.options.headers || {}); - default: - throw new Error("Unknown transport: " + transport + "."); - } - }; - HttpConnection.prototype.startTransport = function (url, transferFormat) { - var _this = this; - this.transport.onreceive = this.onreceive; - this.transport.onclose = function (e) { - return _this.stopConnection(e); - }; - return this.transport.connect(url, transferFormat); - }; - HttpConnection.prototype.resolveTransportOrError = function (endpoint, requestedTransport, requestedTransferFormat) { - var transport = _ITransport__WEBPACK_IMPORTED_MODULE_2__.HttpTransportType[endpoint.transport]; - if (transport === null || transport === undefined) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Debug, "Skipping transport '" + endpoint.transport + "' because it is not supported by this client."); - return new Error("Skipping transport '" + endpoint.transport + "' because it is not supported by this client."); - } else { - if (transportMatches(requestedTransport, transport)) { - var transferFormats = endpoint.transferFormats.map(function (s) { - return _ITransport__WEBPACK_IMPORTED_MODULE_2__.TransferFormat[s]; - }); - if (transferFormats.indexOf(requestedTransferFormat) >= 0) { - if (transport === _ITransport__WEBPACK_IMPORTED_MODULE_2__.HttpTransportType.WebSockets && !this.options.WebSocket || transport === _ITransport__WEBPACK_IMPORTED_MODULE_2__.HttpTransportType.ServerSentEvents && !this.options.EventSource) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Debug, "Skipping transport '" + _ITransport__WEBPACK_IMPORTED_MODULE_2__.HttpTransportType[transport] + "' because it is not supported in your environment.'"); - return new Error("'" + _ITransport__WEBPACK_IMPORTED_MODULE_2__.HttpTransportType[transport] + "' is not supported in your environment."); - } else { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Debug, "Selecting transport '" + _ITransport__WEBPACK_IMPORTED_MODULE_2__.HttpTransportType[transport] + "'."); - try { - return this.constructTransport(transport); - } catch (ex) { - return ex; - } - } - } else { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Debug, "Skipping transport '" + _ITransport__WEBPACK_IMPORTED_MODULE_2__.HttpTransportType[transport] + "' because it does not support the requested transfer format '" + _ITransport__WEBPACK_IMPORTED_MODULE_2__.TransferFormat[requestedTransferFormat] + "'."); - return new Error("'" + _ITransport__WEBPACK_IMPORTED_MODULE_2__.HttpTransportType[transport] + "' does not support " + _ITransport__WEBPACK_IMPORTED_MODULE_2__.TransferFormat[requestedTransferFormat] + "."); - } - } else { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Debug, "Skipping transport '" + _ITransport__WEBPACK_IMPORTED_MODULE_2__.HttpTransportType[transport] + "' because it was disabled by the client."); - return new Error("'" + _ITransport__WEBPACK_IMPORTED_MODULE_2__.HttpTransportType[transport] + "' is disabled by the client."); - } - } - }; - HttpConnection.prototype.isITransport = function (transport) { - return transport && typeof transport === "object" && "connect" in transport; - }; - HttpConnection.prototype.stopConnection = function (error) { - var _this = this; - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Debug, "HttpConnection.stopConnection(" + error + ") called while in state " + this.connectionState + "."); - this.transport = undefined; - // If we have a stopError, it takes precedence over the error from the transport - error = this.stopError || error; - this.stopError = undefined; - if (this.connectionState === "Disconnected" /* Disconnected */) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Debug, "Call to HttpConnection.stopConnection(" + error + ") was ignored because the connection is already in the disconnected state."); - return; - } - if (this.connectionState === "Connecting" /* Connecting */) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Warning, "Call to HttpConnection.stopConnection(" + error + ") was ignored because the connection is still in the connecting state."); - throw new Error("HttpConnection.stopConnection(" + error + ") was called while the connection is still in the connecting state."); - } - if (this.connectionState === "Disconnecting" /* Disconnecting */) { - // A call to stop() induced this call to stopConnection and needs to be completed. - // Any stop() awaiters will be scheduled to continue after the onclose callback fires. - this.stopPromiseResolver(); - } - if (error) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Error, "Connection disconnected with error '" + error + "'."); - } else { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Information, "Connection disconnected."); - } - if (this.sendQueue) { - this.sendQueue.stop().catch(function (e) { - _this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Error, "TransportSendQueue.stop() threw error '" + e + "'."); - }); - this.sendQueue = undefined; - } - this.connectionId = undefined; - this.connectionState = "Disconnected" /* Disconnected */; - if (this.connectionStarted) { - this.connectionStarted = false; - try { - if (this.onclose) { - this.onclose(error); - } - } catch (e) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Error, "HttpConnection.onclose(" + error + ") threw error '" + e + "'."); - } - } - }; - HttpConnection.prototype.resolveUrl = function (url) { - // startsWith is not supported in IE - if (url.lastIndexOf("https://", 0) === 0 || url.lastIndexOf("http://", 0) === 0) { - return url; - } - if (!_Utils__WEBPACK_IMPORTED_MODULE_5__.Platform.isBrowser || !window.document) { - throw new Error("Cannot resolve '" + url + "'."); - } - // Setting the url to the href propery of an anchor tag handles normalization - // for us. There are 3 main cases. - // 1. Relative path normalization e.g "b" -> "http://localhost:5000/a/b" - // 2. Absolute path normalization e.g "/a/b" -> "http://localhost:5000/a/b" - // 3. Networkpath reference normalization e.g "//localhost:5000/a/b" -> "http://localhost:5000/a/b" - var aTag = window.document.createElement("a"); - aTag.href = url; - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Information, "Normalizing '" + url + "' to '" + aTag.href + "'."); - return aTag.href; - }; - HttpConnection.prototype.resolveNegotiateUrl = function (url) { - var index = url.indexOf("?"); - var negotiateUrl = url.substring(0, index === -1 ? url.length : index); - if (negotiateUrl[negotiateUrl.length - 1] !== "/") { - negotiateUrl += "/"; - } - negotiateUrl += "negotiate"; - negotiateUrl += index === -1 ? "" : url.substring(index); - if (negotiateUrl.indexOf("negotiateVersion") === -1) { - negotiateUrl += index === -1 ? "?" : "&"; - negotiateUrl += "negotiateVersion=" + this.negotiateVersion; - } - return negotiateUrl; - }; - return HttpConnection; -}(); - -function transportMatches(requestedTransport, actualTransport) { - return !requestedTransport || (actualTransport & requestedTransport) !== 0; -} -/** @private */ -var TransportSendQueue = /** @class */function () { - function TransportSendQueue(transport) { - this.transport = transport; - this.buffer = []; - this.executing = true; - this.sendBufferedData = new PromiseSource(); - this.transportResult = new PromiseSource(); - this.sendLoopPromise = this.sendLoop(); - } - TransportSendQueue.prototype.send = function (data) { - this.bufferData(data); - if (!this.transportResult) { - this.transportResult = new PromiseSource(); - } - return this.transportResult.promise; - }; - TransportSendQueue.prototype.stop = function () { - this.executing = false; - this.sendBufferedData.resolve(); - return this.sendLoopPromise; - }; - TransportSendQueue.prototype.bufferData = function (data) { - if (this.buffer.length && typeof this.buffer[0] !== typeof data) { - throw new Error("Expected data to be of type " + typeof this.buffer + " but was of type " + typeof data); - } - this.buffer.push(data); - this.sendBufferedData.resolve(); - }; - TransportSendQueue.prototype.sendLoop = function () { - return __awaiter(this, void 0, void 0, function () { - var transportResult, data, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (false) {} - return [4 /*yield*/, this.sendBufferedData.promise]; - case 1: - _a.sent(); - if (!this.executing) { - if (this.transportResult) { - this.transportResult.reject("Connection stopped."); - } - return [3 /*break*/, 6]; - } - this.sendBufferedData = new PromiseSource(); - transportResult = this.transportResult; - this.transportResult = undefined; - data = typeof this.buffer[0] === "string" ? this.buffer.join("") : TransportSendQueue.concatBuffers(this.buffer); - this.buffer.length = 0; - _a.label = 2; - case 2: - _a.trys.push([2, 4,, 5]); - return [4 /*yield*/, this.transport.send(data)]; - case 3: - _a.sent(); - transportResult.resolve(); - return [3 /*break*/, 5]; - case 4: - error_1 = _a.sent(); - transportResult.reject(error_1); - return [3 /*break*/, 5]; - case 5: - return [3 /*break*/, 0]; - case 6: - return [2 /*return*/]; - } - }); - }); - }; - TransportSendQueue.concatBuffers = function (arrayBuffers) { - var totalLength = arrayBuffers.map(function (b) { - return b.byteLength; - }).reduce(function (a, b) { - return a + b; - }); - var result = new Uint8Array(totalLength); - var offset = 0; - for (var _i = 0, arrayBuffers_1 = arrayBuffers; _i < arrayBuffers_1.length; _i++) { - var item = arrayBuffers_1[_i]; - result.set(new Uint8Array(item), offset); - offset += item.byteLength; - } - return result.buffer; - }; - return TransportSendQueue; -}(); - -var PromiseSource = /** @class */function () { - function PromiseSource() { - var _this = this; - this.promise = new Promise(function (resolve, reject) { - var _a; - return _a = [resolve, reject], _this.resolver = _a[0], _this.rejecter = _a[1], _a; - }); - } - PromiseSource.prototype.resolve = function () { - this.resolver(); - }; - PromiseSource.prototype.reject = function (reason) { - this.rejecter(reason); - }; - return PromiseSource; -}(); - -/***/ }), - -/***/ 514: -/*!*******************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/HubConnection.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ HubConnection: () => (/* binding */ HubConnection), -/* harmony export */ HubConnectionState: () => (/* binding */ HubConnectionState) -/* harmony export */ }); -/* harmony import */ var _HandshakeProtocol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./HandshakeProtocol */ 8448); -/* harmony import */ var _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./IHubProtocol */ 5695); -/* harmony import */ var _ILogger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ILogger */ 7422); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Subject */ 1101); -/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Utils */ 1720); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : new P(function (resolve) { - resolve(result.value); - }).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: - case 1: - t = op; - break; - case 4: - _.label++; - return { - value: op[1], - done: false - }; - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - case 7: - op = _.ops.pop(); - _.trys.pop(); - continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - if (t && _.label < t[2]) { - _.label = t[2]; - _.ops.push(op); - break; - } - if (t[2]) _.ops.pop(); - _.trys.pop(); - continue; - } - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - -var DEFAULT_TIMEOUT_IN_MS = 30 * 1000; -var DEFAULT_PING_INTERVAL_IN_MS = 15 * 1000; -/** Describes the current state of the {@link HubConnection} to the server. */ -var HubConnectionState; -(function (HubConnectionState) { - /** The hub connection is disconnected. */ - HubConnectionState["Disconnected"] = "Disconnected"; - /** The hub connection is connecting. */ - HubConnectionState["Connecting"] = "Connecting"; - /** The hub connection is connected. */ - HubConnectionState["Connected"] = "Connected"; - /** The hub connection is disconnecting. */ - HubConnectionState["Disconnecting"] = "Disconnecting"; - /** The hub connection is reconnecting. */ - HubConnectionState["Reconnecting"] = "Reconnecting"; -})(HubConnectionState || (HubConnectionState = {})); -/** Represents a connection to a SignalR Hub. */ -var HubConnection = /** @class */function () { - function HubConnection(connection, logger, protocol, reconnectPolicy) { - var _this = this; - this.nextKeepAlive = 0; - _Utils__WEBPACK_IMPORTED_MODULE_4__.Arg.isRequired(connection, "connection"); - _Utils__WEBPACK_IMPORTED_MODULE_4__.Arg.isRequired(logger, "logger"); - _Utils__WEBPACK_IMPORTED_MODULE_4__.Arg.isRequired(protocol, "protocol"); - this.serverTimeoutInMilliseconds = DEFAULT_TIMEOUT_IN_MS; - this.keepAliveIntervalInMilliseconds = DEFAULT_PING_INTERVAL_IN_MS; - this.logger = logger; - this.protocol = protocol; - this.connection = connection; - this.reconnectPolicy = reconnectPolicy; - this.handshakeProtocol = new _HandshakeProtocol__WEBPACK_IMPORTED_MODULE_0__.HandshakeProtocol(); - this.connection.onreceive = function (data) { - return _this.processIncomingData(data); - }; - this.connection.onclose = function (error) { - return _this.connectionClosed(error); - }; - this.callbacks = {}; - this.methods = {}; - this.closedCallbacks = []; - this.reconnectingCallbacks = []; - this.reconnectedCallbacks = []; - this.invocationId = 0; - this.receivedHandshakeResponse = false; - this.connectionState = HubConnectionState.Disconnected; - this.connectionStarted = false; - this.cachedPingMessage = this.protocol.writeMessage({ - type: _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__.MessageType.Ping - }); - } - /** @internal */ - // Using a public static factory method means we can have a private constructor and an _internal_ - // create method that can be used by HubConnectionBuilder. An "internal" constructor would just - // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a - // public parameter-less constructor. - HubConnection.create = function (connection, logger, protocol, reconnectPolicy) { - return new HubConnection(connection, logger, protocol, reconnectPolicy); - }; - Object.defineProperty(HubConnection.prototype, "state", { - /** Indicates the state of the {@link HubConnection} to the server. */ - get: function () { - return this.connectionState; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(HubConnection.prototype, "connectionId", { - /** Represents the connection id of the {@link HubConnection} on the server. The connection id will be null when the connection is either - * in the disconnected state or if the negotiation step was skipped. - */ - get: function () { - return this.connection ? this.connection.connectionId || null : null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(HubConnection.prototype, "baseUrl", { - /** Indicates the url of the {@link HubConnection} to the server. */ - get: function () { - return this.connection.baseUrl || ""; - }, - /** - * Sets a new url for the HubConnection. Note that the url can only be changed when the connection is in either the Disconnected or - * Reconnecting states. - * @param {string} url The url to connect to. - */ - set: function (url) { - if (this.connectionState !== HubConnectionState.Disconnected && this.connectionState !== HubConnectionState.Reconnecting) { - throw new Error("The HubConnection must be in the Disconnected or Reconnecting state to change the url."); - } - if (!url) { - throw new Error("The HubConnection url must be a valid url."); - } - this.connection.baseUrl = url; - }, - enumerable: true, - configurable: true - }); - /** Starts the connection. - * - * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error. - */ - HubConnection.prototype.start = function () { - this.startPromise = this.startWithStateTransitions(); - return this.startPromise; - }; - HubConnection.prototype.startWithStateTransitions = function () { - return __awaiter(this, void 0, void 0, function () { - var e_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (this.connectionState !== HubConnectionState.Disconnected) { - return [2 /*return*/, Promise.reject(new Error("Cannot start a HubConnection that is not in the 'Disconnected' state."))]; - } - this.connectionState = HubConnectionState.Connecting; - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Debug, "Starting HubConnection."); - _a.label = 1; - case 1: - _a.trys.push([1, 3,, 4]); - return [4 /*yield*/, this.startInternal()]; - case 2: - _a.sent(); - this.connectionState = HubConnectionState.Connected; - this.connectionStarted = true; - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Debug, "HubConnection connected successfully."); - return [3 /*break*/, 4]; - case 3: - e_1 = _a.sent(); - this.connectionState = HubConnectionState.Disconnected; - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Debug, "HubConnection failed to start successfully because of error '" + e_1 + "'."); - return [2 /*return*/, Promise.reject(e_1)]; - case 4: - return [2 /*return*/]; - } - }); - }); - }; - HubConnection.prototype.startInternal = function () { - return __awaiter(this, void 0, void 0, function () { - var handshakePromise, handshakeRequest, e_2; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - this.stopDuringStartError = undefined; - this.receivedHandshakeResponse = false; - handshakePromise = new Promise(function (resolve, reject) { - _this.handshakeResolver = resolve; - _this.handshakeRejecter = reject; - }); - return [4 /*yield*/, this.connection.start(this.protocol.transferFormat)]; - case 1: - _a.sent(); - _a.label = 2; - case 2: - _a.trys.push([2, 5,, 7]); - handshakeRequest = { - protocol: this.protocol.name, - version: this.protocol.version - }; - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Debug, "Sending handshake request."); - return [4 /*yield*/, this.sendMessage(this.handshakeProtocol.writeHandshakeRequest(handshakeRequest))]; - case 3: - _a.sent(); - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Information, "Using HubProtocol '" + this.protocol.name + "'."); - // defensively cleanup timeout in case we receive a message from the server before we finish start - this.cleanupTimeout(); - this.resetTimeoutPeriod(); - this.resetKeepAliveInterval(); - return [4 /*yield*/, handshakePromise]; - case 4: - _a.sent(); - // It's important to check the stopDuringStartError instead of just relying on the handshakePromise - // being rejected on close, because this continuation can run after both the handshake completed successfully - // and the connection was closed. - if (this.stopDuringStartError) { - // It's important to throw instead of returning a rejected promise, because we don't want to allow any state - // transitions to occur between now and the calling code observing the exceptions. Returning a rejected promise - // will cause the calling continuation to get scheduled to run later. - throw this.stopDuringStartError; - } - return [3 /*break*/, 7]; - case 5: - e_2 = _a.sent(); - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Debug, "Hub handshake failed with error '" + e_2 + "' during start(). Stopping HubConnection."); - this.cleanupTimeout(); - this.cleanupPingTimer(); - // HttpConnection.stop() should not complete until after the onclose callback is invoked. - // This will transition the HubConnection to the disconnected state before HttpConnection.stop() completes. - return [4 /*yield*/, this.connection.stop(e_2)]; - case 6: - // HttpConnection.stop() should not complete until after the onclose callback is invoked. - // This will transition the HubConnection to the disconnected state before HttpConnection.stop() completes. - _a.sent(); - throw e_2; - case 7: - return [2 /*return*/]; - } - }); - }); - }; - /** Stops the connection. - * - * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error. - */ - HubConnection.prototype.stop = function () { - return __awaiter(this, void 0, void 0, function () { - var startPromise, e_3; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - startPromise = this.startPromise; - this.stopPromise = this.stopInternal(); - return [4 /*yield*/, this.stopPromise]; - case 1: - _a.sent(); - _a.label = 2; - case 2: - _a.trys.push([2, 4,, 5]); - // Awaiting undefined continues immediately - return [4 /*yield*/, startPromise]; - case 3: - // Awaiting undefined continues immediately - _a.sent(); - return [3 /*break*/, 5]; - case 4: - e_3 = _a.sent(); - return [3 /*break*/, 5]; - case 5: - return [2 /*return*/]; - } - }); - }); - }; - HubConnection.prototype.stopInternal = function (error) { - if (this.connectionState === HubConnectionState.Disconnected) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Debug, "Call to HubConnection.stop(" + error + ") ignored because it is already in the disconnected state."); - return Promise.resolve(); - } - if (this.connectionState === HubConnectionState.Disconnecting) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Debug, "Call to HttpConnection.stop(" + error + ") ignored because the connection is already in the disconnecting state."); - return this.stopPromise; - } - this.connectionState = HubConnectionState.Disconnecting; - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Debug, "Stopping HubConnection."); - if (this.reconnectDelayHandle) { - // We're in a reconnect delay which means the underlying connection is currently already stopped. - // Just clear the handle to stop the reconnect loop (which no one is waiting on thankfully) and - // fire the onclose callbacks. - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Debug, "Connection stopped during reconnect delay. Done reconnecting."); - clearTimeout(this.reconnectDelayHandle); - this.reconnectDelayHandle = undefined; - this.completeClose(); - return Promise.resolve(); - } - this.cleanupTimeout(); - this.cleanupPingTimer(); - this.stopDuringStartError = error || new Error("The connection was stopped before the hub handshake could complete."); - // HttpConnection.stop() should not complete until after either HttpConnection.start() fails - // or the onclose callback is invoked. The onclose callback will transition the HubConnection - // to the disconnected state if need be before HttpConnection.stop() completes. - return this.connection.stop(error); - }; - /** Invokes a streaming hub method on the server using the specified name and arguments. - * - * @typeparam T The type of the items returned by the server. - * @param {string} methodName The name of the server method to invoke. - * @param {any[]} args The arguments used to invoke the server method. - * @returns {IStreamResult} An object that yields results from the server as they are received. - */ - HubConnection.prototype.stream = function (methodName) { - var _this = this; - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - var _a = this.replaceStreamingParams(args), - streams = _a[0], - streamIds = _a[1]; - var invocationDescriptor = this.createStreamInvocation(methodName, args, streamIds); - var promiseQueue; - var subject = new _Subject__WEBPACK_IMPORTED_MODULE_3__.Subject(); - subject.cancelCallback = function () { - var cancelInvocation = _this.createCancelInvocation(invocationDescriptor.invocationId); - delete _this.callbacks[invocationDescriptor.invocationId]; - return promiseQueue.then(function () { - return _this.sendWithProtocol(cancelInvocation); - }); - }; - this.callbacks[invocationDescriptor.invocationId] = function (invocationEvent, error) { - if (error) { - subject.error(error); - return; - } else if (invocationEvent) { - // invocationEvent will not be null when an error is not passed to the callback - if (invocationEvent.type === _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__.MessageType.Completion) { - if (invocationEvent.error) { - subject.error(new Error(invocationEvent.error)); - } else { - subject.complete(); - } - } else { - subject.next(invocationEvent.item); - } - } - }; - promiseQueue = this.sendWithProtocol(invocationDescriptor).catch(function (e) { - subject.error(e); - delete _this.callbacks[invocationDescriptor.invocationId]; - }); - this.launchStreams(streams, promiseQueue); - return subject; - }; - HubConnection.prototype.sendMessage = function (message) { - this.resetKeepAliveInterval(); - return this.connection.send(message); - }; - /** - * Sends a js object to the server. - * @param message The js object to serialize and send. - */ - HubConnection.prototype.sendWithProtocol = function (message) { - return this.sendMessage(this.protocol.writeMessage(message)); - }; - /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver. - * - * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still - * be processing the invocation. - * - * @param {string} methodName The name of the server method to invoke. - * @param {any[]} args The arguments used to invoke the server method. - * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error. - */ - HubConnection.prototype.send = function (methodName) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - var _a = this.replaceStreamingParams(args), - streams = _a[0], - streamIds = _a[1]; - var sendPromise = this.sendWithProtocol(this.createInvocation(methodName, args, true, streamIds)); - this.launchStreams(streams, sendPromise); - return sendPromise; - }; - /** Invokes a hub method on the server using the specified name and arguments. - * - * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise - * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of - * resolving the Promise. - * - * @typeparam T The expected return type. - * @param {string} methodName The name of the server method to invoke. - * @param {any[]} args The arguments used to invoke the server method. - * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error. - */ - HubConnection.prototype.invoke = function (methodName) { - var _this = this; - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - var _a = this.replaceStreamingParams(args), - streams = _a[0], - streamIds = _a[1]; - var invocationDescriptor = this.createInvocation(methodName, args, false, streamIds); - var p = new Promise(function (resolve, reject) { - // invocationId will always have a value for a non-blocking invocation - _this.callbacks[invocationDescriptor.invocationId] = function (invocationEvent, error) { - if (error) { - reject(error); - return; - } else if (invocationEvent) { - // invocationEvent will not be null when an error is not passed to the callback - if (invocationEvent.type === _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__.MessageType.Completion) { - if (invocationEvent.error) { - reject(new Error(invocationEvent.error)); - } else { - resolve(invocationEvent.result); - } - } else { - reject(new Error("Unexpected message type: " + invocationEvent.type)); - } - } - }; - var promiseQueue = _this.sendWithProtocol(invocationDescriptor).catch(function (e) { - reject(e); - // invocationId will always have a value for a non-blocking invocation - delete _this.callbacks[invocationDescriptor.invocationId]; - }); - _this.launchStreams(streams, promiseQueue); - }); - return p; - }; - /** Registers a handler that will be invoked when the hub method with the specified method name is invoked. - * - * @param {string} methodName The name of the hub method to define. - * @param {Function} newMethod The handler that will be raised when the hub method is invoked. - */ - HubConnection.prototype.on = function (methodName, newMethod) { - if (!methodName || !newMethod) { - return; - } - methodName = methodName.toLowerCase(); - if (!this.methods[methodName]) { - this.methods[methodName] = []; - } - // Preventing adding the same handler multiple times. - if (this.methods[methodName].indexOf(newMethod) !== -1) { - return; - } - this.methods[methodName].push(newMethod); - }; - HubConnection.prototype.off = function (methodName, method) { - if (!methodName) { - return; - } - methodName = methodName.toLowerCase(); - var handlers = this.methods[methodName]; - if (!handlers) { - return; - } - if (method) { - var removeIdx = handlers.indexOf(method); - if (removeIdx !== -1) { - handlers.splice(removeIdx, 1); - if (handlers.length === 0) { - delete this.methods[methodName]; - } - } - } else { - delete this.methods[methodName]; - } - }; - /** Registers a handler that will be invoked when the connection is closed. - * - * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any). - */ - HubConnection.prototype.onclose = function (callback) { - if (callback) { - this.closedCallbacks.push(callback); - } - }; - /** Registers a handler that will be invoked when the connection starts reconnecting. - * - * @param {Function} callback The handler that will be invoked when the connection starts reconnecting. Optionally receives a single argument containing the error that caused the connection to start reconnecting (if any). - */ - HubConnection.prototype.onreconnecting = function (callback) { - if (callback) { - this.reconnectingCallbacks.push(callback); - } - }; - /** Registers a handler that will be invoked when the connection successfully reconnects. - * - * @param {Function} callback The handler that will be invoked when the connection successfully reconnects. - */ - HubConnection.prototype.onreconnected = function (callback) { - if (callback) { - this.reconnectedCallbacks.push(callback); - } - }; - HubConnection.prototype.processIncomingData = function (data) { - this.cleanupTimeout(); - if (!this.receivedHandshakeResponse) { - data = this.processHandshakeResponse(data); - this.receivedHandshakeResponse = true; - } - // Data may have all been read when processing handshake response - if (data) { - // Parse the messages - var messages = this.protocol.parseMessages(data, this.logger); - for (var _i = 0, messages_1 = messages; _i < messages_1.length; _i++) { - var message = messages_1[_i]; - switch (message.type) { - case _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__.MessageType.Invocation: - this.invokeClientMethod(message); - break; - case _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__.MessageType.StreamItem: - case _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__.MessageType.Completion: - var callback = this.callbacks[message.invocationId]; - if (callback) { - if (message.type === _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__.MessageType.Completion) { - delete this.callbacks[message.invocationId]; - } - callback(message); - } - break; - case _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__.MessageType.Ping: - // Don't care about pings - break; - case _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__.MessageType.Close: - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Information, "Close message received from server."); - var error = message.error ? new Error("Server returned an error on close: " + message.error) : undefined; - if (message.allowReconnect === true) { - // It feels wrong not to await connection.stop() here, but processIncomingData is called as part of an onreceive callback which is not async, - // this is already the behavior for serverTimeout(), and HttpConnection.Stop() should catch and log all possible exceptions. - // tslint:disable-next-line:no-floating-promises - this.connection.stop(error); - } else { - // We cannot await stopInternal() here, but subsequent calls to stop() will await this if stopInternal() is still ongoing. - this.stopPromise = this.stopInternal(error); - } - break; - default: - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Warning, "Invalid message type: " + message.type + "."); - break; - } - } - } - this.resetTimeoutPeriod(); - }; - HubConnection.prototype.processHandshakeResponse = function (data) { - var _a; - var responseMessage; - var remainingData; - try { - _a = this.handshakeProtocol.parseHandshakeResponse(data), remainingData = _a[0], responseMessage = _a[1]; - } catch (e) { - var message = "Error parsing handshake response: " + e; - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Error, message); - var error = new Error(message); - this.handshakeRejecter(error); - throw error; - } - if (responseMessage.error) { - var message = "Server returned handshake error: " + responseMessage.error; - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Error, message); - var error = new Error(message); - this.handshakeRejecter(error); - throw error; - } else { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Debug, "Server handshake complete."); - } - this.handshakeResolver(); - return remainingData; - }; - HubConnection.prototype.resetKeepAliveInterval = function () { - if (this.connection.features.inherentKeepAlive) { - return; - } - // Set the time we want the next keep alive to be sent - // Timer will be setup on next message receive - this.nextKeepAlive = new Date().getTime() + this.keepAliveIntervalInMilliseconds; - this.cleanupPingTimer(); - }; - HubConnection.prototype.resetTimeoutPeriod = function () { - var _this = this; - if (!this.connection.features || !this.connection.features.inherentKeepAlive) { - // Set the timeout timer - this.timeoutHandle = setTimeout(function () { - return _this.serverTimeout(); - }, this.serverTimeoutInMilliseconds); - // Set keepAlive timer if there isn't one - if (this.pingServerHandle === undefined) { - var nextPing = this.nextKeepAlive - new Date().getTime(); - if (nextPing < 0) { - nextPing = 0; - } - // The timer needs to be set from a networking callback to avoid Chrome timer throttling from causing timers to run once a minute - this.pingServerHandle = setTimeout(function () { - return __awaiter(_this, void 0, void 0, function () { - var _a; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!(this.connectionState === HubConnectionState.Connected)) return [3 /*break*/, 4]; - _b.label = 1; - case 1: - _b.trys.push([1, 3,, 4]); - return [4 /*yield*/, this.sendMessage(this.cachedPingMessage)]; - case 2: - _b.sent(); - return [3 /*break*/, 4]; - case 3: - _a = _b.sent(); - // We don't care about the error. It should be seen elsewhere in the client. - // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering - this.cleanupPingTimer(); - return [3 /*break*/, 4]; - case 4: - return [2 /*return*/]; - } - }); - }); - }, nextPing); - } - } - }; - HubConnection.prototype.serverTimeout = function () { - // The server hasn't talked to us in a while. It doesn't like us anymore ... :( - // Terminate the connection, but we don't need to wait on the promise. This could trigger reconnecting. - // tslint:disable-next-line:no-floating-promises - this.connection.stop(new Error("Server timeout elapsed without receiving a message from the server.")); - }; - HubConnection.prototype.invokeClientMethod = function (invocationMessage) { - var _this = this; - var methods = this.methods[invocationMessage.target.toLowerCase()]; - if (methods) { - try { - methods.forEach(function (m) { - return m.apply(_this, invocationMessage.arguments); - }); - } catch (e) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Error, "A callback for the method " + invocationMessage.target.toLowerCase() + " threw error '" + e + "'."); - } - if (invocationMessage.invocationId) { - // This is not supported in v1. So we return an error to avoid blocking the server waiting for the response. - var message = "Server requested a response, which is not supported in this version of the client."; - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Error, message); - // We don't want to wait on the stop itself. - this.stopPromise = this.stopInternal(new Error(message)); - } - } else { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Warning, "No client method with the name '" + invocationMessage.target + "' found."); - } - }; - HubConnection.prototype.connectionClosed = function (error) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Debug, "HubConnection.connectionClosed(" + error + ") called while in state " + this.connectionState + "."); - // Triggering this.handshakeRejecter is insufficient because it could already be resolved without the continuation having run yet. - this.stopDuringStartError = this.stopDuringStartError || error || new Error("The underlying connection was closed before the hub handshake could complete."); - // If the handshake is in progress, start will be waiting for the handshake promise, so we complete it. - // If it has already completed, this should just noop. - if (this.handshakeResolver) { - this.handshakeResolver(); - } - this.cancelCallbacksWithError(error || new Error("Invocation canceled due to the underlying connection being closed.")); - this.cleanupTimeout(); - this.cleanupPingTimer(); - if (this.connectionState === HubConnectionState.Disconnecting) { - this.completeClose(error); - } else if (this.connectionState === HubConnectionState.Connected && this.reconnectPolicy) { - // tslint:disable-next-line:no-floating-promises - this.reconnect(error); - } else if (this.connectionState === HubConnectionState.Connected) { - this.completeClose(error); - } - // If none of the above if conditions were true were called the HubConnection must be in either: - // 1. The Connecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail it. - // 2. The Reconnecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail the current reconnect attempt - // and potentially continue the reconnect() loop. - // 3. The Disconnected state in which case we're already done. - }; - HubConnection.prototype.completeClose = function (error) { - var _this = this; - if (this.connectionStarted) { - this.connectionState = HubConnectionState.Disconnected; - this.connectionStarted = false; - try { - this.closedCallbacks.forEach(function (c) { - return c.apply(_this, [error]); - }); - } catch (e) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Error, "An onclose callback called with error '" + error + "' threw error '" + e + "'."); - } - } - }; - HubConnection.prototype.reconnect = function (error) { - return __awaiter(this, void 0, void 0, function () { - var reconnectStartTime, previousReconnectAttempts, retryError, nextRetryDelay, e_4; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - reconnectStartTime = Date.now(); - previousReconnectAttempts = 0; - retryError = error !== undefined ? error : new Error("Attempting to reconnect due to a unknown error."); - nextRetryDelay = this.getNextRetryDelay(previousReconnectAttempts++, 0, retryError); - if (nextRetryDelay === null) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Debug, "Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt."); - this.completeClose(error); - return [2 /*return*/]; - } - this.connectionState = HubConnectionState.Reconnecting; - if (error) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Information, "Connection reconnecting because of error '" + error + "'."); - } else { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Information, "Connection reconnecting."); - } - if (this.onreconnecting) { - try { - this.reconnectingCallbacks.forEach(function (c) { - return c.apply(_this, [error]); - }); - } catch (e) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Error, "An onreconnecting callback called with error '" + error + "' threw error '" + e + "'."); - } - // Exit early if an onreconnecting callback called connection.stop(). - if (this.connectionState !== HubConnectionState.Reconnecting) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Debug, "Connection left the reconnecting state in onreconnecting callback. Done reconnecting."); - return [2 /*return*/]; - } - } - _a.label = 1; - case 1: - if (!(nextRetryDelay !== null)) return [3 /*break*/, 7]; - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Information, "Reconnect attempt number " + previousReconnectAttempts + " will start in " + nextRetryDelay + " ms."); - return [4 /*yield*/, new Promise(function (resolve) { - _this.reconnectDelayHandle = setTimeout(resolve, nextRetryDelay); - })]; - case 2: - _a.sent(); - this.reconnectDelayHandle = undefined; - if (this.connectionState !== HubConnectionState.Reconnecting) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Debug, "Connection left the reconnecting state during reconnect delay. Done reconnecting."); - return [2 /*return*/]; - } - _a.label = 3; - case 3: - _a.trys.push([3, 5,, 6]); - return [4 /*yield*/, this.startInternal()]; - case 4: - _a.sent(); - this.connectionState = HubConnectionState.Connected; - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Information, "HubConnection reconnected successfully."); - if (this.onreconnected) { - try { - this.reconnectedCallbacks.forEach(function (c) { - return c.apply(_this, [_this.connection.connectionId]); - }); - } catch (e) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Error, "An onreconnected callback called with connectionId '" + this.connection.connectionId + "; threw error '" + e + "'."); - } - } - return [2 /*return*/]; - case 5: - e_4 = _a.sent(); - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Information, "Reconnect attempt failed because of error '" + e_4 + "'."); - if (this.connectionState !== HubConnectionState.Reconnecting) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Debug, "Connection moved to the '" + this.connectionState + "' from the reconnecting state during reconnect attempt. Done reconnecting."); - // The TypeScript compiler thinks that connectionState must be Connected here. The TypeScript compiler is wrong. - if (this.connectionState === HubConnectionState.Disconnecting) { - this.completeClose(); - } - return [2 /*return*/]; - } - retryError = e_4 instanceof Error ? e_4 : new Error(e_4.toString()); - nextRetryDelay = this.getNextRetryDelay(previousReconnectAttempts++, Date.now() - reconnectStartTime, retryError); - return [3 /*break*/, 6]; - case 6: - return [3 /*break*/, 1]; - case 7: - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Information, "Reconnect retries have been exhausted after " + (Date.now() - reconnectStartTime) + " ms and " + previousReconnectAttempts + " failed attempts. Connection disconnecting."); - this.completeClose(); - return [2 /*return*/]; - } - }); - }); - }; - HubConnection.prototype.getNextRetryDelay = function (previousRetryCount, elapsedMilliseconds, retryReason) { - try { - return this.reconnectPolicy.nextRetryDelayInMilliseconds({ - elapsedMilliseconds: elapsedMilliseconds, - previousRetryCount: previousRetryCount, - retryReason: retryReason - }); - } catch (e) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Error, "IRetryPolicy.nextRetryDelayInMilliseconds(" + previousRetryCount + ", " + elapsedMilliseconds + ") threw error '" + e + "'."); - return null; - } - }; - HubConnection.prototype.cancelCallbacksWithError = function (error) { - var callbacks = this.callbacks; - this.callbacks = {}; - Object.keys(callbacks).forEach(function (key) { - var callback = callbacks[key]; - callback(null, error); - }); - }; - HubConnection.prototype.cleanupPingTimer = function () { - if (this.pingServerHandle) { - clearTimeout(this.pingServerHandle); - this.pingServerHandle = undefined; - } - }; - HubConnection.prototype.cleanupTimeout = function () { - if (this.timeoutHandle) { - clearTimeout(this.timeoutHandle); - } - }; - HubConnection.prototype.createInvocation = function (methodName, args, nonblocking, streamIds) { - if (nonblocking) { - if (streamIds.length !== 0) { - return { - arguments: args, - streamIds: streamIds, - target: methodName, - type: _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__.MessageType.Invocation - }; - } else { - return { - arguments: args, - target: methodName, - type: _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__.MessageType.Invocation - }; - } - } else { - var invocationId = this.invocationId; - this.invocationId++; - if (streamIds.length !== 0) { - return { - arguments: args, - invocationId: invocationId.toString(), - streamIds: streamIds, - target: methodName, - type: _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__.MessageType.Invocation - }; - } else { - return { - arguments: args, - invocationId: invocationId.toString(), - target: methodName, - type: _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__.MessageType.Invocation - }; - } - } - }; - HubConnection.prototype.launchStreams = function (streams, promiseQueue) { - var _this = this; - if (streams.length === 0) { - return; - } - // Synchronize stream data so they arrive in-order on the server - if (!promiseQueue) { - promiseQueue = Promise.resolve(); - } - var _loop_1 = function (streamId) { - streams[streamId].subscribe({ - complete: function () { - promiseQueue = promiseQueue.then(function () { - return _this.sendWithProtocol(_this.createCompletionMessage(streamId)); - }); - }, - error: function (err) { - var message; - if (err instanceof Error) { - message = err.message; - } else if (err && err.toString) { - message = err.toString(); - } else { - message = "Unknown error"; - } - promiseQueue = promiseQueue.then(function () { - return _this.sendWithProtocol(_this.createCompletionMessage(streamId, message)); - }); - }, - next: function (item) { - promiseQueue = promiseQueue.then(function () { - return _this.sendWithProtocol(_this.createStreamItemMessage(streamId, item)); - }); - } - }); - }; - // We want to iterate over the keys, since the keys are the stream ids - // tslint:disable-next-line:forin - for (var streamId in streams) { - _loop_1(streamId); - } - }; - HubConnection.prototype.replaceStreamingParams = function (args) { - var streams = []; - var streamIds = []; - for (var i = 0; i < args.length; i++) { - var argument = args[i]; - if (this.isObservable(argument)) { - var streamId = this.invocationId; - this.invocationId++; - // Store the stream for later use - streams[streamId] = argument; - streamIds.push(streamId.toString()); - // remove stream from args - args.splice(i, 1); - } - } - return [streams, streamIds]; - }; - HubConnection.prototype.isObservable = function (arg) { - // This allows other stream implementations to just work (like rxjs) - return arg && arg.subscribe && typeof arg.subscribe === "function"; - }; - HubConnection.prototype.createStreamInvocation = function (methodName, args, streamIds) { - var invocationId = this.invocationId; - this.invocationId++; - if (streamIds.length !== 0) { - return { - arguments: args, - invocationId: invocationId.toString(), - streamIds: streamIds, - target: methodName, - type: _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__.MessageType.StreamInvocation - }; - } else { - return { - arguments: args, - invocationId: invocationId.toString(), - target: methodName, - type: _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__.MessageType.StreamInvocation - }; - } - }; - HubConnection.prototype.createCancelInvocation = function (id) { - return { - invocationId: id, - type: _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__.MessageType.CancelInvocation - }; - }; - HubConnection.prototype.createStreamItemMessage = function (id, item) { - return { - invocationId: id, - item: item, - type: _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__.MessageType.StreamItem - }; - }; - HubConnection.prototype.createCompletionMessage = function (id, error, result) { - if (error) { - return { - error: error, - invocationId: id, - type: _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__.MessageType.Completion - }; - } - return { - invocationId: id, - result: result, - type: _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__.MessageType.Completion - }; - }; - return HubConnection; -}(); - - -/***/ }), - -/***/ 4443: -/*!**************************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js ***! - \**************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ HubConnectionBuilder: () => (/* binding */ HubConnectionBuilder) -/* harmony export */ }); -/* harmony import */ var _DefaultReconnectPolicy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DefaultReconnectPolicy */ 9221); -/* harmony import */ var _HttpConnection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HttpConnection */ 4085); -/* harmony import */ var _HubConnection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./HubConnection */ 514); -/* harmony import */ var _ILogger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ILogger */ 7422); -/* harmony import */ var _JsonHubProtocol__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./JsonHubProtocol */ 8184); -/* harmony import */ var _Loggers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Loggers */ 4563); -/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Utils */ 1720); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -var __assign = undefined && undefined.__assign || Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; -}; - - - - - - - -// tslint:disable:object-literal-sort-keys -var LogLevelNameMapping = { - trace: _ILogger__WEBPACK_IMPORTED_MODULE_3__.LogLevel.Trace, - debug: _ILogger__WEBPACK_IMPORTED_MODULE_3__.LogLevel.Debug, - info: _ILogger__WEBPACK_IMPORTED_MODULE_3__.LogLevel.Information, - information: _ILogger__WEBPACK_IMPORTED_MODULE_3__.LogLevel.Information, - warn: _ILogger__WEBPACK_IMPORTED_MODULE_3__.LogLevel.Warning, - warning: _ILogger__WEBPACK_IMPORTED_MODULE_3__.LogLevel.Warning, - error: _ILogger__WEBPACK_IMPORTED_MODULE_3__.LogLevel.Error, - critical: _ILogger__WEBPACK_IMPORTED_MODULE_3__.LogLevel.Critical, - none: _ILogger__WEBPACK_IMPORTED_MODULE_3__.LogLevel.None -}; -function parseLogLevel(name) { - // Case-insensitive matching via lower-casing - // Yes, I know case-folding is a complicated problem in Unicode, but we only support - // the ASCII strings defined in LogLevelNameMapping anyway, so it's fine -anurse. - var mapping = LogLevelNameMapping[name.toLowerCase()]; - if (typeof mapping !== "undefined") { - return mapping; - } else { - throw new Error("Unknown log level: " + name); - } -} -/** A builder for configuring {@link @microsoft/signalr.HubConnection} instances. */ -var HubConnectionBuilder = /** @class */function () { - function HubConnectionBuilder() {} - HubConnectionBuilder.prototype.configureLogging = function (logging) { - _Utils__WEBPACK_IMPORTED_MODULE_6__.Arg.isRequired(logging, "logging"); - if (isLogger(logging)) { - this.logger = logging; - } else if (typeof logging === "string") { - var logLevel = parseLogLevel(logging); - this.logger = new _Utils__WEBPACK_IMPORTED_MODULE_6__.ConsoleLogger(logLevel); - } else { - this.logger = new _Utils__WEBPACK_IMPORTED_MODULE_6__.ConsoleLogger(logging); - } - return this; - }; - HubConnectionBuilder.prototype.withUrl = function (url, transportTypeOrOptions) { - _Utils__WEBPACK_IMPORTED_MODULE_6__.Arg.isRequired(url, "url"); - _Utils__WEBPACK_IMPORTED_MODULE_6__.Arg.isNotEmpty(url, "url"); - this.url = url; - // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed - // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called. - if (typeof transportTypeOrOptions === "object") { - this.httpConnectionOptions = __assign({}, this.httpConnectionOptions, transportTypeOrOptions); - } else { - this.httpConnectionOptions = __assign({}, this.httpConnectionOptions, { - transport: transportTypeOrOptions - }); - } - return this; - }; - /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified Hub Protocol. - * - * @param {IHubProtocol} protocol The {@link @microsoft/signalr.IHubProtocol} implementation to use. - */ - HubConnectionBuilder.prototype.withHubProtocol = function (protocol) { - _Utils__WEBPACK_IMPORTED_MODULE_6__.Arg.isRequired(protocol, "protocol"); - this.protocol = protocol; - return this; - }; - HubConnectionBuilder.prototype.withAutomaticReconnect = function (retryDelaysOrReconnectPolicy) { - if (this.reconnectPolicy) { - throw new Error("A reconnectPolicy has already been set."); - } - if (!retryDelaysOrReconnectPolicy) { - this.reconnectPolicy = new _DefaultReconnectPolicy__WEBPACK_IMPORTED_MODULE_0__.DefaultReconnectPolicy(); - } else if (Array.isArray(retryDelaysOrReconnectPolicy)) { - this.reconnectPolicy = new _DefaultReconnectPolicy__WEBPACK_IMPORTED_MODULE_0__.DefaultReconnectPolicy(retryDelaysOrReconnectPolicy); - } else { - this.reconnectPolicy = retryDelaysOrReconnectPolicy; - } - return this; - }; - /** Creates a {@link @microsoft/signalr.HubConnection} from the configuration options specified in this builder. - * - * @returns {HubConnection} The configured {@link @microsoft/signalr.HubConnection}. - */ - HubConnectionBuilder.prototype.build = function () { - // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one - // provided to configureLogger - var httpConnectionOptions = this.httpConnectionOptions || {}; - // If it's 'null', the user **explicitly** asked for null, don't mess with it. - if (httpConnectionOptions.logger === undefined) { - // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it. - httpConnectionOptions.logger = this.logger; - } - // Now create the connection - if (!this.url) { - throw new Error("The 'HubConnectionBuilder.withUrl' method must be called before building the connection."); - } - var connection = new _HttpConnection__WEBPACK_IMPORTED_MODULE_1__.HttpConnection(this.url, httpConnectionOptions); - return _HubConnection__WEBPACK_IMPORTED_MODULE_2__.HubConnection.create(connection, this.logger || _Loggers__WEBPACK_IMPORTED_MODULE_5__.NullLogger.instance, this.protocol || new _JsonHubProtocol__WEBPACK_IMPORTED_MODULE_4__.JsonHubProtocol(), this.reconnectPolicy); - }; - return HubConnectionBuilder; -}(); - -function isLogger(logger) { - return logger.log !== undefined; -} - -/***/ }), - -/***/ 5695: -/*!******************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js ***! - \******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ MessageType: () => (/* binding */ MessageType) -/* harmony export */ }); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -/** Defines the type of a Hub Message. */ -var MessageType; -(function (MessageType) { - /** Indicates the message is an Invocation message and implements the {@link @microsoft/signalr.InvocationMessage} interface. */ - MessageType[MessageType["Invocation"] = 1] = "Invocation"; - /** Indicates the message is a StreamItem message and implements the {@link @microsoft/signalr.StreamItemMessage} interface. */ - MessageType[MessageType["StreamItem"] = 2] = "StreamItem"; - /** Indicates the message is a Completion message and implements the {@link @microsoft/signalr.CompletionMessage} interface. */ - MessageType[MessageType["Completion"] = 3] = "Completion"; - /** Indicates the message is a Stream Invocation message and implements the {@link @microsoft/signalr.StreamInvocationMessage} interface. */ - MessageType[MessageType["StreamInvocation"] = 4] = "StreamInvocation"; - /** Indicates the message is a Cancel Invocation message and implements the {@link @microsoft/signalr.CancelInvocationMessage} interface. */ - MessageType[MessageType["CancelInvocation"] = 5] = "CancelInvocation"; - /** Indicates the message is a Ping message and implements the {@link @microsoft/signalr.PingMessage} interface. */ - MessageType[MessageType["Ping"] = 6] = "Ping"; - /** Indicates the message is a Close message and implements the {@link @microsoft/signalr.CloseMessage} interface. */ - MessageType[MessageType["Close"] = 7] = "Close"; -})(MessageType || (MessageType = {})); - -/***/ }), - -/***/ 7422: -/*!*************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/ILogger.js ***! - \*************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ LogLevel: () => (/* binding */ LogLevel) -/* harmony export */ }); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here. -/** Indicates the severity of a log message. - * - * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc. - */ -var LogLevel; -(function (LogLevel) { - /** Log level for very low severity diagnostic messages. */ - LogLevel[LogLevel["Trace"] = 0] = "Trace"; - /** Log level for low severity diagnostic messages. */ - LogLevel[LogLevel["Debug"] = 1] = "Debug"; - /** Log level for informational diagnostic messages. */ - LogLevel[LogLevel["Information"] = 2] = "Information"; - /** Log level for diagnostic messages that indicate a non-fatal problem. */ - LogLevel[LogLevel["Warning"] = 3] = "Warning"; - /** Log level for diagnostic messages that indicate a failure in the current operation. */ - LogLevel[LogLevel["Error"] = 4] = "Error"; - /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */ - LogLevel[LogLevel["Critical"] = 5] = "Critical"; - /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */ - LogLevel[LogLevel["None"] = 6] = "None"; -})(LogLevel || (LogLevel = {})); - -/***/ }), - -/***/ 893: -/*!****************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/ITransport.js ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ HttpTransportType: () => (/* binding */ HttpTransportType), -/* harmony export */ TransferFormat: () => (/* binding */ TransferFormat) -/* harmony export */ }); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -// This will be treated as a bit flag in the future, so we keep it using power-of-two values. -/** Specifies a specific HTTP transport type. */ -var HttpTransportType; -(function (HttpTransportType) { - /** Specifies no transport preference. */ - HttpTransportType[HttpTransportType["None"] = 0] = "None"; - /** Specifies the WebSockets transport. */ - HttpTransportType[HttpTransportType["WebSockets"] = 1] = "WebSockets"; - /** Specifies the Server-Sent Events transport. */ - HttpTransportType[HttpTransportType["ServerSentEvents"] = 2] = "ServerSentEvents"; - /** Specifies the Long Polling transport. */ - HttpTransportType[HttpTransportType["LongPolling"] = 4] = "LongPolling"; -})(HttpTransportType || (HttpTransportType = {})); -/** Specifies the transfer format for a connection. */ -var TransferFormat; -(function (TransferFormat) { - /** Specifies that only text data will be transmitted over the connection. */ - TransferFormat[TransferFormat["Text"] = 1] = "Text"; - /** Specifies that binary data will be transmitted over the connection. */ - TransferFormat[TransferFormat["Binary"] = 2] = "Binary"; -})(TransferFormat || (TransferFormat = {})); - -/***/ }), - -/***/ 8184: -/*!*********************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ JsonHubProtocol: () => (/* binding */ JsonHubProtocol) -/* harmony export */ }); -/* harmony import */ var _IHubProtocol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./IHubProtocol */ 5695); -/* harmony import */ var _ILogger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ILogger */ 7422); -/* harmony import */ var _ITransport__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ITransport */ 893); -/* harmony import */ var _Loggers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Loggers */ 4563); -/* harmony import */ var _TextMessageFormat__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./TextMessageFormat */ 7876); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - - - - - -var JSON_HUB_PROTOCOL_NAME = "json"; -/** Implements the JSON Hub Protocol. */ -var JsonHubProtocol = /** @class */function () { - function JsonHubProtocol() { - /** @inheritDoc */ - this.name = JSON_HUB_PROTOCOL_NAME; - /** @inheritDoc */ - this.version = 1; - /** @inheritDoc */ - this.transferFormat = _ITransport__WEBPACK_IMPORTED_MODULE_2__.TransferFormat.Text; - } - /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation. - * - * @param {string} input A string containing the serialized representation. - * @param {ILogger} logger A logger that will be used to log messages that occur during parsing. - */ - JsonHubProtocol.prototype.parseMessages = function (input, logger) { - // The interface does allow "ArrayBuffer" to be passed in, but this implementation does not. So let's throw a useful error. - if (typeof input !== "string") { - throw new Error("Invalid input for JSON hub protocol. Expected a string."); - } - if (!input) { - return []; - } - if (logger === null) { - logger = _Loggers__WEBPACK_IMPORTED_MODULE_3__.NullLogger.instance; - } - // Parse the messages - var messages = _TextMessageFormat__WEBPACK_IMPORTED_MODULE_4__.TextMessageFormat.parse(input); - var hubMessages = []; - for (var _i = 0, messages_1 = messages; _i < messages_1.length; _i++) { - var message = messages_1[_i]; - var parsedMessage = JSON.parse(message); - if (typeof parsedMessage.type !== "number") { - throw new Error("Invalid payload."); - } - switch (parsedMessage.type) { - case _IHubProtocol__WEBPACK_IMPORTED_MODULE_0__.MessageType.Invocation: - this.isInvocationMessage(parsedMessage); - break; - case _IHubProtocol__WEBPACK_IMPORTED_MODULE_0__.MessageType.StreamItem: - this.isStreamItemMessage(parsedMessage); - break; - case _IHubProtocol__WEBPACK_IMPORTED_MODULE_0__.MessageType.Completion: - this.isCompletionMessage(parsedMessage); - break; - case _IHubProtocol__WEBPACK_IMPORTED_MODULE_0__.MessageType.Ping: - // Single value, no need to validate - break; - case _IHubProtocol__WEBPACK_IMPORTED_MODULE_0__.MessageType.Close: - // All optional values, no need to validate - break; - default: - // Future protocol changes can add message types, old clients can ignore them - logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__.LogLevel.Information, "Unknown message type '" + parsedMessage.type + "' ignored."); - continue; - } - hubMessages.push(parsedMessage); - } - return hubMessages; - }; - /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string and returns it. - * - * @param {HubMessage} message The message to write. - * @returns {string} A string containing the serialized representation of the message. - */ - JsonHubProtocol.prototype.writeMessage = function (message) { - return _TextMessageFormat__WEBPACK_IMPORTED_MODULE_4__.TextMessageFormat.write(JSON.stringify(message)); - }; - JsonHubProtocol.prototype.isInvocationMessage = function (message) { - this.assertNotEmptyString(message.target, "Invalid payload for Invocation message."); - if (message.invocationId !== undefined) { - this.assertNotEmptyString(message.invocationId, "Invalid payload for Invocation message."); - } - }; - JsonHubProtocol.prototype.isStreamItemMessage = function (message) { - this.assertNotEmptyString(message.invocationId, "Invalid payload for StreamItem message."); - if (message.item === undefined) { - throw new Error("Invalid payload for StreamItem message."); - } - }; - JsonHubProtocol.prototype.isCompletionMessage = function (message) { - if (message.result && message.error) { - throw new Error("Invalid payload for Completion message."); - } - if (!message.result && message.error) { - this.assertNotEmptyString(message.error, "Invalid payload for Completion message."); - } - this.assertNotEmptyString(message.invocationId, "Invalid payload for Completion message."); - }; - JsonHubProtocol.prototype.assertNotEmptyString = function (value, errorMessage) { - if (typeof value !== "string" || value === "") { - throw new Error(errorMessage); - } - }; - return JsonHubProtocol; -}(); - - -/***/ }), - -/***/ 4563: -/*!*************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/Loggers.js ***! - \*************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ NullLogger: () => (/* binding */ NullLogger) -/* harmony export */ }); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -/** A logger that does nothing when log messages are sent to it. */ -var NullLogger = /** @class */function () { - function NullLogger() {} - /** @inheritDoc */ - // tslint:disable-next-line - NullLogger.prototype.log = function (_logLevel, _message) {}; - /** The singleton instance of the {@link @microsoft/signalr.NullLogger}. */ - NullLogger.instance = new NullLogger(); - return NullLogger; -}(); - - -/***/ }), - -/***/ 8335: -/*!**************************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js ***! - \**************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ LongPollingTransport: () => (/* binding */ LongPollingTransport) -/* harmony export */ }); -/* harmony import */ var _AbortController__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AbortController */ 663); -/* harmony import */ var _Errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Errors */ 9490); -/* harmony import */ var _ILogger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ILogger */ 7422); -/* harmony import */ var _ITransport__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ITransport */ 893); -/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Utils */ 1720); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -var __assign = undefined && undefined.__assign || Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; -}; -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : new P(function (resolve) { - resolve(result.value); - }).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: - case 1: - t = op; - break; - case 4: - _.label++; - return { - value: op[1], - done: false - }; - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - case 7: - op = _.ops.pop(); - _.trys.pop(); - continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - if (t && _.label < t[2]) { - _.label = t[2]; - _.ops.push(op); - break; - } - if (t[2]) _.ops.pop(); - _.trys.pop(); - continue; - } - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - - - -// Not exported from 'index', this type is internal. -/** @private */ -var LongPollingTransport = /** @class */function () { - function LongPollingTransport(httpClient, accessTokenFactory, logger, logMessageContent, withCredentials, headers) { - this.httpClient = httpClient; - this.accessTokenFactory = accessTokenFactory; - this.logger = logger; - this.pollAbort = new _AbortController__WEBPACK_IMPORTED_MODULE_0__.AbortController(); - this.logMessageContent = logMessageContent; - this.withCredentials = withCredentials; - this.headers = headers; - this.running = false; - this.onreceive = null; - this.onclose = null; - } - Object.defineProperty(LongPollingTransport.prototype, "pollAborted", { - // This is an internal type, not exported from 'index' so this is really just internal. - get: function () { - return this.pollAbort.aborted; - }, - enumerable: true, - configurable: true - }); - LongPollingTransport.prototype.connect = function (url, transferFormat) { - return __awaiter(this, void 0, void 0, function () { - var _a, _b, name, value, headers, pollOptions, token, pollUrl, response; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - _Utils__WEBPACK_IMPORTED_MODULE_4__.Arg.isRequired(url, "url"); - _Utils__WEBPACK_IMPORTED_MODULE_4__.Arg.isRequired(transferFormat, "transferFormat"); - _Utils__WEBPACK_IMPORTED_MODULE_4__.Arg.isIn(transferFormat, _ITransport__WEBPACK_IMPORTED_MODULE_3__.TransferFormat, "transferFormat"); - this.url = url; - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Trace, "(LongPolling transport) Connecting."); - // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property) - if (transferFormat === _ITransport__WEBPACK_IMPORTED_MODULE_3__.TransferFormat.Binary && typeof XMLHttpRequest !== "undefined" && typeof new XMLHttpRequest().responseType !== "string") { - throw new Error("Binary protocols over XmlHttpRequest not implementing advanced features are not supported."); - } - _b = (0,_Utils__WEBPACK_IMPORTED_MODULE_4__.getUserAgentHeader)(), name = _b[0], value = _b[1]; - headers = __assign((_a = {}, _a[name] = value, _a), this.headers); - pollOptions = { - abortSignal: this.pollAbort.signal, - headers: headers, - timeout: 100000, - withCredentials: this.withCredentials - }; - if (transferFormat === _ITransport__WEBPACK_IMPORTED_MODULE_3__.TransferFormat.Binary) { - pollOptions.responseType = "arraybuffer"; - } - return [4 /*yield*/, this.getAccessToken()]; - case 1: - token = _c.sent(); - this.updateHeaderToken(pollOptions, token); - pollUrl = url + "&_=" + Date.now(); - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Trace, "(LongPolling transport) polling: " + pollUrl + "."); - return [4 /*yield*/, this.httpClient.get(pollUrl, pollOptions)]; - case 2: - response = _c.sent(); - if (response.statusCode !== 200) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Error, "(LongPolling transport) Unexpected response code: " + response.statusCode + "."); - // Mark running as false so that the poll immediately ends and runs the close logic - this.closeError = new _Errors__WEBPACK_IMPORTED_MODULE_1__.HttpError(response.statusText || "", response.statusCode); - this.running = false; - } else { - this.running = true; - } - this.receiving = this.poll(this.url, pollOptions); - return [2 /*return*/]; - } - }); - }); - }; - LongPollingTransport.prototype.getAccessToken = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!this.accessTokenFactory) return [3 /*break*/, 2]; - return [4 /*yield*/, this.accessTokenFactory()]; - case 1: - return [2 /*return*/, _a.sent()]; - case 2: - return [2 /*return*/, null]; - } - }); - }); - }; - LongPollingTransport.prototype.updateHeaderToken = function (request, token) { - if (!request.headers) { - request.headers = {}; - } - if (token) { - // tslint:disable-next-line:no-string-literal - request.headers["Authorization"] = "Bearer " + token; - return; - } - // tslint:disable-next-line:no-string-literal - if (request.headers["Authorization"]) { - // tslint:disable-next-line:no-string-literal - delete request.headers["Authorization"]; - } - }; - LongPollingTransport.prototype.poll = function (url, pollOptions) { - return __awaiter(this, void 0, void 0, function () { - var token, pollUrl, response, e_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0,, 8, 9]); - _a.label = 1; - case 1: - if (!this.running) return [3 /*break*/, 7]; - return [4 /*yield*/, this.getAccessToken()]; - case 2: - token = _a.sent(); - this.updateHeaderToken(pollOptions, token); - _a.label = 3; - case 3: - _a.trys.push([3, 5,, 6]); - pollUrl = url + "&_=" + Date.now(); - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Trace, "(LongPolling transport) polling: " + pollUrl + "."); - return [4 /*yield*/, this.httpClient.get(pollUrl, pollOptions)]; - case 4: - response = _a.sent(); - if (response.statusCode === 204) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Information, "(LongPolling transport) Poll terminated by server."); - this.running = false; - } else if (response.statusCode !== 200) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Error, "(LongPolling transport) Unexpected response code: " + response.statusCode + "."); - // Unexpected status code - this.closeError = new _Errors__WEBPACK_IMPORTED_MODULE_1__.HttpError(response.statusText || "", response.statusCode); - this.running = false; - } else { - // Process the response - if (response.content) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Trace, "(LongPolling transport) data received. " + (0,_Utils__WEBPACK_IMPORTED_MODULE_4__.getDataDetail)(response.content, this.logMessageContent) + "."); - if (this.onreceive) { - this.onreceive(response.content); - } - } else { - // This is another way timeout manifest. - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Trace, "(LongPolling transport) Poll timed out, reissuing."); - } - } - return [3 /*break*/, 6]; - case 5: - e_1 = _a.sent(); - if (!this.running) { - // Log but disregard errors that occur after stopping - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Trace, "(LongPolling transport) Poll errored after shutdown: " + e_1.message); - } else { - if (e_1 instanceof _Errors__WEBPACK_IMPORTED_MODULE_1__.TimeoutError) { - // Ignore timeouts and reissue the poll. - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Trace, "(LongPolling transport) Poll timed out, reissuing."); - } else { - // Close the connection with the error as the result. - this.closeError = e_1; - this.running = false; - } - } - return [3 /*break*/, 6]; - case 6: - return [3 /*break*/, 1]; - case 7: - return [3 /*break*/, 9]; - case 8: - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Trace, "(LongPolling transport) Polling complete."); - // We will reach here with pollAborted==false when the server returned a response causing the transport to stop. - // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent. - if (!this.pollAborted) { - this.raiseOnClose(); - } - return [7 /*endfinally*/]; - case 9: - return [2 /*return*/]; - } - }); - }); - }; - LongPollingTransport.prototype.send = function (data) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - if (!this.running) { - return [2 /*return*/, Promise.reject(new Error("Cannot send until the transport is connected"))]; - } - return [2 /*return*/, (0,_Utils__WEBPACK_IMPORTED_MODULE_4__.sendMessage)(this.logger, "LongPolling", this.httpClient, this.url, this.accessTokenFactory, data, this.logMessageContent, this.withCredentials, this.headers)]; - }); - }); - }; - LongPollingTransport.prototype.stop = function () { - return __awaiter(this, void 0, void 0, function () { - var headers, _a, name_1, value, deleteOptions, token; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Trace, "(LongPolling transport) Stopping polling."); - // Tell receiving loop to stop, abort any current request, and then wait for it to finish - this.running = false; - this.pollAbort.abort(); - _b.label = 1; - case 1: - _b.trys.push([1,, 5, 6]); - return [4 /*yield*/, this.receiving]; - case 2: - _b.sent(); - // Send DELETE to clean up long polling on the server - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Trace, "(LongPolling transport) sending DELETE request to " + this.url + "."); - headers = {}; - _a = (0,_Utils__WEBPACK_IMPORTED_MODULE_4__.getUserAgentHeader)(), name_1 = _a[0], value = _a[1]; - headers[name_1] = value; - deleteOptions = { - headers: __assign({}, headers, this.headers), - withCredentials: this.withCredentials - }; - return [4 /*yield*/, this.getAccessToken()]; - case 3: - token = _b.sent(); - this.updateHeaderToken(deleteOptions, token); - return [4 /*yield*/, this.httpClient.delete(this.url, deleteOptions)]; - case 4: - _b.sent(); - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Trace, "(LongPolling transport) DELETE request sent."); - return [3 /*break*/, 6]; - case 5: - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Trace, "(LongPolling transport) Stop finished."); - // Raise close event here instead of in polling - // It needs to happen after the DELETE request is sent - this.raiseOnClose(); - return [7 /*endfinally*/]; - case 6: - return [2 /*return*/]; - } - }); - }); - }; - LongPollingTransport.prototype.raiseOnClose = function () { - if (this.onclose) { - var logMessage = "(LongPolling transport) Firing onclose event."; - if (this.closeError) { - logMessage += " Error: " + this.closeError; - } - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Trace, logMessage); - this.onclose(this.closeError); - } - }; - return LongPollingTransport; -}(); - - -/***/ }), - -/***/ 4312: -/*!*******************************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js ***! - \*******************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ ServerSentEventsTransport: () => (/* binding */ ServerSentEventsTransport) -/* harmony export */ }); -/* harmony import */ var _ILogger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ILogger */ 7422); -/* harmony import */ var _ITransport__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ITransport */ 893); -/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Utils */ 1720); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -var __assign = undefined && undefined.__assign || Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; -}; -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : new P(function (resolve) { - resolve(result.value); - }).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: - case 1: - t = op; - break; - case 4: - _.label++; - return { - value: op[1], - done: false - }; - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - case 7: - op = _.ops.pop(); - _.trys.pop(); - continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - if (t && _.label < t[2]) { - _.label = t[2]; - _.ops.push(op); - break; - } - if (t[2]) _.ops.pop(); - _.trys.pop(); - continue; - } - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - -/** @private */ -var ServerSentEventsTransport = /** @class */function () { - function ServerSentEventsTransport(httpClient, accessTokenFactory, logger, logMessageContent, eventSourceConstructor, withCredentials, headers) { - this.httpClient = httpClient; - this.accessTokenFactory = accessTokenFactory; - this.logger = logger; - this.logMessageContent = logMessageContent; - this.withCredentials = withCredentials; - this.eventSourceConstructor = eventSourceConstructor; - this.headers = headers; - this.onreceive = null; - this.onclose = null; - } - ServerSentEventsTransport.prototype.connect = function (url, transferFormat) { - return __awaiter(this, void 0, void 0, function () { - var token; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _Utils__WEBPACK_IMPORTED_MODULE_2__.Arg.isRequired(url, "url"); - _Utils__WEBPACK_IMPORTED_MODULE_2__.Arg.isRequired(transferFormat, "transferFormat"); - _Utils__WEBPACK_IMPORTED_MODULE_2__.Arg.isIn(transferFormat, _ITransport__WEBPACK_IMPORTED_MODULE_1__.TransferFormat, "transferFormat"); - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_0__.LogLevel.Trace, "(SSE transport) Connecting."); - // set url before accessTokenFactory because this.url is only for send and we set the auth header instead of the query string for send - this.url = url; - if (!this.accessTokenFactory) return [3 /*break*/, 2]; - return [4 /*yield*/, this.accessTokenFactory()]; - case 1: - token = _a.sent(); - if (token) { - url += (url.indexOf("?") < 0 ? "?" : "&") + ("access_token=" + encodeURIComponent(token)); - } - _a.label = 2; - case 2: - return [2 /*return*/, new Promise(function (resolve, reject) { - var opened = false; - if (transferFormat !== _ITransport__WEBPACK_IMPORTED_MODULE_1__.TransferFormat.Text) { - reject(new Error("The Server-Sent Events transport only supports the 'Text' transfer format")); - return; - } - var eventSource; - if (_Utils__WEBPACK_IMPORTED_MODULE_2__.Platform.isBrowser || _Utils__WEBPACK_IMPORTED_MODULE_2__.Platform.isWebWorker) { - eventSource = new _this.eventSourceConstructor(url, { - withCredentials: _this.withCredentials - }); - } else { - // Non-browser passes cookies via the dictionary - var cookies = _this.httpClient.getCookieString(url); - var headers = {}; - headers.Cookie = cookies; - var _a = (0,_Utils__WEBPACK_IMPORTED_MODULE_2__.getUserAgentHeader)(), - name_1 = _a[0], - value = _a[1]; - headers[name_1] = value; - eventSource = new _this.eventSourceConstructor(url, { - withCredentials: _this.withCredentials, - headers: __assign({}, headers, _this.headers) - }); - } - try { - eventSource.onmessage = function (e) { - if (_this.onreceive) { - try { - _this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_0__.LogLevel.Trace, "(SSE transport) data received. " + (0,_Utils__WEBPACK_IMPORTED_MODULE_2__.getDataDetail)(e.data, _this.logMessageContent) + "."); - _this.onreceive(e.data); - } catch (error) { - _this.close(error); - return; - } - } - }; - eventSource.onerror = function (e) { - var error = new Error(e.data || "Error occurred"); - if (opened) { - _this.close(error); - } else { - reject(error); - } - }; - eventSource.onopen = function () { - _this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_0__.LogLevel.Information, "SSE connected to " + _this.url); - _this.eventSource = eventSource; - opened = true; - resolve(); - }; - } catch (e) { - reject(e); - return; - } - })]; - } - }); - }); - }; - ServerSentEventsTransport.prototype.send = function (data) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - if (!this.eventSource) { - return [2 /*return*/, Promise.reject(new Error("Cannot send until the transport is connected"))]; - } - return [2 /*return*/, (0,_Utils__WEBPACK_IMPORTED_MODULE_2__.sendMessage)(this.logger, "SSE", this.httpClient, this.url, this.accessTokenFactory, data, this.logMessageContent, this.withCredentials, this.headers)]; - }); - }); - }; - ServerSentEventsTransport.prototype.stop = function () { - this.close(); - return Promise.resolve(); - }; - ServerSentEventsTransport.prototype.close = function (e) { - if (this.eventSource) { - this.eventSource.close(); - this.eventSource = undefined; - if (this.onclose) { - this.onclose(e); - } - } - }; - return ServerSentEventsTransport; -}(); - - -/***/ }), - -/***/ 1101: -/*!*************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/Subject.js ***! - \*************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ Subject: () => (/* binding */ Subject) -/* harmony export */ }); -/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utils */ 1720); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -/** Stream implementation to stream items to the server. */ -var Subject = /** @class */function () { - function Subject() { - this.observers = []; - } - Subject.prototype.next = function (item) { - for (var _i = 0, _a = this.observers; _i < _a.length; _i++) { - var observer = _a[_i]; - observer.next(item); - } - }; - Subject.prototype.error = function (err) { - for (var _i = 0, _a = this.observers; _i < _a.length; _i++) { - var observer = _a[_i]; - if (observer.error) { - observer.error(err); - } - } - }; - Subject.prototype.complete = function () { - for (var _i = 0, _a = this.observers; _i < _a.length; _i++) { - var observer = _a[_i]; - if (observer.complete) { - observer.complete(); - } - } - }; - Subject.prototype.subscribe = function (observer) { - this.observers.push(observer); - return new _Utils__WEBPACK_IMPORTED_MODULE_0__.SubjectSubscription(this, observer); - }; - return Subject; -}(); - - -/***/ }), - -/***/ 7876: -/*!***********************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js ***! - \***********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ TextMessageFormat: () => (/* binding */ TextMessageFormat) -/* harmony export */ }); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -// Not exported from index -/** @private */ -var TextMessageFormat = /** @class */function () { - function TextMessageFormat() {} - TextMessageFormat.write = function (output) { - return "" + output + TextMessageFormat.RecordSeparator; - }; - TextMessageFormat.parse = function (input) { - if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) { - throw new Error("Message is incomplete."); - } - var messages = input.split(TextMessageFormat.RecordSeparator); - messages.pop(); - return messages; - }; - TextMessageFormat.RecordSeparatorCode = 0x1e; - TextMessageFormat.RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode); - return TextMessageFormat; -}(); - - -/***/ }), - -/***/ 1720: -/*!***********************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/Utils.js ***! - \***********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ Arg: () => (/* binding */ Arg), -/* harmony export */ ConsoleLogger: () => (/* binding */ ConsoleLogger), -/* harmony export */ Platform: () => (/* binding */ Platform), -/* harmony export */ SubjectSubscription: () => (/* binding */ SubjectSubscription), -/* harmony export */ VERSION: () => (/* binding */ VERSION), -/* harmony export */ constructUserAgent: () => (/* binding */ constructUserAgent), -/* harmony export */ createLogger: () => (/* binding */ createLogger), -/* harmony export */ formatArrayBuffer: () => (/* binding */ formatArrayBuffer), -/* harmony export */ getDataDetail: () => (/* binding */ getDataDetail), -/* harmony export */ getUserAgentHeader: () => (/* binding */ getUserAgentHeader), -/* harmony export */ isArrayBuffer: () => (/* binding */ isArrayBuffer), -/* harmony export */ sendMessage: () => (/* binding */ sendMessage) -/* harmony export */ }); -/* harmony import */ var _ILogger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ILogger */ 7422); -/* harmony import */ var _Loggers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Loggers */ 4563); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -var __assign = undefined && undefined.__assign || Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; -}; -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : new P(function (resolve) { - resolve(result.value); - }).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: - case 1: - t = op; - break; - case 4: - _.label++; - return { - value: op[1], - done: false - }; - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - case 7: - op = _.ops.pop(); - _.trys.pop(); - continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - if (t && _.label < t[2]) { - _.label = t[2]; - _.ops.push(op); - break; - } - if (t[2]) _.ops.pop(); - _.trys.pop(); - continue; - } - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - -// Version token that will be replaced by the prepack command -/** The version of the SignalR client. */ -var VERSION = "5.0.10"; -/** @private */ -var Arg = /** @class */function () { - function Arg() {} - Arg.isRequired = function (val, name) { - if (val === null || val === undefined) { - throw new Error("The '" + name + "' argument is required."); - } - }; - Arg.isNotEmpty = function (val, name) { - if (!val || val.match(/^\s*$/)) { - throw new Error("The '" + name + "' argument should not be empty."); - } - }; - Arg.isIn = function (val, values, name) { - // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself. - if (!(val in values)) { - throw new Error("Unknown " + name + " value: " + val + "."); - } - }; - return Arg; -}(); - -/** @private */ -var Platform = /** @class */function () { - function Platform() {} - Object.defineProperty(Platform, "isBrowser", { - get: function () { - return typeof window === "object"; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Platform, "isWebWorker", { - get: function () { - return typeof self === "object" && "importScripts" in self; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Platform, "isNode", { - get: function () { - return !this.isBrowser && !this.isWebWorker; - }, - enumerable: true, - configurable: true - }); - return Platform; -}(); - -/** @private */ -function getDataDetail(data, includeContent) { - var detail = ""; - if (isArrayBuffer(data)) { - detail = "Binary data of length " + data.byteLength; - if (includeContent) { - detail += ". Content: '" + formatArrayBuffer(data) + "'"; - } - } else if (typeof data === "string") { - detail = "String data of length " + data.length; - if (includeContent) { - detail += ". Content: '" + data + "'"; - } - } - return detail; -} -/** @private */ -function formatArrayBuffer(data) { - var view = new Uint8Array(data); - // Uint8Array.map only supports returning another Uint8Array? - var str = ""; - view.forEach(function (num) { - var pad = num < 16 ? "0" : ""; - str += "0x" + pad + num.toString(16) + " "; - }); - // Trim of trailing space. - return str.substr(0, str.length - 1); -} -// Also in signalr-protocol-msgpack/Utils.ts -/** @private */ -function isArrayBuffer(val) { - return val && typeof ArrayBuffer !== "undefined" && (val instanceof ArrayBuffer || - // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof - val.constructor && val.constructor.name === "ArrayBuffer"); -} -/** @private */ -function sendMessage(logger, transportName, httpClient, url, accessTokenFactory, content, logMessageContent, withCredentials, defaultHeaders) { - return __awaiter(this, void 0, void 0, function () { - var _a, headers, token, _b, name, value, responseType, response; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - headers = {}; - if (!accessTokenFactory) return [3 /*break*/, 2]; - return [4 /*yield*/, accessTokenFactory()]; - case 1: - token = _c.sent(); - if (token) { - headers = (_a = {}, _a["Authorization"] = "Bearer " + token, _a); - } - _c.label = 2; - case 2: - _b = getUserAgentHeader(), name = _b[0], value = _b[1]; - headers[name] = value; - logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_0__.LogLevel.Trace, "(" + transportName + " transport) sending data. " + getDataDetail(content, logMessageContent) + "."); - responseType = isArrayBuffer(content) ? "arraybuffer" : "text"; - return [4 /*yield*/, httpClient.post(url, { - content: content, - headers: __assign({}, headers, defaultHeaders), - responseType: responseType, - withCredentials: withCredentials - })]; - case 3: - response = _c.sent(); - logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_0__.LogLevel.Trace, "(" + transportName + " transport) request complete. Response status: " + response.statusCode + "."); - return [2 /*return*/]; - } - }); - }); -} -/** @private */ -function createLogger(logger) { - if (logger === undefined) { - return new ConsoleLogger(_ILogger__WEBPACK_IMPORTED_MODULE_0__.LogLevel.Information); - } - if (logger === null) { - return _Loggers__WEBPACK_IMPORTED_MODULE_1__.NullLogger.instance; - } - if (logger.log) { - return logger; - } - return new ConsoleLogger(logger); -} -/** @private */ -var SubjectSubscription = /** @class */function () { - function SubjectSubscription(subject, observer) { - this.subject = subject; - this.observer = observer; - } - SubjectSubscription.prototype.dispose = function () { - var index = this.subject.observers.indexOf(this.observer); - if (index > -1) { - this.subject.observers.splice(index, 1); - } - if (this.subject.observers.length === 0 && this.subject.cancelCallback) { - this.subject.cancelCallback().catch(function (_) {}); - } - }; - return SubjectSubscription; -}(); - -/** @private */ -var ConsoleLogger = /** @class */function () { - function ConsoleLogger(minimumLogLevel) { - this.minimumLogLevel = minimumLogLevel; - this.outputConsole = console; - } - ConsoleLogger.prototype.log = function (logLevel, message) { - if (logLevel >= this.minimumLogLevel) { - switch (logLevel) { - case _ILogger__WEBPACK_IMPORTED_MODULE_0__.LogLevel.Critical: - case _ILogger__WEBPACK_IMPORTED_MODULE_0__.LogLevel.Error: - this.outputConsole.error("[" + new Date().toISOString() + "] " + _ILogger__WEBPACK_IMPORTED_MODULE_0__.LogLevel[logLevel] + ": " + message); - break; - case _ILogger__WEBPACK_IMPORTED_MODULE_0__.LogLevel.Warning: - this.outputConsole.warn("[" + new Date().toISOString() + "] " + _ILogger__WEBPACK_IMPORTED_MODULE_0__.LogLevel[logLevel] + ": " + message); - break; - case _ILogger__WEBPACK_IMPORTED_MODULE_0__.LogLevel.Information: - this.outputConsole.info("[" + new Date().toISOString() + "] " + _ILogger__WEBPACK_IMPORTED_MODULE_0__.LogLevel[logLevel] + ": " + message); - break; - default: - // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug - this.outputConsole.log("[" + new Date().toISOString() + "] " + _ILogger__WEBPACK_IMPORTED_MODULE_0__.LogLevel[logLevel] + ": " + message); - break; - } - } - }; - return ConsoleLogger; -}(); - -/** @private */ -function getUserAgentHeader() { - var userAgentHeaderName = "X-SignalR-User-Agent"; - if (Platform.isNode) { - userAgentHeaderName = "User-Agent"; - } - return [userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion())]; -} -/** @private */ -function constructUserAgent(version, os, runtime, runtimeVersion) { - // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version]) - var userAgent = "Microsoft SignalR/"; - var majorAndMinor = version.split("."); - userAgent += majorAndMinor[0] + "." + majorAndMinor[1]; - userAgent += " (" + version + "; "; - if (os && os !== "") { - userAgent += os + "; "; - } else { - userAgent += "Unknown OS; "; - } - userAgent += "" + runtime; - if (runtimeVersion) { - userAgent += "; " + runtimeVersion; - } else { - userAgent += "; Unknown Runtime Version"; - } - userAgent += ")"; - return userAgent; -} -function getOsName() { - if (Platform.isNode) { - switch (process.platform) { - case "win32": - return "Windows NT"; - case "darwin": - return "macOS"; - case "linux": - return "Linux"; - default: - return process.platform; - } - } else { - return ""; - } -} -function getRuntimeVersion() { - if (Platform.isNode) { - return process.versions.node; - } - return undefined; -} -function getRuntime() { - if (Platform.isNode) { - return "NodeJS"; - } else { - return "Browser"; - } -} - -/***/ }), - -/***/ 6817: -/*!************************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ WebSocketTransport: () => (/* binding */ WebSocketTransport) -/* harmony export */ }); -/* harmony import */ var _ILogger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ILogger */ 7422); -/* harmony import */ var _ITransport__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ITransport */ 893); -/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Utils */ 1720); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -var __assign = undefined && undefined.__assign || Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; -}; -var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : new P(function (resolve) { - resolve(result.value); - }).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = undefined && undefined.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - function verb(n) { - return function (v) { - return step([n, v]); - }; - } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: - case 1: - t = op; - break; - case 4: - _.label++; - return { - value: op[1], - done: false - }; - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - case 7: - op = _.ops.pop(); - _.trys.pop(); - continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - if (t && _.label < t[2]) { - _.label = t[2]; - _.ops.push(op); - break; - } - if (t[2]) _.ops.pop(); - _.trys.pop(); - continue; - } - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -}; - - - -/** @private */ -var WebSocketTransport = /** @class */function () { - function WebSocketTransport(httpClient, accessTokenFactory, logger, logMessageContent, webSocketConstructor, headers) { - this.logger = logger; - this.accessTokenFactory = accessTokenFactory; - this.logMessageContent = logMessageContent; - this.webSocketConstructor = webSocketConstructor; - this.httpClient = httpClient; - this.onreceive = null; - this.onclose = null; - this.headers = headers; - } - WebSocketTransport.prototype.connect = function (url, transferFormat) { - return __awaiter(this, void 0, void 0, function () { - var token; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _Utils__WEBPACK_IMPORTED_MODULE_2__.Arg.isRequired(url, "url"); - _Utils__WEBPACK_IMPORTED_MODULE_2__.Arg.isRequired(transferFormat, "transferFormat"); - _Utils__WEBPACK_IMPORTED_MODULE_2__.Arg.isIn(transferFormat, _ITransport__WEBPACK_IMPORTED_MODULE_1__.TransferFormat, "transferFormat"); - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_0__.LogLevel.Trace, "(WebSockets transport) Connecting."); - if (!this.accessTokenFactory) return [3 /*break*/, 2]; - return [4 /*yield*/, this.accessTokenFactory()]; - case 1: - token = _a.sent(); - if (token) { - url += (url.indexOf("?") < 0 ? "?" : "&") + ("access_token=" + encodeURIComponent(token)); - } - _a.label = 2; - case 2: - return [2 /*return*/, new Promise(function (resolve, reject) { - url = url.replace(/^http/, "ws"); - var webSocket; - var cookies = _this.httpClient.getCookieString(url); - var opened = false; - if (_Utils__WEBPACK_IMPORTED_MODULE_2__.Platform.isNode) { - var headers = {}; - var _a = (0,_Utils__WEBPACK_IMPORTED_MODULE_2__.getUserAgentHeader)(), - name_1 = _a[0], - value = _a[1]; - headers[name_1] = value; - if (cookies) { - headers["Cookie"] = "" + cookies; - } - // Only pass headers when in non-browser environments - webSocket = new _this.webSocketConstructor(url, undefined, { - headers: __assign({}, headers, _this.headers) - }); - } - if (!webSocket) { - // Chrome is not happy with passing 'undefined' as protocol - webSocket = new _this.webSocketConstructor(url); - } - if (transferFormat === _ITransport__WEBPACK_IMPORTED_MODULE_1__.TransferFormat.Binary) { - webSocket.binaryType = "arraybuffer"; - } - // tslint:disable-next-line:variable-name - webSocket.onopen = function (_event) { - _this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_0__.LogLevel.Information, "WebSocket connected to " + url + "."); - _this.webSocket = webSocket; - opened = true; - resolve(); - }; - webSocket.onerror = function (event) { - var error = null; - // ErrorEvent is a browser only type we need to check if the type exists before using it - if (typeof ErrorEvent !== "undefined" && event instanceof ErrorEvent) { - error = event.error; - } else { - error = new Error("There was an error with the transport."); - } - reject(error); - }; - webSocket.onmessage = function (message) { - _this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_0__.LogLevel.Trace, "(WebSockets transport) data received. " + (0,_Utils__WEBPACK_IMPORTED_MODULE_2__.getDataDetail)(message.data, _this.logMessageContent) + "."); - if (_this.onreceive) { - try { - _this.onreceive(message.data); - } catch (error) { - _this.close(error); - return; - } - } - }; - webSocket.onclose = function (event) { - // Don't call close handler if connection was never established - // We'll reject the connect call instead - if (opened) { - _this.close(event); - } else { - var error = null; - // ErrorEvent is a browser only type we need to check if the type exists before using it - if (typeof ErrorEvent !== "undefined" && event instanceof ErrorEvent) { - error = event.error; - } else { - error = new Error("There was an error with the transport."); - } - reject(error); - } - }; - })]; - } - }); - }); - }; - WebSocketTransport.prototype.send = function (data) { - if (this.webSocket && this.webSocket.readyState === this.webSocketConstructor.OPEN) { - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_0__.LogLevel.Trace, "(WebSockets transport) sending data. " + (0,_Utils__WEBPACK_IMPORTED_MODULE_2__.getDataDetail)(data, this.logMessageContent) + "."); - this.webSocket.send(data); - return Promise.resolve(); - } - return Promise.reject("WebSocket is not in the OPEN state"); - }; - WebSocketTransport.prototype.stop = function () { - if (this.webSocket) { - // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning - // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects - this.close(undefined); - } - return Promise.resolve(); - }; - WebSocketTransport.prototype.close = function (event) { - // webSocket will be null if the transport did not start successfully - if (this.webSocket) { - // Clear websocket handlers because we are considering the socket closed now - this.webSocket.onclose = function () {}; - this.webSocket.onmessage = function () {}; - this.webSocket.onerror = function () {}; - this.webSocket.close(); - this.webSocket = undefined; - } - this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_0__.LogLevel.Trace, "(WebSockets transport) socket closed."); - if (this.onclose) { - if (this.isCloseEvent(event) && (event.wasClean === false || event.code !== 1000)) { - this.onclose(new Error("WebSocket closed with status code: " + event.code + " (" + event.reason + ").")); - } else if (event instanceof Error) { - this.onclose(event); - } else { - this.onclose(); - } - } - }; - WebSocketTransport.prototype.isCloseEvent = function (event) { - return event && typeof event.wasClean === "boolean" && typeof event.code === "number"; - }; - return WebSocketTransport; -}(); - - -/***/ }), - -/***/ 3000: -/*!*******************************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ XhrHttpClient: () => (/* binding */ XhrHttpClient) -/* harmony export */ }); -/* harmony import */ var _Errors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Errors */ 9490); -/* harmony import */ var _HttpClient__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HttpClient */ 1598); -/* harmony import */ var _ILogger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ILogger */ 7422); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -var __extends = undefined && undefined.__extends || function () { - var extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - }; - return function (d, b) { - extendStatics(d, b); - function __() { - this.constructor = d; - } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); - - - -var XhrHttpClient = /** @class */function (_super) { - __extends(XhrHttpClient, _super); - function XhrHttpClient(logger) { - var _this = _super.call(this) || this; - _this.logger = logger; - return _this; - } - /** @inheritDoc */ - XhrHttpClient.prototype.send = function (request) { - var _this = this; - // Check that abort was not signaled before calling send - if (request.abortSignal && request.abortSignal.aborted) { - return Promise.reject(new _Errors__WEBPACK_IMPORTED_MODULE_0__.AbortError()); - } - if (!request.method) { - return Promise.reject(new Error("No method defined.")); - } - if (!request.url) { - return Promise.reject(new Error("No url defined.")); - } - return new Promise(function (resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open(request.method, request.url, true); - xhr.withCredentials = request.withCredentials === undefined ? true : request.withCredentials; - xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); - // Explicitly setting the Content-Type header for React Native on Android platform. - xhr.setRequestHeader("Content-Type", "text/plain;charset=UTF-8"); - var headers = request.headers; - if (headers) { - Object.keys(headers).forEach(function (header) { - xhr.setRequestHeader(header, headers[header]); - }); - } - if (request.responseType) { - xhr.responseType = request.responseType; - } - if (request.abortSignal) { - request.abortSignal.onabort = function () { - xhr.abort(); - reject(new _Errors__WEBPACK_IMPORTED_MODULE_0__.AbortError()); - }; - } - if (request.timeout) { - xhr.timeout = request.timeout; - } - xhr.onload = function () { - if (request.abortSignal) { - request.abortSignal.onabort = null; - } - if (xhr.status >= 200 && xhr.status < 300) { - resolve(new _HttpClient__WEBPACK_IMPORTED_MODULE_1__.HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText)); - } else { - reject(new _Errors__WEBPACK_IMPORTED_MODULE_0__.HttpError(xhr.statusText, xhr.status)); - } - }; - xhr.onerror = function () { - _this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Warning, "Error from HTTP request. " + xhr.status + ": " + xhr.statusText + "."); - reject(new _Errors__WEBPACK_IMPORTED_MODULE_0__.HttpError(xhr.statusText, xhr.status)); - }; - xhr.ontimeout = function () { - _this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__.LogLevel.Warning, "Timeout from HTTP request."); - reject(new _Errors__WEBPACK_IMPORTED_MODULE_0__.TimeoutError()); - }; - xhr.send(request.content || ""); - }); - }; - return XhrHttpClient; -}(_HttpClient__WEBPACK_IMPORTED_MODULE_1__.HttpClient); - - -/***/ }), - -/***/ 1389: -/*!***********************************************************!*\ - !*** ./node_modules/@microsoft/signalr/dist/esm/index.js ***! - \***********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AbortError: () => (/* reexport safe */ _Errors__WEBPACK_IMPORTED_MODULE_0__.AbortError), -/* harmony export */ DefaultHttpClient: () => (/* reexport safe */ _DefaultHttpClient__WEBPACK_IMPORTED_MODULE_2__.DefaultHttpClient), -/* harmony export */ HttpClient: () => (/* reexport safe */ _HttpClient__WEBPACK_IMPORTED_MODULE_1__.HttpClient), -/* harmony export */ HttpError: () => (/* reexport safe */ _Errors__WEBPACK_IMPORTED_MODULE_0__.HttpError), -/* harmony export */ HttpResponse: () => (/* reexport safe */ _HttpClient__WEBPACK_IMPORTED_MODULE_1__.HttpResponse), -/* harmony export */ HttpTransportType: () => (/* reexport safe */ _ITransport__WEBPACK_IMPORTED_MODULE_7__.HttpTransportType), -/* harmony export */ HubConnection: () => (/* reexport safe */ _HubConnection__WEBPACK_IMPORTED_MODULE_3__.HubConnection), -/* harmony export */ HubConnectionBuilder: () => (/* reexport safe */ _HubConnectionBuilder__WEBPACK_IMPORTED_MODULE_4__.HubConnectionBuilder), -/* harmony export */ HubConnectionState: () => (/* reexport safe */ _HubConnection__WEBPACK_IMPORTED_MODULE_3__.HubConnectionState), -/* harmony export */ JsonHubProtocol: () => (/* reexport safe */ _JsonHubProtocol__WEBPACK_IMPORTED_MODULE_9__.JsonHubProtocol), -/* harmony export */ LogLevel: () => (/* reexport safe */ _ILogger__WEBPACK_IMPORTED_MODULE_6__.LogLevel), -/* harmony export */ MessageType: () => (/* reexport safe */ _IHubProtocol__WEBPACK_IMPORTED_MODULE_5__.MessageType), -/* harmony export */ NullLogger: () => (/* reexport safe */ _Loggers__WEBPACK_IMPORTED_MODULE_8__.NullLogger), -/* harmony export */ Subject: () => (/* reexport safe */ _Subject__WEBPACK_IMPORTED_MODULE_10__.Subject), -/* harmony export */ TimeoutError: () => (/* reexport safe */ _Errors__WEBPACK_IMPORTED_MODULE_0__.TimeoutError), -/* harmony export */ TransferFormat: () => (/* reexport safe */ _ITransport__WEBPACK_IMPORTED_MODULE_7__.TransferFormat), -/* harmony export */ VERSION: () => (/* reexport safe */ _Utils__WEBPACK_IMPORTED_MODULE_11__.VERSION) -/* harmony export */ }); -/* harmony import */ var _Errors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Errors */ 9490); -/* harmony import */ var _HttpClient__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HttpClient */ 1598); -/* harmony import */ var _DefaultHttpClient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DefaultHttpClient */ 1515); -/* harmony import */ var _HubConnection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./HubConnection */ 514); -/* harmony import */ var _HubConnectionBuilder__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./HubConnectionBuilder */ 4443); -/* harmony import */ var _IHubProtocol__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./IHubProtocol */ 5695); -/* harmony import */ var _ILogger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ILogger */ 7422); -/* harmony import */ var _ITransport__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ITransport */ 893); -/* harmony import */ var _Loggers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Loggers */ 4563); -/* harmony import */ var _JsonHubProtocol__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./JsonHubProtocol */ 8184); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Subject */ 1101); -/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Utils */ 1720); -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - - - - - - - - - - - - - -/***/ }), - -/***/ 6111: -/*!***************************************************************************!*\ - !*** ./node_modules/angular-calendar/date-adapters/esm/date-fns/index.js ***! - \***************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ adapterFactory: () => (/* binding */ adapterFactory) -/* harmony export */ }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ 4398); -/* harmony import */ var calendar_utils_date_adapters_date_fns__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! calendar-utils/date-adapters/date-fns */ 856); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! date-fns */ 786); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! date-fns */ 8266); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! date-fns */ 6871); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! date-fns */ 5397); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! date-fns */ 8880); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! date-fns */ 8355); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! date-fns */ 7394); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! date-fns */ 2508); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! date-fns */ 9931); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! date-fns */ 4374); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! date-fns */ 927); - - - -function adapterFactory() { - return (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_1__.__assign)({}, (0,calendar_utils_date_adapters_date_fns__WEBPACK_IMPORTED_MODULE_0__.adapterFactory)()), { - addWeeks: date_fns__WEBPACK_IMPORTED_MODULE_2__["default"], - addMonths: date_fns__WEBPACK_IMPORTED_MODULE_3__["default"], - subDays: date_fns__WEBPACK_IMPORTED_MODULE_4__["default"], - subWeeks: date_fns__WEBPACK_IMPORTED_MODULE_5__["default"], - subMonths: date_fns__WEBPACK_IMPORTED_MODULE_6__["default"], - getISOWeek: date_fns__WEBPACK_IMPORTED_MODULE_7__["default"], - setDate: date_fns__WEBPACK_IMPORTED_MODULE_8__["default"], - setMonth: date_fns__WEBPACK_IMPORTED_MODULE_9__["default"], - setYear: date_fns__WEBPACK_IMPORTED_MODULE_10__["default"], - getDate: date_fns__WEBPACK_IMPORTED_MODULE_11__["default"], - getYear: date_fns__WEBPACK_IMPORTED_MODULE_12__["default"] - }); -} - -/***/ }), - -/***/ 2239: -/*!********************************************************************!*\ - !*** ./node_modules/angular-calendar/fesm2015/angular-calendar.js ***! - \********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CalendarA11y: () => (/* binding */ CalendarA11y), -/* harmony export */ CalendarAngularDateFormatter: () => (/* binding */ CalendarAngularDateFormatter), -/* harmony export */ CalendarCommonModule: () => (/* binding */ CalendarCommonModule), -/* harmony export */ CalendarDateFormatter: () => (/* binding */ CalendarDateFormatter), -/* harmony export */ CalendarDayModule: () => (/* binding */ CalendarDayModule), -/* harmony export */ CalendarDayViewComponent: () => (/* binding */ CalendarDayViewComponent), -/* harmony export */ CalendarEventTimesChangedEventType: () => (/* binding */ CalendarEventTimesChangedEventType), -/* harmony export */ CalendarEventTitleFormatter: () => (/* binding */ CalendarEventTitleFormatter), -/* harmony export */ CalendarModule: () => (/* binding */ CalendarModule), -/* harmony export */ CalendarMomentDateFormatter: () => (/* binding */ CalendarMomentDateFormatter), -/* harmony export */ CalendarMonthModule: () => (/* binding */ CalendarMonthModule), -/* harmony export */ CalendarMonthViewComponent: () => (/* binding */ CalendarMonthViewComponent), -/* harmony export */ CalendarNativeDateFormatter: () => (/* binding */ CalendarNativeDateFormatter), -/* harmony export */ CalendarUtils: () => (/* binding */ CalendarUtils), -/* harmony export */ CalendarView: () => (/* binding */ CalendarView), -/* harmony export */ CalendarWeekModule: () => (/* binding */ CalendarWeekModule), -/* harmony export */ CalendarWeekViewComponent: () => (/* binding */ CalendarWeekViewComponent), -/* harmony export */ DAYS_OF_WEEK: () => (/* reexport safe */ calendar_utils__WEBPACK_IMPORTED_MODULE_1__.DAYS_OF_WEEK), -/* harmony export */ DateAdapter: () => (/* binding */ DateAdapter), -/* harmony export */ MOMENT: () => (/* binding */ MOMENT), -/* harmony export */ collapseAnimation: () => (/* binding */ collapseAnimation), -/* harmony export */ getWeekViewPeriod: () => (/* binding */ getWeekViewPeriod), -/* harmony export */ "ɵCalendarA11yPipe": () => (/* binding */ CalendarA11yPipe), -/* harmony export */ "ɵCalendarDatePipe": () => (/* binding */ CalendarDatePipe), -/* harmony export */ "ɵCalendarEventActionsComponent": () => (/* binding */ CalendarEventActionsComponent), -/* harmony export */ "ɵCalendarEventTitleComponent": () => (/* binding */ CalendarEventTitleComponent), -/* harmony export */ "ɵCalendarEventTitlePipe": () => (/* binding */ CalendarEventTitlePipe), -/* harmony export */ "ɵCalendarMonthCellComponent": () => (/* binding */ CalendarMonthCellComponent), -/* harmony export */ "ɵCalendarMonthViewHeaderComponent": () => (/* binding */ CalendarMonthViewHeaderComponent), -/* harmony export */ "ɵCalendarNextViewDirective": () => (/* binding */ CalendarNextViewDirective), -/* harmony export */ "ɵCalendarOpenDayEventsComponent": () => (/* binding */ CalendarOpenDayEventsComponent), -/* harmony export */ "ɵCalendarPreviousViewDirective": () => (/* binding */ CalendarPreviousViewDirective), -/* harmony export */ "ɵCalendarTodayDirective": () => (/* binding */ CalendarTodayDirective), -/* harmony export */ "ɵCalendarTooltipDirective": () => (/* binding */ CalendarTooltipDirective), -/* harmony export */ "ɵCalendarTooltipWindowComponent": () => (/* binding */ CalendarTooltipWindowComponent), -/* harmony export */ "ɵCalendarWeekViewCurrentTimeMarkerComponent": () => (/* binding */ CalendarWeekViewCurrentTimeMarkerComponent), -/* harmony export */ "ɵCalendarWeekViewEventComponent": () => (/* binding */ CalendarWeekViewEventComponent), -/* harmony export */ "ɵCalendarWeekViewHeaderComponent": () => (/* binding */ CalendarWeekViewHeaderComponent), -/* harmony export */ "ɵCalendarWeekViewHourSegmentComponent": () => (/* binding */ CalendarWeekViewHourSegmentComponent), -/* harmony export */ "ɵClickDirective": () => (/* binding */ ClickDirective), -/* harmony export */ "ɵKeydownEnterDirective": () => (/* binding */ KeydownEnterDirective) -/* harmony export */ }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 7580); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/common */ 316); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs */ 3119); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ 7498); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rxjs */ 1536); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! rxjs */ 6320); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! rxjs */ 521); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! rxjs */ 6020); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs/operators */ 7464); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! rxjs/operators */ 1963); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! rxjs/operators */ 9273); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! rxjs/operators */ 2590); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! rxjs/operators */ 5443); -/* harmony import */ var positioning__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! positioning */ 1227); -/* harmony import */ var calendar_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! calendar-utils */ 9333); -/* harmony import */ var angular_draggable_droppable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! angular-draggable-droppable */ 2993); -/* harmony import */ var _angular_animations__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/animations */ 7172); -/* harmony import */ var angular_resizable_element__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! angular-resizable-element */ 6839); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! tslib */ 4398); - - - - - - - - - - - - - - - -const _c0 = a0 => ({ - action: a0 -}); -function CalendarEventActionsComponent_ng_template_0_span_0_a_1_Template(rf, ctx) { - if (rf & 1) { - const _r10 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "a", 5); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("mwlClick", function CalendarEventActionsComponent_ng_template_0_span_0_a_1_Template_a_mwlClick_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r10); - const action_r7 = restoredCtx.$implicit; - const event_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2).event; - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](action_r7.onClick({ - event: event_r3, - sourceEvent: $event - })); - })("mwlKeydownEnter", function CalendarEventActionsComponent_ng_template_0_span_0_a_1_Template_a_mwlKeydownEnter_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r10); - const action_r7 = restoredCtx.$implicit; - const event_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2).event; - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](action_r7.onClick({ - event: event_r3, - sourceEvent: $event - })); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](1, "calendarA11y"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const action_r7 = ctx.$implicit; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngClass", action_r7.cssClass)("innerHtml", action_r7.label, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵsanitizeHtml"]); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵattribute"]("aria-label", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind2"](1, 3, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction1"](6, _c0, action_r7), "actionButtonLabel")); - } -} -function CalendarEventActionsComponent_ng_template_0_span_0_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "span", 3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](1, CalendarEventActionsComponent_ng_template_0_span_0_a_1_Template, 2, 8, "a", 4); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const ctx_r13 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - const event_r3 = ctx_r13.event; - const trackByActionId_r4 = ctx_r13.trackByActionId; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngForOf", event_r3.actions)("ngForTrackBy", trackByActionId_r4); - } -} -function CalendarEventActionsComponent_ng_template_0_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](0, CalendarEventActionsComponent_ng_template_0_span_0_Template, 2, 2, "span", 2); - } - if (rf & 2) { - const event_r3 = ctx.event; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", event_r3.actions); - } -} -function CalendarEventActionsComponent_ng_template_2_Template(rf, ctx) {} -const _c1 = (a0, a1) => ({ - event: a0, - trackByActionId: a1 -}); -const _c2 = () => ({}); -function CalendarEventTitleComponent_ng_template_0_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](0, "span", 2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](1, "calendarEventTitle"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](2, "calendarA11y"); - } - if (rf & 2) { - const event_r3 = ctx.event; - const view_r4 = ctx.view; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("innerHTML", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind3"](1, 2, event_r3.title, view_r4, event_r3), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵsanitizeHtml"]); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵattribute"]("aria-hidden", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind2"](2, 6, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction0"](9, _c2), "hideEventTitle")); - } -} -function CalendarEventTitleComponent_ng_template_2_Template(rf, ctx) {} -const _c3 = (a0, a1) => ({ - event: a0, - view: a1 -}); -function CalendarTooltipWindowComponent_ng_template_0_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](1, "div", 3)(2, "div", 4); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const contents_r3 = ctx.contents; - const placement_r4 = ctx.placement; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngClass", "cal-tooltip-" + placement_r4); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("innerHtml", contents_r3, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵsanitizeHtml"]); - } -} -function CalendarTooltipWindowComponent_ng_template_2_Template(rf, ctx) {} -const _c4 = (a0, a1, a2) => ({ - contents: a0, - placement: a1, - event: a2 -}); -function CalendarMonthViewHeaderComponent_ng_template_0_div_1_Template(rf, ctx) { - if (rf & 1) { - const _r9 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 4); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("click", function CalendarMonthViewHeaderComponent_ng_template_0_div_1_Template_div_click_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r9); - const day_r7 = restoredCtx.$implicit; - const ctx_r8 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r8.columnHeaderClicked.emit({ - isoDayNumber: day_r7.day, - sourceEvent: $event - })); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](2, "calendarDate"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const day_r7 = ctx.$implicit; - const locale_r4 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"]().locale; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵclassProp"]("cal-past", day_r7.isPast)("cal-today", day_r7.isToday)("cal-future", day_r7.isFuture)("cal-weekend", day_r7.isWeekend); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngClass", day_r7.cssClass); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind3"](2, 10, day_r7.date, "monthViewColumnHeader", locale_r4), " "); - } -} -function CalendarMonthViewHeaderComponent_ng_template_0_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](1, CalendarMonthViewHeaderComponent_ng_template_0_div_1_Template, 3, 14, "div", 3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const days_r3 = ctx.days; - const trackByWeekDayHeaderDate_r5 = ctx.trackByWeekDayHeaderDate; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngForOf", days_r3)("ngForTrackBy", trackByWeekDayHeaderDate_r5); - } -} -function CalendarMonthViewHeaderComponent_ng_template_2_Template(rf, ctx) {} -const _c5 = (a0, a1, a2) => ({ - days: a0, - locale: a1, - trackByWeekDayHeaderDate: a2 -}); -function CalendarMonthCellComponent_ng_template_0_span_3_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "span", 7); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const day_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"]().day; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate"](day_r3.badgeTotal); - } -} -const _c6 = a0 => ({ - backgroundColor: a0 -}); -const _c7 = (a0, a1) => ({ - event: a0, - draggedFrom: a1 -}); -const _c8 = (a0, a1) => ({ - x: a0, - y: a1 -}); -const _c9 = () => ({ - delay: 300, - delta: 30 -}); -function CalendarMonthCellComponent_ng_template_0_div_7_div_1_Template(rf, ctx) { - if (rf & 1) { - const _r21 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 10); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("mouseenter", function CalendarMonthCellComponent_ng_template_0_div_7_div_1_Template_div_mouseenter_0_listener() { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r21); - const event_r19 = restoredCtx.$implicit; - const highlightDay_r7 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2).highlightDay; - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](highlightDay_r7.emit({ - event: event_r19 - })); - })("mouseleave", function CalendarMonthCellComponent_ng_template_0_div_7_div_1_Template_div_mouseleave_0_listener() { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r21); - const event_r19 = restoredCtx.$implicit; - const unhighlightDay_r8 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2).unhighlightDay; - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](unhighlightDay_r8.emit({ - event: event_r19 - })); - })("mwlClick", function CalendarMonthCellComponent_ng_template_0_div_7_div_1_Template_div_mwlClick_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r21); - const event_r19 = restoredCtx.$implicit; - const eventClicked_r9 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2).eventClicked; - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](eventClicked_r9.emit({ - event: event_r19, - sourceEvent: $event - })); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](1, "calendarEventTitle"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](2, "calendarA11y"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const event_r19 = ctx.$implicit; - const ctx_r27 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - const tooltipPlacement_r6 = ctx_r27.tooltipPlacement; - const tooltipTemplate_r10 = ctx_r27.tooltipTemplate; - const tooltipAppendToBody_r11 = ctx_r27.tooltipAppendToBody; - const tooltipDelay_r12 = ctx_r27.tooltipDelay; - const day_r3 = ctx_r27.day; - const validateDrag_r14 = ctx_r27.validateDrag; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵclassProp"]("cal-draggable", event_r19.draggable); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction1"](22, _c6, event_r19.color == null ? null : event_r19.color.primary))("ngClass", event_r19 == null ? null : event_r19.cssClass)("mwlCalendarTooltip", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind3"](1, 15, event_r19.title, "monthTooltip", event_r19))("tooltipPlacement", tooltipPlacement_r6)("tooltipEvent", event_r19)("tooltipTemplate", tooltipTemplate_r10)("tooltipAppendToBody", tooltipAppendToBody_r11)("tooltipDelay", tooltipDelay_r12)("dropData", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction2"](24, _c7, event_r19, day_r3))("dragAxis", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction2"](27, _c8, event_r19.draggable, event_r19.draggable))("validateDrag", validateDrag_r14)("touchStartLongPress", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction0"](30, _c9)); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵattribute"]("aria-hidden", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind2"](2, 19, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction0"](31, _c2), "hideMonthCellEvents")); - } -} -function CalendarMonthCellComponent_ng_template_0_div_7_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 8); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](1, CalendarMonthCellComponent_ng_template_0_div_7_div_1_Template, 3, 32, "div", 9); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const ctx_r28 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - const day_r3 = ctx_r28.day; - const trackByEventId_r13 = ctx_r28.trackByEventId; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngForOf", day_r3.events)("ngForTrackBy", trackByEventId_r13); - } -} -const _c10 = (a0, a1) => ({ - day: a0, - locale: a1 -}); -function CalendarMonthCellComponent_ng_template_0_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](1, "calendarA11y"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](2, "span", 3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](3, CalendarMonthCellComponent_ng_template_0_span_3_Template, 2, 1, "span", 4); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](4, "span", 5); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](5); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](6, "calendarDate"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](7, CalendarMonthCellComponent_ng_template_0_div_7_Template, 2, 2, "div", 6); - } - if (rf & 2) { - const day_r3 = ctx.day; - const locale_r5 = ctx.locale; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵattribute"]("aria-label", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind2"](1, 4, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction2"](11, _c10, day_r3, locale_r5), "monthCell")); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", day_r3.badgeTotal > 0); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate"](_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind3"](6, 7, day_r3.date, "monthViewDayNumber", locale_r5)); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", day_r3.events.length > 0); - } -} -function CalendarMonthCellComponent_ng_template_2_Template(rf, ctx) {} -const _c11 = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) => ({ - day: a0, - openDay: a1, - locale: a2, - tooltipPlacement: a3, - highlightDay: a4, - unhighlightDay: a5, - eventClicked: a6, - tooltipTemplate: a7, - tooltipAppendToBody: a8, - tooltipDelay: a9, - trackByEventId: a10, - validateDrag: a11 -}); -const _c12 = a0 => ({ - event: a0 -}); -const _c13 = (a0, a1) => ({ - event: a0, - locale: a1 -}); -function CalendarOpenDayEventsComponent_ng_template_0_div_0_div_5_Template(rf, ctx) { - if (rf & 1) { - const _r12 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 7); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](1, "span", 8); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](2, " "); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](3, "mwl-calendar-event-title", 9); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("mwlClick", function CalendarOpenDayEventsComponent_ng_template_0_div_0_div_5_Template_mwl_calendar_event_title_mwlClick_3_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r12); - const event_r10 = restoredCtx.$implicit; - const eventClicked_r4 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2).eventClicked; - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](eventClicked_r4.emit({ - event: event_r10, - sourceEvent: $event - })); - })("mwlKeydownEnter", function CalendarOpenDayEventsComponent_ng_template_0_div_0_div_5_Template_mwl_calendar_event_title_mwlKeydownEnter_3_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r12); - const event_r10 = restoredCtx.$implicit; - const eventClicked_r4 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2).eventClicked; - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](eventClicked_r4.emit({ - event: event_r10, - sourceEvent: $event - })); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](4, "calendarA11y"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](5, " "); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](6, "mwl-calendar-event-actions", 10); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const event_r10 = ctx.$implicit; - const validateDrag_r7 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2).validateDrag; - const ctx_r9 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵclassProp"]("cal-draggable", event_r10.draggable); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngClass", event_r10 == null ? null : event_r10.cssClass)("dropData", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction1"](16, _c12, event_r10))("dragAxis", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction2"](18, _c8, event_r10.draggable, event_r10.draggable))("validateDrag", validateDrag_r7)("touchStartLongPress", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction0"](21, _c9)); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction1"](22, _c6, event_r10.color == null ? null : event_r10.color.primary)); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("event", event_r10)("customTemplate", ctx_r9.eventTitleTemplate); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵattribute"]("aria-label", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind2"](4, 13, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction2"](24, _c13, event_r10, ctx_r9.locale), "eventDescription")); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("event", event_r10)("customTemplate", ctx_r9.eventActionsTemplate); - } -} -const _c14 = (a0, a1) => ({ - date: a0, - locale: a1 -}); -function CalendarOpenDayEventsComponent_ng_template_0_div_0_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](1, "span", 4); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](2, "calendarA11y"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](3, "span", 5); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](4, "calendarA11y"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](5, CalendarOpenDayEventsComponent_ng_template_0_div_0_div_5_Template, 7, 27, "div", 6); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const ctx_r17 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - const events_r3 = ctx_r17.events; - const trackByEventId_r6 = ctx_r17.trackByEventId; - const ctx_r8 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("@collapse", undefined); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵattribute"]("aria-label", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind2"](2, 5, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction2"](11, _c14, ctx_r8.date, ctx_r8.locale), "openDayEventsAlert")); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵattribute"]("aria-label", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind2"](4, 8, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction2"](14, _c14, ctx_r8.date, ctx_r8.locale), "openDayEventsLandmark")); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngForOf", events_r3)("ngForTrackBy", trackByEventId_r6); - } -} -function CalendarOpenDayEventsComponent_ng_template_0_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](0, CalendarOpenDayEventsComponent_ng_template_0_div_0_Template, 6, 17, "div", 2); - } - if (rf & 2) { - const isOpen_r5 = ctx.isOpen; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", isOpen_r5); - } -} -function CalendarOpenDayEventsComponent_ng_template_2_Template(rf, ctx) {} -const _c15 = (a0, a1, a2, a3, a4) => ({ - events: a0, - eventClicked: a1, - isOpen: a2, - trackByEventId: a3, - validateDrag: a4 -}); -function CalendarMonthViewComponent_div_3_mwl_calendar_month_cell_2_Template(rf, ctx) { - if (rf & 1) { - const _r5 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "mwl-calendar-month-cell", 7); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("mwlClick", function CalendarMonthViewComponent_div_3_mwl_calendar_month_cell_2_Template_mwl_calendar_month_cell_mwlClick_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r5); - const day_r3 = restoredCtx.$implicit; - const ctx_r4 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r4.dayClicked.emit({ - day: day_r3, - sourceEvent: $event - })); - })("mwlKeydownEnter", function CalendarMonthViewComponent_div_3_mwl_calendar_month_cell_2_Template_mwl_calendar_month_cell_mwlKeydownEnter_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r5); - const day_r3 = restoredCtx.$implicit; - const ctx_r6 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r6.dayClicked.emit({ - day: day_r3, - sourceEvent: $event - })); - })("highlightDay", function CalendarMonthViewComponent_div_3_mwl_calendar_month_cell_2_Template_mwl_calendar_month_cell_highlightDay_0_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r5); - const ctx_r7 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r7.toggleDayHighlight($event.event, true)); - })("unhighlightDay", function CalendarMonthViewComponent_div_3_mwl_calendar_month_cell_2_Template_mwl_calendar_month_cell_unhighlightDay_0_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r5); - const ctx_r8 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r8.toggleDayHighlight($event.event, false)); - })("drop", function CalendarMonthViewComponent_div_3_mwl_calendar_month_cell_2_Template_mwl_calendar_month_cell_drop_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r5); - const day_r3 = restoredCtx.$implicit; - const ctx_r9 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r9.eventDropped(day_r3, $event.dropData.event, $event.dropData.draggedFrom)); - })("eventClicked", function CalendarMonthViewComponent_div_3_mwl_calendar_month_cell_2_Template_mwl_calendar_month_cell_eventClicked_0_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r5); - const ctx_r10 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r10.eventClicked.emit({ - event: $event.event, - sourceEvent: $event.sourceEvent - })); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](1, "calendarA11y"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const day_r3 = ctx.$implicit; - const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngClass", day_r3 == null ? null : day_r3.cssClass)("day", day_r3)("openDay", ctx_r2.openDay)("locale", ctx_r2.locale)("tooltipPlacement", ctx_r2.tooltipPlacement)("tooltipAppendToBody", ctx_r2.tooltipAppendToBody)("tooltipTemplate", ctx_r2.tooltipTemplate)("tooltipDelay", ctx_r2.tooltipDelay)("customTemplate", ctx_r2.cellTemplate)("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction1"](15, _c6, day_r3.backgroundColor))("clickListenerDisabled", ctx_r2.dayClicked.observers.length === 0); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵattribute"]("tabindex", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind2"](1, 12, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction0"](17, _c2), "monthCellTabIndex")); - } -} -function CalendarMonthViewComponent_div_3_Template(rf, ctx) { - if (rf & 1) { - const _r12 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div")(1, "div", 4); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](2, CalendarMonthViewComponent_div_3_mwl_calendar_month_cell_2_Template, 2, 18, "mwl-calendar-month-cell", 5); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](3, "slice"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](4, "mwl-calendar-open-day-events", 6); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("eventClicked", function CalendarMonthViewComponent_div_3_Template_mwl_calendar_open_day_events_eventClicked_4_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r12); - const ctx_r11 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r11.eventClicked.emit({ - event: $event.event, - sourceEvent: $event.sourceEvent - })); - })("drop", function CalendarMonthViewComponent_div_3_Template_mwl_calendar_open_day_events_drop_4_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r12); - const ctx_r13 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r13.eventDropped(ctx_r13.openDay, $event.dropData.event, $event.dropData.draggedFrom)); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()(); - } - if (rf & 2) { - const rowIndex_r1 = ctx.$implicit; - const ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngForOf", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind3"](3, 9, ctx_r0.view.days, rowIndex_r1, rowIndex_r1 + ctx_r0.view.totalDaysVisibleInWeek))("ngForTrackBy", ctx_r0.trackByDate); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("locale", ctx_r0.locale)("isOpen", ctx_r0.openRowIndex === rowIndex_r1)("events", ctx_r0.openDay == null ? null : ctx_r0.openDay.events)("date", ctx_r0.openDay == null ? null : ctx_r0.openDay.date)("customTemplate", ctx_r0.openDayEventsTemplate)("eventTitleTemplate", ctx_r0.eventTitleTemplate)("eventActionsTemplate", ctx_r0.eventActionsTemplate); - } -} -function CalendarWeekViewHeaderComponent_ng_template_0_div_1_Template(rf, ctx) { - if (rf & 1) { - const _r12 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 4); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("mwlClick", function CalendarWeekViewHeaderComponent_ng_template_0_div_1_Template_div_mwlClick_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r12); - const day_r10 = restoredCtx.$implicit; - const dayHeaderClicked_r5 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"]().dayHeaderClicked; - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](dayHeaderClicked_r5.emit({ - day: day_r10, - sourceEvent: $event - })); - })("drop", function CalendarWeekViewHeaderComponent_ng_template_0_div_1_Template_div_drop_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r12); - const day_r10 = restoredCtx.$implicit; - const eventDropped_r6 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"]().eventDropped; - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](eventDropped_r6.emit({ - event: $event.dropData.event, - newStart: day_r10.date - })); - })("dragEnter", function CalendarWeekViewHeaderComponent_ng_template_0_div_1_Template_div_dragEnter_0_listener() { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r12); - const day_r10 = restoredCtx.$implicit; - const dragEnter_r8 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"]().dragEnter; - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](dragEnter_r8.emit({ - date: day_r10.date - })); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](1, "b"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](3, "calendarDate"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](4, "br"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](5, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](6); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](7, "calendarDate"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()(); - } - if (rf & 2) { - const day_r10 = ctx.$implicit; - const locale_r4 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"]().locale; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵclassProp"]("cal-past", day_r10.isPast)("cal-today", day_r10.isToday)("cal-future", day_r10.isFuture)("cal-weekend", day_r10.isWeekend); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngClass", day_r10.cssClass); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate"](_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind3"](3, 11, day_r10.date, "weekViewColumnHeader", locale_r4)); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate"](_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind3"](7, 15, day_r10.date, "weekViewColumnSubHeader", locale_r4)); - } -} -function CalendarWeekViewHeaderComponent_ng_template_0_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](1, CalendarWeekViewHeaderComponent_ng_template_0_div_1_Template, 8, 19, "div", 3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const days_r3 = ctx.days; - const trackByWeekDayHeaderDate_r7 = ctx.trackByWeekDayHeaderDate; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngForOf", days_r3)("ngForTrackBy", trackByWeekDayHeaderDate_r7); - } -} -function CalendarWeekViewHeaderComponent_ng_template_2_Template(rf, ctx) {} -const _c16 = (a0, a1, a2, a3, a4, a5) => ({ - days: a0, - locale: a1, - dayHeaderClicked: a2, - eventDropped: a3, - dragEnter: a4, - trackByWeekDayHeaderDate: a5 -}); -const _c17 = (a0, a1) => ({ - backgroundColor: a0, - borderColor: a1 -}); -function CalendarWeekViewEventComponent_ng_template_0_Template(rf, ctx) { - if (rf & 1) { - const _r13 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("mwlClick", function CalendarWeekViewEventComponent_ng_template_0_Template_div_mwlClick_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r13); - const eventClicked_r5 = restoredCtx.eventClicked; - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](eventClicked_r5.emit({ - sourceEvent: $event - })); - })("mwlKeydownEnter", function CalendarWeekViewEventComponent_ng_template_0_Template_div_mwlKeydownEnter_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r13); - const eventClicked_r5 = restoredCtx.eventClicked; - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](eventClicked_r5.emit({ - sourceEvent: $event - })); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](1, "calendarEventTitle"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](2, "calendarA11y"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](3, "mwl-calendar-event-actions", 3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](4, " "); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](5, "mwl-calendar-event-title", 4); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const weekEvent_r3 = ctx.weekEvent; - const tooltipPlacement_r4 = ctx.tooltipPlacement; - const tooltipTemplate_r6 = ctx.tooltipTemplate; - const tooltipAppendToBody_r7 = ctx.tooltipAppendToBody; - const tooltipDisabled_r8 = ctx.tooltipDisabled; - const tooltipDelay_r9 = ctx.tooltipDelay; - const daysInWeek_r11 = ctx.daysInWeek; - const ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction2"](20, _c17, weekEvent_r3.event.color == null ? null : weekEvent_r3.event.color.secondary, weekEvent_r3.event.color == null ? null : weekEvent_r3.event.color.primary))("mwlCalendarTooltip", !tooltipDisabled_r8 ? _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind3"](1, 13, weekEvent_r3.event.title, daysInWeek_r11 === 1 ? "dayTooltip" : "weekTooltip", weekEvent_r3.tempEvent || weekEvent_r3.event) : "")("tooltipPlacement", tooltipPlacement_r4)("tooltipEvent", weekEvent_r3.tempEvent || weekEvent_r3.event)("tooltipTemplate", tooltipTemplate_r6)("tooltipAppendToBody", tooltipAppendToBody_r7)("tooltipDelay", tooltipDelay_r9); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵattribute"]("aria-label", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind2"](2, 17, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction2"](23, _c13, weekEvent_r3.tempEvent || weekEvent_r3.event, ctx_r0.locale), "eventDescription")); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("event", weekEvent_r3.tempEvent || weekEvent_r3.event)("customTemplate", ctx_r0.eventActionsTemplate); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("event", weekEvent_r3.tempEvent || weekEvent_r3.event)("customTemplate", ctx_r0.eventTitleTemplate)("view", daysInWeek_r11 === 1 ? "day" : "week"); - } -} -function CalendarWeekViewEventComponent_ng_template_2_Template(rf, ctx) {} -const _c18 = (a0, a1, a2, a3, a4, a5, a6, a7, a8) => ({ - weekEvent: a0, - tooltipPlacement: a1, - eventClicked: a2, - tooltipTemplate: a3, - tooltipAppendToBody: a4, - tooltipDisabled: a5, - tooltipDelay: a6, - column: a7, - daysInWeek: a8 -}); -function CalendarWeekViewHourSegmentComponent_ng_template_0_div_2_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 4); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](2, "calendarDate"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const ctx_r9 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - const segment_r3 = ctx_r9.segment; - const daysInWeek_r7 = ctx_r9.daysInWeek; - const locale_r4 = ctx_r9.locale; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind3"](2, 1, segment_r3.displayDate, daysInWeek_r7 === 1 ? "dayViewHour" : "weekViewHour", locale_r4), " "); - } -} -function CalendarWeekViewHourSegmentComponent_ng_template_0_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](1, "calendarA11y"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](2, CalendarWeekViewHourSegmentComponent_ng_template_0_div_2_Template, 3, 5, "div", 3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const segment_r3 = ctx.segment; - const segmentHeight_r5 = ctx.segmentHeight; - const isTimeLabel_r6 = ctx.isTimeLabel; - const daysInWeek_r7 = ctx.daysInWeek; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵstyleProp"]("height", segmentHeight_r5, "px"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵclassProp"]("cal-hour-start", segment_r3.isStart)("cal-after-hour-start", !segment_r3.isStart); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngClass", segment_r3.cssClass); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵattribute"]("aria-hidden", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind2"](1, 9, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction0"](12, _c2), daysInWeek_r7 === 1 ? "hideDayHourSegment" : "hideWeekHourSegment")); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", isTimeLabel_r6); - } -} -function CalendarWeekViewHourSegmentComponent_ng_template_2_Template(rf, ctx) {} -const _c19 = (a0, a1, a2, a3, a4) => ({ - segment: a0, - locale: a1, - segmentHeight: a2, - isTimeLabel: a3, - daysInWeek: a4 -}); -function CalendarWeekViewCurrentTimeMarkerComponent_ng_template_0_div_0_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](0, "div", 3); - } - if (rf & 2) { - const topPx_r9 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"]().topPx; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵstyleProp"]("top", topPx_r9, "px"); - } -} -function CalendarWeekViewCurrentTimeMarkerComponent_ng_template_0_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](0, CalendarWeekViewCurrentTimeMarkerComponent_ng_template_0_div_0_Template, 1, 2, "div", 2); - } - if (rf & 2) { - const isVisible_r8 = ctx.isVisible; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", isVisible_r8); - } -} -function CalendarWeekViewCurrentTimeMarkerComponent_ng_template_2_Template(rf, ctx) {} -const _c20 = (a0, a1, a2, a3, a4, a5, a6) => ({ - columnDate: a0, - dayStartHour: a1, - dayStartMinute: a2, - dayEndHour: a3, - dayEndMinute: a4, - isVisible: a5, - topPx: a6 -}); -function CalendarWeekViewComponent_div_2_div_4_Template(rf, ctx) { - if (rf & 1) { - const _r9 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 13); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("drop", function CalendarWeekViewComponent_div_2_div_4_Template_div_drop_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r9); - const day_r7 = restoredCtx.$implicit; - const ctx_r8 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r8.eventDropped($event, day_r7.date, true)); - })("dragEnter", function CalendarWeekViewComponent_div_2_div_4_Template_div_dragEnter_0_listener() { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r9); - const day_r7 = restoredCtx.$implicit; - const ctx_r10 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r10.dateDragEnter(day_r7.date)); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } -} -const _c21 = () => ({ - left: true -}); -function CalendarWeekViewComponent_div_2_div_5_div_2_div_2_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](0, "div", 22); - } - if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("resizeEdges", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction0"](1, _c21)); - } -} -const _c22 = () => ({ - right: true -}); -function CalendarWeekViewComponent_div_2_div_5_div_2_div_4_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](0, "div", 23); - } - if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("resizeEdges", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction0"](1, _c22)); - } -} -const _c23 = (a0, a1) => ({ - left: a0, - right: a1 -}); -const _c24 = (a0, a1) => ({ - event: a0, - calendarId: a1 -}); -const _c25 = a0 => ({ - x: a0 -}); -function CalendarWeekViewComponent_div_2_div_5_div_2_Template(rf, ctx) { - if (rf & 1) { - const _r19 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 17, 18); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("resizeStart", function CalendarWeekViewComponent_div_2_div_5_div_2_Template_div_resizeStart_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r19); - const allDayEvent_r14 = restoredCtx.$implicit; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - const _r12 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](1); - const ctx_r18 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r18.allDayEventResizeStarted(_r12, allDayEvent_r14, $event)); - })("resizing", function CalendarWeekViewComponent_div_2_div_5_div_2_Template_div_resizing_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r19); - const allDayEvent_r14 = restoredCtx.$implicit; - const ctx_r20 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](3); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r20.allDayEventResizing(allDayEvent_r14, $event, ctx_r20.dayColumnWidth)); - })("resizeEnd", function CalendarWeekViewComponent_div_2_div_5_div_2_Template_div_resizeEnd_0_listener() { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r19); - const allDayEvent_r14 = restoredCtx.$implicit; - const ctx_r21 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](3); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r21.allDayEventResizeEnded(allDayEvent_r14)); - })("dragStart", function CalendarWeekViewComponent_div_2_div_5_div_2_Template_div_dragStart_0_listener() { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r19); - const allDayEvent_r14 = restoredCtx.$implicit; - const _r15 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - const _r12 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](1); - const ctx_r22 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r22.dragStarted(_r12, _r15, allDayEvent_r14, false)); - })("dragging", function CalendarWeekViewComponent_div_2_div_5_div_2_Template_div_dragging_0_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r19); - const ctx_r23 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](3); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r23.allDayEventDragMove()); - })("dragEnd", function CalendarWeekViewComponent_div_2_div_5_div_2_Template_div_dragEnd_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r19); - const allDayEvent_r14 = restoredCtx.$implicit; - const ctx_r24 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](3); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r24.dragEnded(allDayEvent_r14, $event, ctx_r24.dayColumnWidth)); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](2, CalendarWeekViewComponent_div_2_div_5_div_2_div_2_Template, 1, 2, "div", 19); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](3, "mwl-calendar-week-view-event", 20); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("eventClicked", function CalendarWeekViewComponent_div_2_div_5_div_2_Template_mwl_calendar_week_view_event_eventClicked_3_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r19); - const allDayEvent_r14 = restoredCtx.$implicit; - const ctx_r25 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](3); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r25.eventClicked.emit({ - event: allDayEvent_r14.event, - sourceEvent: $event.sourceEvent - })); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](4, CalendarWeekViewComponent_div_2_div_5_div_2_div_4_Template, 1, 2, "div", 21); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const allDayEvent_r14 = ctx.$implicit; - const ctx_r13 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵstyleProp"]("width", 100 / ctx_r13.days.length * allDayEvent_r14.span, "%")("margin-left", ctx_r13.rtl ? null : 100 / ctx_r13.days.length * allDayEvent_r14.offset, "%")("margin-right", ctx_r13.rtl ? 100 / ctx_r13.days.length * (ctx_r13.days.length - allDayEvent_r14.offset) * -1 : null, "%"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵclassProp"]("cal-draggable", allDayEvent_r14.event.draggable && ctx_r13.allDayEventResizes.size === 0)("cal-starts-within-week", !allDayEvent_r14.startsBeforeWeek)("cal-ends-within-week", !allDayEvent_r14.endsAfterWeek); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngClass", allDayEvent_r14.event == null ? null : allDayEvent_r14.event.cssClass)("resizeSnapGrid", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction2"](32, _c23, ctx_r13.dayColumnWidth, ctx_r13.dayColumnWidth))("validateResize", ctx_r13.validateResize)("dropData", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction2"](35, _c24, allDayEvent_r14.event, ctx_r13.calendarId))("dragAxis", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction2"](38, _c8, allDayEvent_r14.event.draggable && ctx_r13.allDayEventResizes.size === 0, !ctx_r13.snapDraggedEvents && allDayEvent_r14.event.draggable && ctx_r13.allDayEventResizes.size === 0))("dragSnapGrid", ctx_r13.snapDraggedEvents ? _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction1"](41, _c25, ctx_r13.dayColumnWidth) : _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction0"](43, _c2))("validateDrag", ctx_r13.validateDrag)("touchStartLongPress", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction0"](44, _c9)); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", (allDayEvent_r14.event == null ? null : allDayEvent_r14.event.resizable == null ? null : allDayEvent_r14.event.resizable.beforeStart) && !allDayEvent_r14.startsBeforeWeek); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("locale", ctx_r13.locale)("weekEvent", allDayEvent_r14)("tooltipPlacement", ctx_r13.tooltipPlacement)("tooltipTemplate", ctx_r13.tooltipTemplate)("tooltipAppendToBody", ctx_r13.tooltipAppendToBody)("tooltipDelay", ctx_r13.tooltipDelay)("customTemplate", ctx_r13.eventTemplate)("eventTitleTemplate", ctx_r13.eventTitleTemplate)("eventActionsTemplate", ctx_r13.eventActionsTemplate)("daysInWeek", ctx_r13.daysInWeek); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", (allDayEvent_r14.event == null ? null : allDayEvent_r14.event.resizable == null ? null : allDayEvent_r14.event.resizable.afterEnd) && !allDayEvent_r14.endsAfterWeek); - } -} -function CalendarWeekViewComponent_div_2_div_5_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 14, 15); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](2, CalendarWeekViewComponent_div_2_div_5_div_2_Template, 5, 45, "div", 16); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const eventRow_r11 = ctx.$implicit; - const ctx_r6 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngForOf", eventRow_r11.row)("ngForTrackBy", ctx_r6.trackByWeekAllDayEvent); - } -} -function CalendarWeekViewComponent_div_2_Template(rf, ctx) { - if (rf & 1) { - const _r27 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 8, 9); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("dragEnter", function CalendarWeekViewComponent_div_2_Template_div_dragEnter_0_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r27); - const ctx_r26 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r26.dragEnter("allDay")); - })("dragLeave", function CalendarWeekViewComponent_div_2_Template_div_dragLeave_0_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r27); - const ctx_r28 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r28.dragLeave("allDay")); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](2, "div", 5); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](3, "div", 10); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](4, CalendarWeekViewComponent_div_2_div_4_Template, 1, 0, "div", 11); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](5, CalendarWeekViewComponent_div_2_div_5_Template, 3, 2, "div", 12); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngTemplateOutlet", ctx_r0.allDayEventsLabelTemplate); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngForOf", ctx_r0.days)("ngForTrackBy", ctx_r0.trackByWeekDayHeaderDate); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngForOf", ctx_r0.view.allDayEventRows)("ngForTrackBy", ctx_r0.trackById); - } -} -function CalendarWeekViewComponent_div_4_div_1_mwl_calendar_week_view_hour_segment_1_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](0, "mwl-calendar-week-view-hour-segment", 28); - } - if (rf & 2) { - const segment_r33 = ctx.$implicit; - const ctx_r32 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵstyleProp"]("height", ctx_r32.hourSegmentHeight, "px"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("segment", segment_r33)("segmentHeight", ctx_r32.hourSegmentHeight)("locale", ctx_r32.locale)("customTemplate", ctx_r32.hourSegmentTemplate)("isTimeLabel", true)("daysInWeek", ctx_r32.daysInWeek); - } -} -function CalendarWeekViewComponent_div_4_div_1_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 26); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](1, CalendarWeekViewComponent_div_4_div_1_mwl_calendar_week_view_hour_segment_1_Template, 1, 8, "mwl-calendar-week-view-hour-segment", 27); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const hour_r30 = ctx.$implicit; - const odd_r31 = ctx.odd; - const ctx_r29 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵclassProp"]("cal-hour-odd", odd_r31); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngForOf", hour_r30.segments)("ngForTrackBy", ctx_r29.trackByHourSegment); - } -} -function CalendarWeekViewComponent_div_4_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 24); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](1, CalendarWeekViewComponent_div_4_div_1_Template, 2, 4, "div", 25); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const ctx_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngForOf", ctx_r1.view.hourColumns[0].hours)("ngForTrackBy", ctx_r1.trackByHour); - } -} -const _c26 = () => ({ - left: true, - top: true -}); -function CalendarWeekViewComponent_div_7_div_3_div_2_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](0, "div", 22); - } - if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("resizeEdges", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction0"](1, _c26)); - } -} -function CalendarWeekViewComponent_div_7_div_3_ng_template_3_Template(rf, ctx) {} -function CalendarWeekViewComponent_div_7_div_3_ng_template_4_Template(rf, ctx) { - if (rf & 1) { - const _r46 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "mwl-calendar-week-view-event", 36); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("eventClicked", function CalendarWeekViewComponent_div_7_div_3_ng_template_4_Template_mwl_calendar_week_view_event_eventClicked_0_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r46); - const timeEvent_r37 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"]().$implicit; - const ctx_r44 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r44.eventClicked.emit({ - event: timeEvent_r37.event, - sourceEvent: $event.sourceEvent - })); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const timeEvent_r37 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"]().$implicit; - const column_r34 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"]().$implicit; - const ctx_r41 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("locale", ctx_r41.locale)("weekEvent", timeEvent_r37)("tooltipPlacement", ctx_r41.tooltipPlacement)("tooltipTemplate", ctx_r41.tooltipTemplate)("tooltipAppendToBody", ctx_r41.tooltipAppendToBody)("tooltipDisabled", ctx_r41.dragActive || ctx_r41.timeEventResizes.size > 0)("tooltipDelay", ctx_r41.tooltipDelay)("customTemplate", ctx_r41.eventTemplate)("eventTitleTemplate", ctx_r41.eventTitleTemplate)("eventActionsTemplate", ctx_r41.eventActionsTemplate)("column", column_r34)("daysInWeek", ctx_r41.daysInWeek); - } -} -const _c27 = () => ({ - right: true, - bottom: true -}); -function CalendarWeekViewComponent_div_7_div_3_div_6_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](0, "div", 23); - } - if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("resizeEdges", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction0"](1, _c27)); - } -} -const _c28 = (a0, a1, a2, a3) => ({ - left: a0, - right: a1, - top: a2, - bottom: a3 -}); -function CalendarWeekViewComponent_div_7_div_3_Template(rf, ctx) { - if (rf & 1) { - const _r50 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 33, 18); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("resizeStart", function CalendarWeekViewComponent_div_7_div_3_Template_div_resizeStart_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r50); - const timeEvent_r37 = restoredCtx.$implicit; - const ctx_r49 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - const _r2 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](6); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r49.timeEventResizeStarted(_r2, timeEvent_r37, $event)); - })("resizing", function CalendarWeekViewComponent_div_7_div_3_Template_div_resizing_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r50); - const timeEvent_r37 = restoredCtx.$implicit; - const ctx_r51 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r51.timeEventResizing(timeEvent_r37, $event)); - })("resizeEnd", function CalendarWeekViewComponent_div_7_div_3_Template_div_resizeEnd_0_listener() { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r50); - const timeEvent_r37 = restoredCtx.$implicit; - const ctx_r52 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r52.timeEventResizeEnded(timeEvent_r37)); - })("dragStart", function CalendarWeekViewComponent_div_7_div_3_Template_div_dragStart_0_listener() { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r50); - const timeEvent_r37 = restoredCtx.$implicit; - const _r38 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](1); - const ctx_r53 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - const _r2 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](6); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r53.dragStarted(_r2, _r38, timeEvent_r37, true)); - })("dragging", function CalendarWeekViewComponent_div_7_div_3_Template_div_dragging_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r50); - const timeEvent_r37 = restoredCtx.$implicit; - const ctx_r54 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r54.dragMove(timeEvent_r37, $event)); - })("dragEnd", function CalendarWeekViewComponent_div_7_div_3_Template_div_dragEnd_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r50); - const timeEvent_r37 = restoredCtx.$implicit; - const ctx_r55 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r55.dragEnded(timeEvent_r37, $event, ctx_r55.dayColumnWidth, true)); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](2, CalendarWeekViewComponent_div_7_div_3_div_2_Template, 1, 2, "div", 19)(3, CalendarWeekViewComponent_div_7_div_3_ng_template_3_Template, 0, 0, "ng-template", 34)(4, CalendarWeekViewComponent_div_7_div_3_ng_template_4_Template, 1, 12, "ng-template", null, 35, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplateRefExtractor"])(6, CalendarWeekViewComponent_div_7_div_3_div_6_Template, 1, 2, "div", 21); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const timeEvent_r37 = ctx.$implicit; - const _r42 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](5); - const ctx_r35 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵstyleProp"]("top", timeEvent_r37.top, "px")("height", timeEvent_r37.height, "px")("left", timeEvent_r37.left, "%")("width", timeEvent_r37.width, "%"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵclassProp"]("cal-draggable", timeEvent_r37.event.draggable && ctx_r35.timeEventResizes.size === 0)("cal-starts-within-day", !timeEvent_r37.startsBeforeDay)("cal-ends-within-day", !timeEvent_r37.endsAfterDay); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngClass", timeEvent_r37.event.cssClass)("hidden", timeEvent_r37.height === 0 && timeEvent_r37.width === 0)("resizeSnapGrid", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction4"](29, _c28, ctx_r35.dayColumnWidth, ctx_r35.dayColumnWidth, ctx_r35.eventSnapSize || ctx_r35.hourSegmentHeight, ctx_r35.eventSnapSize || ctx_r35.hourSegmentHeight))("validateResize", ctx_r35.validateResize)("allowNegativeResizes", true)("dropData", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction2"](34, _c24, timeEvent_r37.event, ctx_r35.calendarId))("dragAxis", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction2"](37, _c8, timeEvent_r37.event.draggable && ctx_r35.timeEventResizes.size === 0, timeEvent_r37.event.draggable && ctx_r35.timeEventResizes.size === 0))("dragSnapGrid", ctx_r35.snapDraggedEvents ? _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction2"](40, _c8, ctx_r35.dayColumnWidth, ctx_r35.eventSnapSize || ctx_r35.hourSegmentHeight) : _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction0"](43, _c2))("touchStartLongPress", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction0"](44, _c9))("ghostDragEnabled", !ctx_r35.snapDraggedEvents)("ghostElementTemplate", _r42)("validateDrag", ctx_r35.validateDrag); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", (timeEvent_r37.event == null ? null : timeEvent_r37.event.resizable == null ? null : timeEvent_r37.event.resizable.beforeStart) && !timeEvent_r37.startsBeforeDay); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngTemplateOutlet", _r42); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", (timeEvent_r37.event == null ? null : timeEvent_r37.event.resizable == null ? null : timeEvent_r37.event.resizable.afterEnd) && !timeEvent_r37.endsAfterDay); - } -} -function CalendarWeekViewComponent_div_7_div_4_mwl_calendar_week_view_hour_segment_1_Template(rf, ctx) { - if (rf & 1) { - const _r61 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "mwl-calendar-week-view-hour-segment", 38); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("mwlClick", function CalendarWeekViewComponent_div_7_div_4_mwl_calendar_week_view_hour_segment_1_Template_mwl_calendar_week_view_hour_segment_mwlClick_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r61); - const segment_r59 = restoredCtx.$implicit; - const ctx_r60 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](3); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r60.hourSegmentClicked.emit({ - date: segment_r59.date, - sourceEvent: $event - })); - })("drop", function CalendarWeekViewComponent_div_7_div_4_mwl_calendar_week_view_hour_segment_1_Template_mwl_calendar_week_view_hour_segment_drop_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r61); - const segment_r59 = restoredCtx.$implicit; - const ctx_r62 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](3); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r62.eventDropped($event, segment_r59.date, false)); - })("dragEnter", function CalendarWeekViewComponent_div_7_div_4_mwl_calendar_week_view_hour_segment_1_Template_mwl_calendar_week_view_hour_segment_dragEnter_0_listener() { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r61); - const segment_r59 = restoredCtx.$implicit; - const ctx_r63 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](3); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r63.dateDragEnter(segment_r59.date)); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const segment_r59 = ctx.$implicit; - const ctx_r58 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵstyleProp"]("height", ctx_r58.hourSegmentHeight, "px"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("segment", segment_r59)("segmentHeight", ctx_r58.hourSegmentHeight)("locale", ctx_r58.locale)("customTemplate", ctx_r58.hourSegmentTemplate)("daysInWeek", ctx_r58.daysInWeek)("clickListenerDisabled", ctx_r58.hourSegmentClicked.observers.length === 0)("dragOverClass", !ctx_r58.dragActive || !ctx_r58.snapDraggedEvents ? "cal-drag-over" : null)("isTimeLabel", ctx_r58.daysInWeek === 1); - } -} -function CalendarWeekViewComponent_div_7_div_4_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 26); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](1, CalendarWeekViewComponent_div_7_div_4_mwl_calendar_week_view_hour_segment_1_Template, 1, 10, "mwl-calendar-week-view-hour-segment", 37); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const hour_r56 = ctx.$implicit; - const odd_r57 = ctx.odd; - const ctx_r36 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵclassProp"]("cal-hour-odd", odd_r57); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngForOf", hour_r56.segments)("ngForTrackBy", ctx_r36.trackByHourSegment); - } -} -function CalendarWeekViewComponent_div_7_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 29); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](1, "mwl-calendar-week-view-current-time-marker", 30); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](2, "div", 31); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](3, CalendarWeekViewComponent_div_7_div_3_Template, 7, 45, "div", 32); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](4, CalendarWeekViewComponent_div_7_div_4_Template, 2, 4, "div", 25); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const column_r34 = ctx.$implicit; - const ctx_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("columnDate", column_r34.date)("dayStartHour", ctx_r3.dayStartHour)("dayStartMinute", ctx_r3.dayStartMinute)("dayEndHour", ctx_r3.dayEndHour)("dayEndMinute", ctx_r3.dayEndMinute)("hourSegments", ctx_r3.hourSegments)("hourDuration", ctx_r3.hourDuration)("hourSegmentHeight", ctx_r3.hourSegmentHeight)("customTemplate", ctx_r3.currentTimeMarkerTemplate); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngForOf", column_r34.events)("ngForTrackBy", ctx_r3.trackByWeekTimeEvent); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngForOf", column_r34.hours)("ngForTrackBy", ctx_r3.trackByHour); - } -} -class ClickDirective { - constructor(renderer, elm, document) { - this.renderer = renderer; - this.elm = elm; - this.document = document; - this.clickListenerDisabled = false; - this.click = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); // eslint-disable-line - this.destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_3__.Subject(); - } - ngOnInit() { - if (!this.clickListenerDisabled) { - this.listen().pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.takeUntil)(this.destroy$)).subscribe(event => { - event.stopPropagation(); - this.click.emit(event); - }); - } - } - ngOnDestroy() { - this.destroy$.next(); - } - listen() { - return new rxjs__WEBPACK_IMPORTED_MODULE_5__.Observable(observer => { - return this.renderer.listen(this.elm.nativeElement, 'click', event => { - observer.next(event); - }); - }); - } -} -ClickDirective.ɵfac = function ClickDirective_Factory(t) { - return new (t || ClickDirective)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.Renderer2), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.ElementRef), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_common__WEBPACK_IMPORTED_MODULE_6__.DOCUMENT)); -}; -ClickDirective.ɵdir = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineDirective"]({ - type: ClickDirective, - selectors: [["", "mwlClick", ""]], - inputs: { - clickListenerDisabled: "clickListenerDisabled" - }, - outputs: { - click: "mwlClick" - } -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](ClickDirective, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Directive, - args: [{ - selector: '[mwlClick]' - }] - }], function () { - return [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Renderer2 - }, { - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ElementRef - }, { - type: undefined, - decorators: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Inject, - args: [_angular_common__WEBPACK_IMPORTED_MODULE_6__.DOCUMENT] - }] - }]; - }, { - clickListenerDisabled: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - click: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output, - args: ['mwlClick'] - }] - }); -})(); -class KeydownEnterDirective { - constructor(host, ngZone, renderer) { - this.host = host; - this.ngZone = ngZone; - this.renderer = renderer; - this.keydown = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); // eslint-disable-line - this.keydownListener = null; - } - ngOnInit() { - this.ngZone.runOutsideAngular(() => { - this.keydownListener = this.renderer.listen(this.host.nativeElement, 'keydown', event => { - if (event.keyCode === 13 || event.which === 13 || event.key === 'Enter') { - event.preventDefault(); - event.stopPropagation(); - this.ngZone.run(() => { - this.keydown.emit(event); - }); - } - }); - }); - } - ngOnDestroy() { - if (this.keydownListener !== null) { - this.keydownListener(); - this.keydownListener = null; - } - } -} -KeydownEnterDirective.ɵfac = function KeydownEnterDirective_Factory(t) { - return new (t || KeydownEnterDirective)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.ElementRef), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.NgZone), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.Renderer2)); -}; -KeydownEnterDirective.ɵdir = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineDirective"]({ - type: KeydownEnterDirective, - selectors: [["", "mwlKeydownEnter", ""]], - outputs: { - keydown: "mwlKeydownEnter" - } -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](KeydownEnterDirective, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Directive, - args: [{ - selector: '[mwlKeydownEnter]' - }] - }], function () { - return [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ElementRef - }, { - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.NgZone - }, { - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Renderer2 - }]; - }, { - keydown: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output, - args: ['mwlKeydownEnter'] - }] - }); -})(); - -/** - * This class is responsible for adding accessibility to the calendar. - * You may override any of its methods via angulars DI to suit your requirements. - * For example: - * - * ```typescript - * import { A11yParams, CalendarA11y } from 'angular-calendar'; - * import { formatDate, I18nPluralPipe } from '@angular/common'; - * import { Injectable } from '@angular/core'; - * - * // adding your own a11y params - * export interface CustomA11yParams extends A11yParams { - * isDrSuess?: boolean; - * } - * - * @Injectable() - * export class CustomCalendarA11y extends CalendarA11y { - * constructor(protected i18nPlural: I18nPluralPipe) { - * super(i18nPlural); - * } - * - * // overriding a function - * public openDayEventsLandmark({ date, locale, isDrSuess }: CustomA11yParams): string { - * if (isDrSuess) { - * return ` - * ${formatDate(date, 'EEEE MMMM d', locale)} - * Today you are you! That is truer than true! There is no one alive - * who is you-er than you! - * `; - * } - * } - * } - * - * // in your component that uses the calendar - * providers: [{ - * provide: CalendarA11y, - * useClass: CustomCalendarA11y - * }] - * ``` - */ -class CalendarA11y { - constructor(i18nPlural) { - this.i18nPlural = i18nPlural; - } - /** - * Aria label for the badges/date of a cell - * @example: `Saturday October 19 1 event click to expand` - */ - monthCell({ - day, - locale - }) { - if (day.badgeTotal > 0) { - return ` - ${(0,_angular_common__WEBPACK_IMPORTED_MODULE_6__.formatDate)(day.date, 'EEEE MMMM d', locale)}, - ${this.i18nPlural.transform(day.badgeTotal, { - '=0': 'No events', - '=1': 'One event', - other: '# events' - })}, - click to expand - `; - } else { - return `${(0,_angular_common__WEBPACK_IMPORTED_MODULE_6__.formatDate)(day.date, 'EEEE MMMM d', locale)}`; - } - } - /** - * Aria label for the open day events start landmark - * @example: `Saturday October 19 expanded view` - */ - openDayEventsLandmark({ - date, - locale - }) { - return ` - Beginning of expanded view for ${(0,_angular_common__WEBPACK_IMPORTED_MODULE_6__.formatDate)(date, 'EEEE MMMM dd', locale)} - `; - } - /** - * Aria label for alert that a day in the month view was expanded - * @example: `Saturday October 19 expanded` - */ - openDayEventsAlert({ - date, - locale - }) { - return `${(0,_angular_common__WEBPACK_IMPORTED_MODULE_6__.formatDate)(date, 'EEEE MMMM dd', locale)} expanded`; - } - /** - * Descriptive aria label for an event - * @example: `Saturday October 19th, Scott's Pizza Party, from 11:00am to 5:00pm` - */ - eventDescription({ - event, - locale - }) { - if (event.allDay === true) { - return this.allDayEventDescription({ - event, - locale - }); - } - const aria = ` - ${(0,_angular_common__WEBPACK_IMPORTED_MODULE_6__.formatDate)(event.start, 'EEEE MMMM dd', locale)}, - ${event.title}, from ${(0,_angular_common__WEBPACK_IMPORTED_MODULE_6__.formatDate)(event.start, 'hh:mm a', locale)} - `; - if (event.end) { - return aria + ` to ${(0,_angular_common__WEBPACK_IMPORTED_MODULE_6__.formatDate)(event.end, 'hh:mm a', locale)}`; - } - return aria; - } - /** - * Descriptive aria label for an all day event - * @example: - * `Scott's Party, event spans multiple days: start time October 19 5:00pm, no stop time` - */ - allDayEventDescription({ - event, - locale - }) { - const aria = ` - ${event.title}, event spans multiple days: - start time ${(0,_angular_common__WEBPACK_IMPORTED_MODULE_6__.formatDate)(event.start, 'MMMM dd hh:mm a', locale)} - `; - if (event.end) { - return aria + `, stop time ${(0,_angular_common__WEBPACK_IMPORTED_MODULE_6__.formatDate)(event.end, 'MMMM d hh:mm a', locale)}`; - } - return aria + `, no stop time`; - } - /** - * Aria label for the calendar event actions icons - * @returns 'Edit' for fa-pencil icons, and 'Delete' for fa-times icons - */ - actionButtonLabel({ - action - }) { - return action.a11yLabel; - } - /** - * @returns {number} Tab index to be given to month cells - */ - monthCellTabIndex() { - return 0; - } - /** - * @returns true if the events inside the month cell should be aria-hidden - */ - hideMonthCellEvents() { - return true; - } - /** - * @returns true if event titles should be aria-hidden (global) - */ - hideEventTitle() { - return true; - } - /** - * @returns true if hour segments in the week view should be aria-hidden - */ - hideWeekHourSegment() { - return true; - } - /** - * @returns true if hour segments in the day view should be aria-hidden - */ - hideDayHourSegment() { - return true; - } -} -CalendarA11y.ɵfac = function CalendarA11y_Factory(t) { - return new (t || CalendarA11y)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵinject"](_angular_common__WEBPACK_IMPORTED_MODULE_6__.I18nPluralPipe)); -}; -CalendarA11y.ɵprov = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineInjectable"]({ - token: CalendarA11y, - factory: CalendarA11y.ɵfac -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarA11y, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Injectable - }], function () { - return [{ - type: _angular_common__WEBPACK_IMPORTED_MODULE_6__.I18nPluralPipe - }]; - }, null); -})(); - -/** - * This pipe is primarily for rendering aria labels. Example usage: - * ```typescript - * // where `myEvent` is a `CalendarEvent` and myLocale is a locale identifier - * {{ { event: myEvent, locale: myLocale } | calendarA11y: 'eventDescription' }} - * ``` - */ -class CalendarA11yPipe { - constructor(calendarA11y, locale) { - this.calendarA11y = calendarA11y; - this.locale = locale; - } - transform(a11yParams, method) { - a11yParams.locale = a11yParams.locale || this.locale; - if (typeof this.calendarA11y[method] === 'undefined') { - const allowedMethods = Object.getOwnPropertyNames(Object.getPrototypeOf(CalendarA11y.prototype)).filter(iMethod => iMethod !== 'constructor'); - throw new Error(`${method} is not a valid a11y method. Can only be one of ${allowedMethods.join(', ')}`); - } - return this.calendarA11y[method](a11yParams); - } -} -CalendarA11yPipe.ɵfac = function CalendarA11yPipe_Factory(t) { - return new (t || CalendarA11yPipe)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](CalendarA11y, 16), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.LOCALE_ID, 16)); -}; -CalendarA11yPipe.ɵpipe = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefinePipe"]({ - name: "calendarA11y", - type: CalendarA11yPipe, - pure: true -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarA11yPipe, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Pipe, - args: [{ - name: 'calendarA11y' - }] - }], function () { - return [{ - type: CalendarA11y - }, { - type: undefined, - decorators: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Inject, - args: [_angular_core__WEBPACK_IMPORTED_MODULE_2__.LOCALE_ID] - }] - }]; - }, null); -})(); -class CalendarEventActionsComponent { - constructor() { - this.trackByActionId = (index, action) => action.id ? action.id : action; - } -} -CalendarEventActionsComponent.ɵfac = function CalendarEventActionsComponent_Factory(t) { - return new (t || CalendarEventActionsComponent)(); -}; -CalendarEventActionsComponent.ɵcmp = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ - type: CalendarEventActionsComponent, - selectors: [["mwl-calendar-event-actions"]], - inputs: { - event: "event", - customTemplate: "customTemplate" - }, - decls: 3, - vars: 5, - consts: [["defaultTemplate", ""], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], ["class", "cal-event-actions", 4, "ngIf"], [1, "cal-event-actions"], ["class", "cal-event-action", "href", "javascript:;", "tabindex", "0", "role", "button", 3, "ngClass", "innerHtml", "mwlClick", "mwlKeydownEnter", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["href", "javascript:;", "tabindex", "0", "role", "button", 1, "cal-event-action", 3, "ngClass", "innerHtml", "mwlClick", "mwlKeydownEnter"]], - template: function CalendarEventActionsComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](0, CalendarEventActionsComponent_ng_template_0_Template, 1, 1, "ng-template", null, 0, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplateRefExtractor"])(2, CalendarEventActionsComponent_ng_template_2_Template, 0, 0, "ng-template", 1); - } - if (rf & 2) { - const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngTemplateOutlet", ctx.customTemplate || _r1)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction2"](2, _c1, ctx.event, ctx.trackByActionId)); - } - }, - dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_6__.NgIf, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgForOf, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgClass, ClickDirective, KeydownEnterDirective, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgTemplateOutlet, CalendarA11yPipe], - encapsulation: 2 -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarEventActionsComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Component, - args: [{ - selector: 'mwl-calendar-event-actions', - template: ` - - - - - - - - - ` - }] - }], null, { - event: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - customTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }] - }); -})(); - -/** - * This class is responsible for displaying all event titles within the calendar. You may override any of its methods via angulars DI to suit your requirements. For example: - * - * ```typescript - * import { Injectable } from '@angular/core'; - * import { CalendarEventTitleFormatter, CalendarEvent } from 'angular-calendar'; - * - * @Injectable() - * class CustomEventTitleFormatter extends CalendarEventTitleFormatter { - * - * month(event: CalendarEvent): string { - * return `Custom prefix: ${event.title}`; - * } - * - * } - * - * // in your component - * providers: [{ - * provide: CalendarEventTitleFormatter, - * useClass: CustomEventTitleFormatter - * }] - * ``` - */ -class CalendarEventTitleFormatter { - /** - * The month view event title. - */ - month(event, title) { - return event.title; - } - /** - * The month view event tooltip. Return a falsey value from this to disable the tooltip. - */ - monthTooltip(event, title) { - return event.title; - } - /** - * The week view event title. - */ - week(event, title) { - return event.title; - } - /** - * The week view event tooltip. Return a falsey value from this to disable the tooltip. - */ - weekTooltip(event, title) { - return event.title; - } - /** - * The day view event title. - */ - day(event, title) { - return event.title; - } - /** - * The day view event tooltip. Return a falsey value from this to disable the tooltip. - */ - dayTooltip(event, title) { - return event.title; - } -} -class CalendarEventTitlePipe { - constructor(calendarEventTitle) { - this.calendarEventTitle = calendarEventTitle; - } - transform(title, titleType, event) { - return this.calendarEventTitle[titleType](event, title); - } -} -CalendarEventTitlePipe.ɵfac = function CalendarEventTitlePipe_Factory(t) { - return new (t || CalendarEventTitlePipe)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](CalendarEventTitleFormatter, 16)); -}; -CalendarEventTitlePipe.ɵpipe = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefinePipe"]({ - name: "calendarEventTitle", - type: CalendarEventTitlePipe, - pure: true -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarEventTitlePipe, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Pipe, - args: [{ - name: 'calendarEventTitle' - }] - }], function () { - return [{ - type: CalendarEventTitleFormatter - }]; - }, null); -})(); -class CalendarEventTitleComponent {} -CalendarEventTitleComponent.ɵfac = function CalendarEventTitleComponent_Factory(t) { - return new (t || CalendarEventTitleComponent)(); -}; -CalendarEventTitleComponent.ɵcmp = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ - type: CalendarEventTitleComponent, - selectors: [["mwl-calendar-event-title"]], - inputs: { - event: "event", - customTemplate: "customTemplate", - view: "view" - }, - decls: 3, - vars: 5, - consts: [["defaultTemplate", ""], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "cal-event-title", 3, "innerHTML"]], - template: function CalendarEventTitleComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](0, CalendarEventTitleComponent_ng_template_0_Template, 3, 10, "ng-template", null, 0, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplateRefExtractor"])(2, CalendarEventTitleComponent_ng_template_2_Template, 0, 0, "ng-template", 1); - } - if (rf & 2) { - const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngTemplateOutlet", ctx.customTemplate || _r1)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction2"](2, _c3, ctx.event, ctx.view)); - } - }, - dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_6__.NgTemplateOutlet, CalendarEventTitlePipe, CalendarA11yPipe], - encapsulation: 2 -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarEventTitleComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Component, - args: [{ - selector: 'mwl-calendar-event-title', - template: ` - - - - - - - ` - }] - }], null, { - event: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - customTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - view: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }] - }); -})(); -class CalendarTooltipWindowComponent {} -CalendarTooltipWindowComponent.ɵfac = function CalendarTooltipWindowComponent_Factory(t) { - return new (t || CalendarTooltipWindowComponent)(); -}; -CalendarTooltipWindowComponent.ɵcmp = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ - type: CalendarTooltipWindowComponent, - selectors: [["mwl-calendar-tooltip-window"]], - inputs: { - contents: "contents", - placement: "placement", - event: "event", - customTemplate: "customTemplate" - }, - decls: 3, - vars: 6, - consts: [["defaultTemplate", ""], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "cal-tooltip", 3, "ngClass"], [1, "cal-tooltip-arrow"], [1, "cal-tooltip-inner", 3, "innerHtml"]], - template: function CalendarTooltipWindowComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](0, CalendarTooltipWindowComponent_ng_template_0_Template, 3, 2, "ng-template", null, 0, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplateRefExtractor"])(2, CalendarTooltipWindowComponent_ng_template_2_Template, 0, 0, "ng-template", 1); - } - if (rf & 2) { - const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngTemplateOutlet", ctx.customTemplate || _r1)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction3"](2, _c4, ctx.contents, ctx.placement, ctx.event)); - } - }, - dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_6__.NgClass, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgTemplateOutlet], - encapsulation: 2 -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarTooltipWindowComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Component, - args: [{ - selector: 'mwl-calendar-tooltip-window', - template: ` - -
-
-
-
-
- - - ` - }] - }], null, { - contents: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - placement: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - event: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - customTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }] - }); -})(); -class CalendarTooltipDirective { - constructor(elementRef, injector, renderer, componentFactoryResolver, viewContainerRef, document // eslint-disable-line - ) { - this.elementRef = elementRef; - this.injector = injector; - this.renderer = renderer; - this.viewContainerRef = viewContainerRef; - this.document = document; - this.placement = 'auto'; // eslint-disable-line @angular-eslint/no-input-rename - this.delay = null; // eslint-disable-line @angular-eslint/no-input-rename - this.cancelTooltipDelay$ = new rxjs__WEBPACK_IMPORTED_MODULE_3__.Subject(); - this.tooltipFactory = componentFactoryResolver.resolveComponentFactory(CalendarTooltipWindowComponent); - } - ngOnChanges(changes) { - if (this.tooltipRef && (changes.contents || changes.customTemplate || changes.event)) { - this.tooltipRef.instance.contents = this.contents; - this.tooltipRef.instance.customTemplate = this.customTemplate; - this.tooltipRef.instance.event = this.event; - this.tooltipRef.changeDetectorRef.markForCheck(); - if (!this.contents) { - this.hide(); - } - } - } - ngOnDestroy() { - this.hide(); - } - onMouseOver() { - const delay$ = this.delay === null ? (0,rxjs__WEBPACK_IMPORTED_MODULE_7__.of)('now') : (0,rxjs__WEBPACK_IMPORTED_MODULE_8__.timer)(this.delay); - delay$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.takeUntil)(this.cancelTooltipDelay$)).subscribe(() => { - this.show(); - }); - } - onMouseOut() { - this.hide(); - } - show() { - if (!this.tooltipRef && this.contents) { - this.tooltipRef = this.viewContainerRef.createComponent(this.tooltipFactory, 0, this.injector, []); - this.tooltipRef.instance.contents = this.contents; - this.tooltipRef.instance.customTemplate = this.customTemplate; - this.tooltipRef.instance.event = this.event; - if (this.appendToBody) { - this.document.body.appendChild(this.tooltipRef.location.nativeElement); - } - requestAnimationFrame(() => { - this.positionTooltip(); - }); - } - } - hide() { - if (this.tooltipRef) { - this.viewContainerRef.remove(this.viewContainerRef.indexOf(this.tooltipRef.hostView)); - this.tooltipRef = null; - } - this.cancelTooltipDelay$.next(); - } - positionTooltip(previousPositions = []) { - if (this.tooltipRef) { - this.tooltipRef.changeDetectorRef.detectChanges(); - this.tooltipRef.instance.placement = (0,positioning__WEBPACK_IMPORTED_MODULE_0__.positionElements)(this.elementRef.nativeElement, this.tooltipRef.location.nativeElement.children[0], this.placement, this.appendToBody); - // keep re-positioning the tooltip until the arrow position doesn't make a difference - if (previousPositions.indexOf(this.tooltipRef.instance.placement) === -1) { - this.positionTooltip([...previousPositions, this.tooltipRef.instance.placement]); - } - } - } -} -CalendarTooltipDirective.ɵfac = function CalendarTooltipDirective_Factory(t) { - return new (t || CalendarTooltipDirective)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.ElementRef), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.Injector), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.Renderer2), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.ComponentFactoryResolver), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.ViewContainerRef), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_common__WEBPACK_IMPORTED_MODULE_6__.DOCUMENT)); -}; -CalendarTooltipDirective.ɵdir = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineDirective"]({ - type: CalendarTooltipDirective, - selectors: [["", "mwlCalendarTooltip", ""]], - hostBindings: function CalendarTooltipDirective_HostBindings(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("mouseenter", function CalendarTooltipDirective_mouseenter_HostBindingHandler() { - return ctx.onMouseOver(); - })("mouseleave", function CalendarTooltipDirective_mouseleave_HostBindingHandler() { - return ctx.onMouseOut(); - }); - } - }, - inputs: { - contents: [_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵInputFlags"].None, "mwlCalendarTooltip", "contents"], - placement: [_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵInputFlags"].None, "tooltipPlacement", "placement"], - customTemplate: [_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵInputFlags"].None, "tooltipTemplate", "customTemplate"], - event: [_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵInputFlags"].None, "tooltipEvent", "event"], - appendToBody: [_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵInputFlags"].None, "tooltipAppendToBody", "appendToBody"], - delay: [_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵInputFlags"].None, "tooltipDelay", "delay"] - }, - features: [_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵNgOnChangesFeature"]] -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarTooltipDirective, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Directive, - args: [{ - selector: '[mwlCalendarTooltip]' - }] - }], function () { - return [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ElementRef - }, { - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Injector - }, { - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Renderer2 - }, { - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ComponentFactoryResolver - }, { - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ViewContainerRef - }, { - type: undefined, - decorators: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Inject, - args: [_angular_common__WEBPACK_IMPORTED_MODULE_6__.DOCUMENT] - }] - }]; - }, { - contents: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input, - args: ['mwlCalendarTooltip'] - }], - placement: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input, - args: ['tooltipPlacement'] - }], - customTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input, - args: ['tooltipTemplate'] - }], - event: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input, - args: ['tooltipEvent'] - }], - appendToBody: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input, - args: ['tooltipAppendToBody'] - }], - delay: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input, - args: ['tooltipDelay'] - }], - onMouseOver: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.HostListener, - args: ['mouseenter'] - }], - onMouseOut: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.HostListener, - args: ['mouseleave'] - }] - }); -})(); -var CalendarView; -(function (CalendarView) { - CalendarView["Month"] = "month"; - CalendarView["Week"] = "week"; - CalendarView["Day"] = "day"; -})(CalendarView || (CalendarView = {})); -const validateEvents = events => { - const warn = (...args) => console.warn('angular-calendar', ...args); - return (0,calendar_utils__WEBPACK_IMPORTED_MODULE_1__.validateEvents)(events, warn); -}; -function isInsideLeftAndRight(outer, inner) { - return Math.floor(outer.left) <= Math.ceil(inner.left) && Math.floor(inner.left) <= Math.ceil(outer.right) && Math.floor(outer.left) <= Math.ceil(inner.right) && Math.floor(inner.right) <= Math.ceil(outer.right); -} -function isInsideTopAndBottom(outer, inner) { - return Math.floor(outer.top) <= Math.ceil(inner.top) && Math.floor(inner.top) <= Math.ceil(outer.bottom) && Math.floor(outer.top) <= Math.ceil(inner.bottom) && Math.floor(inner.bottom) <= Math.ceil(outer.bottom); -} -function isInside(outer, inner) { - return isInsideLeftAndRight(outer, inner) && isInsideTopAndBottom(outer, inner); -} -function roundToNearest(amount, precision) { - return Math.round(amount / precision) * precision; -} -const trackByEventId = (index, event) => event.id ? event.id : event; -const trackByWeekDayHeaderDate = (index, day) => day.date.toISOString(); -const trackByHourSegment = (index, segment) => segment.date.toISOString(); -const trackByHour = (index, hour) => hour.segments[0].date.toISOString(); -const trackByWeekAllDayEvent = (index, weekEvent) => weekEvent.event.id ? weekEvent.event.id : weekEvent.event; -const trackByWeekTimeEvent = (index, weekEvent) => weekEvent.event.id ? weekEvent.event.id : weekEvent.event; -const MINUTES_IN_HOUR = 60; -function getPixelAmountInMinutes(hourSegments, hourSegmentHeight, hourDuration) { - return (hourDuration || MINUTES_IN_HOUR) / (hourSegments * hourSegmentHeight); -} -function getMinutesMoved(movedY, hourSegments, hourSegmentHeight, eventSnapSize, hourDuration) { - const draggedInPixelsSnapSize = roundToNearest(movedY, eventSnapSize || hourSegmentHeight); - const pixelAmountInMinutes = getPixelAmountInMinutes(hourSegments, hourSegmentHeight, hourDuration); - return draggedInPixelsSnapSize * pixelAmountInMinutes; -} -function getDefaultEventEnd(dateAdapter, event, minimumMinutes) { - if (event.end) { - return event.end; - } else { - return dateAdapter.addMinutes(event.start, minimumMinutes); - } -} -function addDaysWithExclusions(dateAdapter, date, days, excluded) { - let daysCounter = 0; - let daysToAdd = 0; - const changeDays = days < 0 ? dateAdapter.subDays : dateAdapter.addDays; - let result = date; - while (daysToAdd <= Math.abs(days)) { - result = changeDays(date, daysCounter); - const day = dateAdapter.getDay(result); - if (excluded.indexOf(day) === -1) { - daysToAdd++; - } - daysCounter++; - } - return result; -} -function isDraggedWithinPeriod(newStart, newEnd, period) { - const end = newEnd || newStart; - return period.start <= newStart && newStart <= period.end || period.start <= end && end <= period.end; -} -function shouldFireDroppedEvent(dropEvent, date, allDay, calendarId) { - return dropEvent.dropData && dropEvent.dropData.event && (dropEvent.dropData.calendarId !== calendarId || dropEvent.dropData.event.allDay && !allDay || !dropEvent.dropData.event.allDay && allDay); -} -function getWeekViewPeriod(dateAdapter, viewDate, weekStartsOn, excluded = [], daysInWeek) { - let viewStart = daysInWeek ? dateAdapter.startOfDay(viewDate) : dateAdapter.startOfWeek(viewDate, { - weekStartsOn - }); - const endOfWeek = dateAdapter.endOfWeek(viewDate, { - weekStartsOn - }); - while (excluded.indexOf(dateAdapter.getDay(viewStart)) > -1 && viewStart < endOfWeek) { - viewStart = dateAdapter.addDays(viewStart, 1); - } - if (daysInWeek) { - const viewEnd = dateAdapter.endOfDay(addDaysWithExclusions(dateAdapter, viewStart, daysInWeek - 1, excluded)); - return { - viewStart, - viewEnd - }; - } else { - let viewEnd = endOfWeek; - while (excluded.indexOf(dateAdapter.getDay(viewEnd)) > -1 && viewEnd > viewStart) { - viewEnd = dateAdapter.subDays(viewEnd, 1); - } - return { - viewStart, - viewEnd - }; - } -} -function isWithinThreshold({ - x, - y -}) { - const DRAG_THRESHOLD = 1; - return Math.abs(x) > DRAG_THRESHOLD || Math.abs(y) > DRAG_THRESHOLD; -} -class DateAdapter {} - -/** - * Change the view date to the previous view. For example: - * - * ```typescript - * - * ``` - */ -class CalendarPreviousViewDirective { - constructor(dateAdapter) { - this.dateAdapter = dateAdapter; - /** - * Days to skip when going back by 1 day - */ - this.excludeDays = []; - /** - * Called when the view date is changed - */ - this.viewDateChange = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - } - /** - * @hidden - */ - onClick() { - const subFn = { - day: this.dateAdapter.subDays, - week: this.dateAdapter.subWeeks, - month: this.dateAdapter.subMonths - }[this.view]; - if (this.view === CalendarView.Day) { - this.viewDateChange.emit(addDaysWithExclusions(this.dateAdapter, this.viewDate, -1, this.excludeDays)); - } else if (this.view === CalendarView.Week && this.daysInWeek) { - this.viewDateChange.emit(addDaysWithExclusions(this.dateAdapter, this.viewDate, -this.daysInWeek, this.excludeDays)); - } else { - this.viewDateChange.emit(subFn(this.viewDate, 1)); - } - } -} -CalendarPreviousViewDirective.ɵfac = function CalendarPreviousViewDirective_Factory(t) { - return new (t || CalendarPreviousViewDirective)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](DateAdapter)); -}; -CalendarPreviousViewDirective.ɵdir = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineDirective"]({ - type: CalendarPreviousViewDirective, - selectors: [["", "mwlCalendarPreviousView", ""]], - hostBindings: function CalendarPreviousViewDirective_HostBindings(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("click", function CalendarPreviousViewDirective_click_HostBindingHandler() { - return ctx.onClick(); - }); - } - }, - inputs: { - view: "view", - viewDate: "viewDate", - excludeDays: "excludeDays", - daysInWeek: "daysInWeek" - }, - outputs: { - viewDateChange: "viewDateChange" - } -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarPreviousViewDirective, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Directive, - args: [{ - selector: '[mwlCalendarPreviousView]' - }] - }], function () { - return [{ - type: DateAdapter - }]; - }, { - view: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - viewDate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - excludeDays: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - daysInWeek: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - viewDateChange: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - onClick: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.HostListener, - args: ['click'] - }] - }); -})(); - -/** - * Change the view date to the next view. For example: - * - * ```typescript - * - * ``` - */ -class CalendarNextViewDirective { - constructor(dateAdapter) { - this.dateAdapter = dateAdapter; - /** - * Days to skip when going forward by 1 day - */ - this.excludeDays = []; - /** - * Called when the view date is changed - */ - this.viewDateChange = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - } - /** - * @hidden - */ - onClick() { - const addFn = { - day: this.dateAdapter.addDays, - week: this.dateAdapter.addWeeks, - month: this.dateAdapter.addMonths - }[this.view]; - if (this.view === CalendarView.Day) { - this.viewDateChange.emit(addDaysWithExclusions(this.dateAdapter, this.viewDate, 1, this.excludeDays)); - } else if (this.view === CalendarView.Week && this.daysInWeek) { - this.viewDateChange.emit(addDaysWithExclusions(this.dateAdapter, this.viewDate, this.daysInWeek, this.excludeDays)); - } else { - this.viewDateChange.emit(addFn(this.viewDate, 1)); - } - } -} -CalendarNextViewDirective.ɵfac = function CalendarNextViewDirective_Factory(t) { - return new (t || CalendarNextViewDirective)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](DateAdapter)); -}; -CalendarNextViewDirective.ɵdir = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineDirective"]({ - type: CalendarNextViewDirective, - selectors: [["", "mwlCalendarNextView", ""]], - hostBindings: function CalendarNextViewDirective_HostBindings(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("click", function CalendarNextViewDirective_click_HostBindingHandler() { - return ctx.onClick(); - }); - } - }, - inputs: { - view: "view", - viewDate: "viewDate", - excludeDays: "excludeDays", - daysInWeek: "daysInWeek" - }, - outputs: { - viewDateChange: "viewDateChange" - } -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarNextViewDirective, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Directive, - args: [{ - selector: '[mwlCalendarNextView]' - }] - }], function () { - return [{ - type: DateAdapter - }]; - }, { - view: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - viewDate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - excludeDays: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - daysInWeek: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - viewDateChange: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - onClick: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.HostListener, - args: ['click'] - }] - }); -})(); - -/** - * Change the view date to the current day. For example: - * - * ```typescript - * - * ``` - */ -class CalendarTodayDirective { - constructor(dateAdapter) { - this.dateAdapter = dateAdapter; - /** - * Called when the view date is changed - */ - this.viewDateChange = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - } - /** - * @hidden - */ - onClick() { - this.viewDateChange.emit(this.dateAdapter.startOfDay(new Date())); - } -} -CalendarTodayDirective.ɵfac = function CalendarTodayDirective_Factory(t) { - return new (t || CalendarTodayDirective)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](DateAdapter)); -}; -CalendarTodayDirective.ɵdir = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineDirective"]({ - type: CalendarTodayDirective, - selectors: [["", "mwlCalendarToday", ""]], - hostBindings: function CalendarTodayDirective_HostBindings(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("click", function CalendarTodayDirective_click_HostBindingHandler() { - return ctx.onClick(); - }); - } - }, - inputs: { - viewDate: "viewDate" - }, - outputs: { - viewDateChange: "viewDateChange" - } -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarTodayDirective, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Directive, - args: [{ - selector: '[mwlCalendarToday]' - }] - }], function () { - return [{ - type: DateAdapter - }]; - }, { - viewDate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - viewDateChange: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - onClick: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.HostListener, - args: ['click'] - }] - }); -})(); - -/** - * This will use the angular date pipe to do all date formatting. It is the default date formatter used by the calendar. - */ -class CalendarAngularDateFormatter { - constructor(dateAdapter) { - this.dateAdapter = dateAdapter; - } - /** - * The month view header week day labels - */ - monthViewColumnHeader({ - date, - locale - }) { - return (0,_angular_common__WEBPACK_IMPORTED_MODULE_6__.formatDate)(date, 'EEEE', locale); - } - /** - * The month view cell day number - */ - monthViewDayNumber({ - date, - locale - }) { - return (0,_angular_common__WEBPACK_IMPORTED_MODULE_6__.formatDate)(date, 'd', locale); - } - /** - * The month view title - */ - monthViewTitle({ - date, - locale - }) { - return (0,_angular_common__WEBPACK_IMPORTED_MODULE_6__.formatDate)(date, 'LLLL y', locale); - } - /** - * The week view header week day labels - */ - weekViewColumnHeader({ - date, - locale - }) { - return (0,_angular_common__WEBPACK_IMPORTED_MODULE_6__.formatDate)(date, 'EEEE', locale); - } - /** - * The week view sub header day and month labels - */ - weekViewColumnSubHeader({ - date, - locale - }) { - return (0,_angular_common__WEBPACK_IMPORTED_MODULE_6__.formatDate)(date, 'MMM d', locale); - } - /** - * The week view title - */ - weekViewTitle({ - date, - locale, - weekStartsOn, - excludeDays, - daysInWeek - }) { - const { - viewStart, - viewEnd - } = getWeekViewPeriod(this.dateAdapter, date, weekStartsOn, excludeDays, daysInWeek); - const format = (dateToFormat, showYear) => (0,_angular_common__WEBPACK_IMPORTED_MODULE_6__.formatDate)(dateToFormat, 'MMM d' + (showYear ? ', yyyy' : ''), locale); - return `${format(viewStart, viewStart.getUTCFullYear() !== viewEnd.getUTCFullYear())} - ${format(viewEnd, true)}`; - } - /** - * The time formatting down the left hand side of the week view - */ - weekViewHour({ - date, - locale - }) { - return (0,_angular_common__WEBPACK_IMPORTED_MODULE_6__.formatDate)(date, 'h a', locale); - } - /** - * The time formatting down the left hand side of the day view - */ - dayViewHour({ - date, - locale - }) { - return (0,_angular_common__WEBPACK_IMPORTED_MODULE_6__.formatDate)(date, 'h a', locale); - } - /** - * The day view title - */ - dayViewTitle({ - date, - locale - }) { - return (0,_angular_common__WEBPACK_IMPORTED_MODULE_6__.formatDate)(date, 'EEEE, MMMM d, y', locale); - } -} -CalendarAngularDateFormatter.ɵfac = function CalendarAngularDateFormatter_Factory(t) { - return new (t || CalendarAngularDateFormatter)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵinject"](DateAdapter)); -}; -CalendarAngularDateFormatter.ɵprov = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineInjectable"]({ - token: CalendarAngularDateFormatter, - factory: CalendarAngularDateFormatter.ɵfac -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarAngularDateFormatter, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Injectable - }], function () { - return [{ - type: DateAdapter - }]; - }, null); -})(); - -/** - * This class is responsible for all formatting of dates. There are 3 implementations available, the `CalendarAngularDateFormatter` (default) which uses the angular date pipe to format dates, the `CalendarNativeDateFormatter` which will use the Intl API to format dates, or there is the `CalendarMomentDateFormatter` which uses moment. - * - * If you wish, you may override any of the defaults via angulars DI. For example: - * - * ```typescript - * import { CalendarDateFormatter, DateFormatterParams } from 'angular-calendar'; - * import { formatDate } from '@angular/common'; - * import { Injectable } from '@angular/core'; - * - * @Injectable() - * class CustomDateFormatter extends CalendarDateFormatter { - * - * public monthViewColumnHeader({date, locale}: DateFormatterParams): string { - * return formatDate(date, 'EEE', locale); // use short week days - * } - * - * } - * - * // in your component that uses the calendar - * providers: [{ - * provide: CalendarDateFormatter, - * useClass: CustomDateFormatter - * }] - * ``` - */ -class CalendarDateFormatter extends CalendarAngularDateFormatter {} -CalendarDateFormatter.ɵfac = /* @__PURE__ */(() => { - let ɵCalendarDateFormatter_BaseFactory; - return function CalendarDateFormatter_Factory(t) { - return (ɵCalendarDateFormatter_BaseFactory || (ɵCalendarDateFormatter_BaseFactory = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetInheritedFactory"](CalendarDateFormatter)))(t || CalendarDateFormatter); - }; -})(); -CalendarDateFormatter.ɵprov = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineInjectable"]({ - token: CalendarDateFormatter, - factory: CalendarDateFormatter.ɵfac -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarDateFormatter, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Injectable - }], null, null); -})(); - -/** - * This pipe is primarily for rendering the current view title. Example usage: - * ```typescript - * // where `viewDate` is a `Date` and view is `'month' | 'week' | 'day'` - * {{ viewDate | calendarDate:(view + 'ViewTitle'):'en' }} - * ``` - */ -class CalendarDatePipe { - constructor(dateFormatter, locale) { - this.dateFormatter = dateFormatter; - this.locale = locale; - } - transform(date, method, locale = this.locale, weekStartsOn = 0, excludeDays = [], daysInWeek) { - if (typeof this.dateFormatter[method] === 'undefined') { - const allowedMethods = Object.getOwnPropertyNames(Object.getPrototypeOf(CalendarDateFormatter.prototype)).filter(iMethod => iMethod !== 'constructor'); - throw new Error(`${method} is not a valid date formatter. Can only be one of ${allowedMethods.join(', ')}`); - } - return this.dateFormatter[method]({ - date, - locale, - weekStartsOn, - excludeDays, - daysInWeek - }); - } -} -CalendarDatePipe.ɵfac = function CalendarDatePipe_Factory(t) { - return new (t || CalendarDatePipe)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](CalendarDateFormatter, 16), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.LOCALE_ID, 16)); -}; -CalendarDatePipe.ɵpipe = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefinePipe"]({ - name: "calendarDate", - type: CalendarDatePipe, - pure: true -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarDatePipe, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Pipe, - args: [{ - name: 'calendarDate' - }] - }], function () { - return [{ - type: CalendarDateFormatter - }, { - type: undefined, - decorators: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Inject, - args: [_angular_core__WEBPACK_IMPORTED_MODULE_2__.LOCALE_ID] - }] - }]; - }, null); -})(); -class CalendarUtils { - constructor(dateAdapter) { - this.dateAdapter = dateAdapter; - } - getMonthView(args) { - return (0,calendar_utils__WEBPACK_IMPORTED_MODULE_1__.getMonthView)(this.dateAdapter, args); - } - getWeekViewHeader(args) { - return (0,calendar_utils__WEBPACK_IMPORTED_MODULE_1__.getWeekViewHeader)(this.dateAdapter, args); - } - getWeekView(args) { - return (0,calendar_utils__WEBPACK_IMPORTED_MODULE_1__.getWeekView)(this.dateAdapter, args); - } -} -CalendarUtils.ɵfac = function CalendarUtils_Factory(t) { - return new (t || CalendarUtils)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵinject"](DateAdapter)); -}; -CalendarUtils.ɵprov = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineInjectable"]({ - token: CalendarUtils, - factory: CalendarUtils.ɵfac -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarUtils, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Injectable - }], function () { - return [{ - type: DateAdapter - }]; - }, null); -})(); -const MOMENT = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.InjectionToken('Moment'); -/** - * This will use moment to do all date formatting. To use this class: - * - * ```typescript - * import { CalendarDateFormatter, CalendarMomentDateFormatter, MOMENT } from 'angular-calendar'; - * import moment from 'moment'; - * - * // in your component - * provide: [{ - * provide: MOMENT, useValue: moment - * }, { - * provide: CalendarDateFormatter, useClass: CalendarMomentDateFormatter - * }] - * - * ``` - */ -class CalendarMomentDateFormatter { - /** - * @hidden - */ - constructor(moment, dateAdapter) { - this.moment = moment; - this.dateAdapter = dateAdapter; - } - /** - * The month view header week day labels - */ - monthViewColumnHeader({ - date, - locale - }) { - return this.moment(date).locale(locale).format('dddd'); - } - /** - * The month view cell day number - */ - monthViewDayNumber({ - date, - locale - }) { - return this.moment(date).locale(locale).format('D'); - } - /** - * The month view title - */ - monthViewTitle({ - date, - locale - }) { - return this.moment(date).locale(locale).format('MMMM YYYY'); - } - /** - * The week view header week day labels - */ - weekViewColumnHeader({ - date, - locale - }) { - return this.moment(date).locale(locale).format('dddd'); - } - /** - * The week view sub header day and month labels - */ - weekViewColumnSubHeader({ - date, - locale - }) { - return this.moment(date).locale(locale).format('MMM D'); - } - /** - * The week view title - */ - weekViewTitle({ - date, - locale, - weekStartsOn, - excludeDays, - daysInWeek - }) { - const { - viewStart, - viewEnd - } = getWeekViewPeriod(this.dateAdapter, date, weekStartsOn, excludeDays, daysInWeek); - const format = (dateToFormat, showYear) => this.moment(dateToFormat).locale(locale).format('MMM D' + (showYear ? ', YYYY' : '')); - return `${format(viewStart, viewStart.getUTCFullYear() !== viewEnd.getUTCFullYear())} - ${format(viewEnd, true)}`; - } - /** - * The time formatting down the left hand side of the week view - */ - weekViewHour({ - date, - locale - }) { - return this.moment(date).locale(locale).format('ha'); - } - /** - * The time formatting down the left hand side of the day view - */ - dayViewHour({ - date, - locale - }) { - return this.moment(date).locale(locale).format('ha'); - } - /** - * The day view title - */ - dayViewTitle({ - date, - locale - }) { - return this.moment(date).locale(locale).format('dddd, LL'); // dddd = Thursday - } // LL = locale-dependent Month Day, Year -} -CalendarMomentDateFormatter.ɵfac = function CalendarMomentDateFormatter_Factory(t) { - return new (t || CalendarMomentDateFormatter)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵinject"](MOMENT), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵinject"](DateAdapter)); -}; -CalendarMomentDateFormatter.ɵprov = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineInjectable"]({ - token: CalendarMomentDateFormatter, - factory: CalendarMomentDateFormatter.ɵfac -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarMomentDateFormatter, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Injectable - }], function () { - return [{ - type: undefined, - decorators: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Inject, - args: [MOMENT] - }] - }, { - type: DateAdapter - }]; - }, null); -})(); - -/** - * This will use Intl API to do all date formatting. - * - * You will need to include a polyfill for older browsers. - */ -class CalendarNativeDateFormatter { - constructor(dateAdapter) { - this.dateAdapter = dateAdapter; - } - /** - * The month view header week day labels - */ - monthViewColumnHeader({ - date, - locale - }) { - return new Intl.DateTimeFormat(locale, { - weekday: 'long' - }).format(date); - } - /** - * The month view cell day number - */ - monthViewDayNumber({ - date, - locale - }) { - return new Intl.DateTimeFormat(locale, { - day: 'numeric' - }).format(date); - } - /** - * The month view title - */ - monthViewTitle({ - date, - locale - }) { - return new Intl.DateTimeFormat(locale, { - year: 'numeric', - month: 'long' - }).format(date); - } - /** - * The week view header week day labels - */ - weekViewColumnHeader({ - date, - locale - }) { - return new Intl.DateTimeFormat(locale, { - weekday: 'long' - }).format(date); - } - /** - * The week view sub header day and month labels - */ - weekViewColumnSubHeader({ - date, - locale - }) { - return new Intl.DateTimeFormat(locale, { - day: 'numeric', - month: 'short' - }).format(date); - } - /** - * The week view title - */ - weekViewTitle({ - date, - locale, - weekStartsOn, - excludeDays, - daysInWeek - }) { - const { - viewStart, - viewEnd - } = getWeekViewPeriod(this.dateAdapter, date, weekStartsOn, excludeDays, daysInWeek); - const format = (dateToFormat, showYear) => new Intl.DateTimeFormat(locale, { - day: 'numeric', - month: 'short', - year: showYear ? 'numeric' : undefined - }).format(dateToFormat); - return `${format(viewStart, viewStart.getUTCFullYear() !== viewEnd.getUTCFullYear())} - ${format(viewEnd, true)}`; - } - /** - * The time formatting down the left hand side of the week view - */ - weekViewHour({ - date, - locale - }) { - return new Intl.DateTimeFormat(locale, { - hour: 'numeric' - }).format(date); - } - /** - * The time formatting down the left hand side of the day view - */ - dayViewHour({ - date, - locale - }) { - return new Intl.DateTimeFormat(locale, { - hour: 'numeric' - }).format(date); - } - /** - * The day view title - */ - dayViewTitle({ - date, - locale - }) { - return new Intl.DateTimeFormat(locale, { - day: 'numeric', - month: 'long', - year: 'numeric', - weekday: 'long' - }).format(date); - } -} -CalendarNativeDateFormatter.ɵfac = function CalendarNativeDateFormatter_Factory(t) { - return new (t || CalendarNativeDateFormatter)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵinject"](DateAdapter)); -}; -CalendarNativeDateFormatter.ɵprov = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineInjectable"]({ - token: CalendarNativeDateFormatter, - factory: CalendarNativeDateFormatter.ɵfac -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarNativeDateFormatter, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Injectable - }], function () { - return [{ - type: DateAdapter - }]; - }, null); -})(); -var CalendarEventTimesChangedEventType; -(function (CalendarEventTimesChangedEventType) { - CalendarEventTimesChangedEventType["Drag"] = "drag"; - CalendarEventTimesChangedEventType["Drop"] = "drop"; - CalendarEventTimesChangedEventType["Resize"] = "resize"; -})(CalendarEventTimesChangedEventType || (CalendarEventTimesChangedEventType = {})); - -/** - * Import this module to if you're just using a singular view and want to save on bundle size. Example usage: - * - * ```typescript - * import { CalendarCommonModule, CalendarMonthModule } from 'angular-calendar'; - * - * @NgModule({ - * imports: [ - * CalendarCommonModule.forRoot(), - * CalendarMonthModule - * ] - * }) - * class MyModule {} - * ``` - * - */ -class CalendarCommonModule { - static forRoot(dateAdapter, config = {}) { - return { - ngModule: CalendarCommonModule, - providers: [dateAdapter, config.eventTitleFormatter || CalendarEventTitleFormatter, config.dateFormatter || CalendarDateFormatter, config.utils || CalendarUtils, config.a11y || CalendarA11y] - }; - } -} -CalendarCommonModule.ɵfac = function CalendarCommonModule_Factory(t) { - return new (t || CalendarCommonModule)(); -}; -CalendarCommonModule.ɵmod = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineNgModule"]({ - type: CalendarCommonModule -}); -CalendarCommonModule.ɵinj = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineInjector"]({ - providers: [_angular_common__WEBPACK_IMPORTED_MODULE_6__.I18nPluralPipe], - imports: [[_angular_common__WEBPACK_IMPORTED_MODULE_6__.CommonModule]] -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarCommonModule, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.NgModule, - args: [{ - declarations: [CalendarEventActionsComponent, CalendarEventTitleComponent, CalendarTooltipWindowComponent, CalendarTooltipDirective, CalendarPreviousViewDirective, CalendarNextViewDirective, CalendarTodayDirective, CalendarDatePipe, CalendarEventTitlePipe, CalendarA11yPipe, ClickDirective, KeydownEnterDirective], - imports: [_angular_common__WEBPACK_IMPORTED_MODULE_6__.CommonModule], - exports: [CalendarEventActionsComponent, CalendarEventTitleComponent, CalendarTooltipWindowComponent, CalendarTooltipDirective, CalendarPreviousViewDirective, CalendarNextViewDirective, CalendarTodayDirective, CalendarDatePipe, CalendarEventTitlePipe, CalendarA11yPipe, ClickDirective, KeydownEnterDirective], - providers: [_angular_common__WEBPACK_IMPORTED_MODULE_6__.I18nPluralPipe], - entryComponents: [CalendarTooltipWindowComponent] - }] - }], null, null); -})(); -class CalendarMonthViewHeaderComponent { - constructor() { - this.columnHeaderClicked = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - this.trackByWeekDayHeaderDate = trackByWeekDayHeaderDate; - } -} -CalendarMonthViewHeaderComponent.ɵfac = function CalendarMonthViewHeaderComponent_Factory(t) { - return new (t || CalendarMonthViewHeaderComponent)(); -}; -CalendarMonthViewHeaderComponent.ɵcmp = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ - type: CalendarMonthViewHeaderComponent, - selectors: [["mwl-calendar-month-view-header"]], - inputs: { - days: "days", - locale: "locale", - customTemplate: "customTemplate" - }, - outputs: { - columnHeaderClicked: "columnHeaderClicked" - }, - decls: 3, - vars: 6, - consts: [["defaultTemplate", ""], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], ["role", "row", 1, "cal-cell-row", "cal-header"], ["class", "cal-cell", "tabindex", "0", "role", "columnheader", 3, "cal-past", "cal-today", "cal-future", "cal-weekend", "ngClass", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["tabindex", "0", "role", "columnheader", 1, "cal-cell", 3, "ngClass", "click"]], - template: function CalendarMonthViewHeaderComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](0, CalendarMonthViewHeaderComponent_ng_template_0_Template, 2, 2, "ng-template", null, 0, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplateRefExtractor"])(2, CalendarMonthViewHeaderComponent_ng_template_2_Template, 0, 0, "ng-template", 1); - } - if (rf & 2) { - const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngTemplateOutlet", ctx.customTemplate || _r1)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction3"](2, _c5, ctx.days, ctx.locale, ctx.trackByWeekDayHeaderDate)); - } - }, - dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_6__.NgForOf, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgClass, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgTemplateOutlet, CalendarDatePipe], - encapsulation: 2 -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarMonthViewHeaderComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Component, - args: [{ - selector: 'mwl-calendar-month-view-header', - template: ` - -
-
- {{ day.date | calendarDate: 'monthViewColumnHeader':locale }} -
-
-
- - - ` - }] - }], null, { - days: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - locale: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - customTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - columnHeaderClicked: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }] - }); -})(); -class CalendarMonthCellComponent { - constructor() { - this.highlightDay = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - this.unhighlightDay = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - this.eventClicked = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - this.trackByEventId = trackByEventId; - this.validateDrag = isWithinThreshold; - } -} -CalendarMonthCellComponent.ɵfac = function CalendarMonthCellComponent_Factory(t) { - return new (t || CalendarMonthCellComponent)(); -}; -CalendarMonthCellComponent.ɵcmp = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ - type: CalendarMonthCellComponent, - selectors: [["mwl-calendar-month-cell"]], - hostAttrs: [1, "cal-cell", "cal-day-cell"], - hostVars: 18, - hostBindings: function CalendarMonthCellComponent_HostBindings(rf, ctx) { - if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵclassProp"]("cal-past", ctx.day.isPast)("cal-today", ctx.day.isToday)("cal-future", ctx.day.isFuture)("cal-weekend", ctx.day.isWeekend)("cal-in-month", ctx.day.inMonth)("cal-out-month", !ctx.day.inMonth)("cal-has-events", ctx.day.events.length > 0)("cal-open", ctx.day === ctx.openDay)("cal-event-highlight", !!ctx.day.backgroundColor); - } - }, - inputs: { - day: "day", - openDay: "openDay", - locale: "locale", - tooltipPlacement: "tooltipPlacement", - tooltipAppendToBody: "tooltipAppendToBody", - customTemplate: "customTemplate", - tooltipTemplate: "tooltipTemplate", - tooltipDelay: "tooltipDelay" - }, - outputs: { - highlightDay: "highlightDay", - unhighlightDay: "unhighlightDay", - eventClicked: "eventClicked" - }, - decls: 3, - vars: 15, - consts: [["defaultTemplate", ""], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "cal-cell-top"], ["aria-hidden", "true"], ["class", "cal-day-badge", 4, "ngIf"], [1, "cal-day-number"], ["class", "cal-events", 4, "ngIf"], [1, "cal-day-badge"], [1, "cal-events"], ["class", "cal-event", "mwlDraggable", "", "dragActiveClass", "cal-drag-active", 3, "ngStyle", "ngClass", "mwlCalendarTooltip", "tooltipPlacement", "tooltipEvent", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "cal-draggable", "dropData", "dragAxis", "validateDrag", "touchStartLongPress", "mouseenter", "mouseleave", "mwlClick", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["mwlDraggable", "", "dragActiveClass", "cal-drag-active", 1, "cal-event", 3, "ngStyle", "ngClass", "mwlCalendarTooltip", "tooltipPlacement", "tooltipEvent", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "dropData", "dragAxis", "validateDrag", "touchStartLongPress", "mouseenter", "mouseleave", "mwlClick"]], - template: function CalendarMonthCellComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](0, CalendarMonthCellComponent_ng_template_0_Template, 8, 14, "ng-template", null, 0, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplateRefExtractor"])(2, CalendarMonthCellComponent_ng_template_2_Template, 0, 0, "ng-template", 1); - } - if (rf & 2) { - const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngTemplateOutlet", ctx.customTemplate || _r1)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunctionV"](2, _c11, [ctx.day, ctx.openDay, ctx.locale, ctx.tooltipPlacement, ctx.highlightDay, ctx.unhighlightDay, ctx.eventClicked, ctx.tooltipTemplate, ctx.tooltipAppendToBody, ctx.tooltipDelay, ctx.trackByEventId, ctx.validateDrag])); - } - }, - dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_6__.NgIf, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgForOf, angular_draggable_droppable__WEBPACK_IMPORTED_MODULE_9__.DraggableDirective, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgStyle, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgClass, CalendarTooltipDirective, ClickDirective, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgTemplateOutlet, CalendarA11yPipe, CalendarDatePipe, CalendarEventTitlePipe], - encapsulation: 2 -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarMonthCellComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Component, - args: [{ - selector: 'mwl-calendar-month-cell', - template: ` - -
- -
-
-
-
-
- - - `, - // eslint-disable-next-line @angular-eslint/no-host-metadata-property - host: { - class: 'cal-cell cal-day-cell', - '[class.cal-past]': 'day.isPast', - '[class.cal-today]': 'day.isToday', - '[class.cal-future]': 'day.isFuture', - '[class.cal-weekend]': 'day.isWeekend', - '[class.cal-in-month]': 'day.inMonth', - '[class.cal-out-month]': '!day.inMonth', - '[class.cal-has-events]': 'day.events.length > 0', - '[class.cal-open]': 'day === openDay', - '[class.cal-event-highlight]': '!!day.backgroundColor' - } - }] - }], null, { - day: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - openDay: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - locale: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipPlacement: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipAppendToBody: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - customTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipDelay: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - highlightDay: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - unhighlightDay: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - eventClicked: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }] - }); -})(); -const collapseAnimation = (0,_angular_animations__WEBPACK_IMPORTED_MODULE_10__.trigger)('collapse', [(0,_angular_animations__WEBPACK_IMPORTED_MODULE_10__.state)('void', (0,_angular_animations__WEBPACK_IMPORTED_MODULE_10__.style)({ - height: 0, - overflow: 'hidden', - 'padding-top': 0, - 'padding-bottom': 0 -})), (0,_angular_animations__WEBPACK_IMPORTED_MODULE_10__.state)('*', (0,_angular_animations__WEBPACK_IMPORTED_MODULE_10__.style)({ - height: '*', - overflow: 'hidden', - 'padding-top': '*', - 'padding-bottom': '*' -})), (0,_angular_animations__WEBPACK_IMPORTED_MODULE_10__.transition)('* => void', (0,_angular_animations__WEBPACK_IMPORTED_MODULE_10__.animate)('150ms ease-out')), (0,_angular_animations__WEBPACK_IMPORTED_MODULE_10__.transition)('void => *', (0,_angular_animations__WEBPACK_IMPORTED_MODULE_10__.animate)('150ms ease-in'))]); -class CalendarOpenDayEventsComponent { - constructor() { - this.isOpen = false; - this.eventClicked = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - this.trackByEventId = trackByEventId; - this.validateDrag = isWithinThreshold; - } -} -CalendarOpenDayEventsComponent.ɵfac = function CalendarOpenDayEventsComponent_Factory(t) { - return new (t || CalendarOpenDayEventsComponent)(); -}; -CalendarOpenDayEventsComponent.ɵcmp = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ - type: CalendarOpenDayEventsComponent, - selectors: [["mwl-calendar-open-day-events"]], - inputs: { - locale: "locale", - isOpen: "isOpen", - events: "events", - customTemplate: "customTemplate", - eventTitleTemplate: "eventTitleTemplate", - eventActionsTemplate: "eventActionsTemplate", - date: "date" - }, - outputs: { - eventClicked: "eventClicked" - }, - decls: 3, - vars: 8, - consts: [["defaultTemplate", ""], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], ["class", "cal-open-day-events", "role", "application", 4, "ngIf"], ["role", "application", 1, "cal-open-day-events"], ["tabindex", "-1", "role", "alert"], ["tabindex", "0", "role", "landmark"], ["mwlDraggable", "", "dragActiveClass", "cal-drag-active", 3, "ngClass", "cal-draggable", "dropData", "dragAxis", "validateDrag", "touchStartLongPress", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["mwlDraggable", "", "dragActiveClass", "cal-drag-active", 3, "ngClass", "dropData", "dragAxis", "validateDrag", "touchStartLongPress"], [1, "cal-event", 3, "ngStyle"], ["view", "month", "tabindex", "0", 3, "event", "customTemplate", "mwlClick", "mwlKeydownEnter"], [3, "event", "customTemplate"]], - template: function CalendarOpenDayEventsComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](0, CalendarOpenDayEventsComponent_ng_template_0_Template, 1, 1, "ng-template", null, 0, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplateRefExtractor"])(2, CalendarOpenDayEventsComponent_ng_template_2_Template, 0, 0, "ng-template", 1); - } - if (rf & 2) { - const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngTemplateOutlet", ctx.customTemplate || _r1)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction5"](2, _c15, ctx.events, ctx.eventClicked, ctx.isOpen, ctx.trackByEventId, ctx.validateDrag)); - } - }, - dependencies: [CalendarEventTitleComponent, CalendarEventActionsComponent, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgIf, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgForOf, angular_draggable_droppable__WEBPACK_IMPORTED_MODULE_9__.DraggableDirective, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgClass, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgStyle, ClickDirective, KeydownEnterDirective, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgTemplateOutlet, CalendarA11yPipe], - encapsulation: 2, - data: { - animation: [collapseAnimation] - } -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarOpenDayEventsComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Component, - args: [{ - selector: 'mwl-calendar-open-day-events', - template: ` - -
- - -
- - - &ngsp; - - - &ngsp; - - -
-
-
- - - `, - animations: [collapseAnimation] - }] - }], null, { - locale: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - isOpen: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - events: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - customTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - eventTitleTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - eventActionsTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - date: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - eventClicked: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }] - }); -})(); - -/** - * Shows all events on a given month. Example usage: - * - * ```typescript - * - * - * ``` - */ -class CalendarMonthViewComponent { - /** - * @hidden - */ - constructor(cdr, utils, locale, dateAdapter) { - this.cdr = cdr; - this.utils = utils; - this.dateAdapter = dateAdapter; - /** - * An array of events to display on view. - * The schema is available here: https://github.com/mattlewis92/calendar-utils/blob/c51689985f59a271940e30bc4e2c4e1fee3fcb5c/src/calendarUtils.ts#L49-L63 - */ - this.events = []; - /** - * An array of day indexes (0 = sunday, 1 = monday etc) that will be hidden on the view - */ - this.excludeDays = []; - /** - * Whether the events list for the day of the `viewDate` option is visible or not - */ - this.activeDayIsOpen = false; - /** - * The placement of the event tooltip - */ - this.tooltipPlacement = 'auto'; - /** - * Whether to append tooltips to the body or next to the trigger element - */ - this.tooltipAppendToBody = true; - /** - * The delay in milliseconds before the tooltip should be displayed. If not provided the tooltip - * will be displayed immediately. - */ - this.tooltipDelay = null; - /** - * An output that will be called before the view is rendered for the current month. - * If you add the `cssClass` property to a day in the body it will add that class to the cell element in the template - */ - this.beforeViewRender = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * Called when the day cell is clicked - */ - this.dayClicked = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * Called when the event title is clicked - */ - this.eventClicked = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * Called when a header week day is clicked. Returns ISO day number. - */ - this.columnHeaderClicked = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * Called when an event is dragged and dropped - */ - this.eventTimesChanged = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * @hidden - */ - this.trackByRowOffset = (index, offset) => this.view.days.slice(offset, this.view.totalDaysVisibleInWeek).map(day => day.date.toISOString()).join('-'); - /** - * @hidden - */ - this.trackByDate = (index, day) => day.date.toISOString(); - this.locale = locale; - } - /** - * @hidden - */ - ngOnInit() { - if (this.refresh) { - this.refreshSubscription = this.refresh.subscribe(() => { - this.refreshAll(); - this.cdr.markForCheck(); - }); - } - } - /** - * @hidden - */ - ngOnChanges(changes) { - const refreshHeader = changes.viewDate || changes.excludeDays || changes.weekendDays; - const refreshBody = changes.viewDate || changes.events || changes.excludeDays || changes.weekendDays; - if (refreshHeader) { - this.refreshHeader(); - } - if (changes.events) { - validateEvents(this.events); - } - if (refreshBody) { - this.refreshBody(); - } - if (refreshHeader || refreshBody) { - this.emitBeforeViewRender(); - } - if (changes.activeDayIsOpen || changes.viewDate || changes.events || changes.excludeDays || changes.activeDay) { - this.checkActiveDayIsOpen(); - } - } - /** - * @hidden - */ - ngOnDestroy() { - if (this.refreshSubscription) { - this.refreshSubscription.unsubscribe(); - } - } - /** - * @hidden - */ - toggleDayHighlight(event, isHighlighted) { - this.view.days.forEach(day => { - if (isHighlighted && day.events.indexOf(event) > -1) { - day.backgroundColor = event.color && event.color.secondary || '#D1E8FF'; - } else { - delete day.backgroundColor; - } - }); - } - /** - * @hidden - */ - eventDropped(droppedOn, event, draggedFrom) { - if (droppedOn !== draggedFrom) { - const year = this.dateAdapter.getYear(droppedOn.date); - const month = this.dateAdapter.getMonth(droppedOn.date); - const date = this.dateAdapter.getDate(droppedOn.date); - const newStart = this.dateAdapter.setDate(this.dateAdapter.setMonth(this.dateAdapter.setYear(event.start, year), month), date); - let newEnd; - if (event.end) { - const secondsDiff = this.dateAdapter.differenceInSeconds(newStart, event.start); - newEnd = this.dateAdapter.addSeconds(event.end, secondsDiff); - } - this.eventTimesChanged.emit({ - event, - newStart, - newEnd, - day: droppedOn, - type: CalendarEventTimesChangedEventType.Drop - }); - } - } - refreshHeader() { - this.columnHeaders = this.utils.getWeekViewHeader({ - viewDate: this.viewDate, - weekStartsOn: this.weekStartsOn, - excluded: this.excludeDays, - weekendDays: this.weekendDays - }); - } - refreshBody() { - this.view = this.utils.getMonthView({ - events: this.events, - viewDate: this.viewDate, - weekStartsOn: this.weekStartsOn, - excluded: this.excludeDays, - weekendDays: this.weekendDays - }); - } - checkActiveDayIsOpen() { - if (this.activeDayIsOpen === true) { - const activeDay = this.activeDay || this.viewDate; - this.openDay = this.view.days.find(day => this.dateAdapter.isSameDay(day.date, activeDay)); - const index = this.view.days.indexOf(this.openDay); - this.openRowIndex = Math.floor(index / this.view.totalDaysVisibleInWeek) * this.view.totalDaysVisibleInWeek; - } else { - this.openRowIndex = null; - this.openDay = null; - } - } - refreshAll() { - this.refreshHeader(); - this.refreshBody(); - this.emitBeforeViewRender(); - this.checkActiveDayIsOpen(); - } - emitBeforeViewRender() { - if (this.columnHeaders && this.view) { - this.beforeViewRender.emit({ - header: this.columnHeaders, - body: this.view.days, - period: this.view.period - }); - } - } -} -CalendarMonthViewComponent.ɵfac = function CalendarMonthViewComponent_Factory(t) { - return new (t || CalendarMonthViewComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.ChangeDetectorRef), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](CalendarUtils), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.LOCALE_ID), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](DateAdapter)); -}; -CalendarMonthViewComponent.ɵcmp = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ - type: CalendarMonthViewComponent, - selectors: [["mwl-calendar-month-view"]], - inputs: { - viewDate: "viewDate", - events: "events", - excludeDays: "excludeDays", - activeDayIsOpen: "activeDayIsOpen", - activeDay: "activeDay", - refresh: "refresh", - locale: "locale", - tooltipPlacement: "tooltipPlacement", - tooltipTemplate: "tooltipTemplate", - tooltipAppendToBody: "tooltipAppendToBody", - tooltipDelay: "tooltipDelay", - weekStartsOn: "weekStartsOn", - headerTemplate: "headerTemplate", - cellTemplate: "cellTemplate", - openDayEventsTemplate: "openDayEventsTemplate", - eventTitleTemplate: "eventTitleTemplate", - eventActionsTemplate: "eventActionsTemplate", - weekendDays: "weekendDays" - }, - outputs: { - beforeViewRender: "beforeViewRender", - dayClicked: "dayClicked", - eventClicked: "eventClicked", - columnHeaderClicked: "columnHeaderClicked", - eventTimesChanged: "eventTimesChanged" - }, - features: [_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵNgOnChangesFeature"]], - decls: 4, - vars: 5, - consts: [["role", "grid", 1, "cal-month-view"], [3, "days", "locale", "customTemplate", "columnHeaderClicked"], [1, "cal-days"], [4, "ngFor", "ngForOf", "ngForTrackBy"], ["role", "row", 1, "cal-cell-row"], ["role", "gridcell", "mwlDroppable", "", "dragOverClass", "cal-drag-over", 3, "ngClass", "day", "openDay", "locale", "tooltipPlacement", "tooltipAppendToBody", "tooltipTemplate", "tooltipDelay", "customTemplate", "ngStyle", "clickListenerDisabled", "mwlClick", "mwlKeydownEnter", "highlightDay", "unhighlightDay", "drop", "eventClicked", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["mwlDroppable", "", "dragOverClass", "cal-drag-over", 3, "locale", "isOpen", "events", "date", "customTemplate", "eventTitleTemplate", "eventActionsTemplate", "eventClicked", "drop"], ["role", "gridcell", "mwlDroppable", "", "dragOverClass", "cal-drag-over", 3, "ngClass", "day", "openDay", "locale", "tooltipPlacement", "tooltipAppendToBody", "tooltipTemplate", "tooltipDelay", "customTemplate", "ngStyle", "clickListenerDisabled", "mwlClick", "mwlKeydownEnter", "highlightDay", "unhighlightDay", "drop", "eventClicked"]], - template: function CalendarMonthViewComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 0)(1, "mwl-calendar-month-view-header", 1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("columnHeaderClicked", function CalendarMonthViewComponent_Template_mwl_calendar_month_view_header_columnHeaderClicked_1_listener($event) { - return ctx.columnHeaderClicked.emit($event); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](2, "div", 2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](3, CalendarMonthViewComponent_div_3_Template, 5, 13, "div", 3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()(); - } - if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("days", ctx.columnHeaders)("locale", ctx.locale)("customTemplate", ctx.headerTemplate); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngForOf", ctx.view.rowOffsets)("ngForTrackBy", ctx.trackByRowOffset); - } - }, - dependencies: [CalendarMonthViewHeaderComponent, CalendarMonthCellComponent, CalendarOpenDayEventsComponent, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgForOf, angular_draggable_droppable__WEBPACK_IMPORTED_MODULE_9__.DroppableDirective, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgClass, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgStyle, ClickDirective, KeydownEnterDirective, CalendarA11yPipe, _angular_common__WEBPACK_IMPORTED_MODULE_6__.SlicePipe], - encapsulation: 2 -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarMonthViewComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Component, - args: [{ - selector: 'mwl-calendar-month-view', - template: ` -
- - -
-
-
- - -
- - -
-
-
- ` - }] - }], function () { - return [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ChangeDetectorRef - }, { - type: CalendarUtils - }, { - type: undefined, - decorators: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Inject, - args: [_angular_core__WEBPACK_IMPORTED_MODULE_2__.LOCALE_ID] - }] - }, { - type: DateAdapter - }]; - }, { - viewDate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - events: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - excludeDays: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - activeDayIsOpen: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - activeDay: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - refresh: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - locale: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipPlacement: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipAppendToBody: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipDelay: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - weekStartsOn: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - headerTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - cellTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - openDayEventsTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - eventTitleTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - eventActionsTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - weekendDays: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - beforeViewRender: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - dayClicked: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - eventClicked: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - columnHeaderClicked: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - eventTimesChanged: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }] - }); -})(); -class CalendarMonthModule {} -CalendarMonthModule.ɵfac = function CalendarMonthModule_Factory(t) { - return new (t || CalendarMonthModule)(); -}; -CalendarMonthModule.ɵmod = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineNgModule"]({ - type: CalendarMonthModule -}); -CalendarMonthModule.ɵinj = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineInjector"]({ - imports: [[_angular_common__WEBPACK_IMPORTED_MODULE_6__.CommonModule, angular_draggable_droppable__WEBPACK_IMPORTED_MODULE_9__.DragAndDropModule, CalendarCommonModule], angular_draggable_droppable__WEBPACK_IMPORTED_MODULE_9__.DragAndDropModule] -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarMonthModule, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.NgModule, - args: [{ - imports: [_angular_common__WEBPACK_IMPORTED_MODULE_6__.CommonModule, angular_draggable_droppable__WEBPACK_IMPORTED_MODULE_9__.DragAndDropModule, CalendarCommonModule], - declarations: [CalendarMonthViewComponent, CalendarMonthCellComponent, CalendarOpenDayEventsComponent, CalendarMonthViewHeaderComponent], - exports: [angular_draggable_droppable__WEBPACK_IMPORTED_MODULE_9__.DragAndDropModule, CalendarMonthViewComponent, CalendarMonthCellComponent, CalendarOpenDayEventsComponent, CalendarMonthViewHeaderComponent] - }] - }], null, null); -})(); -class CalendarDragHelper { - constructor(dragContainerElement, draggableElement) { - this.dragContainerElement = dragContainerElement; - this.startPosition = draggableElement.getBoundingClientRect(); - } - validateDrag({ - x, - y, - snapDraggedEvents, - dragAlreadyMoved, - transform - }) { - const isDraggedWithinThreshold = isWithinThreshold({ - x, - y - }) || dragAlreadyMoved; - if (snapDraggedEvents) { - const inner = Object.assign({}, this.startPosition, { - left: this.startPosition.left + transform.x, - right: this.startPosition.right + transform.x, - top: this.startPosition.top + transform.y, - bottom: this.startPosition.bottom + transform.y - }); - if (isDraggedWithinThreshold) { - const outer = this.dragContainerElement.getBoundingClientRect(); - const isTopInside = outer.top < inner.top && inner.top < outer.bottom; - const isBottomInside = outer.top < inner.bottom && inner.bottom < outer.bottom; - return isInsideLeftAndRight(outer, inner) && (isTopInside || isBottomInside); - } - /* istanbul ignore next */ - return false; - } else { - return isDraggedWithinThreshold; - } - } -} -class CalendarResizeHelper { - constructor(resizeContainerElement, minWidth, rtl) { - this.resizeContainerElement = resizeContainerElement; - this.minWidth = minWidth; - this.rtl = rtl; - } - validateResize({ - rectangle, - edges - }) { - if (this.rtl) { - // TODO - find a way of testing this, for some reason the tests always fail but it does actually work - /* istanbul ignore next */ - if (typeof edges.left !== 'undefined') { - rectangle.left -= edges.left; - rectangle.right += edges.left; - } else if (typeof edges.right !== 'undefined') { - rectangle.left += edges.right; - rectangle.right -= edges.right; - } - rectangle.width = rectangle.right - rectangle.left; - } - if (this.minWidth && Math.ceil(rectangle.width) < Math.ceil(this.minWidth)) { - return false; - } - return isInside(this.resizeContainerElement.getBoundingClientRect(), rectangle); - } -} -class CalendarWeekViewHeaderComponent { - constructor() { - this.dayHeaderClicked = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - this.eventDropped = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - this.dragEnter = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - this.trackByWeekDayHeaderDate = trackByWeekDayHeaderDate; - } -} -CalendarWeekViewHeaderComponent.ɵfac = function CalendarWeekViewHeaderComponent_Factory(t) { - return new (t || CalendarWeekViewHeaderComponent)(); -}; -CalendarWeekViewHeaderComponent.ɵcmp = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ - type: CalendarWeekViewHeaderComponent, - selectors: [["mwl-calendar-week-view-header"]], - inputs: { - days: "days", - locale: "locale", - customTemplate: "customTemplate" - }, - outputs: { - dayHeaderClicked: "dayHeaderClicked", - eventDropped: "eventDropped", - dragEnter: "dragEnter" - }, - decls: 3, - vars: 9, - consts: [["defaultTemplate", ""], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], ["role", "row", 1, "cal-day-headers"], ["class", "cal-header", "mwlDroppable", "", "dragOverClass", "cal-drag-over", "tabindex", "0", "role", "columnheader", 3, "cal-past", "cal-today", "cal-future", "cal-weekend", "ngClass", "mwlClick", "drop", "dragEnter", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["mwlDroppable", "", "dragOverClass", "cal-drag-over", "tabindex", "0", "role", "columnheader", 1, "cal-header", 3, "ngClass", "mwlClick", "drop", "dragEnter"]], - template: function CalendarWeekViewHeaderComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](0, CalendarWeekViewHeaderComponent_ng_template_0_Template, 2, 2, "ng-template", null, 0, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplateRefExtractor"])(2, CalendarWeekViewHeaderComponent_ng_template_2_Template, 0, 0, "ng-template", 1); - } - if (rf & 2) { - const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngTemplateOutlet", ctx.customTemplate || _r1)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction6"](2, _c16, ctx.days, ctx.locale, ctx.dayHeaderClicked, ctx.eventDropped, ctx.dragEnter, ctx.trackByWeekDayHeaderDate)); - } - }, - dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_6__.NgForOf, angular_draggable_droppable__WEBPACK_IMPORTED_MODULE_9__.DroppableDirective, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgClass, ClickDirective, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgTemplateOutlet, CalendarDatePipe], - encapsulation: 2 -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarWeekViewHeaderComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Component, - args: [{ - selector: 'mwl-calendar-week-view-header', - template: ` - -
-
- {{ day.date | calendarDate: 'weekViewColumnHeader':locale }}
- {{ - day.date | calendarDate: 'weekViewColumnSubHeader':locale - }} -
-
-
- - - ` - }] - }], null, { - days: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - locale: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - customTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dayHeaderClicked: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - eventDropped: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - dragEnter: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }] - }); -})(); -class CalendarWeekViewEventComponent { - constructor() { - this.eventClicked = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - } -} -CalendarWeekViewEventComponent.ɵfac = function CalendarWeekViewEventComponent_Factory(t) { - return new (t || CalendarWeekViewEventComponent)(); -}; -CalendarWeekViewEventComponent.ɵcmp = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ - type: CalendarWeekViewEventComponent, - selectors: [["mwl-calendar-week-view-event"]], - inputs: { - locale: "locale", - weekEvent: "weekEvent", - tooltipPlacement: "tooltipPlacement", - tooltipAppendToBody: "tooltipAppendToBody", - tooltipDisabled: "tooltipDisabled", - tooltipDelay: "tooltipDelay", - customTemplate: "customTemplate", - eventTitleTemplate: "eventTitleTemplate", - eventActionsTemplate: "eventActionsTemplate", - tooltipTemplate: "tooltipTemplate", - column: "column", - daysInWeek: "daysInWeek" - }, - outputs: { - eventClicked: "eventClicked" - }, - decls: 3, - vars: 12, - consts: [["defaultTemplate", ""], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], ["tabindex", "0", "role", "application", 1, "cal-event", 3, "ngStyle", "mwlCalendarTooltip", "tooltipPlacement", "tooltipEvent", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "mwlClick", "mwlKeydownEnter"], [3, "event", "customTemplate"], [3, "event", "customTemplate", "view"]], - template: function CalendarWeekViewEventComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](0, CalendarWeekViewEventComponent_ng_template_0_Template, 6, 26, "ng-template", null, 0, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplateRefExtractor"])(2, CalendarWeekViewEventComponent_ng_template_2_Template, 0, 0, "ng-template", 1); - } - if (rf & 2) { - const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngTemplateOutlet", ctx.customTemplate || _r1)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunctionV"](2, _c18, [ctx.weekEvent, ctx.tooltipPlacement, ctx.eventClicked, ctx.tooltipTemplate, ctx.tooltipAppendToBody, ctx.tooltipDisabled, ctx.tooltipDelay, ctx.column, ctx.daysInWeek])); - } - }, - dependencies: [CalendarEventActionsComponent, CalendarEventTitleComponent, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgStyle, CalendarTooltipDirective, ClickDirective, KeydownEnterDirective, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgTemplateOutlet, CalendarEventTitlePipe, CalendarA11yPipe], - encapsulation: 2 -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarWeekViewEventComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Component, - args: [{ - selector: 'mwl-calendar-week-view-event', - template: ` - -
- - - &ngsp; - - -
-
- - - ` - }] - }], null, { - locale: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - weekEvent: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipPlacement: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipAppendToBody: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipDisabled: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipDelay: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - customTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - eventTitleTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - eventActionsTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - column: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - daysInWeek: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - eventClicked: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }] - }); -})(); -class CalendarWeekViewHourSegmentComponent {} -CalendarWeekViewHourSegmentComponent.ɵfac = function CalendarWeekViewHourSegmentComponent_Factory(t) { - return new (t || CalendarWeekViewHourSegmentComponent)(); -}; -CalendarWeekViewHourSegmentComponent.ɵcmp = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ - type: CalendarWeekViewHourSegmentComponent, - selectors: [["mwl-calendar-week-view-hour-segment"]], - inputs: { - segment: "segment", - segmentHeight: "segmentHeight", - locale: "locale", - isTimeLabel: "isTimeLabel", - daysInWeek: "daysInWeek", - customTemplate: "customTemplate" - }, - decls: 3, - vars: 8, - consts: [["defaultTemplate", ""], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "cal-hour-segment", 3, "ngClass"], ["class", "cal-time", 4, "ngIf"], [1, "cal-time"]], - template: function CalendarWeekViewHourSegmentComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](0, CalendarWeekViewHourSegmentComponent_ng_template_0_Template, 3, 13, "ng-template", null, 0, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplateRefExtractor"])(2, CalendarWeekViewHourSegmentComponent_ng_template_2_Template, 0, 0, "ng-template", 1); - } - if (rf & 2) { - const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngTemplateOutlet", ctx.customTemplate || _r1)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction5"](2, _c19, ctx.segment, ctx.locale, ctx.segmentHeight, ctx.isTimeLabel, ctx.daysInWeek)); - } - }, - dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_6__.NgClass, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgIf, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgTemplateOutlet, CalendarA11yPipe, CalendarDatePipe], - encapsulation: 2 -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarWeekViewHourSegmentComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Component, - args: [{ - selector: 'mwl-calendar-week-view-hour-segment', - template: ` - -
-
- {{ - segment.displayDate - | calendarDate - : (daysInWeek === 1 ? 'dayViewHour' : 'weekViewHour') - : locale - }} -
-
-
- - - ` - }] - }], null, { - segment: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - segmentHeight: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - locale: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - isTimeLabel: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - daysInWeek: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - customTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }] - }); -})(); -class CalendarWeekViewCurrentTimeMarkerComponent { - constructor(dateAdapter, zone) { - this.dateAdapter = dateAdapter; - this.zone = zone; - this.columnDate$ = new rxjs__WEBPACK_IMPORTED_MODULE_11__.BehaviorSubject(undefined); - this.marker$ = this.zone.onStable.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_12__.switchMap)(() => (0,rxjs__WEBPACK_IMPORTED_MODULE_13__.interval)(60 * 1000)), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_14__.startWith)(0), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_15__.switchMapTo)(this.columnDate$), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_16__.map)(columnDate => { - const startOfDay = this.dateAdapter.setMinutes(this.dateAdapter.setHours(columnDate, this.dayStartHour), this.dayStartMinute); - const endOfDay = this.dateAdapter.setMinutes(this.dateAdapter.setHours(columnDate, this.dayEndHour), this.dayEndMinute); - const hourHeightModifier = this.hourSegments * this.hourSegmentHeight / (this.hourDuration || 60); - const now = new Date(); - return { - isVisible: this.dateAdapter.isSameDay(columnDate, now) && now >= startOfDay && now <= endOfDay, - top: this.dateAdapter.differenceInMinutes(now, startOfDay) * hourHeightModifier - }; - })); - } - ngOnChanges(changes) { - if (changes.columnDate) { - this.columnDate$.next(changes.columnDate.currentValue); - } - } -} -CalendarWeekViewCurrentTimeMarkerComponent.ɵfac = function CalendarWeekViewCurrentTimeMarkerComponent_Factory(t) { - return new (t || CalendarWeekViewCurrentTimeMarkerComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](DateAdapter), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.NgZone)); -}; -CalendarWeekViewCurrentTimeMarkerComponent.ɵcmp = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ - type: CalendarWeekViewCurrentTimeMarkerComponent, - selectors: [["mwl-calendar-week-view-current-time-marker"]], - inputs: { - columnDate: "columnDate", - dayStartHour: "dayStartHour", - dayStartMinute: "dayStartMinute", - dayEndHour: "dayEndHour", - dayEndMinute: "dayEndMinute", - hourSegments: "hourSegments", - hourDuration: "hourDuration", - hourSegmentHeight: "hourSegmentHeight", - customTemplate: "customTemplate" - }, - features: [_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵNgOnChangesFeature"]], - decls: 5, - vars: 14, - consts: [["defaultTemplate", ""], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], ["class", "cal-current-time-marker", 3, "top", 4, "ngIf"], [1, "cal-current-time-marker"]], - template: function CalendarWeekViewCurrentTimeMarkerComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](0, CalendarWeekViewCurrentTimeMarkerComponent_ng_template_0_Template, 1, 1, "ng-template", null, 0, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplateRefExtractor"])(2, CalendarWeekViewCurrentTimeMarkerComponent_ng_template_2_Template, 0, 0, "ng-template", 1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](3, "async"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](4, "async"); - } - if (rf & 2) { - const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](1); - let tmp_1_0; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngTemplateOutlet", ctx.customTemplate || _r1)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction7"](6, _c20, ctx.columnDate, ctx.dayStartHour, ctx.dayStartMinute, ctx.dayEndHour, ctx.dayEndMinute, (tmp_1_0 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind1"](3, 2, ctx.marker$)) == null ? null : tmp_1_0.isVisible, (tmp_1_0 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind1"](4, 4, ctx.marker$)) == null ? null : tmp_1_0.top)); - } - }, - dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_6__.NgIf, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgTemplateOutlet, _angular_common__WEBPACK_IMPORTED_MODULE_6__.AsyncPipe], - encapsulation: 2 -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarWeekViewCurrentTimeMarkerComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Component, - args: [{ - selector: 'mwl-calendar-week-view-current-time-marker', - template: ` - -
-
- - - ` - }] - }], function () { - return [{ - type: DateAdapter - }, { - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.NgZone - }]; - }, { - columnDate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dayStartHour: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dayStartMinute: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dayEndHour: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dayEndMinute: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - hourSegments: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - hourDuration: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - hourSegmentHeight: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - customTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }] - }); -})(); - -/** - * Shows all events on a given week. Example usage: - * - * ```typescript - * - * - * ``` - */ -class CalendarWeekViewComponent { - /** - * @hidden - */ - constructor(cdr, utils, locale, dateAdapter, element) { - this.cdr = cdr; - this.utils = utils; - this.dateAdapter = dateAdapter; - this.element = element; - /** - * An array of events to display on view - * The schema is available here: https://github.com/mattlewis92/calendar-utils/blob/c51689985f59a271940e30bc4e2c4e1fee3fcb5c/src/calendarUtils.ts#L49-L63 - */ - this.events = []; - /** - * An array of day indexes (0 = sunday, 1 = monday etc) that will be hidden on the view - */ - this.excludeDays = []; - /** - * The placement of the event tooltip - */ - this.tooltipPlacement = 'auto'; - /** - * Whether to append tooltips to the body or next to the trigger element - */ - this.tooltipAppendToBody = true; - /** - * The delay in milliseconds before the tooltip should be displayed. If not provided the tooltip - * will be displayed immediately. - */ - this.tooltipDelay = null; - /** - * The precision to display events. - * `days` will round event start and end dates to the nearest day and `minutes` will not do this rounding - */ - this.precision = 'days'; - /** - * Whether to snap events to a grid when dragging - */ - this.snapDraggedEvents = true; - /** - * The number of segments in an hour. Must divide equally into 60. - */ - this.hourSegments = 2; - /** - * The height in pixels of each hour segment - */ - this.hourSegmentHeight = 30; - /** - * The minimum height in pixels of each event - */ - this.minimumEventHeight = 30; - /** - * The day start hours in 24 hour time. Must be 0-23 - */ - this.dayStartHour = 0; - /** - * The day start minutes. Must be 0-59 - */ - this.dayStartMinute = 0; - /** - * The day end hours in 24 hour time. Must be 0-23 - */ - this.dayEndHour = 23; - /** - * The day end minutes. Must be 0-59 - */ - this.dayEndMinute = 59; - /** - * Called when a header week day is clicked. Adding a `cssClass` property on `$event.day` will add that class to the header element - */ - this.dayHeaderClicked = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * Called when an event title is clicked - */ - this.eventClicked = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * Called when an event is resized or dragged and dropped - */ - this.eventTimesChanged = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * An output that will be called before the view is rendered for the current week. - * If you add the `cssClass` property to a day in the header it will add that class to the cell element in the template - */ - this.beforeViewRender = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * Called when an hour segment is clicked - */ - this.hourSegmentClicked = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * @hidden - */ - this.allDayEventResizes = new Map(); - /** - * @hidden - */ - this.timeEventResizes = new Map(); - /** - * @hidden - */ - this.eventDragEnterByType = { - allDay: 0, - time: 0 - }; - /** - * @hidden - */ - this.dragActive = false; - /** - * @hidden - */ - this.dragAlreadyMoved = false; - /** - * @hidden - */ - this.calendarId = Symbol('angular calendar week view id'); - /** - * @hidden - */ - this.rtl = false; - /** - * @hidden - */ - this.trackByWeekDayHeaderDate = trackByWeekDayHeaderDate; - /** - * @hidden - */ - this.trackByHourSegment = trackByHourSegment; - /** - * @hidden - */ - this.trackByHour = trackByHour; - /** - * @hidden - */ - this.trackByWeekAllDayEvent = trackByWeekAllDayEvent; - /** - * @hidden - */ - this.trackByWeekTimeEvent = trackByWeekTimeEvent; - /** - * @hidden - */ - this.trackByHourColumn = (index, column) => column.hours[0] ? column.hours[0].segments[0].date.toISOString() : column; - /** - * @hidden - */ - this.trackById = (index, row) => row.id; - this.locale = locale; - } - /** - * @hidden - */ - ngOnInit() { - if (this.refresh) { - this.refreshSubscription = this.refresh.subscribe(() => { - this.refreshAll(); - this.cdr.markForCheck(); - }); - } - } - /** - * @hidden - */ - ngOnChanges(changes) { - const refreshHeader = changes.viewDate || changes.excludeDays || changes.weekendDays || changes.daysInWeek || changes.weekStartsOn; - const refreshBody = changes.viewDate || changes.dayStartHour || changes.dayStartMinute || changes.dayEndHour || changes.dayEndMinute || changes.hourSegments || changes.hourDuration || changes.weekStartsOn || changes.weekendDays || changes.excludeDays || changes.hourSegmentHeight || changes.events || changes.daysInWeek || changes.minimumEventHeight; - if (refreshHeader) { - this.refreshHeader(); - } - if (changes.events) { - validateEvents(this.events); - } - if (refreshBody) { - this.refreshBody(); - } - if (refreshHeader || refreshBody) { - this.emitBeforeViewRender(); - } - } - /** - * @hidden - */ - ngOnDestroy() { - if (this.refreshSubscription) { - this.refreshSubscription.unsubscribe(); - } - } - /** - * @hidden - */ - ngAfterViewInit() { - this.rtl = typeof window !== 'undefined' && getComputedStyle(this.element.nativeElement).direction === 'rtl'; - this.cdr.detectChanges(); - } - /** - * @hidden - */ - timeEventResizeStarted(eventsContainer, timeEvent, resizeEvent) { - this.timeEventResizes.set(timeEvent.event, resizeEvent); - this.resizeStarted(eventsContainer, timeEvent); - } - /** - * @hidden - */ - timeEventResizing(timeEvent, resizeEvent) { - this.timeEventResizes.set(timeEvent.event, resizeEvent); - const adjustedEvents = new Map(); - const tempEvents = [...this.events]; - this.timeEventResizes.forEach((lastResizeEvent, event) => { - const newEventDates = this.getTimeEventResizedDates(event, lastResizeEvent); - const adjustedEvent = Object.assign(Object.assign({}, event), newEventDates); - adjustedEvents.set(adjustedEvent, event); - const eventIndex = tempEvents.indexOf(event); - tempEvents[eventIndex] = adjustedEvent; - }); - this.restoreOriginalEvents(tempEvents, adjustedEvents, true); - } - /** - * @hidden - */ - timeEventResizeEnded(timeEvent) { - this.view = this.getWeekView(this.events); - const lastResizeEvent = this.timeEventResizes.get(timeEvent.event); - if (lastResizeEvent) { - this.timeEventResizes.delete(timeEvent.event); - const newEventDates = this.getTimeEventResizedDates(timeEvent.event, lastResizeEvent); - this.eventTimesChanged.emit({ - newStart: newEventDates.start, - newEnd: newEventDates.end, - event: timeEvent.event, - type: CalendarEventTimesChangedEventType.Resize - }); - } - } - /** - * @hidden - */ - allDayEventResizeStarted(allDayEventsContainer, allDayEvent, resizeEvent) { - this.allDayEventResizes.set(allDayEvent, { - originalOffset: allDayEvent.offset, - originalSpan: allDayEvent.span, - edge: typeof resizeEvent.edges.left !== 'undefined' ? 'left' : 'right' - }); - this.resizeStarted(allDayEventsContainer, allDayEvent, this.getDayColumnWidth(allDayEventsContainer)); - } - /** - * @hidden - */ - allDayEventResizing(allDayEvent, resizeEvent, dayWidth) { - const currentResize = this.allDayEventResizes.get(allDayEvent); - const modifier = this.rtl ? -1 : 1; - if (typeof resizeEvent.edges.left !== 'undefined') { - const diff = Math.round(+resizeEvent.edges.left / dayWidth) * modifier; - allDayEvent.offset = currentResize.originalOffset + diff; - allDayEvent.span = currentResize.originalSpan - diff; - } else if (typeof resizeEvent.edges.right !== 'undefined') { - const diff = Math.round(+resizeEvent.edges.right / dayWidth) * modifier; - allDayEvent.span = currentResize.originalSpan + diff; - } - } - /** - * @hidden - */ - allDayEventResizeEnded(allDayEvent) { - const currentResize = this.allDayEventResizes.get(allDayEvent); - if (currentResize) { - const allDayEventResizingBeforeStart = currentResize.edge === 'left'; - let daysDiff; - if (allDayEventResizingBeforeStart) { - daysDiff = allDayEvent.offset - currentResize.originalOffset; - } else { - daysDiff = allDayEvent.span - currentResize.originalSpan; - } - allDayEvent.offset = currentResize.originalOffset; - allDayEvent.span = currentResize.originalSpan; - const newDates = this.getAllDayEventResizedDates(allDayEvent.event, daysDiff, allDayEventResizingBeforeStart); - this.eventTimesChanged.emit({ - newStart: newDates.start, - newEnd: newDates.end, - event: allDayEvent.event, - type: CalendarEventTimesChangedEventType.Resize - }); - this.allDayEventResizes.delete(allDayEvent); - } - } - /** - * @hidden - */ - getDayColumnWidth(eventRowContainer) { - return Math.floor(eventRowContainer.offsetWidth / this.days.length); - } - /** - * @hidden - */ - dateDragEnter(date) { - this.lastDragEnterDate = date; - } - /** - * @hidden - */ - eventDropped(dropEvent, date, allDay) { - if (shouldFireDroppedEvent(dropEvent, date, allDay, this.calendarId) && this.lastDragEnterDate.getTime() === date.getTime() && (!this.snapDraggedEvents || dropEvent.dropData.event !== this.lastDraggedEvent)) { - this.eventTimesChanged.emit({ - type: CalendarEventTimesChangedEventType.Drop, - event: dropEvent.dropData.event, - newStart: date, - allDay - }); - } - this.lastDraggedEvent = null; - } - /** - * @hidden - */ - dragEnter(type) { - this.eventDragEnterByType[type]++; - } - /** - * @hidden - */ - dragLeave(type) { - this.eventDragEnterByType[type]--; - } - /** - * @hidden - */ - dragStarted(eventsContainerElement, eventElement, event, useY) { - this.dayColumnWidth = this.getDayColumnWidth(eventsContainerElement); - const dragHelper = new CalendarDragHelper(eventsContainerElement, eventElement); - this.validateDrag = ({ - x, - y, - transform - }) => { - const isAllowed = this.allDayEventResizes.size === 0 && this.timeEventResizes.size === 0 && dragHelper.validateDrag({ - x, - y, - snapDraggedEvents: this.snapDraggedEvents, - dragAlreadyMoved: this.dragAlreadyMoved, - transform - }); - if (isAllowed && this.validateEventTimesChanged) { - const newEventTimes = this.getDragMovedEventTimes(event, { - x, - y - }, this.dayColumnWidth, useY); - return this.validateEventTimesChanged({ - type: CalendarEventTimesChangedEventType.Drag, - event: event.event, - newStart: newEventTimes.start, - newEnd: newEventTimes.end - }); - } - return isAllowed; - }; - this.dragActive = true; - this.dragAlreadyMoved = false; - this.lastDraggedEvent = null; - this.eventDragEnterByType = { - allDay: 0, - time: 0 - }; - if (!this.snapDraggedEvents && useY) { - this.view.hourColumns.forEach(column => { - const linkedEvent = column.events.find(columnEvent => columnEvent.event === event.event && columnEvent !== event); - // hide any linked events while dragging - if (linkedEvent) { - linkedEvent.width = 0; - linkedEvent.height = 0; - } - }); - } - this.cdr.markForCheck(); - } - /** - * @hidden - */ - dragMove(dayEvent, dragEvent) { - const newEventTimes = this.getDragMovedEventTimes(dayEvent, dragEvent, this.dayColumnWidth, true); - const originalEvent = dayEvent.event; - const adjustedEvent = Object.assign(Object.assign({}, originalEvent), newEventTimes); - const tempEvents = this.events.map(event => { - if (event === originalEvent) { - return adjustedEvent; - } - return event; - }); - this.restoreOriginalEvents(tempEvents, new Map([[adjustedEvent, originalEvent]]), this.snapDraggedEvents); - this.dragAlreadyMoved = true; - } - /** - * @hidden - */ - allDayEventDragMove() { - this.dragAlreadyMoved = true; - } - /** - * @hidden - */ - dragEnded(weekEvent, dragEndEvent, dayWidth, useY = false) { - this.view = this.getWeekView(this.events); - this.dragActive = false; - this.validateDrag = null; - const { - start, - end - } = this.getDragMovedEventTimes(weekEvent, dragEndEvent, dayWidth, useY); - if ((this.snapDraggedEvents || this.eventDragEnterByType[useY ? 'time' : 'allDay'] > 0) && isDraggedWithinPeriod(start, end, this.view.period)) { - this.lastDraggedEvent = weekEvent.event; - this.eventTimesChanged.emit({ - newStart: start, - newEnd: end, - event: weekEvent.event, - type: CalendarEventTimesChangedEventType.Drag, - allDay: !useY - }); - } - } - refreshHeader() { - this.days = this.utils.getWeekViewHeader(Object.assign({ - viewDate: this.viewDate, - weekStartsOn: this.weekStartsOn, - excluded: this.excludeDays, - weekendDays: this.weekendDays - }, getWeekViewPeriod(this.dateAdapter, this.viewDate, this.weekStartsOn, this.excludeDays, this.daysInWeek))); - } - refreshBody() { - this.view = this.getWeekView(this.events); - } - refreshAll() { - this.refreshHeader(); - this.refreshBody(); - this.emitBeforeViewRender(); - } - emitBeforeViewRender() { - if (this.days && this.view) { - this.beforeViewRender.emit(Object.assign({ - header: this.days - }, this.view)); - } - } - getWeekView(events) { - return this.utils.getWeekView(Object.assign({ - events, - viewDate: this.viewDate, - weekStartsOn: this.weekStartsOn, - excluded: this.excludeDays, - precision: this.precision, - absolutePositionedEvents: true, - hourSegments: this.hourSegments, - hourDuration: this.hourDuration, - dayStart: { - hour: this.dayStartHour, - minute: this.dayStartMinute - }, - dayEnd: { - hour: this.dayEndHour, - minute: this.dayEndMinute - }, - segmentHeight: this.hourSegmentHeight, - weekendDays: this.weekendDays, - minimumEventHeight: this.minimumEventHeight - }, getWeekViewPeriod(this.dateAdapter, this.viewDate, this.weekStartsOn, this.excludeDays, this.daysInWeek))); - } - getDragMovedEventTimes(weekEvent, dragEndEvent, dayWidth, useY) { - const daysDragged = roundToNearest(dragEndEvent.x, dayWidth) / dayWidth * (this.rtl ? -1 : 1); - const minutesMoved = useY ? getMinutesMoved(dragEndEvent.y, this.hourSegments, this.hourSegmentHeight, this.eventSnapSize, this.hourDuration) : 0; - const start = this.dateAdapter.addMinutes(addDaysWithExclusions(this.dateAdapter, weekEvent.event.start, daysDragged, this.excludeDays), minutesMoved); - let end; - if (weekEvent.event.end) { - end = this.dateAdapter.addMinutes(addDaysWithExclusions(this.dateAdapter, weekEvent.event.end, daysDragged, this.excludeDays), minutesMoved); - } - return { - start, - end - }; - } - restoreOriginalEvents(tempEvents, adjustedEvents, snapDraggedEvents = true) { - const previousView = this.view; - if (snapDraggedEvents) { - this.view = this.getWeekView(tempEvents); - } - const adjustedEventsArray = tempEvents.filter(event => adjustedEvents.has(event)); - this.view.hourColumns.forEach((column, columnIndex) => { - previousView.hourColumns[columnIndex].hours.forEach((hour, hourIndex) => { - hour.segments.forEach((segment, segmentIndex) => { - column.hours[hourIndex].segments[segmentIndex].cssClass = segment.cssClass; - }); - }); - adjustedEventsArray.forEach(adjustedEvent => { - const originalEvent = adjustedEvents.get(adjustedEvent); - const existingColumnEvent = column.events.find(columnEvent => columnEvent.event === (snapDraggedEvents ? adjustedEvent : originalEvent)); - if (existingColumnEvent) { - // restore the original event so trackBy kicks in and the dom isn't changed - existingColumnEvent.event = originalEvent; - existingColumnEvent['tempEvent'] = adjustedEvent; - if (!snapDraggedEvents) { - existingColumnEvent.height = 0; - existingColumnEvent.width = 0; - } - } else { - // add a dummy event to the drop so if the event was removed from the original column the drag doesn't end early - const event = { - event: originalEvent, - left: 0, - top: 0, - height: 0, - width: 0, - startsBeforeDay: false, - endsAfterDay: false, - tempEvent: adjustedEvent - }; - column.events.push(event); - } - }); - }); - adjustedEvents.clear(); - } - getTimeEventResizedDates(calendarEvent, resizeEvent) { - const newEventDates = { - start: calendarEvent.start, - end: getDefaultEventEnd(this.dateAdapter, calendarEvent, this.minimumEventHeight) - }; - const { - end - } = calendarEvent, - eventWithoutEnd = (0,tslib__WEBPACK_IMPORTED_MODULE_17__.__rest)(calendarEvent, ["end"]); - const smallestResizes = { - start: this.dateAdapter.addMinutes(newEventDates.end, this.minimumEventHeight * -1), - end: getDefaultEventEnd(this.dateAdapter, eventWithoutEnd, this.minimumEventHeight) - }; - const modifier = this.rtl ? -1 : 1; - if (typeof resizeEvent.edges.left !== 'undefined') { - const daysDiff = Math.round(+resizeEvent.edges.left / this.dayColumnWidth) * modifier; - const newStart = addDaysWithExclusions(this.dateAdapter, newEventDates.start, daysDiff, this.excludeDays); - if (newStart < smallestResizes.start) { - newEventDates.start = newStart; - } else { - newEventDates.start = smallestResizes.start; - } - } else if (typeof resizeEvent.edges.right !== 'undefined') { - const daysDiff = Math.round(+resizeEvent.edges.right / this.dayColumnWidth) * modifier; - const newEnd = addDaysWithExclusions(this.dateAdapter, newEventDates.end, daysDiff, this.excludeDays); - if (newEnd > smallestResizes.end) { - newEventDates.end = newEnd; - } else { - newEventDates.end = smallestResizes.end; - } - } - if (typeof resizeEvent.edges.top !== 'undefined') { - const minutesMoved = getMinutesMoved(resizeEvent.edges.top, this.hourSegments, this.hourSegmentHeight, this.eventSnapSize, this.hourDuration); - const newStart = this.dateAdapter.addMinutes(newEventDates.start, minutesMoved); - if (newStart < smallestResizes.start) { - newEventDates.start = newStart; - } else { - newEventDates.start = smallestResizes.start; - } - } else if (typeof resizeEvent.edges.bottom !== 'undefined') { - const minutesMoved = getMinutesMoved(resizeEvent.edges.bottom, this.hourSegments, this.hourSegmentHeight, this.eventSnapSize, this.hourDuration); - const newEnd = this.dateAdapter.addMinutes(newEventDates.end, minutesMoved); - if (newEnd > smallestResizes.end) { - newEventDates.end = newEnd; - } else { - newEventDates.end = smallestResizes.end; - } - } - return newEventDates; - } - resizeStarted(eventsContainer, event, dayWidth) { - this.dayColumnWidth = this.getDayColumnWidth(eventsContainer); - const resizeHelper = new CalendarResizeHelper(eventsContainer, dayWidth, this.rtl); - this.validateResize = ({ - rectangle, - edges - }) => { - const isWithinBoundary = resizeHelper.validateResize({ - rectangle: Object.assign({}, rectangle), - edges - }); - if (isWithinBoundary && this.validateEventTimesChanged) { - let newEventDates; - if (!dayWidth) { - newEventDates = this.getTimeEventResizedDates(event.event, { - rectangle, - edges - }); - } else { - const modifier = this.rtl ? -1 : 1; - if (typeof edges.left !== 'undefined') { - const diff = Math.round(+edges.left / dayWidth) * modifier; - newEventDates = this.getAllDayEventResizedDates(event.event, diff, !this.rtl); - } else { - const diff = Math.round(+edges.right / dayWidth) * modifier; - newEventDates = this.getAllDayEventResizedDates(event.event, diff, this.rtl); - } - } - return this.validateEventTimesChanged({ - type: CalendarEventTimesChangedEventType.Resize, - event: event.event, - newStart: newEventDates.start, - newEnd: newEventDates.end - }); - } - return isWithinBoundary; - }; - this.cdr.markForCheck(); - } - /** - * @hidden - */ - getAllDayEventResizedDates(event, daysDiff, beforeStart) { - let start = event.start; - let end = event.end || event.start; - if (beforeStart) { - start = addDaysWithExclusions(this.dateAdapter, start, daysDiff, this.excludeDays); - } else { - end = addDaysWithExclusions(this.dateAdapter, end, daysDiff, this.excludeDays); - } - return { - start, - end - }; - } -} -CalendarWeekViewComponent.ɵfac = function CalendarWeekViewComponent_Factory(t) { - return new (t || CalendarWeekViewComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.ChangeDetectorRef), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](CalendarUtils), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.LOCALE_ID), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](DateAdapter), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.ElementRef)); -}; -CalendarWeekViewComponent.ɵcmp = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ - type: CalendarWeekViewComponent, - selectors: [["mwl-calendar-week-view"]], - inputs: { - viewDate: "viewDate", - events: "events", - excludeDays: "excludeDays", - refresh: "refresh", - locale: "locale", - tooltipPlacement: "tooltipPlacement", - tooltipTemplate: "tooltipTemplate", - tooltipAppendToBody: "tooltipAppendToBody", - tooltipDelay: "tooltipDelay", - weekStartsOn: "weekStartsOn", - headerTemplate: "headerTemplate", - eventTemplate: "eventTemplate", - eventTitleTemplate: "eventTitleTemplate", - eventActionsTemplate: "eventActionsTemplate", - precision: "precision", - weekendDays: "weekendDays", - snapDraggedEvents: "snapDraggedEvents", - hourSegments: "hourSegments", - hourDuration: "hourDuration", - hourSegmentHeight: "hourSegmentHeight", - minimumEventHeight: "minimumEventHeight", - dayStartHour: "dayStartHour", - dayStartMinute: "dayStartMinute", - dayEndHour: "dayEndHour", - dayEndMinute: "dayEndMinute", - hourSegmentTemplate: "hourSegmentTemplate", - eventSnapSize: "eventSnapSize", - allDayEventsLabelTemplate: "allDayEventsLabelTemplate", - daysInWeek: "daysInWeek", - currentTimeMarkerTemplate: "currentTimeMarkerTemplate", - validateEventTimesChanged: "validateEventTimesChanged" - }, - outputs: { - dayHeaderClicked: "dayHeaderClicked", - eventClicked: "eventClicked", - eventTimesChanged: "eventTimesChanged", - beforeViewRender: "beforeViewRender", - hourSegmentClicked: "hourSegmentClicked" - }, - features: [_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵNgOnChangesFeature"]], - decls: 8, - vars: 9, - consts: [["role", "grid", 1, "cal-week-view"], [3, "days", "locale", "customTemplate", "dayHeaderClicked", "eventDropped", "dragEnter"], ["class", "cal-all-day-events", "mwlDroppable", "", 3, "dragEnter", "dragLeave", 4, "ngIf"], ["mwlDroppable", "", 1, "cal-time-events", 3, "dragEnter", "dragLeave"], ["class", "cal-time-label-column", 4, "ngIf"], [1, "cal-day-columns"], ["dayColumns", ""], ["class", "cal-day-column", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["mwlDroppable", "", 1, "cal-all-day-events", 3, "dragEnter", "dragLeave"], ["allDayEventsContainer", ""], [1, "cal-time-label-column", 3, "ngTemplateOutlet"], ["class", "cal-day-column", "mwlDroppable", "", "dragOverClass", "cal-drag-over", 3, "drop", "dragEnter", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["class", "cal-events-row", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["mwlDroppable", "", "dragOverClass", "cal-drag-over", 1, "cal-day-column", 3, "drop", "dragEnter"], [1, "cal-events-row"], ["eventRowContainer", ""], ["class", "cal-event-container", "mwlResizable", "", "mwlDraggable", "", "dragActiveClass", "cal-drag-active", 3, "cal-draggable", "cal-starts-within-week", "cal-ends-within-week", "ngClass", "width", "marginLeft", "marginRight", "resizeSnapGrid", "validateResize", "dropData", "dragAxis", "dragSnapGrid", "validateDrag", "touchStartLongPress", "resizeStart", "resizing", "resizeEnd", "dragStart", "dragging", "dragEnd", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["mwlResizable", "", "mwlDraggable", "", "dragActiveClass", "cal-drag-active", 1, "cal-event-container", 3, "ngClass", "resizeSnapGrid", "validateResize", "dropData", "dragAxis", "dragSnapGrid", "validateDrag", "touchStartLongPress", "resizeStart", "resizing", "resizeEnd", "dragStart", "dragging", "dragEnd"], ["event", ""], ["class", "cal-resize-handle cal-resize-handle-before-start", "mwlResizeHandle", "", 3, "resizeEdges", 4, "ngIf"], [3, "locale", "weekEvent", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "customTemplate", "eventTitleTemplate", "eventActionsTemplate", "daysInWeek", "eventClicked"], ["class", "cal-resize-handle cal-resize-handle-after-end", "mwlResizeHandle", "", 3, "resizeEdges", 4, "ngIf"], ["mwlResizeHandle", "", 1, "cal-resize-handle", "cal-resize-handle-before-start", 3, "resizeEdges"], ["mwlResizeHandle", "", 1, "cal-resize-handle", "cal-resize-handle-after-end", 3, "resizeEdges"], [1, "cal-time-label-column"], ["class", "cal-hour", 3, "cal-hour-odd", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "cal-hour"], [3, "height", "segment", "segmentHeight", "locale", "customTemplate", "isTimeLabel", "daysInWeek", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "segment", "segmentHeight", "locale", "customTemplate", "isTimeLabel", "daysInWeek"], [1, "cal-day-column"], [3, "columnDate", "dayStartHour", "dayStartMinute", "dayEndHour", "dayEndMinute", "hourSegments", "hourDuration", "hourSegmentHeight", "customTemplate"], [1, "cal-events-container"], ["class", "cal-event-container", "mwlResizable", "", "mwlDraggable", "", "dragActiveClass", "cal-drag-active", 3, "cal-draggable", "cal-starts-within-day", "cal-ends-within-day", "ngClass", "hidden", "top", "height", "left", "width", "resizeSnapGrid", "validateResize", "allowNegativeResizes", "dropData", "dragAxis", "dragSnapGrid", "touchStartLongPress", "ghostDragEnabled", "ghostElementTemplate", "validateDrag", "resizeStart", "resizing", "resizeEnd", "dragStart", "dragging", "dragEnd", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["mwlResizable", "", "mwlDraggable", "", "dragActiveClass", "cal-drag-active", 1, "cal-event-container", 3, "ngClass", "hidden", "resizeSnapGrid", "validateResize", "allowNegativeResizes", "dropData", "dragAxis", "dragSnapGrid", "touchStartLongPress", "ghostDragEnabled", "ghostElementTemplate", "validateDrag", "resizeStart", "resizing", "resizeEnd", "dragStart", "dragging", "dragEnd"], [3, "ngTemplateOutlet"], ["weekEventTemplate", ""], [3, "locale", "weekEvent", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDisabled", "tooltipDelay", "customTemplate", "eventTitleTemplate", "eventActionsTemplate", "column", "daysInWeek", "eventClicked"], ["mwlDroppable", "", "dragActiveClass", "cal-drag-active", 3, "height", "segment", "segmentHeight", "locale", "customTemplate", "daysInWeek", "clickListenerDisabled", "dragOverClass", "isTimeLabel", "mwlClick", "drop", "dragEnter", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["mwlDroppable", "", "dragActiveClass", "cal-drag-active", 3, "segment", "segmentHeight", "locale", "customTemplate", "daysInWeek", "clickListenerDisabled", "dragOverClass", "isTimeLabel", "mwlClick", "drop", "dragEnter"]], - template: function CalendarWeekViewComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 0)(1, "mwl-calendar-week-view-header", 1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("dayHeaderClicked", function CalendarWeekViewComponent_Template_mwl_calendar_week_view_header_dayHeaderClicked_1_listener($event) { - return ctx.dayHeaderClicked.emit($event); - })("eventDropped", function CalendarWeekViewComponent_Template_mwl_calendar_week_view_header_eventDropped_1_listener($event) { - return ctx.eventDropped({ - dropData: $event - }, $event.newStart, true); - })("dragEnter", function CalendarWeekViewComponent_Template_mwl_calendar_week_view_header_dragEnter_1_listener($event) { - return ctx.dateDragEnter($event.date); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](2, CalendarWeekViewComponent_div_2_Template, 6, 5, "div", 2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](3, "div", 3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("dragEnter", function CalendarWeekViewComponent_Template_div_dragEnter_3_listener() { - return ctx.dragEnter("time"); - })("dragLeave", function CalendarWeekViewComponent_Template_div_dragLeave_3_listener() { - return ctx.dragLeave("time"); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](4, CalendarWeekViewComponent_div_4_Template, 2, 2, "div", 4); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](5, "div", 5, 6); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](7, CalendarWeekViewComponent_div_7_Template, 5, 13, "div", 7); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()()(); - } - if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("days", ctx.days)("locale", ctx.locale)("customTemplate", ctx.headerTemplate); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", ctx.view.allDayEventRows.length > 0); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", ctx.view.hourColumns.length > 0 && ctx.daysInWeek !== 1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵclassProp"]("cal-resize-active", ctx.timeEventResizes.size > 0); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngForOf", ctx.view.hourColumns)("ngForTrackBy", ctx.trackByHourColumn); - } - }, - dependencies: [CalendarWeekViewHeaderComponent, CalendarWeekViewEventComponent, CalendarWeekViewHourSegmentComponent, CalendarWeekViewCurrentTimeMarkerComponent, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgIf, angular_draggable_droppable__WEBPACK_IMPORTED_MODULE_9__.DroppableDirective, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgTemplateOutlet, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgForOf, angular_resizable_element__WEBPACK_IMPORTED_MODULE_18__.ResizableDirective, angular_draggable_droppable__WEBPACK_IMPORTED_MODULE_9__.DraggableDirective, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgClass, angular_resizable_element__WEBPACK_IMPORTED_MODULE_18__.ResizeHandleDirective, ClickDirective], - encapsulation: 2 -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarWeekViewComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Component, - args: [{ - selector: 'mwl-calendar-week-view', - template: ` -
- - -
-
-
-
-
-
-
-
- - -
-
-
-
-
-
-
- - -
-
-
-
- -
-
-
- - - - - -
-
-
- -
- - -
-
-
-
-
- ` - }] - }], function () { - return [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ChangeDetectorRef - }, { - type: CalendarUtils - }, { - type: undefined, - decorators: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Inject, - args: [_angular_core__WEBPACK_IMPORTED_MODULE_2__.LOCALE_ID] - }] - }, { - type: DateAdapter - }, { - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ElementRef - }]; - }, { - viewDate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - events: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - excludeDays: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - refresh: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - locale: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipPlacement: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipAppendToBody: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipDelay: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - weekStartsOn: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - headerTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - eventTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - eventTitleTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - eventActionsTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - precision: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - weekendDays: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - snapDraggedEvents: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - hourSegments: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - hourDuration: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - hourSegmentHeight: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - minimumEventHeight: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dayStartHour: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dayStartMinute: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dayEndHour: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dayEndMinute: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - hourSegmentTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - eventSnapSize: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - allDayEventsLabelTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - daysInWeek: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - currentTimeMarkerTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - validateEventTimesChanged: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dayHeaderClicked: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - eventClicked: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - eventTimesChanged: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - beforeViewRender: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - hourSegmentClicked: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }] - }); -})(); -class CalendarWeekModule {} -CalendarWeekModule.ɵfac = function CalendarWeekModule_Factory(t) { - return new (t || CalendarWeekModule)(); -}; -CalendarWeekModule.ɵmod = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineNgModule"]({ - type: CalendarWeekModule -}); -CalendarWeekModule.ɵinj = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineInjector"]({ - imports: [[_angular_common__WEBPACK_IMPORTED_MODULE_6__.CommonModule, angular_resizable_element__WEBPACK_IMPORTED_MODULE_18__.ResizableModule, angular_draggable_droppable__WEBPACK_IMPORTED_MODULE_9__.DragAndDropModule, CalendarCommonModule], angular_resizable_element__WEBPACK_IMPORTED_MODULE_18__.ResizableModule, angular_draggable_droppable__WEBPACK_IMPORTED_MODULE_9__.DragAndDropModule] -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarWeekModule, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.NgModule, - args: [{ - imports: [_angular_common__WEBPACK_IMPORTED_MODULE_6__.CommonModule, angular_resizable_element__WEBPACK_IMPORTED_MODULE_18__.ResizableModule, angular_draggable_droppable__WEBPACK_IMPORTED_MODULE_9__.DragAndDropModule, CalendarCommonModule], - declarations: [CalendarWeekViewComponent, CalendarWeekViewHeaderComponent, CalendarWeekViewEventComponent, CalendarWeekViewHourSegmentComponent, CalendarWeekViewCurrentTimeMarkerComponent], - exports: [angular_resizable_element__WEBPACK_IMPORTED_MODULE_18__.ResizableModule, angular_draggable_droppable__WEBPACK_IMPORTED_MODULE_9__.DragAndDropModule, CalendarWeekViewComponent, CalendarWeekViewHeaderComponent, CalendarWeekViewEventComponent, CalendarWeekViewHourSegmentComponent, CalendarWeekViewCurrentTimeMarkerComponent] - }] - }], null, null); -})(); - -/** - * Shows all events on a given day. Example usage: - * - * ```typescript - * - * - * ``` - */ -class CalendarDayViewComponent { - constructor() { - /** - * An array of events to display on view - * The schema is available here: https://github.com/mattlewis92/calendar-utils/blob/c51689985f59a271940e30bc4e2c4e1fee3fcb5c/src/calendarUtils.ts#L49-L63 - */ - this.events = []; - /** - * The number of segments in an hour. Must divide equally into 60. - */ - this.hourSegments = 2; - /** - * The height in pixels of each hour segment - */ - this.hourSegmentHeight = 30; - /** - * The minimum height in pixels of each event - */ - this.minimumEventHeight = 30; - /** - * The day start hours in 24 hour time. Must be 0-23 - */ - this.dayStartHour = 0; - /** - * The day start minutes. Must be 0-59 - */ - this.dayStartMinute = 0; - /** - * The day end hours in 24 hour time. Must be 0-23 - */ - this.dayEndHour = 23; - /** - * The day end minutes. Must be 0-59 - */ - this.dayEndMinute = 59; - /** - * The placement of the event tooltip - */ - this.tooltipPlacement = 'auto'; - /** - * Whether to append tooltips to the body or next to the trigger element - */ - this.tooltipAppendToBody = true; - /** - * The delay in milliseconds before the tooltip should be displayed. If not provided the tooltip - * will be displayed immediately. - */ - this.tooltipDelay = null; - /** - * Whether to snap events to a grid when dragging - */ - this.snapDraggedEvents = true; - /** - * Called when an event title is clicked - */ - this.eventClicked = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * Called when an hour segment is clicked - */ - this.hourSegmentClicked = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * Called when an event is resized or dragged and dropped - */ - this.eventTimesChanged = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * An output that will be called before the view is rendered for the current day. - * If you add the `cssClass` property to an hour grid segment it will add that class to the hour segment in the template - */ - this.beforeViewRender = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - } -} -CalendarDayViewComponent.ɵfac = function CalendarDayViewComponent_Factory(t) { - return new (t || CalendarDayViewComponent)(); -}; -CalendarDayViewComponent.ɵcmp = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ - type: CalendarDayViewComponent, - selectors: [["mwl-calendar-day-view"]], - inputs: { - viewDate: "viewDate", - events: "events", - hourSegments: "hourSegments", - hourSegmentHeight: "hourSegmentHeight", - hourDuration: "hourDuration", - minimumEventHeight: "minimumEventHeight", - dayStartHour: "dayStartHour", - dayStartMinute: "dayStartMinute", - dayEndHour: "dayEndHour", - dayEndMinute: "dayEndMinute", - refresh: "refresh", - locale: "locale", - eventSnapSize: "eventSnapSize", - tooltipPlacement: "tooltipPlacement", - tooltipTemplate: "tooltipTemplate", - tooltipAppendToBody: "tooltipAppendToBody", - tooltipDelay: "tooltipDelay", - hourSegmentTemplate: "hourSegmentTemplate", - eventTemplate: "eventTemplate", - eventTitleTemplate: "eventTitleTemplate", - eventActionsTemplate: "eventActionsTemplate", - snapDraggedEvents: "snapDraggedEvents", - allDayEventsLabelTemplate: "allDayEventsLabelTemplate", - currentTimeMarkerTemplate: "currentTimeMarkerTemplate", - validateEventTimesChanged: "validateEventTimesChanged" - }, - outputs: { - eventClicked: "eventClicked", - hourSegmentClicked: "hourSegmentClicked", - eventTimesChanged: "eventTimesChanged", - beforeViewRender: "beforeViewRender" - }, - decls: 1, - vars: 26, - consts: [[1, "cal-day-view", 3, "daysInWeek", "viewDate", "events", "hourSegments", "hourDuration", "hourSegmentHeight", "minimumEventHeight", "dayStartHour", "dayStartMinute", "dayEndHour", "dayEndMinute", "refresh", "locale", "eventSnapSize", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "hourSegmentTemplate", "eventTemplate", "eventTitleTemplate", "eventActionsTemplate", "snapDraggedEvents", "allDayEventsLabelTemplate", "currentTimeMarkerTemplate", "validateEventTimesChanged", "eventClicked", "hourSegmentClicked", "eventTimesChanged", "beforeViewRender"]], - template: function CalendarDayViewComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "mwl-calendar-week-view", 0); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("eventClicked", function CalendarDayViewComponent_Template_mwl_calendar_week_view_eventClicked_0_listener($event) { - return ctx.eventClicked.emit($event); - })("hourSegmentClicked", function CalendarDayViewComponent_Template_mwl_calendar_week_view_hourSegmentClicked_0_listener($event) { - return ctx.hourSegmentClicked.emit($event); - })("eventTimesChanged", function CalendarDayViewComponent_Template_mwl_calendar_week_view_eventTimesChanged_0_listener($event) { - return ctx.eventTimesChanged.emit($event); - })("beforeViewRender", function CalendarDayViewComponent_Template_mwl_calendar_week_view_beforeViewRender_0_listener($event) { - return ctx.beforeViewRender.emit($event); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("daysInWeek", 1)("viewDate", ctx.viewDate)("events", ctx.events)("hourSegments", ctx.hourSegments)("hourDuration", ctx.hourDuration)("hourSegmentHeight", ctx.hourSegmentHeight)("minimumEventHeight", ctx.minimumEventHeight)("dayStartHour", ctx.dayStartHour)("dayStartMinute", ctx.dayStartMinute)("dayEndHour", ctx.dayEndHour)("dayEndMinute", ctx.dayEndMinute)("refresh", ctx.refresh)("locale", ctx.locale)("eventSnapSize", ctx.eventSnapSize)("tooltipPlacement", ctx.tooltipPlacement)("tooltipTemplate", ctx.tooltipTemplate)("tooltipAppendToBody", ctx.tooltipAppendToBody)("tooltipDelay", ctx.tooltipDelay)("hourSegmentTemplate", ctx.hourSegmentTemplate)("eventTemplate", ctx.eventTemplate)("eventTitleTemplate", ctx.eventTitleTemplate)("eventActionsTemplate", ctx.eventActionsTemplate)("snapDraggedEvents", ctx.snapDraggedEvents)("allDayEventsLabelTemplate", ctx.allDayEventsLabelTemplate)("currentTimeMarkerTemplate", ctx.currentTimeMarkerTemplate)("validateEventTimesChanged", ctx.validateEventTimesChanged); - } - }, - dependencies: [CalendarWeekViewComponent], - encapsulation: 2 -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarDayViewComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Component, - args: [{ - selector: 'mwl-calendar-day-view', - template: ` - - ` - }] - }], null, { - viewDate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - events: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - hourSegments: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - hourSegmentHeight: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - hourDuration: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - minimumEventHeight: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dayStartHour: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dayStartMinute: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dayEndHour: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dayEndMinute: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - refresh: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - locale: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - eventSnapSize: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipPlacement: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipAppendToBody: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - tooltipDelay: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - hourSegmentTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - eventTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - eventTitleTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - eventActionsTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - snapDraggedEvents: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - allDayEventsLabelTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - currentTimeMarkerTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - validateEventTimesChanged: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - eventClicked: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - hourSegmentClicked: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - eventTimesChanged: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - beforeViewRender: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }] - }); -})(); -class CalendarDayModule {} -CalendarDayModule.ɵfac = function CalendarDayModule_Factory(t) { - return new (t || CalendarDayModule)(); -}; -CalendarDayModule.ɵmod = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineNgModule"]({ - type: CalendarDayModule -}); -CalendarDayModule.ɵinj = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineInjector"]({ - imports: [[_angular_common__WEBPACK_IMPORTED_MODULE_6__.CommonModule, CalendarCommonModule, CalendarWeekModule]] -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarDayModule, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.NgModule, - args: [{ - imports: [_angular_common__WEBPACK_IMPORTED_MODULE_6__.CommonModule, CalendarCommonModule, CalendarWeekModule], - declarations: [CalendarDayViewComponent], - exports: [CalendarDayViewComponent] - }] - }], null, null); -})(); - -/** - * The main module of this library. Example usage: - * - * ```typescript - * import { CalenderModule } from 'angular-calendar'; - * - * @NgModule({ - * imports: [ - * CalenderModule.forRoot() - * ] - * }) - * class MyModule {} - * ``` - * - */ -class CalendarModule { - static forRoot(dateAdapter, config = {}) { - return { - ngModule: CalendarModule, - providers: [dateAdapter, config.eventTitleFormatter || CalendarEventTitleFormatter, config.dateFormatter || CalendarDateFormatter, config.utils || CalendarUtils, config.a11y || CalendarA11y] - }; - } -} -CalendarModule.ɵfac = function CalendarModule_Factory(t) { - return new (t || CalendarModule)(); -}; -CalendarModule.ɵmod = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineNgModule"]({ - type: CalendarModule -}); -CalendarModule.ɵinj = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineInjector"]({ - imports: [[CalendarCommonModule, CalendarMonthModule, CalendarWeekModule, CalendarDayModule], CalendarCommonModule, CalendarMonthModule, CalendarWeekModule, CalendarDayModule] -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](CalendarModule, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.NgModule, - args: [{ - imports: [CalendarCommonModule, CalendarMonthModule, CalendarWeekModule, CalendarDayModule], - exports: [CalendarCommonModule, CalendarMonthModule, CalendarWeekModule, CalendarDayModule] - }] - }], null, null); -})(); - -/* - * Public API Surface of angular-calendar - */ - -/** - * Generated bundle index. Do not edit. - */ - - - -/***/ }), - -/***/ 2993: -/*!******************************************************************************************!*\ - !*** ./node_modules/angular-draggable-droppable/fesm2015/angular-draggable-droppable.js ***! - \******************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ DragAndDropModule: () => (/* binding */ DragAndDropModule), -/* harmony export */ DraggableDirective: () => (/* binding */ DraggableDirective), -/* harmony export */ DraggableScrollContainerDirective: () => (/* binding */ DraggableScrollContainerDirective), -/* harmony export */ DroppableDirective: () => (/* binding */ DroppableDirective) -/* harmony export */ }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 7580); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ 3119); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ 7498); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! rxjs */ 8742); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! rxjs */ 7405); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! rxjs */ 8824); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! rxjs */ 7557); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ 8627); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs/operators */ 3107); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs/operators */ 9273); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rxjs/operators */ 5443); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! rxjs/operators */ 8690); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! rxjs/operators */ 7464); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! rxjs/operators */ 3602); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! rxjs/operators */ 446); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! rxjs/operators */ 7514); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! rxjs/operators */ 6725); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! rxjs/operators */ 6109); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @angular/common */ 316); -/* harmony import */ var _mattlewis92_dom_autoscroller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @mattlewis92/dom-autoscroller */ 8786); - - - - - - -function addClass(renderer, element, classToAdd) { - if (classToAdd) { - classToAdd.split(' ').forEach(className => renderer.addClass(element.nativeElement, className)); - } -} -function removeClass(renderer, element, classToRemove) { - if (classToRemove) { - classToRemove.split(' ').forEach(className => renderer.removeClass(element.nativeElement, className)); - } -} -class DraggableHelper { - constructor() { - this.currentDrag = new rxjs__WEBPACK_IMPORTED_MODULE_1__.Subject(); - } -} -DraggableHelper.ɵfac = function DraggableHelper_Factory(t) { - return new (t || DraggableHelper)(); -}; -DraggableHelper.ɵprov = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineInjectable"]({ - token: DraggableHelper, - factory: DraggableHelper.ɵfac, - providedIn: 'root' -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](DraggableHelper, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Injectable, - args: [{ - providedIn: 'root' - }] - }], null, null); -})(); - -/** - * If the window isn't scrollable, then place this on the scrollable container that draggable elements are inside. e.g. - * ```html -
-
Drag me!
-
- ``` - */ -class DraggableScrollContainerDirective { - /** - * @hidden - */ - constructor(elementRef) { - this.elementRef = elementRef; - } -} -DraggableScrollContainerDirective.ɵfac = function DraggableScrollContainerDirective_Factory(t) { - return new (t || DraggableScrollContainerDirective)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.ElementRef)); -}; -DraggableScrollContainerDirective.ɵdir = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineDirective"]({ - type: DraggableScrollContainerDirective, - selectors: [["", "mwlDraggableScrollContainer", ""]] -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](DraggableScrollContainerDirective, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Directive, - args: [{ - selector: '[mwlDraggableScrollContainer]' - }] - }], function () { - return [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ElementRef - }]; - }, null); -})(); -class DraggableDirective { - /** - * @hidden - */ - constructor(element, renderer, draggableHelper, zone, vcr, scrollContainer, document) { - this.element = element; - this.renderer = renderer; - this.draggableHelper = draggableHelper; - this.zone = zone; - this.vcr = vcr; - this.scrollContainer = scrollContainer; - this.document = document; - /** - * The axis along which the element is draggable - */ - this.dragAxis = { - x: true, - y: true - }; - /** - * Snap all drags to an x / y grid - */ - this.dragSnapGrid = {}; - /** - * Show a ghost element that shows the drag when dragging - */ - this.ghostDragEnabled = true; - /** - * Show the original element when ghostDragEnabled is true - */ - this.showOriginalElementWhileDragging = false; - /** - * The cursor to use when hovering over a draggable element - */ - this.dragCursor = ''; - /* - * Options used to control the behaviour of auto scrolling: https://www.npmjs.com/package/dom-autoscroller - */ - this.autoScroll = { - margin: 20 - }; - /** - * Called when the element can be dragged along one axis and has the mouse or pointer device pressed on it - */ - this.dragPointerDown = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * Called when the element has started to be dragged. - * Only called after at least one mouse or touch move event. - * If you call $event.cancelDrag$.emit() it will cancel the current drag - */ - this.dragStart = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * Called after the ghost element has been created - */ - this.ghostElementCreated = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * Called when the element is being dragged - */ - this.dragging = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * Called after the element is dragged - */ - this.dragEnd = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * @hidden - */ - this.pointerDown$ = new rxjs__WEBPACK_IMPORTED_MODULE_1__.Subject(); - /** - * @hidden - */ - this.pointerMove$ = new rxjs__WEBPACK_IMPORTED_MODULE_1__.Subject(); - /** - * @hidden - */ - this.pointerUp$ = new rxjs__WEBPACK_IMPORTED_MODULE_1__.Subject(); - this.eventListenerSubscriptions = {}; - this.destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_1__.Subject(); - this.timeLongPress = { - timerBegin: 0, - timerEnd: 0 - }; - } - ngOnInit() { - this.checkEventListeners(); - const pointerDragged$ = this.pointerDown$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_3__.filter)(() => this.canDrag()), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.mergeMap)(pointerDownEvent => { - // fix for https://github.com/mattlewis92/angular-draggable-droppable/issues/61 - // stop mouse events propagating up the chain - if (pointerDownEvent.event.stopPropagation && !this.scrollContainer) { - pointerDownEvent.event.stopPropagation(); - } - // hack to prevent text getting selected in safari while dragging - const globalDragStyle = this.renderer.createElement('style'); - this.renderer.setAttribute(globalDragStyle, 'type', 'text/css'); - this.renderer.appendChild(globalDragStyle, this.renderer.createText(` - body * { - -moz-user-select: none; - -ms-user-select: none; - -webkit-user-select: none; - user-select: none; - } - `)); - requestAnimationFrame(() => { - this.document.head.appendChild(globalDragStyle); - }); - const startScrollPosition = this.getScrollPosition(); - const scrollContainerScroll$ = new rxjs__WEBPACK_IMPORTED_MODULE_5__.Observable(observer => { - const scrollContainer = this.scrollContainer ? this.scrollContainer.elementRef.nativeElement : 'window'; - return this.renderer.listen(scrollContainer, 'scroll', e => observer.next(e)); - }).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_6__.startWith)(startScrollPosition), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_7__.map)(() => this.getScrollPosition())); - const currentDrag$ = new rxjs__WEBPACK_IMPORTED_MODULE_1__.Subject(); - const cancelDrag$ = new rxjs__WEBPACK_IMPORTED_MODULE_8__.ReplaySubject(); - if (this.dragPointerDown.observers.length > 0) { - this.zone.run(() => { - this.dragPointerDown.next({ - x: 0, - y: 0 - }); - }); - } - const dragComplete$ = (0,rxjs__WEBPACK_IMPORTED_MODULE_9__.merge)(this.pointerUp$, this.pointerDown$, cancelDrag$, this.destroy$).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_10__.share)()); - const pointerMove = (0,rxjs__WEBPACK_IMPORTED_MODULE_11__.combineLatest)([this.pointerMove$, scrollContainerScroll$]).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_7__.map)(([pointerMoveEvent, scroll]) => { - return { - currentDrag$, - transformX: pointerMoveEvent.clientX - pointerDownEvent.clientX, - transformY: pointerMoveEvent.clientY - pointerDownEvent.clientY, - clientX: pointerMoveEvent.clientX, - clientY: pointerMoveEvent.clientY, - scrollLeft: scroll.left, - scrollTop: scroll.top, - target: pointerMoveEvent.event.target - }; - }), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_7__.map)(moveData => { - if (this.dragSnapGrid.x) { - moveData.transformX = Math.round(moveData.transformX / this.dragSnapGrid.x) * this.dragSnapGrid.x; - } - if (this.dragSnapGrid.y) { - moveData.transformY = Math.round(moveData.transformY / this.dragSnapGrid.y) * this.dragSnapGrid.y; - } - return moveData; - }), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_7__.map)(moveData => { - if (!this.dragAxis.x) { - moveData.transformX = 0; - } - if (!this.dragAxis.y) { - moveData.transformY = 0; - } - return moveData; - }), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_7__.map)(moveData => { - const scrollX = moveData.scrollLeft - startScrollPosition.left; - const scrollY = moveData.scrollTop - startScrollPosition.top; - return Object.assign(Object.assign({}, moveData), { - x: moveData.transformX + scrollX, - y: moveData.transformY + scrollY - }); - }), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_3__.filter)(({ - x, - y, - transformX, - transformY - }) => !this.validateDrag || this.validateDrag({ - x, - y, - transform: { - x: transformX, - y: transformY - } - })), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_12__.takeUntil)(dragComplete$), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_10__.share)()); - const dragStarted$ = pointerMove.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_13__.take)(1), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_10__.share)()); - const dragEnded$ = pointerMove.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_14__.takeLast)(1), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_10__.share)()); - dragStarted$.subscribe(({ - clientX, - clientY, - x, - y - }) => { - if (this.dragStart.observers.length > 0) { - this.zone.run(() => { - this.dragStart.next({ - cancelDrag$ - }); - }); - } - this.scroller = (0,_mattlewis92_dom_autoscroller__WEBPACK_IMPORTED_MODULE_0__["default"])([this.scrollContainer ? this.scrollContainer.elementRef.nativeElement : this.document.defaultView], Object.assign(Object.assign({}, this.autoScroll), { - autoScroll() { - return true; - } - })); - addClass(this.renderer, this.element, this.dragActiveClass); - if (this.ghostDragEnabled) { - const rect = this.element.nativeElement.getBoundingClientRect(); - const clone = this.element.nativeElement.cloneNode(true); - if (!this.showOriginalElementWhileDragging) { - this.renderer.setStyle(this.element.nativeElement, 'visibility', 'hidden'); - } - if (this.ghostElementAppendTo) { - this.ghostElementAppendTo.appendChild(clone); - } else { - this.element.nativeElement.parentNode.insertBefore(clone, this.element.nativeElement.nextSibling); - } - this.ghostElement = clone; - this.document.body.style.cursor = this.dragCursor; - this.setElementStyles(clone, { - position: 'fixed', - top: `${rect.top}px`, - left: `${rect.left}px`, - width: `${rect.width}px`, - height: `${rect.height}px`, - cursor: this.dragCursor, - margin: '0', - willChange: 'transform', - pointerEvents: 'none' - }); - if (this.ghostElementTemplate) { - const viewRef = this.vcr.createEmbeddedView(this.ghostElementTemplate); - clone.innerHTML = ''; - viewRef.rootNodes.filter(node => node instanceof Node).forEach(node => { - clone.appendChild(node); - }); - dragEnded$.subscribe(() => { - this.vcr.remove(this.vcr.indexOf(viewRef)); - }); - } - if (this.ghostElementCreated.observers.length > 0) { - this.zone.run(() => { - this.ghostElementCreated.emit({ - clientX: clientX - x, - clientY: clientY - y, - element: clone - }); - }); - } - dragEnded$.subscribe(() => { - clone.parentElement.removeChild(clone); - this.ghostElement = null; - this.renderer.setStyle(this.element.nativeElement, 'visibility', ''); - }); - } - this.draggableHelper.currentDrag.next(currentDrag$); - }); - dragEnded$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.mergeMap)(dragEndData => { - const dragEndData$ = cancelDrag$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_15__.count)(), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_13__.take)(1), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_7__.map)(calledCount => Object.assign(Object.assign({}, dragEndData), { - dragCancelled: calledCount > 0 - }))); - cancelDrag$.complete(); - return dragEndData$; - })).subscribe(({ - x, - y, - dragCancelled - }) => { - this.scroller.destroy(); - if (this.dragEnd.observers.length > 0) { - this.zone.run(() => { - this.dragEnd.next({ - x, - y, - dragCancelled - }); - }); - } - removeClass(this.renderer, this.element, this.dragActiveClass); - currentDrag$.complete(); - }); - (0,rxjs__WEBPACK_IMPORTED_MODULE_9__.merge)(dragComplete$, dragEnded$).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_13__.take)(1)).subscribe(() => { - requestAnimationFrame(() => { - this.document.head.removeChild(globalDragStyle); - }); - }); - return pointerMove; - }), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_10__.share)()); - (0,rxjs__WEBPACK_IMPORTED_MODULE_9__.merge)(pointerDragged$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_13__.take)(1), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_7__.map)(value => [, value])), pointerDragged$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_16__.pairwise)())).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_3__.filter)(([previous, next]) => { - if (!previous) { - return true; - } - return previous.x !== next.x || previous.y !== next.y; - }), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_7__.map)(([previous, next]) => next)).subscribe(({ - x, - y, - currentDrag$, - clientX, - clientY, - transformX, - transformY, - target - }) => { - if (this.dragging.observers.length > 0) { - this.zone.run(() => { - this.dragging.next({ - x, - y - }); - }); - } - requestAnimationFrame(() => { - if (this.ghostElement) { - const transform = `translate3d(${transformX}px, ${transformY}px, 0px)`; - this.setElementStyles(this.ghostElement, { - transform, - '-webkit-transform': transform, - '-ms-transform': transform, - '-moz-transform': transform, - '-o-transform': transform - }); - } - }); - currentDrag$.next({ - clientX, - clientY, - dropData: this.dropData, - target - }); - }); - } - ngOnChanges(changes) { - if (changes.dragAxis) { - this.checkEventListeners(); - } - } - ngOnDestroy() { - this.unsubscribeEventListeners(); - this.pointerDown$.complete(); - this.pointerMove$.complete(); - this.pointerUp$.complete(); - this.destroy$.next(); - } - checkEventListeners() { - const canDrag = this.canDrag(); - const hasEventListeners = Object.keys(this.eventListenerSubscriptions).length > 0; - if (canDrag && !hasEventListeners) { - this.zone.runOutsideAngular(() => { - this.eventListenerSubscriptions.mousedown = this.renderer.listen(this.element.nativeElement, 'mousedown', event => { - this.onMouseDown(event); - }); - this.eventListenerSubscriptions.mouseup = this.renderer.listen('document', 'mouseup', event => { - this.onMouseUp(event); - }); - this.eventListenerSubscriptions.touchstart = this.renderer.listen(this.element.nativeElement, 'touchstart', event => { - this.onTouchStart(event); - }); - this.eventListenerSubscriptions.touchend = this.renderer.listen('document', 'touchend', event => { - this.onTouchEnd(event); - }); - this.eventListenerSubscriptions.touchcancel = this.renderer.listen('document', 'touchcancel', event => { - this.onTouchEnd(event); - }); - this.eventListenerSubscriptions.mouseenter = this.renderer.listen(this.element.nativeElement, 'mouseenter', () => { - this.onMouseEnter(); - }); - this.eventListenerSubscriptions.mouseleave = this.renderer.listen(this.element.nativeElement, 'mouseleave', () => { - this.onMouseLeave(); - }); - }); - } else if (!canDrag && hasEventListeners) { - this.unsubscribeEventListeners(); - } - } - onMouseDown(event) { - if (event.button === 0) { - if (!this.eventListenerSubscriptions.mousemove) { - this.eventListenerSubscriptions.mousemove = this.renderer.listen('document', 'mousemove', mouseMoveEvent => { - this.pointerMove$.next({ - event: mouseMoveEvent, - clientX: mouseMoveEvent.clientX, - clientY: mouseMoveEvent.clientY - }); - }); - } - this.pointerDown$.next({ - event, - clientX: event.clientX, - clientY: event.clientY - }); - } - } - onMouseUp(event) { - if (event.button === 0) { - if (this.eventListenerSubscriptions.mousemove) { - this.eventListenerSubscriptions.mousemove(); - delete this.eventListenerSubscriptions.mousemove; - } - this.pointerUp$.next({ - event, - clientX: event.clientX, - clientY: event.clientY - }); - } - } - onTouchStart(event) { - let startScrollPosition; - let isDragActivated; - let hasContainerScrollbar; - if (this.touchStartLongPress) { - this.timeLongPress.timerBegin = Date.now(); - isDragActivated = false; - hasContainerScrollbar = this.hasScrollbar(); - startScrollPosition = this.getScrollPosition(); - } - if (!this.eventListenerSubscriptions.touchmove) { - const contextMenuListener = (0,rxjs__WEBPACK_IMPORTED_MODULE_17__.fromEvent)(this.document, 'contextmenu').subscribe(e => { - e.preventDefault(); - }); - const touchMoveListener = (0,rxjs__WEBPACK_IMPORTED_MODULE_17__.fromEvent)(this.document, 'touchmove', { - passive: false - }).subscribe(touchMoveEvent => { - if (this.touchStartLongPress && !isDragActivated && hasContainerScrollbar) { - isDragActivated = this.shouldBeginDrag(event, touchMoveEvent, startScrollPosition); - } - if (!this.touchStartLongPress || !hasContainerScrollbar || isDragActivated) { - touchMoveEvent.preventDefault(); - this.pointerMove$.next({ - event: touchMoveEvent, - clientX: touchMoveEvent.targetTouches[0].clientX, - clientY: touchMoveEvent.targetTouches[0].clientY - }); - } - }); - this.eventListenerSubscriptions.touchmove = () => { - contextMenuListener.unsubscribe(); - touchMoveListener.unsubscribe(); - }; - } - this.pointerDown$.next({ - event, - clientX: event.touches[0].clientX, - clientY: event.touches[0].clientY - }); - } - onTouchEnd(event) { - if (this.eventListenerSubscriptions.touchmove) { - this.eventListenerSubscriptions.touchmove(); - delete this.eventListenerSubscriptions.touchmove; - if (this.touchStartLongPress) { - this.enableScroll(); - } - } - this.pointerUp$.next({ - event, - clientX: event.changedTouches[0].clientX, - clientY: event.changedTouches[0].clientY - }); - } - onMouseEnter() { - this.setCursor(this.dragCursor); - } - onMouseLeave() { - this.setCursor(''); - } - canDrag() { - return this.dragAxis.x || this.dragAxis.y; - } - setCursor(value) { - if (!this.eventListenerSubscriptions.mousemove) { - this.renderer.setStyle(this.element.nativeElement, 'cursor', value); - } - } - unsubscribeEventListeners() { - Object.keys(this.eventListenerSubscriptions).forEach(type => { - this.eventListenerSubscriptions[type](); - delete this.eventListenerSubscriptions[type]; - }); - } - setElementStyles(element, styles) { - Object.keys(styles).forEach(key => { - this.renderer.setStyle(element, key, styles[key]); - }); - } - getScrollElement() { - if (this.scrollContainer) { - return this.scrollContainer.elementRef.nativeElement; - } else { - return this.document.body; - } - } - getScrollPosition() { - if (this.scrollContainer) { - return { - top: this.scrollContainer.elementRef.nativeElement.scrollTop, - left: this.scrollContainer.elementRef.nativeElement.scrollLeft - }; - } else { - return { - top: window.pageYOffset || this.document.documentElement.scrollTop, - left: window.pageXOffset || this.document.documentElement.scrollLeft - }; - } - } - shouldBeginDrag(event, touchMoveEvent, startScrollPosition) { - const moveScrollPosition = this.getScrollPosition(); - const deltaScroll = { - top: Math.abs(moveScrollPosition.top - startScrollPosition.top), - left: Math.abs(moveScrollPosition.left - startScrollPosition.left) - }; - const deltaX = Math.abs(touchMoveEvent.targetTouches[0].clientX - event.touches[0].clientX) - deltaScroll.left; - const deltaY = Math.abs(touchMoveEvent.targetTouches[0].clientY - event.touches[0].clientY) - deltaScroll.top; - const deltaTotal = deltaX + deltaY; - const longPressConfig = this.touchStartLongPress; - if (deltaTotal > longPressConfig.delta || deltaScroll.top > 0 || deltaScroll.left > 0) { - this.timeLongPress.timerBegin = Date.now(); - } - this.timeLongPress.timerEnd = Date.now(); - const duration = this.timeLongPress.timerEnd - this.timeLongPress.timerBegin; - if (duration >= longPressConfig.delay) { - this.disableScroll(); - return true; - } - return false; - } - enableScroll() { - if (this.scrollContainer) { - this.renderer.setStyle(this.scrollContainer.elementRef.nativeElement, 'overflow', ''); - } - this.renderer.setStyle(this.document.body, 'overflow', ''); - } - disableScroll() { - /* istanbul ignore next */ - if (this.scrollContainer) { - this.renderer.setStyle(this.scrollContainer.elementRef.nativeElement, 'overflow', 'hidden'); - } - this.renderer.setStyle(this.document.body, 'overflow', 'hidden'); - } - hasScrollbar() { - const scrollContainer = this.getScrollElement(); - const containerHasHorizontalScroll = scrollContainer.scrollWidth > scrollContainer.clientWidth; - const containerHasVerticalScroll = scrollContainer.scrollHeight > scrollContainer.clientHeight; - return containerHasHorizontalScroll || containerHasVerticalScroll; - } -} -DraggableDirective.ɵfac = function DraggableDirective_Factory(t) { - return new (t || DraggableDirective)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.ElementRef), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.Renderer2), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](DraggableHelper), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.NgZone), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.ViewContainerRef), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](DraggableScrollContainerDirective, 8), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_common__WEBPACK_IMPORTED_MODULE_18__.DOCUMENT)); -}; -DraggableDirective.ɵdir = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineDirective"]({ - type: DraggableDirective, - selectors: [["", "mwlDraggable", ""]], - inputs: { - dropData: "dropData", - dragAxis: "dragAxis", - dragSnapGrid: "dragSnapGrid", - ghostDragEnabled: "ghostDragEnabled", - showOriginalElementWhileDragging: "showOriginalElementWhileDragging", - validateDrag: "validateDrag", - dragCursor: "dragCursor", - dragActiveClass: "dragActiveClass", - ghostElementAppendTo: "ghostElementAppendTo", - ghostElementTemplate: "ghostElementTemplate", - touchStartLongPress: "touchStartLongPress", - autoScroll: "autoScroll" - }, - outputs: { - dragPointerDown: "dragPointerDown", - dragStart: "dragStart", - ghostElementCreated: "ghostElementCreated", - dragging: "dragging", - dragEnd: "dragEnd" - }, - features: [_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵNgOnChangesFeature"]] -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](DraggableDirective, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Directive, - args: [{ - selector: '[mwlDraggable]' - }] - }], function () { - return [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ElementRef - }, { - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Renderer2 - }, { - type: DraggableHelper - }, { - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.NgZone - }, { - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ViewContainerRef - }, { - type: DraggableScrollContainerDirective, - decorators: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Optional - }] - }, { - type: undefined, - decorators: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Inject, - args: [_angular_common__WEBPACK_IMPORTED_MODULE_18__.DOCUMENT] - }] - }]; - }, { - dropData: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dragAxis: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dragSnapGrid: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - ghostDragEnabled: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - showOriginalElementWhileDragging: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - validateDrag: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dragCursor: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dragActiveClass: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - ghostElementAppendTo: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - ghostElementTemplate: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - touchStartLongPress: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - autoScroll: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dragPointerDown: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - dragStart: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - ghostElementCreated: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - dragging: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - dragEnd: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }] - }); -})(); -function isCoordinateWithinRectangle(clientX, clientY, rect) { - return clientX >= rect.left && clientX <= rect.right && clientY >= rect.top && clientY <= rect.bottom; -} -class DroppableDirective { - constructor(element, draggableHelper, zone, renderer, scrollContainer) { - this.element = element; - this.draggableHelper = draggableHelper; - this.zone = zone; - this.renderer = renderer; - this.scrollContainer = scrollContainer; - /** - * Called when a draggable element starts overlapping the element - */ - this.dragEnter = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * Called when a draggable element stops overlapping the element - */ - this.dragLeave = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * Called when a draggable element is moved over the element - */ - this.dragOver = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - /** - * Called when a draggable element is dropped on this element - */ - this.drop = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); // eslint-disable-line @angular-eslint/no-output-native - } - ngOnInit() { - this.currentDragSubscription = this.draggableHelper.currentDrag.subscribe(drag$ => { - addClass(this.renderer, this.element, this.dragActiveClass); - const droppableElement = { - updateCache: true - }; - const deregisterScrollListener = this.renderer.listen(this.scrollContainer ? this.scrollContainer.elementRef.nativeElement : 'window', 'scroll', () => { - droppableElement.updateCache = true; - }); - let currentDragEvent; - const overlaps$ = drag$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_7__.map)(({ - clientX, - clientY, - dropData, - target - }) => { - currentDragEvent = { - clientX, - clientY, - dropData, - target - }; - if (droppableElement.updateCache) { - droppableElement.rect = this.element.nativeElement.getBoundingClientRect(); - if (this.scrollContainer) { - droppableElement.scrollContainerRect = this.scrollContainer.elementRef.nativeElement.getBoundingClientRect(); - } - droppableElement.updateCache = false; - } - const isWithinElement = isCoordinateWithinRectangle(clientX, clientY, droppableElement.rect); - const isDropAllowed = !this.validateDrop || this.validateDrop({ - clientX, - clientY, - target, - dropData - }); - if (droppableElement.scrollContainerRect) { - return isWithinElement && isDropAllowed && isCoordinateWithinRectangle(clientX, clientY, droppableElement.scrollContainerRect); - } else { - return isWithinElement && isDropAllowed; - } - })); - const overlapsChanged$ = overlaps$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_19__.distinctUntilChanged)()); - let dragOverActive; // TODO - see if there's a way of doing this via rxjs - overlapsChanged$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_3__.filter)(overlapsNow => overlapsNow)).subscribe(() => { - dragOverActive = true; - addClass(this.renderer, this.element, this.dragOverClass); - if (this.dragEnter.observers.length > 0) { - this.zone.run(() => { - this.dragEnter.next(currentDragEvent); - }); - } - }); - overlaps$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_3__.filter)(overlapsNow => overlapsNow)).subscribe(() => { - if (this.dragOver.observers.length > 0) { - this.zone.run(() => { - this.dragOver.next(currentDragEvent); - }); - } - }); - overlapsChanged$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_16__.pairwise)(), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_3__.filter)(([didOverlap, overlapsNow]) => didOverlap && !overlapsNow)).subscribe(() => { - dragOverActive = false; - removeClass(this.renderer, this.element, this.dragOverClass); - if (this.dragLeave.observers.length > 0) { - this.zone.run(() => { - this.dragLeave.next(currentDragEvent); - }); - } - }); - drag$.subscribe({ - complete: () => { - deregisterScrollListener(); - removeClass(this.renderer, this.element, this.dragActiveClass); - if (dragOverActive) { - removeClass(this.renderer, this.element, this.dragOverClass); - if (this.drop.observers.length > 0) { - this.zone.run(() => { - this.drop.next(currentDragEvent); - }); - } - } - } - }); - }); - } - ngOnDestroy() { - if (this.currentDragSubscription) { - this.currentDragSubscription.unsubscribe(); - } - } -} -DroppableDirective.ɵfac = function DroppableDirective_Factory(t) { - return new (t || DroppableDirective)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.ElementRef), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](DraggableHelper), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.NgZone), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.Renderer2), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](DraggableScrollContainerDirective, 8)); -}; -DroppableDirective.ɵdir = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineDirective"]({ - type: DroppableDirective, - selectors: [["", "mwlDroppable", ""]], - inputs: { - dragOverClass: "dragOverClass", - dragActiveClass: "dragActiveClass", - validateDrop: "validateDrop" - }, - outputs: { - dragEnter: "dragEnter", - dragLeave: "dragLeave", - dragOver: "dragOver", - drop: "drop" - } -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](DroppableDirective, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Directive, - args: [{ - selector: '[mwlDroppable]' - }] - }], function () { - return [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.ElementRef - }, { - type: DraggableHelper - }, { - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.NgZone - }, { - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Renderer2 - }, { - type: DraggableScrollContainerDirective, - decorators: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Optional - }] - }]; - }, { - dragOverClass: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dragActiveClass: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - validateDrop: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Input - }], - dragEnter: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - dragLeave: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - dragOver: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }], - drop: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.Output - }] - }); -})(); -class DragAndDropModule {} -DragAndDropModule.ɵfac = function DragAndDropModule_Factory(t) { - return new (t || DragAndDropModule)(); -}; -DragAndDropModule.ɵmod = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineNgModule"]({ - type: DragAndDropModule -}); -DragAndDropModule.ɵinj = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineInjector"]({}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵsetClassMetadata"](DragAndDropModule, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_2__.NgModule, - args: [{ - declarations: [DraggableDirective, DroppableDirective, DraggableScrollContainerDirective], - exports: [DraggableDirective, DroppableDirective, DraggableScrollContainerDirective] - }] - }], null, null); -})(); - -/* - * Public API Surface of angular-draggable-droppable - */ - -/** - * Generated bundle index. Do not edit. - */ - - - -/***/ }), - -/***/ 6839: -/*!**************************************************************************************!*\ - !*** ./node_modules/angular-resizable-element/fesm2015/angular-resizable-element.js ***! - \**************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ ResizableDirective: () => (/* binding */ ResizableDirective), -/* harmony export */ ResizableModule: () => (/* binding */ ResizableModule), -/* harmony export */ ResizeHandleDirective: () => (/* binding */ ResizeHandleDirective) -/* harmony export */ }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 7580); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/common */ 316); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ 3119); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ 7405); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! rxjs */ 7498); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! rxjs */ 7557); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ 6000); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs/operators */ 8690); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs/operators */ 3107); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs/operators */ 3602); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rxjs/operators */ 5443); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! rxjs/operators */ 6725); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! rxjs/operators */ 8627); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! rxjs/operators */ 7464); - - - - - - -/** - * @hidden - */ -const IS_TOUCH_DEVICE = (() => { - // In case we're in Node.js environment. - if (typeof window === 'undefined') { - return false; - } else { - return 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0; - } -})(); - -/** Creates a deep clone of an element. */ -function deepCloneNode(node) { - const clone = node.cloneNode(true); - const descendantsWithId = clone.querySelectorAll('[id]'); - const nodeName = node.nodeName.toLowerCase(); - // Remove the `id` to avoid having multiple elements with the same id on the page. - clone.removeAttribute('id'); - descendantsWithId.forEach(descendant => { - descendant.removeAttribute('id'); - }); - if (nodeName === 'canvas') { - transferCanvasData(node, clone); - } else if (nodeName === 'input' || nodeName === 'select' || nodeName === 'textarea') { - transferInputData(node, clone); - } - transferData('canvas', node, clone, transferCanvasData); - transferData('input, textarea, select', node, clone, transferInputData); - return clone; -} -/** Matches elements between an element and its clone and allows for their data to be cloned. */ -function transferData(selector, node, clone, callback) { - const descendantElements = node.querySelectorAll(selector); - if (descendantElements.length) { - const cloneElements = clone.querySelectorAll(selector); - for (let i = 0; i < descendantElements.length; i++) { - callback(descendantElements[i], cloneElements[i]); - } - } -} -// Counter for unique cloned radio button names. -let cloneUniqueId = 0; -/** Transfers the data of one input element to another. */ -function transferInputData(source, clone) { - // Browsers throw an error when assigning the value of a file input programmatically. - if (clone.type !== 'file') { - clone.value = source.value; - } - // Radio button `name` attributes must be unique for radio button groups - // otherwise original radio buttons can lose their checked state - // once the clone is inserted in the DOM. - if (clone.type === 'radio' && clone.name) { - clone.name = `mat-clone-${clone.name}-${cloneUniqueId++}`; - } -} -/** Transfers the data of one canvas element to another. */ -function transferCanvasData(source, clone) { - const context = clone.getContext('2d'); - if (context) { - // In some cases `drawImage` can throw (e.g. if the canvas size is 0x0). - // We can't do much about it so just ignore the error. - try { - context.drawImage(source, 0, 0); - } catch (_a) {} - } -} -function getNewBoundingRectangle(startingRect, edges, clientX, clientY) { - const newBoundingRect = { - top: startingRect.top, - bottom: startingRect.bottom, - left: startingRect.left, - right: startingRect.right - }; - if (edges.top) { - newBoundingRect.top += clientY; - } - if (edges.bottom) { - newBoundingRect.bottom += clientY; - } - if (edges.left) { - newBoundingRect.left += clientX; - } - if (edges.right) { - newBoundingRect.right += clientX; - } - newBoundingRect.height = newBoundingRect.bottom - newBoundingRect.top; - newBoundingRect.width = newBoundingRect.right - newBoundingRect.left; - return newBoundingRect; -} -function getElementRect(element, ghostElementPositioning) { - let translateX = 0; - let translateY = 0; - const style = element.nativeElement.style; - const transformProperties = ['transform', '-ms-transform', '-moz-transform', '-o-transform']; - const transform = transformProperties.map(property => style[property]).find(value => !!value); - if (transform && transform.includes('translate')) { - translateX = transform.replace(/.*translate3?d?\((-?[0-9]*)px, (-?[0-9]*)px.*/, '$1'); - translateY = transform.replace(/.*translate3?d?\((-?[0-9]*)px, (-?[0-9]*)px.*/, '$2'); - } - if (ghostElementPositioning === 'absolute') { - return { - height: element.nativeElement.offsetHeight, - width: element.nativeElement.offsetWidth, - top: element.nativeElement.offsetTop - translateY, - bottom: element.nativeElement.offsetHeight + element.nativeElement.offsetTop - translateY, - left: element.nativeElement.offsetLeft - translateX, - right: element.nativeElement.offsetWidth + element.nativeElement.offsetLeft - translateX - }; - } else { - const boundingRect = element.nativeElement.getBoundingClientRect(); - return { - height: boundingRect.height, - width: boundingRect.width, - top: boundingRect.top - translateY, - bottom: boundingRect.bottom - translateY, - left: boundingRect.left - translateX, - right: boundingRect.right - translateX, - scrollTop: element.nativeElement.scrollTop, - scrollLeft: element.nativeElement.scrollLeft - }; - } -} -const DEFAULT_RESIZE_CURSORS = Object.freeze({ - topLeft: 'nw-resize', - topRight: 'ne-resize', - bottomLeft: 'sw-resize', - bottomRight: 'se-resize', - leftOrRight: 'col-resize', - topOrBottom: 'row-resize' -}); -function getResizeCursor(edges, cursors) { - if (edges.left && edges.top) { - return cursors.topLeft; - } else if (edges.right && edges.top) { - return cursors.topRight; - } else if (edges.left && edges.bottom) { - return cursors.bottomLeft; - } else if (edges.right && edges.bottom) { - return cursors.bottomRight; - } else if (edges.left || edges.right) { - return cursors.leftOrRight; - } else if (edges.top || edges.bottom) { - return cursors.topOrBottom; - } else { - return ''; - } -} -function getEdgesDiff({ - edges, - initialRectangle, - newRectangle -}) { - const edgesDiff = {}; - Object.keys(edges).forEach(edge => { - edgesDiff[edge] = (newRectangle[edge] || 0) - (initialRectangle[edge] || 0); - }); - return edgesDiff; -} -const RESIZE_ACTIVE_CLASS = 'resize-active'; -const RESIZE_GHOST_ELEMENT_CLASS = 'resize-ghost-element'; -const MOUSE_MOVE_THROTTLE_MS = 50; -/** - * Place this on an element to make it resizable. For example: - * - * ```html - *
- *
- * ``` - * Or in case they are sibling elements: - * ```html - *
- *
- * ``` - */ -class ResizableDirective { - /** - * @hidden - */ - constructor(platformId, renderer, elm, zone) { - this.platformId = platformId; - this.renderer = renderer; - this.elm = elm; - this.zone = zone; - /** - * Set to `true` to enable a temporary resizing effect of the element in between the `resizeStart` and `resizeEnd` events. - */ - this.enableGhostResize = false; - /** - * A snap grid that resize events will be locked to. - * - * e.g. to only allow the element to be resized every 10px set it to `{left: 10, right: 10}` - */ - this.resizeSnapGrid = {}; - /** - * The mouse cursors that will be set on the resize edges - */ - this.resizeCursors = DEFAULT_RESIZE_CURSORS; - /** - * Define the positioning of the ghost element (can be fixed or absolute) - */ - this.ghostElementPositioning = 'fixed'; - /** - * Allow elements to be resized to negative dimensions - */ - this.allowNegativeResizes = false; - /** - * The mouse move throttle in milliseconds, default: 50 ms - */ - this.mouseMoveThrottleMS = MOUSE_MOVE_THROTTLE_MS; - /** - * Called when the mouse is pressed and a resize event is about to begin. `$event` is a `ResizeEvent` object. - */ - this.resizeStart = new _angular_core__WEBPACK_IMPORTED_MODULE_0__.EventEmitter(); - /** - * Called as the mouse is dragged after a resize event has begun. `$event` is a `ResizeEvent` object. - */ - this.resizing = new _angular_core__WEBPACK_IMPORTED_MODULE_0__.EventEmitter(); - /** - * Called after the mouse is released after a resize event. `$event` is a `ResizeEvent` object. - */ - this.resizeEnd = new _angular_core__WEBPACK_IMPORTED_MODULE_0__.EventEmitter(); - /** - * @hidden - */ - this.mouseup = new rxjs__WEBPACK_IMPORTED_MODULE_1__.Subject(); - /** - * @hidden - */ - this.mousedown = new rxjs__WEBPACK_IMPORTED_MODULE_1__.Subject(); - /** - * @hidden - */ - this.mousemove = new rxjs__WEBPACK_IMPORTED_MODULE_1__.Subject(); - this.destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_1__.Subject(); - this.pointerEventListeners = PointerEventListeners.getInstance(renderer, zone); - } - /** - * @hidden - */ - ngOnInit() { - const mousedown$ = (0,rxjs__WEBPACK_IMPORTED_MODULE_2__.merge)(this.pointerEventListeners.pointerDown, this.mousedown); - const mousemove$ = (0,rxjs__WEBPACK_IMPORTED_MODULE_2__.merge)(this.pointerEventListeners.pointerMove, this.mousemove).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_3__.tap)(({ - event - }) => { - if (currentResize) { - try { - event.preventDefault(); - } catch (e) { - // just adding try-catch not to see errors in console if there is a passive listener for same event somewhere - // browser does nothing except of writing errors to console - } - } - }), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.share)()); - const mouseup$ = (0,rxjs__WEBPACK_IMPORTED_MODULE_2__.merge)(this.pointerEventListeners.pointerUp, this.mouseup); - let currentResize; - const removeGhostElement = () => { - if (currentResize && currentResize.clonedNode) { - this.elm.nativeElement.parentElement.removeChild(currentResize.clonedNode); - this.renderer.setStyle(this.elm.nativeElement, 'visibility', 'inherit'); - } - }; - const getResizeCursors = () => { - return Object.assign(Object.assign({}, DEFAULT_RESIZE_CURSORS), this.resizeCursors); - }; - const mousedrag = mousedown$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_5__.mergeMap)(startCoords => { - function getDiff(moveCoords) { - return { - clientX: moveCoords.clientX - startCoords.clientX, - clientY: moveCoords.clientY - startCoords.clientY - }; - } - const getSnapGrid = () => { - const snapGrid = { - x: 1, - y: 1 - }; - if (currentResize) { - if (this.resizeSnapGrid.left && currentResize.edges.left) { - snapGrid.x = +this.resizeSnapGrid.left; - } else if (this.resizeSnapGrid.right && currentResize.edges.right) { - snapGrid.x = +this.resizeSnapGrid.right; - } - if (this.resizeSnapGrid.top && currentResize.edges.top) { - snapGrid.y = +this.resizeSnapGrid.top; - } else if (this.resizeSnapGrid.bottom && currentResize.edges.bottom) { - snapGrid.y = +this.resizeSnapGrid.bottom; - } - } - return snapGrid; - }; - function getGrid(coords, snapGrid) { - return { - x: Math.ceil(coords.clientX / snapGrid.x), - y: Math.ceil(coords.clientY / snapGrid.y) - }; - } - return (0,rxjs__WEBPACK_IMPORTED_MODULE_2__.merge)(mousemove$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_6__.take)(1)).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_7__.map)(coords => [, coords])), mousemove$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_8__.pairwise)())).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_7__.map)(([previousCoords, newCoords]) => { - return [previousCoords ? getDiff(previousCoords) : previousCoords, getDiff(newCoords)]; - })).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_9__.filter)(([previousCoords, newCoords]) => { - if (!previousCoords) { - return true; - } - const snapGrid = getSnapGrid(); - const previousGrid = getGrid(previousCoords, snapGrid); - const newGrid = getGrid(newCoords, snapGrid); - return previousGrid.x !== newGrid.x || previousGrid.y !== newGrid.y; - })).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_7__.map)(([, newCoords]) => { - const snapGrid = getSnapGrid(); - return { - clientX: Math.round(newCoords.clientX / snapGrid.x) * snapGrid.x, - clientY: Math.round(newCoords.clientY / snapGrid.y) * snapGrid.y - }; - })).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_10__.takeUntil)((0,rxjs__WEBPACK_IMPORTED_MODULE_2__.merge)(mouseup$, mousedown$))); - })).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_9__.filter)(() => !!currentResize)); - mousedrag.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_7__.map)(({ - clientX, - clientY - }) => { - return getNewBoundingRectangle(currentResize.startingRect, currentResize.edges, clientX, clientY); - })).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_9__.filter)(newBoundingRect => { - return this.allowNegativeResizes || !!(newBoundingRect.height && newBoundingRect.width && newBoundingRect.height > 0 && newBoundingRect.width > 0); - })).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_9__.filter)(newBoundingRect => { - return this.validateResize ? this.validateResize({ - rectangle: newBoundingRect, - edges: getEdgesDiff({ - edges: currentResize.edges, - initialRectangle: currentResize.startingRect, - newRectangle: newBoundingRect - }) - }) : true; - }), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_10__.takeUntil)(this.destroy$)).subscribe(newBoundingRect => { - if (currentResize && currentResize.clonedNode) { - this.renderer.setStyle(currentResize.clonedNode, 'height', `${newBoundingRect.height}px`); - this.renderer.setStyle(currentResize.clonedNode, 'width', `${newBoundingRect.width}px`); - this.renderer.setStyle(currentResize.clonedNode, 'top', `${newBoundingRect.top}px`); - this.renderer.setStyle(currentResize.clonedNode, 'left', `${newBoundingRect.left}px`); - } - if (this.resizing.observers.length > 0) { - this.zone.run(() => { - this.resizing.emit({ - edges: getEdgesDiff({ - edges: currentResize.edges, - initialRectangle: currentResize.startingRect, - newRectangle: newBoundingRect - }), - rectangle: newBoundingRect - }); - }); - } - currentResize.currentRect = newBoundingRect; - }); - mousedown$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_7__.map)(({ - edges - }) => { - return edges || {}; - }), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_9__.filter)(edges => { - return Object.keys(edges).length > 0; - }), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_10__.takeUntil)(this.destroy$)).subscribe(edges => { - if (currentResize) { - removeGhostElement(); - } - const startingRect = getElementRect(this.elm, this.ghostElementPositioning); - currentResize = { - edges, - startingRect, - currentRect: startingRect - }; - const resizeCursors = getResizeCursors(); - const cursor = getResizeCursor(currentResize.edges, resizeCursors); - this.renderer.setStyle(document.body, 'cursor', cursor); - this.setElementClass(this.elm, RESIZE_ACTIVE_CLASS, true); - if (this.enableGhostResize) { - currentResize.clonedNode = deepCloneNode(this.elm.nativeElement); - this.elm.nativeElement.parentElement.appendChild(currentResize.clonedNode); - this.renderer.setStyle(this.elm.nativeElement, 'visibility', 'hidden'); - this.renderer.setStyle(currentResize.clonedNode, 'position', this.ghostElementPositioning); - this.renderer.setStyle(currentResize.clonedNode, 'left', `${currentResize.startingRect.left}px`); - this.renderer.setStyle(currentResize.clonedNode, 'top', `${currentResize.startingRect.top}px`); - this.renderer.setStyle(currentResize.clonedNode, 'height', `${currentResize.startingRect.height}px`); - this.renderer.setStyle(currentResize.clonedNode, 'width', `${currentResize.startingRect.width}px`); - this.renderer.setStyle(currentResize.clonedNode, 'cursor', getResizeCursor(currentResize.edges, resizeCursors)); - this.renderer.addClass(currentResize.clonedNode, RESIZE_GHOST_ELEMENT_CLASS); - currentResize.clonedNode.scrollTop = currentResize.startingRect.scrollTop; - currentResize.clonedNode.scrollLeft = currentResize.startingRect.scrollLeft; - } - if (this.resizeStart.observers.length > 0) { - this.zone.run(() => { - this.resizeStart.emit({ - edges: getEdgesDiff({ - edges, - initialRectangle: startingRect, - newRectangle: startingRect - }), - rectangle: getNewBoundingRectangle(startingRect, {}, 0, 0) - }); - }); - } - }); - mouseup$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_10__.takeUntil)(this.destroy$)).subscribe(() => { - if (currentResize) { - this.renderer.removeClass(this.elm.nativeElement, RESIZE_ACTIVE_CLASS); - this.renderer.setStyle(document.body, 'cursor', ''); - this.renderer.setStyle(this.elm.nativeElement, 'cursor', ''); - if (this.resizeEnd.observers.length > 0) { - this.zone.run(() => { - this.resizeEnd.emit({ - edges: getEdgesDiff({ - edges: currentResize.edges, - initialRectangle: currentResize.startingRect, - newRectangle: currentResize.currentRect - }), - rectangle: currentResize.currentRect - }); - }); - } - removeGhostElement(); - currentResize = null; - } - }); - } - /** - * @hidden - */ - ngOnDestroy() { - // browser check for angular universal, because it doesn't know what document is - if ((0,_angular_common__WEBPACK_IMPORTED_MODULE_11__.isPlatformBrowser)(this.platformId)) { - this.renderer.setStyle(document.body, 'cursor', ''); - } - this.mousedown.complete(); - this.mouseup.complete(); - this.mousemove.complete(); - this.destroy$.next(); - } - setElementClass(elm, name, add) { - if (add) { - this.renderer.addClass(elm.nativeElement, name); - } else { - this.renderer.removeClass(elm.nativeElement, name); - } - } -} -ResizableDirective.ɵfac = function ResizableDirective_Factory(t) { - return new (t || ResizableDirective)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.PLATFORM_ID), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.NgZone)); -}; -ResizableDirective.ɵdir = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ - type: ResizableDirective, - selectors: [["", "mwlResizable", ""]], - inputs: { - validateResize: "validateResize", - enableGhostResize: "enableGhostResize", - resizeSnapGrid: "resizeSnapGrid", - resizeCursors: "resizeCursors", - ghostElementPositioning: "ghostElementPositioning", - allowNegativeResizes: "allowNegativeResizes", - mouseMoveThrottleMS: "mouseMoveThrottleMS" - }, - outputs: { - resizeStart: "resizeStart", - resizing: "resizing", - resizeEnd: "resizeEnd" - }, - exportAs: ["mwlResizable"] -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](ResizableDirective, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive, - args: [{ - selector: '[mwlResizable]', - exportAs: 'mwlResizable' - }] - }], function () { - return [{ - type: undefined, - decorators: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject, - args: [_angular_core__WEBPACK_IMPORTED_MODULE_0__.PLATFORM_ID] - }] - }, { - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2 - }, { - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef - }, { - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.NgZone - }]; - }, { - validateResize: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Input - }], - enableGhostResize: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Input - }], - resizeSnapGrid: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Input - }], - resizeCursors: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Input - }], - ghostElementPositioning: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Input - }], - allowNegativeResizes: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Input - }], - mouseMoveThrottleMS: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Input - }], - resizeStart: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Output - }], - resizing: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Output - }], - resizeEnd: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Output - }] - }); -})(); -class PointerEventListeners { - constructor(renderer, zone) { - this.pointerDown = new rxjs__WEBPACK_IMPORTED_MODULE_12__.Observable(observer => { - let unsubscribeMouseDown; - let unsubscribeTouchStart; - zone.runOutsideAngular(() => { - unsubscribeMouseDown = renderer.listen('document', 'mousedown', event => { - observer.next({ - clientX: event.clientX, - clientY: event.clientY, - event - }); - }); - if (IS_TOUCH_DEVICE) { - unsubscribeTouchStart = renderer.listen('document', 'touchstart', event => { - observer.next({ - clientX: event.touches[0].clientX, - clientY: event.touches[0].clientY, - event - }); - }); - } - }); - return () => { - unsubscribeMouseDown(); - if (IS_TOUCH_DEVICE) { - unsubscribeTouchStart(); - } - }; - }).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.share)()); - this.pointerMove = new rxjs__WEBPACK_IMPORTED_MODULE_12__.Observable(observer => { - let unsubscribeMouseMove; - let unsubscribeTouchMove; - zone.runOutsideAngular(() => { - unsubscribeMouseMove = renderer.listen('document', 'mousemove', event => { - observer.next({ - clientX: event.clientX, - clientY: event.clientY, - event - }); - }); - if (IS_TOUCH_DEVICE) { - unsubscribeTouchMove = renderer.listen('document', 'touchmove', event => { - observer.next({ - clientX: event.targetTouches[0].clientX, - clientY: event.targetTouches[0].clientY, - event - }); - }); - } - }); - return () => { - unsubscribeMouseMove(); - if (IS_TOUCH_DEVICE) { - unsubscribeTouchMove(); - } - }; - }).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.share)()); - this.pointerUp = new rxjs__WEBPACK_IMPORTED_MODULE_12__.Observable(observer => { - let unsubscribeMouseUp; - let unsubscribeTouchEnd; - let unsubscribeTouchCancel; - zone.runOutsideAngular(() => { - unsubscribeMouseUp = renderer.listen('document', 'mouseup', event => { - observer.next({ - clientX: event.clientX, - clientY: event.clientY, - event - }); - }); - if (IS_TOUCH_DEVICE) { - unsubscribeTouchEnd = renderer.listen('document', 'touchend', event => { - observer.next({ - clientX: event.changedTouches[0].clientX, - clientY: event.changedTouches[0].clientY, - event - }); - }); - unsubscribeTouchCancel = renderer.listen('document', 'touchcancel', event => { - observer.next({ - clientX: event.changedTouches[0].clientX, - clientY: event.changedTouches[0].clientY, - event - }); - }); - } - }); - return () => { - unsubscribeMouseUp(); - if (IS_TOUCH_DEVICE) { - unsubscribeTouchEnd(); - unsubscribeTouchCancel(); - } - }; - }).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.share)()); - } - static getInstance(renderer, zone) { - if (!PointerEventListeners.instance) { - PointerEventListeners.instance = new PointerEventListeners(renderer, zone); - } - return PointerEventListeners.instance; - } -} - -/** - * An element placed inside a `mwlResizable` directive to be used as a drag and resize handle - * - * For example - * - * ```html - *
- *
- *
- * ``` - * Or in case they are sibling elements: - * ```html - *
- *
- * ``` - */ -class ResizeHandleDirective { - constructor(renderer, element, zone, resizableDirective) { - this.renderer = renderer; - this.element = element; - this.zone = zone; - this.resizableDirective = resizableDirective; - /** - * The `Edges` object that contains the edges of the parent element that dragging the handle will trigger a resize on - */ - this.resizeEdges = {}; - this.eventListeners = {}; - this.destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_1__.Subject(); - } - ngOnInit() { - this.zone.runOutsideAngular(() => { - this.listenOnTheHost('mousedown').subscribe(event => { - this.onMousedown(event, event.clientX, event.clientY); - }); - this.listenOnTheHost('mouseup').subscribe(event => { - this.onMouseup(event.clientX, event.clientY); - }); - if (IS_TOUCH_DEVICE) { - this.listenOnTheHost('touchstart').subscribe(event => { - this.onMousedown(event, event.touches[0].clientX, event.touches[0].clientY); - }); - (0,rxjs__WEBPACK_IMPORTED_MODULE_2__.merge)(this.listenOnTheHost('touchend'), this.listenOnTheHost('touchcancel')).subscribe(event => { - this.onMouseup(event.changedTouches[0].clientX, event.changedTouches[0].clientY); - }); - } - }); - } - ngOnDestroy() { - this.destroy$.next(); - this.unsubscribeEventListeners(); - } - /** - * @hidden - */ - onMousedown(event, clientX, clientY) { - event.preventDefault(); - if (!this.eventListeners.touchmove) { - this.eventListeners.touchmove = this.renderer.listen(this.element.nativeElement, 'touchmove', touchMoveEvent => { - this.onMousemove(touchMoveEvent, touchMoveEvent.targetTouches[0].clientX, touchMoveEvent.targetTouches[0].clientY); - }); - } - if (!this.eventListeners.mousemove) { - this.eventListeners.mousemove = this.renderer.listen(this.element.nativeElement, 'mousemove', mouseMoveEvent => { - this.onMousemove(mouseMoveEvent, mouseMoveEvent.clientX, mouseMoveEvent.clientY); - }); - } - this.resizable.mousedown.next({ - clientX, - clientY, - edges: this.resizeEdges - }); - } - /** - * @hidden - */ - onMouseup(clientX, clientY) { - this.unsubscribeEventListeners(); - this.resizable.mouseup.next({ - clientX, - clientY, - edges: this.resizeEdges - }); - } - // directive might be passed from DI or as an input - get resizable() { - return this.resizableDirective || this.resizableContainer; - } - onMousemove(event, clientX, clientY) { - this.resizable.mousemove.next({ - clientX, - clientY, - edges: this.resizeEdges, - event - }); - } - unsubscribeEventListeners() { - Object.keys(this.eventListeners).forEach(type => { - this.eventListeners[type](); - delete this.eventListeners[type]; - }); - } - listenOnTheHost(eventName) { - return (0,rxjs__WEBPACK_IMPORTED_MODULE_13__.fromEvent)(this.element.nativeElement, eventName).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_10__.takeUntil)(this.destroy$)); - } -} -ResizeHandleDirective.ɵfac = function ResizeHandleDirective_Factory(t) { - return new (t || ResizeHandleDirective)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.NgZone), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](ResizableDirective, 8)); -}; -ResizeHandleDirective.ɵdir = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ - type: ResizeHandleDirective, - selectors: [["", "mwlResizeHandle", ""]], - inputs: { - resizeEdges: "resizeEdges", - resizableContainer: "resizableContainer" - } -}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](ResizeHandleDirective, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive, - args: [{ - selector: '[mwlResizeHandle]' - }] - }], function () { - return [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2 - }, { - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef - }, { - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.NgZone - }, { - type: ResizableDirective, - decorators: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional - }] - }]; - }, { - resizeEdges: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Input - }], - resizableContainer: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.Input - }] - }); -})(); -class ResizableModule {} -ResizableModule.ɵfac = function ResizableModule_Factory(t) { - return new (t || ResizableModule)(); -}; -ResizableModule.ɵmod = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ - type: ResizableModule -}); -ResizableModule.ɵinj = /* @__PURE__ */_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({}); -(() => { - (typeof ngDevMode === "undefined" || ngDevMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](ResizableModule, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__.NgModule, - args: [{ - declarations: [ResizableDirective, ResizeHandleDirective], - exports: [ResizableDirective, ResizeHandleDirective] - }] - }], null, null); -})(); - -/* - * Public API Surface of angular-resizable-element - */ - -/** - * Generated bundle index. Do not edit. - */ - - - -/***/ }), - -/***/ 9333: -/*!*******************************************************!*\ - !*** ./node_modules/calendar-utils/calendar-utils.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ DAYS_OF_WEEK: () => (/* binding */ DAYS_OF_WEEK), -/* harmony export */ EventValidationErrorMessage: () => (/* binding */ EventValidationErrorMessage), -/* harmony export */ SECONDS_IN_DAY: () => (/* binding */ SECONDS_IN_DAY), -/* harmony export */ getAllDayWeekEvents: () => (/* binding */ getAllDayWeekEvents), -/* harmony export */ getDifferenceInDaysWithExclusions: () => (/* binding */ getDifferenceInDaysWithExclusions), -/* harmony export */ getEventsInPeriod: () => (/* binding */ getEventsInPeriod), -/* harmony export */ getMonthView: () => (/* binding */ getMonthView), -/* harmony export */ getWeekView: () => (/* binding */ getWeekView), -/* harmony export */ getWeekViewHeader: () => (/* binding */ getWeekViewHeader), -/* harmony export */ validateEvents: () => (/* binding */ validateEvents) -/* harmony export */ }); -var __assign = undefined && undefined.__assign || function () { - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -var __spreadArrays = undefined && undefined.__spreadArrays || function () { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; - return r; -}; -var DAYS_OF_WEEK; -(function (DAYS_OF_WEEK) { - DAYS_OF_WEEK[DAYS_OF_WEEK["SUNDAY"] = 0] = "SUNDAY"; - DAYS_OF_WEEK[DAYS_OF_WEEK["MONDAY"] = 1] = "MONDAY"; - DAYS_OF_WEEK[DAYS_OF_WEEK["TUESDAY"] = 2] = "TUESDAY"; - DAYS_OF_WEEK[DAYS_OF_WEEK["WEDNESDAY"] = 3] = "WEDNESDAY"; - DAYS_OF_WEEK[DAYS_OF_WEEK["THURSDAY"] = 4] = "THURSDAY"; - DAYS_OF_WEEK[DAYS_OF_WEEK["FRIDAY"] = 5] = "FRIDAY"; - DAYS_OF_WEEK[DAYS_OF_WEEK["SATURDAY"] = 6] = "SATURDAY"; -})(DAYS_OF_WEEK || (DAYS_OF_WEEK = {})); -var DEFAULT_WEEKEND_DAYS = [DAYS_OF_WEEK.SUNDAY, DAYS_OF_WEEK.SATURDAY]; -var DAYS_IN_WEEK = 7; -var HOURS_IN_DAY = 24; -var MINUTES_IN_HOUR = 60; -var SECONDS_IN_DAY = 60 * 60 * 24; -function getExcludedSeconds(dateAdapter, _a) { - var startDate = _a.startDate, - seconds = _a.seconds, - excluded = _a.excluded, - precision = _a.precision; - if (excluded.length < 1) { - return 0; - } - var addSeconds = dateAdapter.addSeconds, - getDay = dateAdapter.getDay, - addDays = dateAdapter.addDays; - var endDate = addSeconds(startDate, seconds - 1); - var dayStart = getDay(startDate); - var dayEnd = getDay(endDate); - var result = 0; // Calculated in seconds - var current = startDate; - var _loop_1 = function () { - var day = getDay(current); - if (excluded.some(function (excludedDay) { - return excludedDay === day; - })) { - result += calculateExcludedSeconds(dateAdapter, { - dayStart: dayStart, - dayEnd: dayEnd, - day: day, - precision: precision, - startDate: startDate, - endDate: endDate - }); - } - current = addDays(current, 1); - }; - while (current < endDate) { - _loop_1(); - } - return result; -} -function calculateExcludedSeconds(dateAdapter, _a) { - var precision = _a.precision, - day = _a.day, - dayStart = _a.dayStart, - dayEnd = _a.dayEnd, - startDate = _a.startDate, - endDate = _a.endDate; - var differenceInSeconds = dateAdapter.differenceInSeconds, - endOfDay = dateAdapter.endOfDay, - startOfDay = dateAdapter.startOfDay; - if (precision === 'minutes') { - if (day === dayStart) { - return differenceInSeconds(endOfDay(startDate), startDate) + 1; - } else if (day === dayEnd) { - return differenceInSeconds(endDate, startOfDay(endDate)) + 1; - } - } - return SECONDS_IN_DAY; -} -function getWeekViewEventSpan(dateAdapter, _a) { - var event = _a.event, - offset = _a.offset, - startOfWeekDate = _a.startOfWeekDate, - excluded = _a.excluded, - precision = _a.precision, - totalDaysInView = _a.totalDaysInView; - var max = dateAdapter.max, - differenceInSeconds = dateAdapter.differenceInSeconds, - addDays = dateAdapter.addDays, - endOfDay = dateAdapter.endOfDay, - differenceInDays = dateAdapter.differenceInDays; - var span = SECONDS_IN_DAY; - var begin = max([event.start, startOfWeekDate]); - if (event.end) { - switch (precision) { - case 'minutes': - span = differenceInSeconds(event.end, begin); - break; - default: - span = differenceInDays(addDays(endOfDay(event.end), 1), begin) * SECONDS_IN_DAY; - break; - } - } - var offsetSeconds = offset * SECONDS_IN_DAY; - var totalLength = offsetSeconds + span; - // the best way to detect if an event is outside the week-view - // is to check if the total span beginning (from startOfWeekDay or event start) exceeds the total days in the view - var secondsInView = totalDaysInView * SECONDS_IN_DAY; - if (totalLength > secondsInView) { - span = secondsInView - offsetSeconds; - } - span -= getExcludedSeconds(dateAdapter, { - startDate: begin, - seconds: span, - excluded: excluded, - precision: precision - }); - return span / SECONDS_IN_DAY; -} -function getWeekViewEventOffset(dateAdapter, _a) { - var event = _a.event, - startOfWeekDate = _a.startOfWeek, - excluded = _a.excluded, - precision = _a.precision; - var differenceInDays = dateAdapter.differenceInDays, - startOfDay = dateAdapter.startOfDay, - differenceInSeconds = dateAdapter.differenceInSeconds; - if (event.start < startOfWeekDate) { - return 0; - } - var offset = 0; - switch (precision) { - case 'days': - offset = differenceInDays(startOfDay(event.start), startOfWeekDate) * SECONDS_IN_DAY; - break; - case 'minutes': - offset = differenceInSeconds(event.start, startOfWeekDate); - break; - } - offset -= getExcludedSeconds(dateAdapter, { - startDate: startOfWeekDate, - seconds: offset, - excluded: excluded, - precision: precision - }); - return Math.abs(offset / SECONDS_IN_DAY); -} -function isEventIsPeriod(dateAdapter, _a) { - var event = _a.event, - periodStart = _a.periodStart, - periodEnd = _a.periodEnd; - var isSameSecond = dateAdapter.isSameSecond; - var eventStart = event.start; - var eventEnd = event.end || event.start; - if (eventStart > periodStart && eventStart < periodEnd) { - return true; - } - if (eventEnd > periodStart && eventEnd < periodEnd) { - return true; - } - if (eventStart < periodStart && eventEnd > periodEnd) { - return true; - } - if (isSameSecond(eventStart, periodStart) || isSameSecond(eventStart, periodEnd)) { - return true; - } - if (isSameSecond(eventEnd, periodStart) || isSameSecond(eventEnd, periodEnd)) { - return true; - } - return false; -} -function getEventsInPeriod(dateAdapter, _a) { - var events = _a.events, - periodStart = _a.periodStart, - periodEnd = _a.periodEnd; - return events.filter(function (event) { - return isEventIsPeriod(dateAdapter, { - event: event, - periodStart: periodStart, - periodEnd: periodEnd - }); - }); -} -function getWeekDay(dateAdapter, _a) { - var date = _a.date, - _b = _a.weekendDays, - weekendDays = _b === void 0 ? DEFAULT_WEEKEND_DAYS : _b; - var startOfDay = dateAdapter.startOfDay, - isSameDay = dateAdapter.isSameDay, - getDay = dateAdapter.getDay; - var today = startOfDay(new Date()); - var day = getDay(date); - return { - date: date, - day: day, - isPast: date < today, - isToday: isSameDay(date, today), - isFuture: date > today, - isWeekend: weekendDays.indexOf(day) > -1 - }; -} -function getWeekViewHeader(dateAdapter, _a) { - var viewDate = _a.viewDate, - weekStartsOn = _a.weekStartsOn, - _b = _a.excluded, - excluded = _b === void 0 ? [] : _b, - weekendDays = _a.weekendDays, - _c = _a.viewStart, - viewStart = _c === void 0 ? dateAdapter.startOfWeek(viewDate, { - weekStartsOn: weekStartsOn - }) : _c, - _d = _a.viewEnd, - viewEnd = _d === void 0 ? dateAdapter.addDays(viewStart, DAYS_IN_WEEK) : _d; - var addDays = dateAdapter.addDays, - getDay = dateAdapter.getDay; - var days = []; - var date = viewStart; - while (date < viewEnd) { - if (!excluded.some(function (e) { - return getDay(date) === e; - })) { - days.push(getWeekDay(dateAdapter, { - date: date, - weekendDays: weekendDays - })); - } - date = addDays(date, 1); - } - return days; -} -function getDifferenceInDaysWithExclusions(dateAdapter, _a) { - var date1 = _a.date1, - date2 = _a.date2, - excluded = _a.excluded; - var date = date1; - var diff = 0; - while (date < date2) { - if (excluded.indexOf(dateAdapter.getDay(date)) === -1) { - diff++; - } - date = dateAdapter.addDays(date, 1); - } - return diff; -} -function getAllDayWeekEvents(dateAdapter, _a) { - var _b = _a.events, - events = _b === void 0 ? [] : _b, - _c = _a.excluded, - excluded = _c === void 0 ? [] : _c, - _d = _a.precision, - precision = _d === void 0 ? 'days' : _d, - _e = _a.absolutePositionedEvents, - absolutePositionedEvents = _e === void 0 ? false : _e, - viewStart = _a.viewStart, - viewEnd = _a.viewEnd; - viewStart = dateAdapter.startOfDay(viewStart); - viewEnd = dateAdapter.endOfDay(viewEnd); - var differenceInSeconds = dateAdapter.differenceInSeconds, - differenceInDays = dateAdapter.differenceInDays; - var maxRange = getDifferenceInDaysWithExclusions(dateAdapter, { - date1: viewStart, - date2: viewEnd, - excluded: excluded - }); - var totalDaysInView = differenceInDays(viewEnd, viewStart) + 1; - var eventsMapped = events.filter(function (event) { - return event.allDay; - }).map(function (event) { - var offset = getWeekViewEventOffset(dateAdapter, { - event: event, - startOfWeek: viewStart, - excluded: excluded, - precision: precision - }); - var span = getWeekViewEventSpan(dateAdapter, { - event: event, - offset: offset, - startOfWeekDate: viewStart, - excluded: excluded, - precision: precision, - totalDaysInView: totalDaysInView - }); - return { - event: event, - offset: offset, - span: span - }; - }).filter(function (e) { - return e.offset < maxRange; - }).filter(function (e) { - return e.span > 0; - }).map(function (entry) { - return { - event: entry.event, - offset: entry.offset, - span: entry.span, - startsBeforeWeek: entry.event.start < viewStart, - endsAfterWeek: (entry.event.end || entry.event.start) > viewEnd - }; - }).sort(function (itemA, itemB) { - var startSecondsDiff = differenceInSeconds(itemA.event.start, itemB.event.start); - if (startSecondsDiff === 0) { - return differenceInSeconds(itemB.event.end || itemB.event.start, itemA.event.end || itemA.event.start); - } - return startSecondsDiff; - }); - var allDayEventRows = []; - var allocatedEvents = []; - eventsMapped.forEach(function (event, index) { - if (allocatedEvents.indexOf(event) === -1) { - allocatedEvents.push(event); - var rowSpan_1 = event.span + event.offset; - var otherRowEvents = eventsMapped.slice(index + 1).filter(function (nextEvent) { - if (nextEvent.offset >= rowSpan_1 && rowSpan_1 + nextEvent.span <= totalDaysInView && allocatedEvents.indexOf(nextEvent) === -1) { - var nextEventOffset = nextEvent.offset - rowSpan_1; - if (!absolutePositionedEvents) { - nextEvent.offset = nextEventOffset; - } - rowSpan_1 += nextEvent.span + nextEventOffset; - allocatedEvents.push(nextEvent); - return true; - } - }); - var weekEvents = __spreadArrays([event], otherRowEvents); - var id = weekEvents.filter(function (weekEvent) { - return weekEvent.event.id; - }).map(function (weekEvent) { - return weekEvent.event.id; - }).join('-'); - allDayEventRows.push(__assign({ - row: weekEvents - }, id ? { - id: id - } : {})); - } - }); - return allDayEventRows; -} -function getWeekViewHourGrid(dateAdapter, _a) { - var events = _a.events, - viewDate = _a.viewDate, - hourSegments = _a.hourSegments, - hourDuration = _a.hourDuration, - dayStart = _a.dayStart, - dayEnd = _a.dayEnd, - weekStartsOn = _a.weekStartsOn, - excluded = _a.excluded, - weekendDays = _a.weekendDays, - segmentHeight = _a.segmentHeight, - viewStart = _a.viewStart, - viewEnd = _a.viewEnd, - minimumEventHeight = _a.minimumEventHeight; - var dayViewHourGrid = getDayViewHourGrid(dateAdapter, { - viewDate: viewDate, - hourSegments: hourSegments, - hourDuration: hourDuration, - dayStart: dayStart, - dayEnd: dayEnd - }); - var weekDays = getWeekViewHeader(dateAdapter, { - viewDate: viewDate, - weekStartsOn: weekStartsOn, - excluded: excluded, - weekendDays: weekendDays, - viewStart: viewStart, - viewEnd: viewEnd - }); - var setHours = dateAdapter.setHours, - setMinutes = dateAdapter.setMinutes, - getHours = dateAdapter.getHours, - getMinutes = dateAdapter.getMinutes; - return weekDays.map(function (day) { - var dayView = getDayView(dateAdapter, { - events: events, - viewDate: day.date, - hourSegments: hourSegments, - dayStart: dayStart, - dayEnd: dayEnd, - segmentHeight: segmentHeight, - eventWidth: 1, - hourDuration: hourDuration, - minimumEventHeight: minimumEventHeight - }); - var hours = dayViewHourGrid.map(function (hour) { - var segments = hour.segments.map(function (segment) { - var date = setMinutes(setHours(day.date, getHours(segment.date)), getMinutes(segment.date)); - return __assign(__assign({}, segment), { - date: date - }); - }); - return __assign(__assign({}, hour), { - segments: segments - }); - }); - function getColumnCount(allEvents, prevOverlappingEvents) { - var columnCount = Math.max.apply(Math, prevOverlappingEvents.map(function (iEvent) { - return iEvent.left + 1; - })); - var nextOverlappingEvents = allEvents.filter(function (iEvent) { - return iEvent.left >= columnCount; - }).filter(function (iEvent) { - return getOverLappingWeekViewEvents(prevOverlappingEvents, iEvent.top, iEvent.top + iEvent.height).length > 0; - }); - if (nextOverlappingEvents.length > 0) { - return getColumnCount(allEvents, nextOverlappingEvents); - } else { - return columnCount; - } - } - var mappedEvents = dayView.events.map(function (event) { - var columnCount = getColumnCount(dayView.events, getOverLappingWeekViewEvents(dayView.events, event.top, event.top + event.height)); - var width = 100 / columnCount; - return __assign(__assign({}, event), { - left: event.left * width, - width: width - }); - }); - return { - hours: hours, - date: day.date, - events: mappedEvents.map(function (event) { - var overLappingEvents = getOverLappingWeekViewEvents(mappedEvents.filter(function (otherEvent) { - return otherEvent.left > event.left; - }), event.top, event.top + event.height); - if (overLappingEvents.length > 0) { - return __assign(__assign({}, event), { - width: Math.min.apply(Math, overLappingEvents.map(function (otherEvent) { - return otherEvent.left; - })) - event.left - }); - } - return event; - }) - }; - }); -} -function getWeekView(dateAdapter, _a) { - var _b = _a.events, - events = _b === void 0 ? [] : _b, - viewDate = _a.viewDate, - weekStartsOn = _a.weekStartsOn, - _c = _a.excluded, - excluded = _c === void 0 ? [] : _c, - _d = _a.precision, - precision = _d === void 0 ? 'days' : _d, - _e = _a.absolutePositionedEvents, - absolutePositionedEvents = _e === void 0 ? false : _e, - hourSegments = _a.hourSegments, - hourDuration = _a.hourDuration, - dayStart = _a.dayStart, - dayEnd = _a.dayEnd, - weekendDays = _a.weekendDays, - segmentHeight = _a.segmentHeight, - minimumEventHeight = _a.minimumEventHeight, - _f = _a.viewStart, - viewStart = _f === void 0 ? dateAdapter.startOfWeek(viewDate, { - weekStartsOn: weekStartsOn - }) : _f, - _g = _a.viewEnd, - viewEnd = _g === void 0 ? dateAdapter.endOfWeek(viewDate, { - weekStartsOn: weekStartsOn - }) : _g; - if (!events) { - events = []; - } - var startOfDay = dateAdapter.startOfDay, - endOfDay = dateAdapter.endOfDay; - viewStart = startOfDay(viewStart); - viewEnd = endOfDay(viewEnd); - var eventsInPeriod = getEventsInPeriod(dateAdapter, { - events: events, - periodStart: viewStart, - periodEnd: viewEnd - }); - var header = getWeekViewHeader(dateAdapter, { - viewDate: viewDate, - weekStartsOn: weekStartsOn, - excluded: excluded, - weekendDays: weekendDays, - viewStart: viewStart, - viewEnd: viewEnd - }); - return { - allDayEventRows: getAllDayWeekEvents(dateAdapter, { - events: eventsInPeriod, - excluded: excluded, - precision: precision, - absolutePositionedEvents: absolutePositionedEvents, - viewStart: viewStart, - viewEnd: viewEnd - }), - period: { - events: eventsInPeriod, - start: header[0].date, - end: endOfDay(header[header.length - 1].date) - }, - hourColumns: getWeekViewHourGrid(dateAdapter, { - events: events, - viewDate: viewDate, - hourSegments: hourSegments, - hourDuration: hourDuration, - dayStart: dayStart, - dayEnd: dayEnd, - weekStartsOn: weekStartsOn, - excluded: excluded, - weekendDays: weekendDays, - segmentHeight: segmentHeight, - viewStart: viewStart, - viewEnd: viewEnd, - minimumEventHeight: minimumEventHeight - }) - }; -} -function getMonthView(dateAdapter, _a) { - var _b = _a.events, - events = _b === void 0 ? [] : _b, - viewDate = _a.viewDate, - weekStartsOn = _a.weekStartsOn, - _c = _a.excluded, - excluded = _c === void 0 ? [] : _c, - _d = _a.viewStart, - viewStart = _d === void 0 ? dateAdapter.startOfMonth(viewDate) : _d, - _e = _a.viewEnd, - viewEnd = _e === void 0 ? dateAdapter.endOfMonth(viewDate) : _e, - weekendDays = _a.weekendDays; - if (!events) { - events = []; - } - var startOfWeek = dateAdapter.startOfWeek, - endOfWeek = dateAdapter.endOfWeek, - differenceInDays = dateAdapter.differenceInDays, - startOfDay = dateAdapter.startOfDay, - addHours = dateAdapter.addHours, - endOfDay = dateAdapter.endOfDay, - isSameMonth = dateAdapter.isSameMonth, - getDay = dateAdapter.getDay, - getMonth = dateAdapter.getMonth; - var start = startOfWeek(viewStart, { - weekStartsOn: weekStartsOn - }); - var end = endOfWeek(viewEnd, { - weekStartsOn: weekStartsOn - }); - var eventsInMonth = getEventsInPeriod(dateAdapter, { - events: events, - periodStart: start, - periodEnd: end - }); - var initialViewDays = []; - var previousDate; - var _loop_2 = function (i) { - // hacky fix for https://github.com/mattlewis92/angular-calendar/issues/173 - var date; - if (previousDate) { - date = startOfDay(addHours(previousDate, HOURS_IN_DAY)); - if (previousDate.getTime() === date.getTime()) { - // DST change, so need to add 25 hours - /* istanbul ignore next */ - date = startOfDay(addHours(previousDate, HOURS_IN_DAY + 1)); - } - previousDate = date; - } else { - date = previousDate = start; - } - if (!excluded.some(function (e) { - return getDay(date) === e; - })) { - var day = getWeekDay(dateAdapter, { - date: date, - weekendDays: weekendDays - }); - var eventsInPeriod = getEventsInPeriod(dateAdapter, { - events: eventsInMonth, - periodStart: startOfDay(date), - periodEnd: endOfDay(date) - }); - day.inMonth = isSameMonth(date, viewDate); - day.events = eventsInPeriod; - day.badgeTotal = eventsInPeriod.length; - initialViewDays.push(day); - } - }; - for (var i = 0; i < differenceInDays(end, start) + 1; i++) { - _loop_2(i); - } - var days = []; - var totalDaysVisibleInWeek = DAYS_IN_WEEK - excluded.length; - if (totalDaysVisibleInWeek < DAYS_IN_WEEK) { - for (var i = 0; i < initialViewDays.length; i += totalDaysVisibleInWeek) { - var row = initialViewDays.slice(i, i + totalDaysVisibleInWeek); - var isRowInMonth = row.some(function (day) { - return viewStart <= day.date && day.date < viewEnd; - }); - if (isRowInMonth) { - days = __spreadArrays(days, row); - } - } - } else { - days = initialViewDays; - } - var rows = Math.floor(days.length / totalDaysVisibleInWeek); - var rowOffsets = []; - for (var i = 0; i < rows; i++) { - rowOffsets.push(i * totalDaysVisibleInWeek); - } - return { - rowOffsets: rowOffsets, - totalDaysVisibleInWeek: totalDaysVisibleInWeek, - days: days, - period: { - start: days[0].date, - end: endOfDay(days[days.length - 1].date), - events: eventsInMonth - } - }; -} -function getOverLappingWeekViewEvents(events, top, bottom) { - return events.filter(function (previousEvent) { - var previousEventTop = previousEvent.top; - var previousEventBottom = previousEvent.top + previousEvent.height; - if (top < previousEventBottom && previousEventBottom < bottom) { - return true; - } else if (top < previousEventTop && previousEventTop < bottom) { - return true; - } else if (previousEventTop <= top && bottom <= previousEventBottom) { - return true; - } - return false; - }); -} -function getDayView(dateAdapter, _a) { - var events = _a.events, - viewDate = _a.viewDate, - hourSegments = _a.hourSegments, - dayStart = _a.dayStart, - dayEnd = _a.dayEnd, - eventWidth = _a.eventWidth, - segmentHeight = _a.segmentHeight, - hourDuration = _a.hourDuration, - minimumEventHeight = _a.minimumEventHeight; - var setMinutes = dateAdapter.setMinutes, - setHours = dateAdapter.setHours, - startOfDay = dateAdapter.startOfDay, - startOfMinute = dateAdapter.startOfMinute, - endOfDay = dateAdapter.endOfDay, - differenceInMinutes = dateAdapter.differenceInMinutes; - var startOfView = setMinutes(setHours(startOfDay(viewDate), sanitiseHours(dayStart.hour)), sanitiseMinutes(dayStart.minute)); - var endOfView = setMinutes(setHours(startOfMinute(endOfDay(viewDate)), sanitiseHours(dayEnd.hour)), sanitiseMinutes(dayEnd.minute)); - endOfView.setSeconds(59, 999); - var previousDayEvents = []; - var eventsInPeriod = getEventsInPeriod(dateAdapter, { - events: events.filter(function (event) { - return !event.allDay; - }), - periodStart: startOfView, - periodEnd: endOfView - }); - var dayViewEvents = eventsInPeriod.sort(function (eventA, eventB) { - return eventA.start.valueOf() - eventB.start.valueOf(); - }).map(function (event) { - var eventStart = event.start; - var eventEnd = event.end || eventStart; - var startsBeforeDay = eventStart < startOfView; - var endsAfterDay = eventEnd > endOfView; - var hourHeightModifier = hourSegments * segmentHeight / (hourDuration || MINUTES_IN_HOUR); - var top = 0; - if (eventStart > startOfView) { - // adjust the difference in minutes if the user's offset is different between the start of the day and the event (e.g. when going to or from DST) - var eventOffset = dateAdapter.getTimezoneOffset(eventStart); - var startOffset = dateAdapter.getTimezoneOffset(startOfView); - var diff = startOffset - eventOffset; - top += differenceInMinutes(eventStart, startOfView) + diff; - } - top *= hourHeightModifier; - top = Math.floor(top); - var startDate = startsBeforeDay ? startOfView : eventStart; - var endDate = endsAfterDay ? endOfView : eventEnd; - var timezoneOffset = dateAdapter.getTimezoneOffset(startDate) - dateAdapter.getTimezoneOffset(endDate); - var height = differenceInMinutes(endDate, startDate) + timezoneOffset; - if (!event.end) { - height = segmentHeight; - } else { - height *= hourHeightModifier; - } - if (minimumEventHeight && height < minimumEventHeight) { - height = minimumEventHeight; - } - height = Math.floor(height); - var bottom = top + height; - var overlappingPreviousEvents = getOverLappingWeekViewEvents(previousDayEvents, top, bottom); - var left = 0; - while (overlappingPreviousEvents.some(function (previousEvent) { - return previousEvent.left === left; - })) { - left += eventWidth; - } - var dayEvent = { - event: event, - height: height, - width: eventWidth, - top: top, - left: left, - startsBeforeDay: startsBeforeDay, - endsAfterDay: endsAfterDay - }; - previousDayEvents.push(dayEvent); - return dayEvent; - }); - var width = Math.max.apply(Math, dayViewEvents.map(function (event) { - return event.left + event.width; - })); - var allDayEvents = getEventsInPeriod(dateAdapter, { - events: events.filter(function (event) { - return event.allDay; - }), - periodStart: startOfDay(startOfView), - periodEnd: endOfDay(endOfView) - }); - return { - events: dayViewEvents, - width: width, - allDayEvents: allDayEvents, - period: { - events: eventsInPeriod, - start: startOfView, - end: endOfView - } - }; -} -function sanitiseHours(hours) { - return Math.max(Math.min(23, hours), 0); -} -function sanitiseMinutes(minutes) { - return Math.max(Math.min(59, minutes), 0); -} -function getDayViewHourGrid(dateAdapter, _a) { - var viewDate = _a.viewDate, - hourSegments = _a.hourSegments, - hourDuration = _a.hourDuration, - dayStart = _a.dayStart, - dayEnd = _a.dayEnd; - var setMinutes = dateAdapter.setMinutes, - setHours = dateAdapter.setHours, - startOfDay = dateAdapter.startOfDay, - startOfMinute = dateAdapter.startOfMinute, - endOfDay = dateAdapter.endOfDay, - addMinutes = dateAdapter.addMinutes, - addHours = dateAdapter.addHours, - addDays = dateAdapter.addDays; - var hours = []; - var startOfView = setMinutes(setHours(startOfDay(viewDate), sanitiseHours(dayStart.hour)), sanitiseMinutes(dayStart.minute)); - var endOfView = setMinutes(setHours(startOfMinute(endOfDay(viewDate)), sanitiseHours(dayEnd.hour)), sanitiseMinutes(dayEnd.minute)); - var segmentDuration = (hourDuration || MINUTES_IN_HOUR) / hourSegments; - var startOfViewDay = startOfDay(viewDate); - var endOfViewDay = endOfDay(viewDate); - var dateAdjustment = function (d) { - return d; - }; - // this means that we change from or to DST on this day and that's going to cause problems so we bump the date - if (dateAdapter.getTimezoneOffset(startOfViewDay) !== dateAdapter.getTimezoneOffset(endOfViewDay)) { - startOfViewDay = addDays(startOfViewDay, 1); - startOfView = addDays(startOfView, 1); - endOfView = addDays(endOfView, 1); - dateAdjustment = function (d) { - return addDays(d, -1); - }; - } - var dayDuration = hourDuration ? HOURS_IN_DAY * 60 / hourDuration : MINUTES_IN_HOUR; - for (var i = 0; i < dayDuration; i++) { - var segments = []; - for (var j = 0; j < hourSegments; j++) { - var date = addMinutes(addMinutes(startOfView, i * (hourDuration || MINUTES_IN_HOUR)), j * segmentDuration); - if (date >= startOfView && date < endOfView) { - segments.push({ - date: dateAdjustment(date), - displayDate: date, - isStart: j === 0 - }); - } - } - if (segments.length > 0) { - hours.push({ - segments: segments - }); - } - } - return hours; -} -var EventValidationErrorMessage; -(function (EventValidationErrorMessage) { - EventValidationErrorMessage["NotArray"] = "Events must be an array"; - EventValidationErrorMessage["StartPropertyMissing"] = "Event is missing the `start` property"; - EventValidationErrorMessage["StartPropertyNotDate"] = "Event `start` property should be a javascript date object. Do `new Date(event.start)` to fix it."; - EventValidationErrorMessage["EndPropertyNotDate"] = "Event `end` property should be a javascript date object. Do `new Date(event.end)` to fix it."; - EventValidationErrorMessage["EndsBeforeStart"] = "Event `start` property occurs after the `end`"; -})(EventValidationErrorMessage || (EventValidationErrorMessage = {})); -function validateEvents(events, log) { - var isValid = true; - function isError(msg, event) { - log(msg, event); - isValid = false; - } - if (!Array.isArray(events)) { - log(EventValidationErrorMessage.NotArray, events); - return false; - } - events.forEach(function (event) { - if (!event.start) { - isError(EventValidationErrorMessage.StartPropertyMissing, event); - } else if (!(event.start instanceof Date)) { - isError(EventValidationErrorMessage.StartPropertyNotDate, event); - } - if (event.end) { - if (!(event.end instanceof Date)) { - isError(EventValidationErrorMessage.EndPropertyNotDate, event); - } - if (event.start > event.end) { - isError(EventValidationErrorMessage.EndsBeforeStart, event); - } - } - }); - return isValid; -} - -/***/ }), - -/***/ 856: -/*!*************************************************************************!*\ - !*** ./node_modules/calendar-utils/date-adapters/esm/date-fns/index.js ***! - \*************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ adapterFactory: () => (/* binding */ adapterFactory) -/* harmony export */ }); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! date-fns */ 6021); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! date-fns */ 4832); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! date-fns */ 3838); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! date-fns */ 8178); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! date-fns */ 2793); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! date-fns */ 5971); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! date-fns */ 8323); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! date-fns */ 3264); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! date-fns */ 9124); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! date-fns */ 2146); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! date-fns */ 1860); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! date-fns */ 5600); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! date-fns */ 6078); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! date-fns */ 3330); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! date-fns */ 3108); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! date-fns */ 5660); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! date-fns */ 2121); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! date-fns */ 6227); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! date-fns */ 7419); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! date-fns */ 6247); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! date-fns */ 1947); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! date-fns */ 9935); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! date-fns */ 4733); -/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! date-fns */ 351); - -function getTimezoneOffset(date) { - return new Date(date).getTimezoneOffset(); -} -function adapterFactory() { - return { - addDays: date_fns__WEBPACK_IMPORTED_MODULE_0__["default"], - addHours: date_fns__WEBPACK_IMPORTED_MODULE_1__["default"], - addMinutes: date_fns__WEBPACK_IMPORTED_MODULE_2__["default"], - addSeconds: date_fns__WEBPACK_IMPORTED_MODULE_3__["default"], - differenceInDays: date_fns__WEBPACK_IMPORTED_MODULE_4__["default"], - differenceInMinutes: date_fns__WEBPACK_IMPORTED_MODULE_5__["default"], - differenceInSeconds: date_fns__WEBPACK_IMPORTED_MODULE_6__["default"], - endOfDay: date_fns__WEBPACK_IMPORTED_MODULE_7__["default"], - endOfMonth: date_fns__WEBPACK_IMPORTED_MODULE_8__["default"], - endOfWeek: date_fns__WEBPACK_IMPORTED_MODULE_9__["default"], - getDay: date_fns__WEBPACK_IMPORTED_MODULE_10__["default"], - getMonth: date_fns__WEBPACK_IMPORTED_MODULE_11__["default"], - isSameDay: date_fns__WEBPACK_IMPORTED_MODULE_12__["default"], - isSameMonth: date_fns__WEBPACK_IMPORTED_MODULE_13__["default"], - isSameSecond: date_fns__WEBPACK_IMPORTED_MODULE_14__["default"], - max: date_fns__WEBPACK_IMPORTED_MODULE_15__["default"], - setHours: date_fns__WEBPACK_IMPORTED_MODULE_16__["default"], - setMinutes: date_fns__WEBPACK_IMPORTED_MODULE_17__["default"], - startOfDay: date_fns__WEBPACK_IMPORTED_MODULE_18__["default"], - startOfMinute: date_fns__WEBPACK_IMPORTED_MODULE_19__["default"], - startOfMonth: date_fns__WEBPACK_IMPORTED_MODULE_20__["default"], - startOfWeek: date_fns__WEBPACK_IMPORTED_MODULE_21__["default"], - getHours: date_fns__WEBPACK_IMPORTED_MODULE_22__["default"], - getMinutes: date_fns__WEBPACK_IMPORTED_MODULE_23__["default"], - getTimezoneOffset: getTimezoneOffset - }; -} - -/***/ }), - -/***/ 8990: -/*!****************************************************************!*\ - !*** ./node_modules/date-fns/esm/_lib/defaultOptions/index.js ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getDefaultOptions: () => (/* binding */ getDefaultOptions), -/* harmony export */ setDefaultOptions: () => (/* binding */ setDefaultOptions) -/* harmony export */ }); -var defaultOptions = {}; -function getDefaultOptions() { - return defaultOptions; -} -function setDefaultOptions(newOptions) { - defaultOptions = newOptions; -} - -/***/ }), - -/***/ 2552: -/*!*********************************************************************************!*\ - !*** ./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js ***! - \*********************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ getTimezoneOffsetInMilliseconds) -/* harmony export */ }); -/** - * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds. - * They usually appear for dates that denote time before the timezones were introduced - * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891 - * and GMT+01:00:00 after that date) - * - * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above, - * which would lead to incorrect calculations. - * - * This function returns the timezone offset in milliseconds that takes seconds in account. - */ -function getTimezoneOffsetInMilliseconds(date) { - var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds())); - utcDate.setUTCFullYear(date.getFullYear()); - return date.getTime() - utcDate.getTime(); -} - -/***/ }), - -/***/ 4507: -/*!**************************************************************!*\ - !*** ./node_modules/date-fns/esm/_lib/requiredArgs/index.js ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ requiredArgs) -/* harmony export */ }); -function requiredArgs(required, args) { - if (args.length < required) { - throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present'); - } -} - -/***/ }), - -/***/ 6499: -/*!*****************************************************************!*\ - !*** ./node_modules/date-fns/esm/_lib/roundingMethods/index.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getRoundingMethod: () => (/* binding */ getRoundingMethod) -/* harmony export */ }); -var roundingMap = { - ceil: Math.ceil, - round: Math.round, - floor: Math.floor, - trunc: function trunc(value) { - return value < 0 ? Math.ceil(value) : Math.floor(value); - } // Math.trunc is not supported by IE -}; -var defaultRoundingMethod = 'trunc'; -function getRoundingMethod(method) { - return method ? roundingMap[method] : roundingMap[defaultRoundingMethod]; -} - -/***/ }), - -/***/ 3144: -/*!***********************************************************!*\ - !*** ./node_modules/date-fns/esm/_lib/toInteger/index.js ***! - \***********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ toInteger) -/* harmony export */ }); -function toInteger(dirtyNumber) { - if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) { - return NaN; - } - var number = Number(dirtyNumber); - if (isNaN(number)) { - return number; - } - return number < 0 ? Math.ceil(number) : Math.floor(number); -} - -/***/ }), - -/***/ 6021: -/*!****************************************************!*\ - !*** ./node_modules/date-fns/esm/addDays/index.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ addDays) -/* harmony export */ }); -/* harmony import */ var _lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_lib/toInteger/index.js */ 3144); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - -/** - * @name addDays - * @category Day Helpers - * @summary Add the specified number of days to the given date. - * - * @description - * Add the specified number of days to the given date. - * - * @param {Date|Number} date - the date to be changed - * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. - * @returns {Date} - the new date with the days added - * @throws {TypeError} - 2 arguments required - * - * @example - * // Add 10 days to 1 September 2014: - * const result = addDays(new Date(2014, 8, 1), 10) - * //=> Thu Sep 11 2014 00:00:00 - */ -function addDays(dirtyDate, dirtyAmount) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - var amount = (0,_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(dirtyAmount); - if (isNaN(amount)) { - return new Date(NaN); - } - if (!amount) { - // If 0 days, no-op to avoid changing times in the hour before end of DST - return date; - } - date.setDate(date.getDate() + amount); - return date; -} - -/***/ }), - -/***/ 4832: -/*!*****************************************************!*\ - !*** ./node_modules/date-fns/esm/addHours/index.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ addHours) -/* harmony export */ }); -/* harmony import */ var _lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_lib/toInteger/index.js */ 3144); -/* harmony import */ var _addMilliseconds_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../addMilliseconds/index.js */ 8595); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - -var MILLISECONDS_IN_HOUR = 3600000; - -/** - * @name addHours - * @category Hour Helpers - * @summary Add the specified number of hours to the given date. - * - * @description - * Add the specified number of hours to the given date. - * - * @param {Date|Number} date - the date to be changed - * @param {Number} amount - the amount of hours to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. - * @returns {Date} the new date with the hours added - * @throws {TypeError} 2 arguments required - * - * @example - * // Add 2 hours to 10 July 2014 23:00:00: - * const result = addHours(new Date(2014, 6, 10, 23, 0), 2) - * //=> Fri Jul 11 2014 01:00:00 - */ -function addHours(dirtyDate, dirtyAmount) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var amount = (0,_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyAmount); - return (0,_addMilliseconds_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(dirtyDate, amount * MILLISECONDS_IN_HOUR); -} - -/***/ }), - -/***/ 8595: -/*!************************************************************!*\ - !*** ./node_modules/date-fns/esm/addMilliseconds/index.js ***! - \************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ addMilliseconds) -/* harmony export */ }); -/* harmony import */ var _lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_lib/toInteger/index.js */ 3144); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - -/** - * @name addMilliseconds - * @category Millisecond Helpers - * @summary Add the specified number of milliseconds to the given date. - * - * @description - * Add the specified number of milliseconds to the given date. - * - * @param {Date|Number} date - the date to be changed - * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. - * @returns {Date} the new date with the milliseconds added - * @throws {TypeError} 2 arguments required - * - * @example - * // Add 750 milliseconds to 10 July 2014 12:45:30.000: - * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750) - * //=> Thu Jul 10 2014 12:45:30.750 - */ -function addMilliseconds(dirtyDate, dirtyAmount) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var timestamp = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate).getTime(); - var amount = (0,_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(dirtyAmount); - return new Date(timestamp + amount); -} - -/***/ }), - -/***/ 3838: -/*!*******************************************************!*\ - !*** ./node_modules/date-fns/esm/addMinutes/index.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ addMinutes) -/* harmony export */ }); -/* harmony import */ var _lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_lib/toInteger/index.js */ 3144); -/* harmony import */ var _addMilliseconds_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../addMilliseconds/index.js */ 8595); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - -var MILLISECONDS_IN_MINUTE = 60000; - -/** - * @name addMinutes - * @category Minute Helpers - * @summary Add the specified number of minutes to the given date. - * - * @description - * Add the specified number of minutes to the given date. - * - * @param {Date|Number} date - the date to be changed - * @param {Number} amount - the amount of minutes to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. - * @returns {Date} the new date with the minutes added - * @throws {TypeError} 2 arguments required - * - * @example - * // Add 30 minutes to 10 July 2014 12:00:00: - * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30) - * //=> Thu Jul 10 2014 12:30:00 - */ -function addMinutes(dirtyDate, dirtyAmount) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var amount = (0,_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyAmount); - return (0,_addMilliseconds_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(dirtyDate, amount * MILLISECONDS_IN_MINUTE); -} - -/***/ }), - -/***/ 8266: -/*!******************************************************!*\ - !*** ./node_modules/date-fns/esm/addMonths/index.js ***! - \******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ addMonths) -/* harmony export */ }); -/* harmony import */ var _lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_lib/toInteger/index.js */ 3144); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - -/** - * @name addMonths - * @category Month Helpers - * @summary Add the specified number of months to the given date. - * - * @description - * Add the specified number of months to the given date. - * - * @param {Date|Number} date - the date to be changed - * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. - * @returns {Date} the new date with the months added - * @throws {TypeError} 2 arguments required - * - * @example - * // Add 5 months to 1 September 2014: - * const result = addMonths(new Date(2014, 8, 1), 5) - * //=> Sun Feb 01 2015 00:00:00 - */ -function addMonths(dirtyDate, dirtyAmount) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - var amount = (0,_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(dirtyAmount); - if (isNaN(amount)) { - return new Date(NaN); - } - if (!amount) { - // If 0 months, no-op to avoid changing times in the hour before end of DST - return date; - } - var dayOfMonth = date.getDate(); - - // The JS Date object supports date math by accepting out-of-bounds values for - // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and - // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we - // want except that dates will wrap around the end of a month, meaning that - // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So - // we'll default to the end of the desired month by adding 1 to the desired - // month and using a date of 0 to back up one day to the end of the desired - // month. - var endOfDesiredMonth = new Date(date.getTime()); - endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0); - var daysInMonth = endOfDesiredMonth.getDate(); - if (dayOfMonth >= daysInMonth) { - // If we're already at the end of the month, then this is the correct date - // and we're done. - return endOfDesiredMonth; - } else { - // Otherwise, we now know that setting the original day-of-month value won't - // cause an overflow, so set the desired day-of-month. Note that we can't - // just set the date of `endOfDesiredMonth` because that object may have had - // its time changed in the unusual case where where a DST transition was on - // the last day of the month and its local time was in the hour skipped or - // repeated next to a DST transition. So we use `date` instead which is - // guaranteed to still have the original time. - date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth); - return date; - } -} - -/***/ }), - -/***/ 8178: -/*!*******************************************************!*\ - !*** ./node_modules/date-fns/esm/addSeconds/index.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ addSeconds) -/* harmony export */ }); -/* harmony import */ var _lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_lib/toInteger/index.js */ 3144); -/* harmony import */ var _addMilliseconds_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../addMilliseconds/index.js */ 8595); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - -/** - * @name addSeconds - * @category Second Helpers - * @summary Add the specified number of seconds to the given date. - * - * @description - * Add the specified number of seconds to the given date. - * - * @param {Date|Number} date - the date to be changed - * @param {Number} amount - the amount of seconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. - * @returns {Date} the new date with the seconds added - * @throws {TypeError} 2 arguments required - * - * @example - * // Add 30 seconds to 10 July 2014 12:45:00: - * const result = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30) - * //=> Thu Jul 10 2014 12:45:30 - */ -function addSeconds(dirtyDate, dirtyAmount) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var amount = (0,_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyAmount); - return (0,_addMilliseconds_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(dirtyDate, amount * 1000); -} - -/***/ }), - -/***/ 786: -/*!*****************************************************!*\ - !*** ./node_modules/date-fns/esm/addWeeks/index.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ addWeeks) -/* harmony export */ }); -/* harmony import */ var _lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_lib/toInteger/index.js */ 3144); -/* harmony import */ var _addDays_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../addDays/index.js */ 6021); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - -/** - * @name addWeeks - * @category Week Helpers - * @summary Add the specified number of weeks to the given date. - * - * @description - * Add the specified number of week to the given date. - * - * @param {Date|Number} date - the date to be changed - * @param {Number} amount - the amount of weeks to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. - * @returns {Date} the new date with the weeks added - * @throws {TypeError} 2 arguments required - * - * @example - * // Add 4 weeks to 1 September 2014: - * const result = addWeeks(new Date(2014, 8, 1), 4) - * //=> Mon Sep 29 2014 00:00:00 - */ -function addWeeks(dirtyDate, dirtyAmount) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var amount = (0,_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyAmount); - var days = amount * 7; - return (0,_addDays_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(dirtyDate, days); -} - -/***/ }), - -/***/ 1175: -/*!******************************************************!*\ - !*** ./node_modules/date-fns/esm/constants/index.js ***! - \******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ daysInWeek: () => (/* binding */ daysInWeek), -/* harmony export */ daysInYear: () => (/* binding */ daysInYear), -/* harmony export */ maxTime: () => (/* binding */ maxTime), -/* harmony export */ millisecondsInHour: () => (/* binding */ millisecondsInHour), -/* harmony export */ millisecondsInMinute: () => (/* binding */ millisecondsInMinute), -/* harmony export */ millisecondsInSecond: () => (/* binding */ millisecondsInSecond), -/* harmony export */ minTime: () => (/* binding */ minTime), -/* harmony export */ minutesInHour: () => (/* binding */ minutesInHour), -/* harmony export */ monthsInQuarter: () => (/* binding */ monthsInQuarter), -/* harmony export */ monthsInYear: () => (/* binding */ monthsInYear), -/* harmony export */ quartersInYear: () => (/* binding */ quartersInYear), -/* harmony export */ secondsInDay: () => (/* binding */ secondsInDay), -/* harmony export */ secondsInHour: () => (/* binding */ secondsInHour), -/* harmony export */ secondsInMinute: () => (/* binding */ secondsInMinute), -/* harmony export */ secondsInMonth: () => (/* binding */ secondsInMonth), -/* harmony export */ secondsInQuarter: () => (/* binding */ secondsInQuarter), -/* harmony export */ secondsInWeek: () => (/* binding */ secondsInWeek), -/* harmony export */ secondsInYear: () => (/* binding */ secondsInYear) -/* harmony export */ }); -/** - * Days in 1 week. - * - * @name daysInWeek - * @constant - * @type {number} - * @default - */ -var daysInWeek = 7; - -/** - * Days in 1 year - * One years equals 365.2425 days according to the formula: - * - * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400. - * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days - * - * @name daysInYear - * @constant - * @type {number} - * @default - */ -var daysInYear = 365.2425; - -/** - * Maximum allowed time. - * - * @name maxTime - * @constant - * @type {number} - * @default - */ -var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000; - -/** - * Milliseconds in 1 minute - * - * @name millisecondsInMinute - * @constant - * @type {number} - * @default - */ -var millisecondsInMinute = 60000; - -/** - * Milliseconds in 1 hour - * - * @name millisecondsInHour - * @constant - * @type {number} - * @default - */ -var millisecondsInHour = 3600000; - -/** - * Milliseconds in 1 second - * - * @name millisecondsInSecond - * @constant - * @type {number} - * @default - */ -var millisecondsInSecond = 1000; - -/** - * Minimum allowed time. - * - * @name minTime - * @constant - * @type {number} - * @default - */ -var minTime = -maxTime; - -/** - * Minutes in 1 hour - * - * @name minutesInHour - * @constant - * @type {number} - * @default - */ -var minutesInHour = 60; - -/** - * Months in 1 quarter - * - * @name monthsInQuarter - * @constant - * @type {number} - * @default - */ -var monthsInQuarter = 3; - -/** - * Months in 1 year - * - * @name monthsInYear - * @constant - * @type {number} - * @default - */ -var monthsInYear = 12; - -/** - * Quarters in 1 year - * - * @name quartersInYear - * @constant - * @type {number} - * @default - */ -var quartersInYear = 4; - -/** - * Seconds in 1 hour - * - * @name secondsInHour - * @constant - * @type {number} - * @default - */ -var secondsInHour = 3600; - -/** - * Seconds in 1 minute - * - * @name secondsInMinute - * @constant - * @type {number} - * @default - */ -var secondsInMinute = 60; - -/** - * Seconds in 1 day - * - * @name secondsInDay - * @constant - * @type {number} - * @default - */ -var secondsInDay = secondsInHour * 24; - -/** - * Seconds in 1 week - * - * @name secondsInWeek - * @constant - * @type {number} - * @default - */ -var secondsInWeek = secondsInDay * 7; - -/** - * Seconds in 1 year - * - * @name secondsInYear - * @constant - * @type {number} - * @default - */ -var secondsInYear = secondsInDay * daysInYear; - -/** - * Seconds in 1 month - * - * @name secondsInMonth - * @constant - * @type {number} - * @default - */ -var secondsInMonth = secondsInYear / 12; - -/** - * Seconds in 1 quarter - * - * @name secondsInQuarter - * @constant - * @type {number} - * @default - */ -var secondsInQuarter = secondsInMonth * 3; - -/***/ }), - -/***/ 5395: -/*!*********************************************************************!*\ - !*** ./node_modules/date-fns/esm/differenceInCalendarDays/index.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ differenceInCalendarDays) -/* harmony export */ }); -/* harmony import */ var _lib_getTimezoneOffsetInMilliseconds_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_lib/getTimezoneOffsetInMilliseconds/index.js */ 2552); -/* harmony import */ var _startOfDay_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../startOfDay/index.js */ 7419); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - -var MILLISECONDS_IN_DAY = 86400000; - -/** - * @name differenceInCalendarDays - * @category Day Helpers - * @summary Get the number of calendar days between the given dates. - * - * @description - * Get the number of calendar days between the given dates. This means that the times are removed - * from the dates and then the difference in days is calculated. - * - * @param {Date|Number} dateLeft - the later date - * @param {Date|Number} dateRight - the earlier date - * @returns {Number} the number of calendar days - * @throws {TypeError} 2 arguments required - * - * @example - * // How many calendar days are between - * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00? - * const result = differenceInCalendarDays( - * new Date(2012, 6, 2, 0, 0), - * new Date(2011, 6, 2, 23, 0) - * ) - * //=> 366 - * // How many calendar days are between - * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00? - * const result = differenceInCalendarDays( - * new Date(2011, 6, 3, 0, 1), - * new Date(2011, 6, 2, 23, 59) - * ) - * //=> 1 - */ -function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var startOfDayLeft = (0,_startOfDay_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDateLeft); - var startOfDayRight = (0,_startOfDay_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDateRight); - var timestampLeft = startOfDayLeft.getTime() - (0,_lib_getTimezoneOffsetInMilliseconds_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(startOfDayLeft); - var timestampRight = startOfDayRight.getTime() - (0,_lib_getTimezoneOffsetInMilliseconds_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(startOfDayRight); - - // Round the number of days to the nearest integer - // because the number of milliseconds in a day is not constant - // (e.g. it's different in the day of the daylight saving time clock shift) - return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY); -} - -/***/ }), - -/***/ 2793: -/*!*************************************************************!*\ - !*** ./node_modules/date-fns/esm/differenceInDays/index.js ***! - \*************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ differenceInDays) -/* harmony export */ }); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _differenceInCalendarDays_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../differenceInCalendarDays/index.js */ 5395); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - // Like `compareAsc` but uses local time not UTC, which is needed -// for accurate equality comparisons of UTC timestamps that end up -// having the same representation in local time, e.g. one hour before -// DST ends vs. the instant that DST ends. -function compareLocalAsc(dateLeft, dateRight) { - var diff = dateLeft.getFullYear() - dateRight.getFullYear() || dateLeft.getMonth() - dateRight.getMonth() || dateLeft.getDate() - dateRight.getDate() || dateLeft.getHours() - dateRight.getHours() || dateLeft.getMinutes() - dateRight.getMinutes() || dateLeft.getSeconds() - dateRight.getSeconds() || dateLeft.getMilliseconds() - dateRight.getMilliseconds(); - if (diff < 0) { - return -1; - } else if (diff > 0) { - return 1; - // Return 0 if diff is 0; return NaN if diff is NaN - } else { - return diff; - } -} - -/** - * @name differenceInDays - * @category Day Helpers - * @summary Get the number of full days between the given dates. - * - * @description - * Get the number of full day periods between two dates. Fractional days are - * truncated towards zero. - * - * One "full day" is the distance between a local time in one day to the same - * local time on the next or previous day. A full day can sometimes be less than - * or more than 24 hours if a daylight savings change happens between two dates. - * - * To ignore DST and only measure exact 24-hour periods, use this instead: - * `Math.floor(differenceInHours(dateLeft, dateRight)/24)|0`. - * - * - * @param {Date|Number} dateLeft - the later date - * @param {Date|Number} dateRight - the earlier date - * @returns {Number} the number of full days according to the local timezone - * @throws {TypeError} 2 arguments required - * - * @example - * // How many full days are between - * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00? - * const result = differenceInDays( - * new Date(2012, 6, 2, 0, 0), - * new Date(2011, 6, 2, 23, 0) - * ) - * //=> 365 - * // How many full days are between - * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00? - * const result = differenceInDays( - * new Date(2011, 6, 3, 0, 1), - * new Date(2011, 6, 2, 23, 59) - * ) - * //=> 0 - * // How many full days are between - * // 1 March 2020 0:00 and 1 June 2020 0:00 ? - * // Note: because local time is used, the - * // result will always be 92 days, even in - * // time zones where DST starts and the - * // period has only 92*24-1 hours. - * const result = differenceInDays( - * new Date(2020, 5, 1), - * new Date(2020, 2, 1) - * ) -//=> 92 - */ -function differenceInDays(dirtyDateLeft, dirtyDateRight) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var dateLeft = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDateLeft); - var dateRight = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDateRight); - var sign = compareLocalAsc(dateLeft, dateRight); - var difference = Math.abs((0,_differenceInCalendarDays_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(dateLeft, dateRight)); - dateLeft.setDate(dateLeft.getDate() - sign * difference); - - // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full - // If so, result must be decreased by 1 in absolute value - var isLastDayNotFull = Number(compareLocalAsc(dateLeft, dateRight) === -sign); - var result = sign * (difference - isLastDayNotFull); - // Prevent negative zero - return result === 0 ? 0 : result; -} - -/***/ }), - -/***/ 3020: -/*!*********************************************************************!*\ - !*** ./node_modules/date-fns/esm/differenceInMilliseconds/index.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ differenceInMilliseconds) -/* harmony export */ }); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - -/** - * @name differenceInMilliseconds - * @category Millisecond Helpers - * @summary Get the number of milliseconds between the given dates. - * - * @description - * Get the number of milliseconds between the given dates. - * - * @param {Date|Number} dateLeft - the later date - * @param {Date|Number} dateRight - the earlier date - * @returns {Number} the number of milliseconds - * @throws {TypeError} 2 arguments required - * - * @example - * // How many milliseconds are between - * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700? - * const result = differenceInMilliseconds( - * new Date(2014, 6, 2, 12, 30, 21, 700), - * new Date(2014, 6, 2, 12, 30, 20, 600) - * ) - * //=> 1100 - */ -function differenceInMilliseconds(dateLeft, dateRight) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - return (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dateLeft).getTime() - (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dateRight).getTime(); -} - -/***/ }), - -/***/ 5971: -/*!****************************************************************!*\ - !*** ./node_modules/date-fns/esm/differenceInMinutes/index.js ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ differenceInMinutes) -/* harmony export */ }); -/* harmony import */ var _constants_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants/index.js */ 1175); -/* harmony import */ var _differenceInMilliseconds_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../differenceInMilliseconds/index.js */ 3020); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); -/* harmony import */ var _lib_roundingMethods_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_lib/roundingMethods/index.js */ 6499); - - - - -/** - * @name differenceInMinutes - * @category Minute Helpers - * @summary Get the number of minutes between the given dates. - * - * @description - * Get the signed number of full (rounded towards 0) minutes between the given dates. - * - * @param {Date|Number} dateLeft - the later date - * @param {Date|Number} dateRight - the earlier date - * @param {Object} [options] - an object with options. - * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`) - * @returns {Number} the number of minutes - * @throws {TypeError} 2 arguments required - * - * @example - * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00? - * const result = differenceInMinutes( - * new Date(2014, 6, 2, 12, 20, 0), - * new Date(2014, 6, 2, 12, 7, 59) - * ) - * //=> 12 - * - * @example - * // How many minutes are between 10:01:59 and 10:00:00 - * const result = differenceInMinutes( - * new Date(2000, 0, 1, 10, 0, 0), - * new Date(2000, 0, 1, 10, 1, 59) - * ) - * //=> -1 - */ -function differenceInMinutes(dateLeft, dateRight, options) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var diff = (0,_differenceInMilliseconds_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dateLeft, dateRight) / _constants_index_js__WEBPACK_IMPORTED_MODULE_2__.millisecondsInMinute; - return (0,_lib_roundingMethods_index_js__WEBPACK_IMPORTED_MODULE_3__.getRoundingMethod)(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff); -} - -/***/ }), - -/***/ 8323: -/*!****************************************************************!*\ - !*** ./node_modules/date-fns/esm/differenceInSeconds/index.js ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ differenceInSeconds) -/* harmony export */ }); -/* harmony import */ var _differenceInMilliseconds_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../differenceInMilliseconds/index.js */ 3020); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); -/* harmony import */ var _lib_roundingMethods_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_lib/roundingMethods/index.js */ 6499); - - - -/** - * @name differenceInSeconds - * @category Second Helpers - * @summary Get the number of seconds between the given dates. - * - * @description - * Get the number of seconds between the given dates. - * - * @param {Date|Number} dateLeft - the later date - * @param {Date|Number} dateRight - the earlier date - * @param {Object} [options] - an object with options. - * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`) - * @returns {Number} the number of seconds - * @throws {TypeError} 2 arguments required - * - * @example - * // How many seconds are between - * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000? - * const result = differenceInSeconds( - * new Date(2014, 6, 2, 12, 30, 20, 0), - * new Date(2014, 6, 2, 12, 30, 7, 999) - * ) - * //=> 12 - */ -function differenceInSeconds(dateLeft, dateRight, options) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var diff = (0,_differenceInMilliseconds_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dateLeft, dateRight) / 1000; - return (0,_lib_roundingMethods_index_js__WEBPACK_IMPORTED_MODULE_2__.getRoundingMethod)(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff); -} - -/***/ }), - -/***/ 3264: -/*!*****************************************************!*\ - !*** ./node_modules/date-fns/esm/endOfDay/index.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ endOfDay) -/* harmony export */ }); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - -/** - * @name endOfDay - * @category Day Helpers - * @summary Return the end of a day for the given date. - * - * @description - * Return the end of a day for the given date. - * The result will be in the local timezone. - * - * @param {Date|Number} date - the original date - * @returns {Date} the end of a day - * @throws {TypeError} 1 argument required - * - * @example - * // The end of a day for 2 September 2014 11:55:00: - * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0)) - * //=> Tue Sep 02 2014 23:59:59.999 - */ -function endOfDay(dirtyDate) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - date.setHours(23, 59, 59, 999); - return date; -} - -/***/ }), - -/***/ 9124: -/*!*******************************************************!*\ - !*** ./node_modules/date-fns/esm/endOfMonth/index.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ endOfMonth) -/* harmony export */ }); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - -/** - * @name endOfMonth - * @category Month Helpers - * @summary Return the end of a month for the given date. - * - * @description - * Return the end of a month for the given date. - * The result will be in the local timezone. - * - * @param {Date|Number} date - the original date - * @returns {Date} the end of a month - * @throws {TypeError} 1 argument required - * - * @example - * // The end of a month for 2 September 2014 11:55:00: - * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0)) - * //=> Tue Sep 30 2014 23:59:59.999 - */ -function endOfMonth(dirtyDate) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - var month = date.getMonth(); - date.setFullYear(date.getFullYear(), month + 1, 0); - date.setHours(23, 59, 59, 999); - return date; -} - -/***/ }), - -/***/ 2146: -/*!******************************************************!*\ - !*** ./node_modules/date-fns/esm/endOfWeek/index.js ***! - \******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ endOfWeek) -/* harmony export */ }); -/* harmony import */ var _lib_defaultOptions_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_lib/defaultOptions/index.js */ 8990); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_lib/toInteger/index.js */ 3144); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - - -/** - * @name endOfWeek - * @category Week Helpers - * @summary Return the end of a week for the given date. - * - * @description - * Return the end of a week for the given date. - * The result will be in the local timezone. - * - * @param {Date|Number} date - the original date - * @param {Object} [options] - an object with options. - * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale} - * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday) - * @returns {Date} the end of a week - * @throws {TypeError} 1 argument required - * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6 - * - * @example - * // The end of a week for 2 September 2014 11:55:00: - * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0)) - * //=> Sat Sep 06 2014 23:59:59.999 - * - * @example - * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00: - * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 }) - * //=> Sun Sep 07 2014 23:59:59.999 - */ -function endOfWeek(dirtyDate, options) { - var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2; - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, arguments); - var defaultOptions = (0,_lib_defaultOptions_index_js__WEBPACK_IMPORTED_MODULE_1__.getDefaultOptions)(); - var weekStartsOn = (0,_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); - - // Test if weekStartsOn is between 0 and 6 _and_ is not NaN - if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) { - throw new RangeError('weekStartsOn must be between 0 and 6 inclusively'); - } - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_3__["default"])(dirtyDate); - var day = date.getDay(); - var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn); - date.setDate(date.getDate() + diff); - date.setHours(23, 59, 59, 999); - return date; -} - -/***/ }), - -/***/ 4374: -/*!****************************************************!*\ - !*** ./node_modules/date-fns/esm/getDate/index.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ getDate) -/* harmony export */ }); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - -/** - * @name getDate - * @category Day Helpers - * @summary Get the day of the month of the given date. - * - * @description - * Get the day of the month of the given date. - * - * @param {Date|Number} date - the given date - * @returns {Number} the day of month - * @throws {TypeError} 1 argument required - * - * @example - * // Which day of the month is 29 February 2012? - * const result = getDate(new Date(2012, 1, 29)) - * //=> 29 - */ -function getDate(dirtyDate) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - var dayOfMonth = date.getDate(); - return dayOfMonth; -} - -/***/ }), - -/***/ 1860: -/*!***************************************************!*\ - !*** ./node_modules/date-fns/esm/getDay/index.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ getDay) -/* harmony export */ }); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - -/** - * @name getDay - * @category Weekday Helpers - * @summary Get the day of the week of the given date. - * - * @description - * Get the day of the week of the given date. - * - * @param {Date|Number} date - the given date - * @returns {0|1|2|3|4|5|6} the day of week, 0 represents Sunday - * @throws {TypeError} 1 argument required - * - * @example - * // Which day of the week is 29 February 2012? - * const result = getDay(new Date(2012, 1, 29)) - * //=> 3 - */ -function getDay(dirtyDate) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - var day = date.getDay(); - return day; -} - -/***/ }), - -/***/ 9432: -/*!***********************************************************!*\ - !*** ./node_modules/date-fns/esm/getDaysInMonth/index.js ***! - \***********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ getDaysInMonth) -/* harmony export */ }); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - -/** - * @name getDaysInMonth - * @category Month Helpers - * @summary Get the number of days in a month of the given date. - * - * @description - * Get the number of days in a month of the given date. - * - * @param {Date|Number} date - the given date - * @returns {Number} the number of days in a month - * @throws {TypeError} 1 argument required - * - * @example - * // How many days are in February 2000? - * const result = getDaysInMonth(new Date(2000, 1)) - * //=> 29 - */ -function getDaysInMonth(dirtyDate) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - var year = date.getFullYear(); - var monthIndex = date.getMonth(); - var lastDayOfMonth = new Date(0); - lastDayOfMonth.setFullYear(year, monthIndex + 1, 0); - lastDayOfMonth.setHours(0, 0, 0, 0); - return lastDayOfMonth.getDate(); -} - -/***/ }), - -/***/ 4733: -/*!*****************************************************!*\ - !*** ./node_modules/date-fns/esm/getHours/index.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ getHours) -/* harmony export */ }); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - -/** - * @name getHours - * @category Hour Helpers - * @summary Get the hours of the given date. - * - * @description - * Get the hours of the given date. - * - * @param {Date|Number} date - the given date - * @returns {Number} the hours - * @throws {TypeError} 1 argument required - * - * @example - * // Get the hours of 29 February 2012 11:45:00: - * const result = getHours(new Date(2012, 1, 29, 11, 45)) - * //=> 11 - */ -function getHours(dirtyDate) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - var hours = date.getHours(); - return hours; -} - -/***/ }), - -/***/ 8446: -/*!***********************************************************!*\ - !*** ./node_modules/date-fns/esm/getISOWeekYear/index.js ***! - \***********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ getISOWeekYear) -/* harmony export */ }); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _startOfISOWeek_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../startOfISOWeek/index.js */ 5556); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - -/** - * @name getISOWeekYear - * @category ISO Week-Numbering Year Helpers - * @summary Get the ISO week-numbering year of the given date. - * - * @description - * Get the ISO week-numbering year of the given date, - * which always starts 3 days before the year's first Thursday. - * - * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date - * - * @param {Date|Number} date - the given date - * @returns {Number} the ISO week-numbering year - * @throws {TypeError} 1 argument required - * - * @example - * // Which ISO-week numbering year is 2 January 2005? - * const result = getISOWeekYear(new Date(2005, 0, 2)) - * //=> 2004 - */ -function getISOWeekYear(dirtyDate) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - var year = date.getFullYear(); - var fourthOfJanuaryOfNextYear = new Date(0); - fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4); - fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0); - var startOfNextYear = (0,_startOfISOWeek_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(fourthOfJanuaryOfNextYear); - var fourthOfJanuaryOfThisYear = new Date(0); - fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4); - fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0); - var startOfThisYear = (0,_startOfISOWeek_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(fourthOfJanuaryOfThisYear); - if (date.getTime() >= startOfNextYear.getTime()) { - return year + 1; - } else if (date.getTime() >= startOfThisYear.getTime()) { - return year; - } else { - return year - 1; - } -} - -/***/ }), - -/***/ 8355: -/*!*******************************************************!*\ - !*** ./node_modules/date-fns/esm/getISOWeek/index.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ getISOWeek) -/* harmony export */ }); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _startOfISOWeek_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../startOfISOWeek/index.js */ 5556); -/* harmony import */ var _startOfISOWeekYear_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../startOfISOWeekYear/index.js */ 2781); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - - -var MILLISECONDS_IN_WEEK = 604800000; - -/** - * @name getISOWeek - * @category ISO Week Helpers - * @summary Get the ISO week of the given date. - * - * @description - * Get the ISO week of the given date. - * - * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date - * - * @param {Date|Number} date - the given date - * @returns {Number} the ISO week - * @throws {TypeError} 1 argument required - * - * @example - * // Which week of the ISO-week numbering year is 2 January 2005? - * const result = getISOWeek(new Date(2005, 0, 2)) - * //=> 53 - */ -function getISOWeek(dirtyDate) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - var diff = (0,_startOfISOWeek_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(date).getTime() - (0,_startOfISOWeekYear_index_js__WEBPACK_IMPORTED_MODULE_3__["default"])(date).getTime(); - - // Round the number of days to the nearest integer - // because the number of milliseconds in a week is not constant - // (e.g. it's different in the week of the daylight saving time clock shift) - return Math.round(diff / MILLISECONDS_IN_WEEK) + 1; -} - -/***/ }), - -/***/ 351: -/*!*******************************************************!*\ - !*** ./node_modules/date-fns/esm/getMinutes/index.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ getMinutes) -/* harmony export */ }); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - -/** - * @name getMinutes - * @category Minute Helpers - * @summary Get the minutes of the given date. - * - * @description - * Get the minutes of the given date. - * - * @param {Date|Number} date - the given date - * @returns {Number} the minutes - * @throws {TypeError} 1 argument required - * - * @example - * // Get the minutes of 29 February 2012 11:45:05: - * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5)) - * //=> 45 - */ -function getMinutes(dirtyDate) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - var minutes = date.getMinutes(); - return minutes; -} - -/***/ }), - -/***/ 5600: -/*!*****************************************************!*\ - !*** ./node_modules/date-fns/esm/getMonth/index.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ getMonth) -/* harmony export */ }); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - -/** - * @name getMonth - * @category Month Helpers - * @summary Get the month of the given date. - * - * @description - * Get the month of the given date. - * - * @param {Date|Number} date - the given date - * @returns {Number} the month - * @throws {TypeError} 1 argument required - * - * @example - * // Which month is 29 February 2012? - * const result = getMonth(new Date(2012, 1, 29)) - * //=> 1 - */ -function getMonth(dirtyDate) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - var month = date.getMonth(); - return month; -} - -/***/ }), - -/***/ 927: -/*!****************************************************!*\ - !*** ./node_modules/date-fns/esm/getYear/index.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ getYear) -/* harmony export */ }); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - -/** - * @name getYear - * @category Year Helpers - * @summary Get the year of the given date. - * - * @description - * Get the year of the given date. - * - * @param {Date|Number} date - the given date - * @returns {Number} the year - * @throws {TypeError} 1 argument required - * - * @example - * // Which year is 2 July 2014? - * const result = getYear(new Date(2014, 6, 2)) - * //=> 2014 - */ -function getYear(dirtyDate) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, arguments); - return (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate).getFullYear(); -} - -/***/ }), - -/***/ 6078: -/*!******************************************************!*\ - !*** ./node_modules/date-fns/esm/isSameDay/index.js ***! - \******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ isSameDay) -/* harmony export */ }); -/* harmony import */ var _startOfDay_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../startOfDay/index.js */ 7419); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - -/** - * @name isSameDay - * @category Day Helpers - * @summary Are the given dates in the same day (and year and month)? - * - * @description - * Are the given dates in the same day (and year and month)? - * - * @param {Date|Number} dateLeft - the first date to check - * @param {Date|Number} dateRight - the second date to check - * @returns {Boolean} the dates are in the same day (and year and month) - * @throws {TypeError} 2 arguments required - * - * @example - * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day? - * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0)) - * //=> true - * - * @example - * // Are 4 September and 4 October in the same day? - * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4)) - * //=> false - * - * @example - * // Are 4 September, 2014 and 4 September, 2015 in the same day? - * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4)) - * //=> false - */ -function isSameDay(dirtyDateLeft, dirtyDateRight) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var dateLeftStartOfDay = (0,_startOfDay_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDateLeft); - var dateRightStartOfDay = (0,_startOfDay_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDateRight); - return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime(); -} - -/***/ }), - -/***/ 3330: -/*!********************************************************!*\ - !*** ./node_modules/date-fns/esm/isSameMonth/index.js ***! - \********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ isSameMonth) -/* harmony export */ }); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - -/** - * @name isSameMonth - * @category Month Helpers - * @summary Are the given dates in the same month (and year)? - * - * @description - * Are the given dates in the same month (and year)? - * - * @param {Date|Number} dateLeft - the first date to check - * @param {Date|Number} dateRight - the second date to check - * @returns {Boolean} the dates are in the same month (and year) - * @throws {TypeError} 2 arguments required - * - * @example - * // Are 2 September 2014 and 25 September 2014 in the same month? - * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25)) - * //=> true - * - * @example - * // Are 2 September 2014 and 25 September 2015 in the same month? - * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25)) - * //=> false - */ -function isSameMonth(dirtyDateLeft, dirtyDateRight) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var dateLeft = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDateLeft); - var dateRight = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDateRight); - return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth(); -} - -/***/ }), - -/***/ 3108: -/*!*********************************************************!*\ - !*** ./node_modules/date-fns/esm/isSameSecond/index.js ***! - \*********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ isSameSecond) -/* harmony export */ }); -/* harmony import */ var _startOfSecond_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../startOfSecond/index.js */ 815); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - -/** - * @name isSameSecond - * @category Second Helpers - * @summary Are the given dates in the same second (and hour and day)? - * - * @description - * Are the given dates in the same second (and hour and day)? - * - * @param {Date|Number} dateLeft - the first date to check - * @param {Date|Number} dateRight - the second date to check - * @returns {Boolean} the dates are in the same second (and hour and day) - * @throws {TypeError} 2 arguments required - * - * @example - * // Are 4 September 2014 06:30:15.000 and 4 September 2014 06:30.15.500 in the same second? - * const result = isSameSecond( - * new Date(2014, 8, 4, 6, 30, 15), - * new Date(2014, 8, 4, 6, 30, 15, 500) - * ) - * //=> true - * - * @example - * // Are 4 September 2014 06:00:15.000 and 4 September 2014 06:01.15.000 in the same second? - * const result = isSameSecond( - * new Date(2014, 8, 4, 6, 0, 15), - * new Date(2014, 8, 4, 6, 1, 15) - * ) - * //=> false - * - * @example - * // Are 4 September 2014 06:00:15.000 and 5 September 2014 06:00.15.000 in the same second? - * const result = isSameSecond( - * new Date(2014, 8, 4, 6, 0, 15), - * new Date(2014, 8, 5, 6, 0, 15) - * ) - * //=> false - */ -function isSameSecond(dirtyDateLeft, dirtyDateRight) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var dateLeftStartOfSecond = (0,_startOfSecond_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDateLeft); - var dateRightStartOfSecond = (0,_startOfSecond_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDateRight); - return dateLeftStartOfSecond.getTime() === dateRightStartOfSecond.getTime(); -} - -/***/ }), - -/***/ 5660: -/*!************************************************!*\ - !*** ./node_modules/date-fns/esm/max/index.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ max) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ 1207); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - -/** - * @name max - * @category Common Helpers - * @summary Return the latest of the given dates. - * - * @description - * Return the latest of the given dates. - * - * @param {Date[]|Number[]} datesArray - the dates to compare - * @returns {Date} the latest of the dates - * @throws {TypeError} 1 argument required - * - * @example - * // Which of these dates is the latest? - * const result = max([ - * new Date(1989, 6, 10), - * new Date(1987, 1, 11), - * new Date(1995, 6, 2), - * new Date(1990, 0, 1) - * ]) - * //=> Sun Jul 02 1995 00:00:00 - */ -function max(dirtyDatesArray) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(1, arguments); - var datesArray; - // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method - if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') { - datesArray = dirtyDatesArray; - - // If `dirtyDatesArray` is Array-like Object, convert to Array. - } else if ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__["default"])(dirtyDatesArray) === 'object' && dirtyDatesArray !== null) { - datesArray = Array.prototype.slice.call(dirtyDatesArray); - } else { - // `dirtyDatesArray` is non-iterable, return Invalid Date - return new Date(NaN); - } - var result; - datesArray.forEach(function (dirtyDate) { - var currentDate = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(dirtyDate); - if (result === undefined || result < currentDate || isNaN(Number(currentDate))) { - result = currentDate; - } - }); - return result || new Date(NaN); -} - -/***/ }), - -/***/ 7394: -/*!****************************************************!*\ - !*** ./node_modules/date-fns/esm/setDate/index.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ setDate) -/* harmony export */ }); -/* harmony import */ var _lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_lib/toInteger/index.js */ 3144); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - -/** - * @name setDate - * @category Day Helpers - * @summary Set the day of the month to the given date. - * - * @description - * Set the day of the month to the given date. - * - * @param {Date|Number} date - the date to be changed - * @param {Number} dayOfMonth - the day of the month of the new date - * @returns {Date} the new date with the day of the month set - * @throws {TypeError} 2 arguments required - * - * @example - * // Set the 30th day of the month to 1 September 2014: - * const result = setDate(new Date(2014, 8, 1), 30) - * //=> Tue Sep 30 2014 00:00:00 - */ -function setDate(dirtyDate, dirtyDayOfMonth) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - var dayOfMonth = (0,_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(dirtyDayOfMonth); - date.setDate(dayOfMonth); - return date; -} - -/***/ }), - -/***/ 2121: -/*!*****************************************************!*\ - !*** ./node_modules/date-fns/esm/setHours/index.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ setHours) -/* harmony export */ }); -/* harmony import */ var _lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_lib/toInteger/index.js */ 3144); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - -/** - * @name setHours - * @category Hour Helpers - * @summary Set the hours to the given date. - * - * @description - * Set the hours to the given date. - * - * @param {Date|Number} date - the date to be changed - * @param {Number} hours - the hours of the new date - * @returns {Date} the new date with the hours set - * @throws {TypeError} 2 arguments required - * - * @example - * // Set 4 hours to 1 September 2014 11:30:00: - * const result = setHours(new Date(2014, 8, 1, 11, 30), 4) - * //=> Mon Sep 01 2014 04:30:00 - */ -function setHours(dirtyDate, dirtyHours) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - var hours = (0,_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(dirtyHours); - date.setHours(hours); - return date; -} - -/***/ }), - -/***/ 6227: -/*!*******************************************************!*\ - !*** ./node_modules/date-fns/esm/setMinutes/index.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ setMinutes) -/* harmony export */ }); -/* harmony import */ var _lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_lib/toInteger/index.js */ 3144); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - -/** - * @name setMinutes - * @category Minute Helpers - * @summary Set the minutes to the given date. - * - * @description - * Set the minutes to the given date. - * - * @param {Date|Number} date - the date to be changed - * @param {Number} minutes - the minutes of the new date - * @returns {Date} the new date with the minutes set - * @throws {TypeError} 2 arguments required - * - * @example - * // Set 45 minutes to 1 September 2014 11:30:40: - * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45) - * //=> Mon Sep 01 2014 11:45:40 - */ -function setMinutes(dirtyDate, dirtyMinutes) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - var minutes = (0,_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(dirtyMinutes); - date.setMinutes(minutes); - return date; -} - -/***/ }), - -/***/ 2508: -/*!*****************************************************!*\ - !*** ./node_modules/date-fns/esm/setMonth/index.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ setMonth) -/* harmony export */ }); -/* harmony import */ var _lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_lib/toInteger/index.js */ 3144); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _getDaysInMonth_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../getDaysInMonth/index.js */ 9432); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - - -/** - * @name setMonth - * @category Month Helpers - * @summary Set the month to the given date. - * - * @description - * Set the month to the given date. - * - * @param {Date|Number} date - the date to be changed - * @param {Number} month - the month of the new date - * @returns {Date} the new date with the month set - * @throws {TypeError} 2 arguments required - * - * @example - * // Set February to 1 September 2014: - * const result = setMonth(new Date(2014, 8, 1), 1) - * //=> Sat Feb 01 2014 00:00:00 - */ -function setMonth(dirtyDate, dirtyMonth) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - var month = (0,_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(dirtyMonth); - var year = date.getFullYear(); - var day = date.getDate(); - var dateWithDesiredMonth = new Date(0); - dateWithDesiredMonth.setFullYear(year, month, 15); - dateWithDesiredMonth.setHours(0, 0, 0, 0); - var daysInMonth = (0,_getDaysInMonth_index_js__WEBPACK_IMPORTED_MODULE_3__["default"])(dateWithDesiredMonth); - // Set the last day of the new month - // if the original date was the last day of the longer month - date.setMonth(month, Math.min(day, daysInMonth)); - return date; -} - -/***/ }), - -/***/ 9931: -/*!****************************************************!*\ - !*** ./node_modules/date-fns/esm/setYear/index.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ setYear) -/* harmony export */ }); -/* harmony import */ var _lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_lib/toInteger/index.js */ 3144); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - -/** - * @name setYear - * @category Year Helpers - * @summary Set the year to the given date. - * - * @description - * Set the year to the given date. - * - * @param {Date|Number} date - the date to be changed - * @param {Number} year - the year of the new date - * @returns {Date} the new date with the year set - * @throws {TypeError} 2 arguments required - * - * @example - * // Set year 2013 to 1 September 2014: - * const result = setYear(new Date(2014, 8, 1), 2013) - * //=> Sun Sep 01 2013 00:00:00 - */ -function setYear(dirtyDate, dirtyYear) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - var year = (0,_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(dirtyYear); - - // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date - if (isNaN(date.getTime())) { - return new Date(NaN); - } - date.setFullYear(year); - return date; -} - -/***/ }), - -/***/ 7419: -/*!*******************************************************!*\ - !*** ./node_modules/date-fns/esm/startOfDay/index.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ startOfDay) -/* harmony export */ }); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - -/** - * @name startOfDay - * @category Day Helpers - * @summary Return the start of a day for the given date. - * - * @description - * Return the start of a day for the given date. - * The result will be in the local timezone. - * - * @param {Date|Number} date - the original date - * @returns {Date} the start of a day - * @throws {TypeError} 1 argument required - * - * @example - * // The start of a day for 2 September 2014 11:55:00: - * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0)) - * //=> Tue Sep 02 2014 00:00:00 - */ -function startOfDay(dirtyDate) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - date.setHours(0, 0, 0, 0); - return date; -} - -/***/ }), - -/***/ 2781: -/*!***************************************************************!*\ - !*** ./node_modules/date-fns/esm/startOfISOWeekYear/index.js ***! - \***************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ startOfISOWeekYear) -/* harmony export */ }); -/* harmony import */ var _getISOWeekYear_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../getISOWeekYear/index.js */ 8446); -/* harmony import */ var _startOfISOWeek_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../startOfISOWeek/index.js */ 5556); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - -/** - * @name startOfISOWeekYear - * @category ISO Week-Numbering Year Helpers - * @summary Return the start of an ISO week-numbering year for the given date. - * - * @description - * Return the start of an ISO week-numbering year, - * which always starts 3 days before the year's first Thursday. - * The result will be in the local timezone. - * - * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date - * - * @param {Date|Number} date - the original date - * @returns {Date} the start of an ISO week-numbering year - * @throws {TypeError} 1 argument required - * - * @example - * // The start of an ISO week-numbering year for 2 July 2005: - * const result = startOfISOWeekYear(new Date(2005, 6, 2)) - * //=> Mon Jan 03 2005 00:00:00 - */ -function startOfISOWeekYear(dirtyDate) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, arguments); - var year = (0,_getISOWeekYear_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - var fourthOfJanuary = new Date(0); - fourthOfJanuary.setFullYear(year, 0, 4); - fourthOfJanuary.setHours(0, 0, 0, 0); - var date = (0,_startOfISOWeek_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(fourthOfJanuary); - return date; -} - -/***/ }), - -/***/ 5556: -/*!***********************************************************!*\ - !*** ./node_modules/date-fns/esm/startOfISOWeek/index.js ***! - \***********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ startOfISOWeek) -/* harmony export */ }); -/* harmony import */ var _startOfWeek_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../startOfWeek/index.js */ 9935); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - -/** - * @name startOfISOWeek - * @category ISO Week Helpers - * @summary Return the start of an ISO week for the given date. - * - * @description - * Return the start of an ISO week for the given date. - * The result will be in the local timezone. - * - * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date - * - * @param {Date|Number} date - the original date - * @returns {Date} the start of an ISO week - * @throws {TypeError} 1 argument required - * - * @example - * // The start of an ISO week for 2 September 2014 11:55:00: - * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0)) - * //=> Mon Sep 01 2014 00:00:00 - */ -function startOfISOWeek(dirtyDate) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, arguments); - return (0,_startOfWeek_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate, { - weekStartsOn: 1 - }); -} - -/***/ }), - -/***/ 6247: -/*!**********************************************************!*\ - !*** ./node_modules/date-fns/esm/startOfMinute/index.js ***! - \**********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ startOfMinute) -/* harmony export */ }); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - -/** - * @name startOfMinute - * @category Minute Helpers - * @summary Return the start of a minute for the given date. - * - * @description - * Return the start of a minute for the given date. - * The result will be in the local timezone. - * - * @param {Date|Number} date - the original date - * @returns {Date} the start of a minute - * @throws {TypeError} 1 argument required - * - * @example - * // The start of a minute for 1 December 2014 22:15:45.400: - * const result = startOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400)) - * //=> Mon Dec 01 2014 22:15:00 - */ -function startOfMinute(dirtyDate) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - date.setSeconds(0, 0); - return date; -} - -/***/ }), - -/***/ 1947: -/*!*********************************************************!*\ - !*** ./node_modules/date-fns/esm/startOfMonth/index.js ***! - \*********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ startOfMonth) -/* harmony export */ }); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - -/** - * @name startOfMonth - * @category Month Helpers - * @summary Return the start of a month for the given date. - * - * @description - * Return the start of a month for the given date. - * The result will be in the local timezone. - * - * @param {Date|Number} date - the original date - * @returns {Date} the start of a month - * @throws {TypeError} 1 argument required - * - * @example - * // The start of a month for 2 September 2014 11:55:00: - * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0)) - * //=> Mon Sep 01 2014 00:00:00 - */ -function startOfMonth(dirtyDate) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - date.setDate(1); - date.setHours(0, 0, 0, 0); - return date; -} - -/***/ }), - -/***/ 815: -/*!**********************************************************!*\ - !*** ./node_modules/date-fns/esm/startOfSecond/index.js ***! - \**********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ startOfSecond) -/* harmony export */ }); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - -/** - * @name startOfSecond - * @category Second Helpers - * @summary Return the start of a second for the given date. - * - * @description - * Return the start of a second for the given date. - * The result will be in the local timezone. - * - * @param {Date|Number} date - the original date - * @returns {Date} the start of a second - * @throws {TypeError} 1 argument required - * - * @example - * // The start of a second for 1 December 2014 22:15:45.400: - * const result = startOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400)) - * //=> Mon Dec 01 2014 22:15:45.000 - */ -function startOfSecond(dirtyDate) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, arguments); - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate); - date.setMilliseconds(0); - return date; -} - -/***/ }), - -/***/ 9935: -/*!********************************************************!*\ - !*** ./node_modules/date-fns/esm/startOfWeek/index.js ***! - \********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ startOfWeek) -/* harmony export */ }); -/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../toDate/index.js */ 9103); -/* harmony import */ var _lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_lib/toInteger/index.js */ 3144); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); -/* harmony import */ var _lib_defaultOptions_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_lib/defaultOptions/index.js */ 8990); - - - - -/** - * @name startOfWeek - * @category Week Helpers - * @summary Return the start of a week for the given date. - * - * @description - * Return the start of a week for the given date. - * The result will be in the local timezone. - * - * @param {Date|Number} date - the original date - * @param {Object} [options] - an object with options. - * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale} - * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday) - * @returns {Date} the start of a week - * @throws {TypeError} 1 argument required - * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6 - * - * @example - * // The start of a week for 2 September 2014 11:55:00: - * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0)) - * //=> Sun Aug 31 2014 00:00:00 - * - * @example - * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00: - * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 }) - * //=> Mon Sep 01 2014 00:00:00 - */ -function startOfWeek(dirtyDate, options) { - var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2; - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, arguments); - var defaultOptions = (0,_lib_defaultOptions_index_js__WEBPACK_IMPORTED_MODULE_1__.getDefaultOptions)(); - var weekStartsOn = (0,_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); - - // Test if weekStartsOn is between 0 and 6 _and_ is not NaN - if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) { - throw new RangeError('weekStartsOn must be between 0 and 6 inclusively'); - } - var date = (0,_toDate_index_js__WEBPACK_IMPORTED_MODULE_3__["default"])(dirtyDate); - var day = date.getDay(); - var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; - date.setDate(date.getDate() - diff); - date.setHours(0, 0, 0, 0); - return date; -} - -/***/ }), - -/***/ 6871: -/*!****************************************************!*\ - !*** ./node_modules/date-fns/esm/subDays/index.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ subDays) -/* harmony export */ }); -/* harmony import */ var _addDays_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../addDays/index.js */ 6021); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); -/* harmony import */ var _lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_lib/toInteger/index.js */ 3144); - - - -/** - * @name subDays - * @category Day Helpers - * @summary Subtract the specified number of days from the given date. - * - * @description - * Subtract the specified number of days from the given date. - * - * @param {Date|Number} date - the date to be changed - * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. - * @returns {Date} the new date with the days subtracted - * @throws {TypeError} 2 arguments required - * - * @example - * // Subtract 10 days from 1 September 2014: - * const result = subDays(new Date(2014, 8, 1), 10) - * //=> Fri Aug 22 2014 00:00:00 - */ -function subDays(dirtyDate, dirtyAmount) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var amount = (0,_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyAmount); - return (0,_addDays_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(dirtyDate, -amount); -} - -/***/ }), - -/***/ 8880: -/*!******************************************************!*\ - !*** ./node_modules/date-fns/esm/subMonths/index.js ***! - \******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ subMonths) -/* harmony export */ }); -/* harmony import */ var _lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_lib/toInteger/index.js */ 3144); -/* harmony import */ var _addMonths_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../addMonths/index.js */ 8266); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - -/** - * @name subMonths - * @category Month Helpers - * @summary Subtract the specified number of months from the given date. - * - * @description - * Subtract the specified number of months from the given date. - * - * @param {Date|Number} date - the date to be changed - * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. - * @returns {Date} the new date with the months subtracted - * @throws {TypeError} 2 arguments required - * - * @example - * // Subtract 5 months from 1 February 2015: - * const result = subMonths(new Date(2015, 1, 1), 5) - * //=> Mon Sep 01 2014 00:00:00 - */ -function subMonths(dirtyDate, dirtyAmount) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var amount = (0,_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyAmount); - return (0,_addMonths_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(dirtyDate, -amount); -} - -/***/ }), - -/***/ 5397: -/*!*****************************************************!*\ - !*** ./node_modules/date-fns/esm/subWeeks/index.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ subWeeks) -/* harmony export */ }); -/* harmony import */ var _lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_lib/toInteger/index.js */ 3144); -/* harmony import */ var _addWeeks_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../addWeeks/index.js */ 786); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - - -/** - * @name subWeeks - * @category Week Helpers - * @summary Subtract the specified number of weeks from the given date. - * - * @description - * Subtract the specified number of weeks from the given date. - * - * @param {Date|Number} date - the date to be changed - * @param {Number} amount - the amount of weeks to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. - * @returns {Date} the new date with the weeks subtracted - * @throws {TypeError} 2 arguments required - * - * @example - * // Subtract 4 weeks from 1 September 2014: - * const result = subWeeks(new Date(2014, 8, 1), 4) - * //=> Mon Aug 04 2014 00:00:00 - */ -function subWeeks(dirtyDate, dirtyAmount) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(2, arguments); - var amount = (0,_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyAmount); - return (0,_addWeeks_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(dirtyDate, -amount); -} - -/***/ }), - -/***/ 9103: -/*!***************************************************!*\ - !*** ./node_modules/date-fns/esm/toDate/index.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ toDate) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ 1207); -/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_lib/requiredArgs/index.js */ 4507); - - -/** - * @name toDate - * @category Common Helpers - * @summary Convert the given argument to an instance of Date. - * - * @description - * Convert the given argument to an instance of Date. - * - * If the argument is an instance of Date, the function returns its clone. - * - * If the argument is a number, it is treated as a timestamp. - * - * If the argument is none of the above, the function returns Invalid Date. - * - * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`. - * - * @param {Date|Number} argument - the value to convert - * @returns {Date} the parsed date in the local time zone - * @throws {TypeError} 1 argument required - * - * @example - * // Clone the date: - * const result = toDate(new Date(2014, 1, 11, 11, 30, 30)) - * //=> Tue Feb 11 2014 11:30:30 - * - * @example - * // Convert the timestamp to date: - * const result = toDate(1392098430000) - * //=> Tue Feb 11 2014 11:30:30 - */ -function toDate(argument) { - (0,_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(1, arguments); - var argStr = Object.prototype.toString.call(argument); - - // Clone the date - if (argument instanceof Date || (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__["default"])(argument) === 'object' && argStr === '[object Date]') { - // Prevent the date to lose the milliseconds when passed to new Date() in IE10 - return new Date(argument.getTime()); - } else if (typeof argument === 'number' || argStr === '[object Number]') { - return new Date(argument); - } else { - if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') { - // eslint-disable-next-line no-console - console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"); - // eslint-disable-next-line no-console - console.warn(new Error().stack); - } - return new Date(NaN); - } -} - -/***/ }), - -/***/ 5609: -/*!*********************************************************!*\ - !*** ./node_modules/jwt-decode/build/jwt-decode.esm.js ***! - \*********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ InvalidTokenError: () => (/* binding */ n), -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -function e(e) { - this.message = e; -} -e.prototype = new Error(), e.prototype.name = "InvalidCharacterError"; -var r = "undefined" != typeof window && window.atob && window.atob.bind(window) || function (r) { - var t = String(r).replace(/=+$/, ""); - if (t.length % 4 == 1) throw new e("'atob' failed: The string to be decoded is not correctly encoded."); - for (var n, o, a = 0, i = 0, c = ""; o = t.charAt(i++); ~o && (n = a % 4 ? 64 * n + o : o, a++ % 4) ? c += String.fromCharCode(255 & n >> (-2 * a & 6)) : 0) o = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(o); - return c; -}; -function t(e) { - var t = e.replace(/-/g, "+").replace(/_/g, "/"); - switch (t.length % 4) { - case 0: - break; - case 2: - t += "=="; - break; - case 3: - t += "="; - break; - default: - throw "Illegal base64url string!"; - } - try { - return function (e) { - return decodeURIComponent(r(e).replace(/(.)/g, function (e, r) { - var t = r.charCodeAt(0).toString(16).toUpperCase(); - return t.length < 2 && (t = "0" + t), "%" + t; - })); - }(t); - } catch (e) { - return r(t); - } -} -function n(e) { - this.message = e; -} -function o(e, r) { - if ("string" != typeof e) throw new n("Invalid token specified"); - var o = !0 === (r = r || {}).header ? 0 : 1; - try { - return JSON.parse(t(e.split(".")[o])); - } catch (e) { - throw new n("Invalid token specified: " + e.message); - } -} -n.prototype = new Error(), n.prototype.name = "InvalidTokenError"; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (o); - - -/***/ }), - -/***/ 7381: -/*!**************************************************!*\ - !*** ./node_modules/leaflet/dist/leaflet-src.js ***! - \**************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -/* @preserve - * Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com - * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade - */ - -(function (global, factory) { - true ? factory(exports) : 0; -})(this, function (exports) { - 'use strict'; - - var version = "1.9.4"; - - /* - * @namespace Util - * - * Various utility functions, used by Leaflet internally. - */ - - // @function extend(dest: Object, src?: Object): Object - // Merges the properties of the `src` object (or multiple objects) into `dest` object and returns the latter. Has an `L.extend` shortcut. - function extend(dest) { - var i, j, len, src; - for (j = 1, len = arguments.length; j < len; j++) { - src = arguments[j]; - for (i in src) { - dest[i] = src[i]; - } - } - return dest; - } - - // @function create(proto: Object, properties?: Object): Object - // Compatibility polyfill for [Object.create](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/create) - var create$2 = Object.create || function () { - function F() {} - return function (proto) { - F.prototype = proto; - return new F(); - }; - }(); - - // @function bind(fn: Function, …): Function - // Returns a new function bound to the arguments passed, like [Function.prototype.bind](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function/bind). - // Has a `L.bind()` shortcut. - function bind(fn, obj) { - var slice = Array.prototype.slice; - if (fn.bind) { - return fn.bind.apply(fn, slice.call(arguments, 1)); - } - var args = slice.call(arguments, 2); - return function () { - return fn.apply(obj, args.length ? args.concat(slice.call(arguments)) : arguments); - }; - } - - // @property lastId: Number - // Last unique ID used by [`stamp()`](#util-stamp) - var lastId = 0; - - // @function stamp(obj: Object): Number - // Returns the unique ID of an object, assigning it one if it doesn't have it. - function stamp(obj) { - if (!('_leaflet_id' in obj)) { - obj['_leaflet_id'] = ++lastId; - } - return obj._leaflet_id; - } - - // @function throttle(fn: Function, time: Number, context: Object): Function - // Returns a function which executes function `fn` with the given scope `context` - // (so that the `this` keyword refers to `context` inside `fn`'s code). The function - // `fn` will be called no more than one time per given amount of `time`. The arguments - // received by the bound function will be any arguments passed when binding the - // function, followed by any arguments passed when invoking the bound function. - // Has an `L.throttle` shortcut. - function throttle(fn, time, context) { - var lock, args, wrapperFn, later; - later = function () { - // reset lock and call if queued - lock = false; - if (args) { - wrapperFn.apply(context, args); - args = false; - } - }; - wrapperFn = function () { - if (lock) { - // called too soon, queue to call later - args = arguments; - } else { - // call and lock until later - fn.apply(context, arguments); - setTimeout(later, time); - lock = true; - } - }; - return wrapperFn; - } - - // @function wrapNum(num: Number, range: Number[], includeMax?: Boolean): Number - // Returns the number `num` modulo `range` in such a way so it lies within - // `range[0]` and `range[1]`. The returned value will be always smaller than - // `range[1]` unless `includeMax` is set to `true`. - function wrapNum(x, range, includeMax) { - var max = range[1], - min = range[0], - d = max - min; - return x === max && includeMax ? x : ((x - min) % d + d) % d + min; - } - - // @function falseFn(): Function - // Returns a function which always returns `false`. - function falseFn() { - return false; - } - - // @function formatNum(num: Number, precision?: Number|false): Number - // Returns the number `num` rounded with specified `precision`. - // The default `precision` value is 6 decimal places. - // `false` can be passed to skip any processing (can be useful to avoid round-off errors). - function formatNum(num, precision) { - if (precision === false) { - return num; - } - var pow = Math.pow(10, precision === undefined ? 6 : precision); - return Math.round(num * pow) / pow; - } - - // @function trim(str: String): String - // Compatibility polyfill for [String.prototype.trim](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim) - function trim(str) { - return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, ''); - } - - // @function splitWords(str: String): String[] - // Trims and splits the string on whitespace and returns the array of parts. - function splitWords(str) { - return trim(str).split(/\s+/); - } - - // @function setOptions(obj: Object, options: Object): Object - // Merges the given properties to the `options` of the `obj` object, returning the resulting options. See `Class options`. Has an `L.setOptions` shortcut. - function setOptions(obj, options) { - if (!Object.prototype.hasOwnProperty.call(obj, 'options')) { - obj.options = obj.options ? create$2(obj.options) : {}; - } - for (var i in options) { - obj.options[i] = options[i]; - } - return obj.options; - } - - // @function getParamString(obj: Object, existingUrl?: String, uppercase?: Boolean): String - // Converts an object into a parameter URL string, e.g. `{a: "foo", b: "bar"}` - // translates to `'?a=foo&b=bar'`. If `existingUrl` is set, the parameters will - // be appended at the end. If `uppercase` is `true`, the parameter names will - // be uppercased (e.g. `'?A=foo&B=bar'`) - function getParamString(obj, existingUrl, uppercase) { - var params = []; - for (var i in obj) { - params.push(encodeURIComponent(uppercase ? i.toUpperCase() : i) + '=' + encodeURIComponent(obj[i])); - } - return (!existingUrl || existingUrl.indexOf('?') === -1 ? '?' : '&') + params.join('&'); - } - var templateRe = /\{ *([\w_ -]+) *\}/g; - - // @function template(str: String, data: Object): String - // Simple templating facility, accepts a template string of the form `'Hello {a}, {b}'` - // and a data object like `{a: 'foo', b: 'bar'}`, returns evaluated string - // `('Hello foo, bar')`. You can also specify functions instead of strings for - // data values — they will be evaluated passing `data` as an argument. - function template(str, data) { - return str.replace(templateRe, function (str, key) { - var value = data[key]; - if (value === undefined) { - throw new Error('No value provided for variable ' + str); - } else if (typeof value === 'function') { - value = value(data); - } - return value; - }); - } - - // @function isArray(obj): Boolean - // Compatibility polyfill for [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray) - var isArray = Array.isArray || function (obj) { - return Object.prototype.toString.call(obj) === '[object Array]'; - }; - - // @function indexOf(array: Array, el: Object): Number - // Compatibility polyfill for [Array.prototype.indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf) - function indexOf(array, el) { - for (var i = 0; i < array.length; i++) { - if (array[i] === el) { - return i; - } - } - return -1; - } - - // @property emptyImageUrl: String - // Data URI string containing a base64-encoded empty GIF image. - // Used as a hack to free memory from unused images on WebKit-powered - // mobile devices (by setting image `src` to this string). - var emptyImageUrl = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs='; - - // inspired by https://paulirish.com/2011/requestanimationframe-for-smart-animating/ - - function getPrefixed(name) { - return window['webkit' + name] || window['moz' + name] || window['ms' + name]; - } - var lastTime = 0; - - // fallback for IE 7-8 - function timeoutDefer(fn) { - var time = +new Date(), - timeToCall = Math.max(0, 16 - (time - lastTime)); - lastTime = time + timeToCall; - return window.setTimeout(fn, timeToCall); - } - var requestFn = window.requestAnimationFrame || getPrefixed('RequestAnimationFrame') || timeoutDefer; - var cancelFn = window.cancelAnimationFrame || getPrefixed('CancelAnimationFrame') || getPrefixed('CancelRequestAnimationFrame') || function (id) { - window.clearTimeout(id); - }; - - // @function requestAnimFrame(fn: Function, context?: Object, immediate?: Boolean): Number - // Schedules `fn` to be executed when the browser repaints. `fn` is bound to - // `context` if given. When `immediate` is set, `fn` is called immediately if - // the browser doesn't have native support for - // [`window.requestAnimationFrame`](https://developer.mozilla.org/docs/Web/API/window/requestAnimationFrame), - // otherwise it's delayed. Returns a request ID that can be used to cancel the request. - function requestAnimFrame(fn, context, immediate) { - if (immediate && requestFn === timeoutDefer) { - fn.call(context); - } else { - return requestFn.call(window, bind(fn, context)); - } - } - - // @function cancelAnimFrame(id: Number): undefined - // Cancels a previous `requestAnimFrame`. See also [window.cancelAnimationFrame](https://developer.mozilla.org/docs/Web/API/window/cancelAnimationFrame). - function cancelAnimFrame(id) { - if (id) { - cancelFn.call(window, id); - } - } - var Util = { - __proto__: null, - extend: extend, - create: create$2, - bind: bind, - get lastId() { - return lastId; - }, - stamp: stamp, - throttle: throttle, - wrapNum: wrapNum, - falseFn: falseFn, - formatNum: formatNum, - trim: trim, - splitWords: splitWords, - setOptions: setOptions, - getParamString: getParamString, - template: template, - isArray: isArray, - indexOf: indexOf, - emptyImageUrl: emptyImageUrl, - requestFn: requestFn, - cancelFn: cancelFn, - requestAnimFrame: requestAnimFrame, - cancelAnimFrame: cancelAnimFrame - }; - - // @class Class - // @aka L.Class - - // @section - // @uninheritable - - // Thanks to John Resig and Dean Edwards for inspiration! - - function Class() {} - Class.extend = function (props) { - // @function extend(props: Object): Function - // [Extends the current class](#class-inheritance) given the properties to be included. - // Returns a Javascript function that is a class constructor (to be called with `new`). - var NewClass = function () { - setOptions(this); - - // call the constructor - if (this.initialize) { - this.initialize.apply(this, arguments); - } - - // call all constructor hooks - this.callInitHooks(); - }; - var parentProto = NewClass.__super__ = this.prototype; - var proto = create$2(parentProto); - proto.constructor = NewClass; - NewClass.prototype = proto; - - // inherit parent's statics - for (var i in this) { - if (Object.prototype.hasOwnProperty.call(this, i) && i !== 'prototype' && i !== '__super__') { - NewClass[i] = this[i]; - } - } - - // mix static properties into the class - if (props.statics) { - extend(NewClass, props.statics); - } - - // mix includes into the prototype - if (props.includes) { - checkDeprecatedMixinEvents(props.includes); - extend.apply(null, [proto].concat(props.includes)); - } - - // mix given properties into the prototype - extend(proto, props); - delete proto.statics; - delete proto.includes; - - // merge options - if (proto.options) { - proto.options = parentProto.options ? create$2(parentProto.options) : {}; - extend(proto.options, props.options); - } - proto._initHooks = []; - - // add method for calling all hooks - proto.callInitHooks = function () { - if (this._initHooksCalled) { - return; - } - if (parentProto.callInitHooks) { - parentProto.callInitHooks.call(this); - } - this._initHooksCalled = true; - for (var i = 0, len = proto._initHooks.length; i < len; i++) { - proto._initHooks[i].call(this); - } - }; - return NewClass; - }; - - // @function include(properties: Object): this - // [Includes a mixin](#class-includes) into the current class. - Class.include = function (props) { - var parentOptions = this.prototype.options; - extend(this.prototype, props); - if (props.options) { - this.prototype.options = parentOptions; - this.mergeOptions(props.options); - } - return this; - }; - - // @function mergeOptions(options: Object): this - // [Merges `options`](#class-options) into the defaults of the class. - Class.mergeOptions = function (options) { - extend(this.prototype.options, options); - return this; - }; - - // @function addInitHook(fn: Function): this - // Adds a [constructor hook](#class-constructor-hooks) to the class. - Class.addInitHook = function (fn) { - // (Function) || (String, args...) - var args = Array.prototype.slice.call(arguments, 1); - var init = typeof fn === 'function' ? fn : function () { - this[fn].apply(this, args); - }; - this.prototype._initHooks = this.prototype._initHooks || []; - this.prototype._initHooks.push(init); - return this; - }; - function checkDeprecatedMixinEvents(includes) { - /* global L: true */ - if (typeof L === 'undefined' || !L || !L.Mixin) { - return; - } - includes = isArray(includes) ? includes : [includes]; - for (var i = 0; i < includes.length; i++) { - if (includes[i] === L.Mixin.Events) { - console.warn('Deprecated include of L.Mixin.Events: ' + 'this property will be removed in future releases, ' + 'please inherit from L.Evented instead.', new Error().stack); - } - } - } - - /* - * @class Evented - * @aka L.Evented - * @inherits Class - * - * A set of methods shared between event-powered classes (like `Map` and `Marker`). Generally, events allow you to execute some function when something happens with an object (e.g. the user clicks on the map, causing the map to fire `'click'` event). - * - * @example - * - * ```js - * map.on('click', function(e) { - * alert(e.latlng); - * } ); - * ``` - * - * Leaflet deals with event listeners by reference, so if you want to add a listener and then remove it, define it as a function: - * - * ```js - * function onClick(e) { ... } - * - * map.on('click', onClick); - * map.off('click', onClick); - * ``` - */ - - var Events = { - /* @method on(type: String, fn: Function, context?: Object): this - * Adds a listener function (`fn`) to a particular event type of the object. You can optionally specify the context of the listener (object the this keyword will point to). You can also pass several space-separated types (e.g. `'click dblclick'`). - * - * @alternative - * @method on(eventMap: Object): this - * Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}` - */ - on: function (types, fn, context) { - // types can be a map of types/handlers - if (typeof types === 'object') { - for (var type in types) { - // we don't process space-separated events here for performance; - // it's a hot path since Layer uses the on(obj) syntax - this._on(type, types[type], fn); - } - } else { - // types can be a string of space-separated words - types = splitWords(types); - for (var i = 0, len = types.length; i < len; i++) { - this._on(types[i], fn, context); - } - } - return this; - }, - /* @method off(type: String, fn?: Function, context?: Object): this - * Removes a previously added listener function. If no function is specified, it will remove all the listeners of that particular event from the object. Note that if you passed a custom context to `on`, you must pass the same context to `off` in order to remove the listener. - * - * @alternative - * @method off(eventMap: Object): this - * Removes a set of type/listener pairs. - * - * @alternative - * @method off: this - * Removes all listeners to all events on the object. This includes implicitly attached events. - */ - off: function (types, fn, context) { - if (!arguments.length) { - // clear all listeners if called without arguments - delete this._events; - } else if (typeof types === 'object') { - for (var type in types) { - this._off(type, types[type], fn); - } - } else { - types = splitWords(types); - var removeAll = arguments.length === 1; - for (var i = 0, len = types.length; i < len; i++) { - if (removeAll) { - this._off(types[i]); - } else { - this._off(types[i], fn, context); - } - } - } - return this; - }, - // attach listener (without syntactic sugar now) - _on: function (type, fn, context, _once) { - if (typeof fn !== 'function') { - console.warn('wrong listener type: ' + typeof fn); - return; - } - - // check if fn already there - if (this._listens(type, fn, context) !== false) { - return; - } - if (context === this) { - // Less memory footprint. - context = undefined; - } - var newListener = { - fn: fn, - ctx: context - }; - if (_once) { - newListener.once = true; - } - this._events = this._events || {}; - this._events[type] = this._events[type] || []; - this._events[type].push(newListener); - }, - _off: function (type, fn, context) { - var listeners, i, len; - if (!this._events) { - return; - } - listeners = this._events[type]; - if (!listeners) { - return; - } - if (arguments.length === 1) { - // remove all - if (this._firingCount) { - // Set all removed listeners to noop - // so they are not called if remove happens in fire - for (i = 0, len = listeners.length; i < len; i++) { - listeners[i].fn = falseFn; - } - } - // clear all listeners for a type if function isn't specified - delete this._events[type]; - return; - } - if (typeof fn !== 'function') { - console.warn('wrong listener type: ' + typeof fn); - return; - } - - // find fn and remove it - var index = this._listens(type, fn, context); - if (index !== false) { - var listener = listeners[index]; - if (this._firingCount) { - // set the removed listener to noop so that's not called if remove happens in fire - listener.fn = falseFn; - - /* copy array in case events are being fired */ - this._events[type] = listeners = listeners.slice(); - } - listeners.splice(index, 1); - } - }, - // @method fire(type: String, data?: Object, propagate?: Boolean): this - // Fires an event of the specified type. You can optionally provide a data - // object — the first argument of the listener function will contain its - // properties. The event can optionally be propagated to event parents. - fire: function (type, data, propagate) { - if (!this.listens(type, propagate)) { - return this; - } - var event = extend({}, data, { - type: type, - target: this, - sourceTarget: data && data.sourceTarget || this - }); - if (this._events) { - var listeners = this._events[type]; - if (listeners) { - this._firingCount = this._firingCount + 1 || 1; - for (var i = 0, len = listeners.length; i < len; i++) { - var l = listeners[i]; - // off overwrites l.fn, so we need to copy fn to a var - var fn = l.fn; - if (l.once) { - this.off(type, fn, l.ctx); - } - fn.call(l.ctx || this, event); - } - this._firingCount--; - } - } - if (propagate) { - // propagate the event to parents (set with addEventParent) - this._propagateEvent(event); - } - return this; - }, - // @method listens(type: String, propagate?: Boolean): Boolean - // @method listens(type: String, fn: Function, context?: Object, propagate?: Boolean): Boolean - // Returns `true` if a particular event type has any listeners attached to it. - // The verification can optionally be propagated, it will return `true` if parents have the listener attached to it. - listens: function (type, fn, context, propagate) { - if (typeof type !== 'string') { - console.warn('"string" type argument expected'); - } - - // we don't overwrite the input `fn` value, because we need to use it for propagation - var _fn = fn; - if (typeof fn !== 'function') { - propagate = !!fn; - _fn = undefined; - context = undefined; - } - var listeners = this._events && this._events[type]; - if (listeners && listeners.length) { - if (this._listens(type, _fn, context) !== false) { - return true; - } - } - if (propagate) { - // also check parents for listeners if event propagates - for (var id in this._eventParents) { - if (this._eventParents[id].listens(type, fn, context, propagate)) { - return true; - } - } - } - return false; - }, - // returns the index (number) or false - _listens: function (type, fn, context) { - if (!this._events) { - return false; - } - var listeners = this._events[type] || []; - if (!fn) { - return !!listeners.length; - } - if (context === this) { - // Less memory footprint. - context = undefined; - } - for (var i = 0, len = listeners.length; i < len; i++) { - if (listeners[i].fn === fn && listeners[i].ctx === context) { - return i; - } - } - return false; - }, - // @method once(…): this - // Behaves as [`on(…)`](#evented-on), except the listener will only get fired once and then removed. - once: function (types, fn, context) { - // types can be a map of types/handlers - if (typeof types === 'object') { - for (var type in types) { - // we don't process space-separated events here for performance; - // it's a hot path since Layer uses the on(obj) syntax - this._on(type, types[type], fn, true); - } - } else { - // types can be a string of space-separated words - types = splitWords(types); - for (var i = 0, len = types.length; i < len; i++) { - this._on(types[i], fn, context, true); - } - } - return this; - }, - // @method addEventParent(obj: Evented): this - // Adds an event parent - an `Evented` that will receive propagated events - addEventParent: function (obj) { - this._eventParents = this._eventParents || {}; - this._eventParents[stamp(obj)] = obj; - return this; - }, - // @method removeEventParent(obj: Evented): this - // Removes an event parent, so it will stop receiving propagated events - removeEventParent: function (obj) { - if (this._eventParents) { - delete this._eventParents[stamp(obj)]; - } - return this; - }, - _propagateEvent: function (e) { - for (var id in this._eventParents) { - this._eventParents[id].fire(e.type, extend({ - layer: e.target, - propagatedFrom: e.target - }, e), true); - } - } - }; - - // aliases; we should ditch those eventually - - // @method addEventListener(…): this - // Alias to [`on(…)`](#evented-on) - Events.addEventListener = Events.on; - - // @method removeEventListener(…): this - // Alias to [`off(…)`](#evented-off) - - // @method clearAllEventListeners(…): this - // Alias to [`off()`](#evented-off) - Events.removeEventListener = Events.clearAllEventListeners = Events.off; - - // @method addOneTimeEventListener(…): this - // Alias to [`once(…)`](#evented-once) - Events.addOneTimeEventListener = Events.once; - - // @method fireEvent(…): this - // Alias to [`fire(…)`](#evented-fire) - Events.fireEvent = Events.fire; - - // @method hasEventListeners(…): Boolean - // Alias to [`listens(…)`](#evented-listens) - Events.hasEventListeners = Events.listens; - var Evented = Class.extend(Events); - - /* - * @class Point - * @aka L.Point - * - * Represents a point with `x` and `y` coordinates in pixels. - * - * @example - * - * ```js - * var point = L.point(200, 300); - * ``` - * - * All Leaflet methods and options that accept `Point` objects also accept them in a simple Array form (unless noted otherwise), so these lines are equivalent: - * - * ```js - * map.panBy([200, 300]); - * map.panBy(L.point(200, 300)); - * ``` - * - * Note that `Point` does not inherit from Leaflet's `Class` object, - * which means new classes can't inherit from it, and new methods - * can't be added to it with the `include` function. - */ - - function Point(x, y, round) { - // @property x: Number; The `x` coordinate of the point - this.x = round ? Math.round(x) : x; - // @property y: Number; The `y` coordinate of the point - this.y = round ? Math.round(y) : y; - } - var trunc = Math.trunc || function (v) { - return v > 0 ? Math.floor(v) : Math.ceil(v); - }; - Point.prototype = { - // @method clone(): Point - // Returns a copy of the current point. - clone: function () { - return new Point(this.x, this.y); - }, - // @method add(otherPoint: Point): Point - // Returns the result of addition of the current and the given points. - add: function (point) { - // non-destructive, returns a new point - return this.clone()._add(toPoint(point)); - }, - _add: function (point) { - // destructive, used directly for performance in situations where it's safe to modify existing point - this.x += point.x; - this.y += point.y; - return this; - }, - // @method subtract(otherPoint: Point): Point - // Returns the result of subtraction of the given point from the current. - subtract: function (point) { - return this.clone()._subtract(toPoint(point)); - }, - _subtract: function (point) { - this.x -= point.x; - this.y -= point.y; - return this; - }, - // @method divideBy(num: Number): Point - // Returns the result of division of the current point by the given number. - divideBy: function (num) { - return this.clone()._divideBy(num); - }, - _divideBy: function (num) { - this.x /= num; - this.y /= num; - return this; - }, - // @method multiplyBy(num: Number): Point - // Returns the result of multiplication of the current point by the given number. - multiplyBy: function (num) { - return this.clone()._multiplyBy(num); - }, - _multiplyBy: function (num) { - this.x *= num; - this.y *= num; - return this; - }, - // @method scaleBy(scale: Point): Point - // Multiply each coordinate of the current point by each coordinate of - // `scale`. In linear algebra terms, multiply the point by the - // [scaling matrix](https://en.wikipedia.org/wiki/Scaling_%28geometry%29#Matrix_representation) - // defined by `scale`. - scaleBy: function (point) { - return new Point(this.x * point.x, this.y * point.y); - }, - // @method unscaleBy(scale: Point): Point - // Inverse of `scaleBy`. Divide each coordinate of the current point by - // each coordinate of `scale`. - unscaleBy: function (point) { - return new Point(this.x / point.x, this.y / point.y); - }, - // @method round(): Point - // Returns a copy of the current point with rounded coordinates. - round: function () { - return this.clone()._round(); - }, - _round: function () { - this.x = Math.round(this.x); - this.y = Math.round(this.y); - return this; - }, - // @method floor(): Point - // Returns a copy of the current point with floored coordinates (rounded down). - floor: function () { - return this.clone()._floor(); - }, - _floor: function () { - this.x = Math.floor(this.x); - this.y = Math.floor(this.y); - return this; - }, - // @method ceil(): Point - // Returns a copy of the current point with ceiled coordinates (rounded up). - ceil: function () { - return this.clone()._ceil(); - }, - _ceil: function () { - this.x = Math.ceil(this.x); - this.y = Math.ceil(this.y); - return this; - }, - // @method trunc(): Point - // Returns a copy of the current point with truncated coordinates (rounded towards zero). - trunc: function () { - return this.clone()._trunc(); - }, - _trunc: function () { - this.x = trunc(this.x); - this.y = trunc(this.y); - return this; - }, - // @method distanceTo(otherPoint: Point): Number - // Returns the cartesian distance between the current and the given points. - distanceTo: function (point) { - point = toPoint(point); - var x = point.x - this.x, - y = point.y - this.y; - return Math.sqrt(x * x + y * y); - }, - // @method equals(otherPoint: Point): Boolean - // Returns `true` if the given point has the same coordinates. - equals: function (point) { - point = toPoint(point); - return point.x === this.x && point.y === this.y; - }, - // @method contains(otherPoint: Point): Boolean - // Returns `true` if both coordinates of the given point are less than the corresponding current point coordinates (in absolute values). - contains: function (point) { - point = toPoint(point); - return Math.abs(point.x) <= Math.abs(this.x) && Math.abs(point.y) <= Math.abs(this.y); - }, - // @method toString(): String - // Returns a string representation of the point for debugging purposes. - toString: function () { - return 'Point(' + formatNum(this.x) + ', ' + formatNum(this.y) + ')'; - } - }; - - // @factory L.point(x: Number, y: Number, round?: Boolean) - // Creates a Point object with the given `x` and `y` coordinates. If optional `round` is set to true, rounds the `x` and `y` values. - - // @alternative - // @factory L.point(coords: Number[]) - // Expects an array of the form `[x, y]` instead. - - // @alternative - // @factory L.point(coords: Object) - // Expects a plain object of the form `{x: Number, y: Number}` instead. - function toPoint(x, y, round) { - if (x instanceof Point) { - return x; - } - if (isArray(x)) { - return new Point(x[0], x[1]); - } - if (x === undefined || x === null) { - return x; - } - if (typeof x === 'object' && 'x' in x && 'y' in x) { - return new Point(x.x, x.y); - } - return new Point(x, y, round); - } - - /* - * @class Bounds - * @aka L.Bounds - * - * Represents a rectangular area in pixel coordinates. - * - * @example - * - * ```js - * var p1 = L.point(10, 10), - * p2 = L.point(40, 60), - * bounds = L.bounds(p1, p2); - * ``` - * - * All Leaflet methods that accept `Bounds` objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this: - * - * ```js - * otherBounds.intersects([[10, 10], [40, 60]]); - * ``` - * - * Note that `Bounds` does not inherit from Leaflet's `Class` object, - * which means new classes can't inherit from it, and new methods - * can't be added to it with the `include` function. - */ - - function Bounds(a, b) { - if (!a) { - return; - } - var points = b ? [a, b] : a; - for (var i = 0, len = points.length; i < len; i++) { - this.extend(points[i]); - } - } - Bounds.prototype = { - // @method extend(point: Point): this - // Extends the bounds to contain the given point. - - // @alternative - // @method extend(otherBounds: Bounds): this - // Extend the bounds to contain the given bounds - extend: function (obj) { - var min2, max2; - if (!obj) { - return this; - } - if (obj instanceof Point || typeof obj[0] === 'number' || 'x' in obj) { - min2 = max2 = toPoint(obj); - } else { - obj = toBounds(obj); - min2 = obj.min; - max2 = obj.max; - if (!min2 || !max2) { - return this; - } - } - - // @property min: Point - // The top left corner of the rectangle. - // @property max: Point - // The bottom right corner of the rectangle. - if (!this.min && !this.max) { - this.min = min2.clone(); - this.max = max2.clone(); - } else { - this.min.x = Math.min(min2.x, this.min.x); - this.max.x = Math.max(max2.x, this.max.x); - this.min.y = Math.min(min2.y, this.min.y); - this.max.y = Math.max(max2.y, this.max.y); - } - return this; - }, - // @method getCenter(round?: Boolean): Point - // Returns the center point of the bounds. - getCenter: function (round) { - return toPoint((this.min.x + this.max.x) / 2, (this.min.y + this.max.y) / 2, round); - }, - // @method getBottomLeft(): Point - // Returns the bottom-left point of the bounds. - getBottomLeft: function () { - return toPoint(this.min.x, this.max.y); - }, - // @method getTopRight(): Point - // Returns the top-right point of the bounds. - getTopRight: function () { - // -> Point - return toPoint(this.max.x, this.min.y); - }, - // @method getTopLeft(): Point - // Returns the top-left point of the bounds (i.e. [`this.min`](#bounds-min)). - getTopLeft: function () { - return this.min; // left, top - }, - // @method getBottomRight(): Point - // Returns the bottom-right point of the bounds (i.e. [`this.max`](#bounds-max)). - getBottomRight: function () { - return this.max; // right, bottom - }, - // @method getSize(): Point - // Returns the size of the given bounds - getSize: function () { - return this.max.subtract(this.min); - }, - // @method contains(otherBounds: Bounds): Boolean - // Returns `true` if the rectangle contains the given one. - // @alternative - // @method contains(point: Point): Boolean - // Returns `true` if the rectangle contains the given point. - contains: function (obj) { - var min, max; - if (typeof obj[0] === 'number' || obj instanceof Point) { - obj = toPoint(obj); - } else { - obj = toBounds(obj); - } - if (obj instanceof Bounds) { - min = obj.min; - max = obj.max; - } else { - min = max = obj; - } - return min.x >= this.min.x && max.x <= this.max.x && min.y >= this.min.y && max.y <= this.max.y; - }, - // @method intersects(otherBounds: Bounds): Boolean - // Returns `true` if the rectangle intersects the given bounds. Two bounds - // intersect if they have at least one point in common. - intersects: function (bounds) { - // (Bounds) -> Boolean - bounds = toBounds(bounds); - var min = this.min, - max = this.max, - min2 = bounds.min, - max2 = bounds.max, - xIntersects = max2.x >= min.x && min2.x <= max.x, - yIntersects = max2.y >= min.y && min2.y <= max.y; - return xIntersects && yIntersects; - }, - // @method overlaps(otherBounds: Bounds): Boolean - // Returns `true` if the rectangle overlaps the given bounds. Two bounds - // overlap if their intersection is an area. - overlaps: function (bounds) { - // (Bounds) -> Boolean - bounds = toBounds(bounds); - var min = this.min, - max = this.max, - min2 = bounds.min, - max2 = bounds.max, - xOverlaps = max2.x > min.x && min2.x < max.x, - yOverlaps = max2.y > min.y && min2.y < max.y; - return xOverlaps && yOverlaps; - }, - // @method isValid(): Boolean - // Returns `true` if the bounds are properly initialized. - isValid: function () { - return !!(this.min && this.max); - }, - // @method pad(bufferRatio: Number): Bounds - // Returns bounds created by extending or retracting the current bounds by a given ratio in each direction. - // For example, a ratio of 0.5 extends the bounds by 50% in each direction. - // Negative values will retract the bounds. - pad: function (bufferRatio) { - var min = this.min, - max = this.max, - heightBuffer = Math.abs(min.x - max.x) * bufferRatio, - widthBuffer = Math.abs(min.y - max.y) * bufferRatio; - return toBounds(toPoint(min.x - heightBuffer, min.y - widthBuffer), toPoint(max.x + heightBuffer, max.y + widthBuffer)); - }, - // @method equals(otherBounds: Bounds): Boolean - // Returns `true` if the rectangle is equivalent to the given bounds. - equals: function (bounds) { - if (!bounds) { - return false; - } - bounds = toBounds(bounds); - return this.min.equals(bounds.getTopLeft()) && this.max.equals(bounds.getBottomRight()); - } - }; - - // @factory L.bounds(corner1: Point, corner2: Point) - // Creates a Bounds object from two corners coordinate pairs. - // @alternative - // @factory L.bounds(points: Point[]) - // Creates a Bounds object from the given array of points. - function toBounds(a, b) { - if (!a || a instanceof Bounds) { - return a; - } - return new Bounds(a, b); - } - - /* - * @class LatLngBounds - * @aka L.LatLngBounds - * - * Represents a rectangular geographical area on a map. - * - * @example - * - * ```js - * var corner1 = L.latLng(40.712, -74.227), - * corner2 = L.latLng(40.774, -74.125), - * bounds = L.latLngBounds(corner1, corner2); - * ``` - * - * All Leaflet methods that accept LatLngBounds objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this: - * - * ```js - * map.fitBounds([ - * [40.712, -74.227], - * [40.774, -74.125] - * ]); - * ``` - * - * Caution: if the area crosses the antimeridian (often confused with the International Date Line), you must specify corners _outside_ the [-180, 180] degrees longitude range. - * - * Note that `LatLngBounds` does not inherit from Leaflet's `Class` object, - * which means new classes can't inherit from it, and new methods - * can't be added to it with the `include` function. - */ - - function LatLngBounds(corner1, corner2) { - // (LatLng, LatLng) or (LatLng[]) - if (!corner1) { - return; - } - var latlngs = corner2 ? [corner1, corner2] : corner1; - for (var i = 0, len = latlngs.length; i < len; i++) { - this.extend(latlngs[i]); - } - } - LatLngBounds.prototype = { - // @method extend(latlng: LatLng): this - // Extend the bounds to contain the given point - - // @alternative - // @method extend(otherBounds: LatLngBounds): this - // Extend the bounds to contain the given bounds - extend: function (obj) { - var sw = this._southWest, - ne = this._northEast, - sw2, - ne2; - if (obj instanceof LatLng) { - sw2 = obj; - ne2 = obj; - } else if (obj instanceof LatLngBounds) { - sw2 = obj._southWest; - ne2 = obj._northEast; - if (!sw2 || !ne2) { - return this; - } - } else { - return obj ? this.extend(toLatLng(obj) || toLatLngBounds(obj)) : this; - } - if (!sw && !ne) { - this._southWest = new LatLng(sw2.lat, sw2.lng); - this._northEast = new LatLng(ne2.lat, ne2.lng); - } else { - sw.lat = Math.min(sw2.lat, sw.lat); - sw.lng = Math.min(sw2.lng, sw.lng); - ne.lat = Math.max(ne2.lat, ne.lat); - ne.lng = Math.max(ne2.lng, ne.lng); - } - return this; - }, - // @method pad(bufferRatio: Number): LatLngBounds - // Returns bounds created by extending or retracting the current bounds by a given ratio in each direction. - // For example, a ratio of 0.5 extends the bounds by 50% in each direction. - // Negative values will retract the bounds. - pad: function (bufferRatio) { - var sw = this._southWest, - ne = this._northEast, - heightBuffer = Math.abs(sw.lat - ne.lat) * bufferRatio, - widthBuffer = Math.abs(sw.lng - ne.lng) * bufferRatio; - return new LatLngBounds(new LatLng(sw.lat - heightBuffer, sw.lng - widthBuffer), new LatLng(ne.lat + heightBuffer, ne.lng + widthBuffer)); - }, - // @method getCenter(): LatLng - // Returns the center point of the bounds. - getCenter: function () { - return new LatLng((this._southWest.lat + this._northEast.lat) / 2, (this._southWest.lng + this._northEast.lng) / 2); - }, - // @method getSouthWest(): LatLng - // Returns the south-west point of the bounds. - getSouthWest: function () { - return this._southWest; - }, - // @method getNorthEast(): LatLng - // Returns the north-east point of the bounds. - getNorthEast: function () { - return this._northEast; - }, - // @method getNorthWest(): LatLng - // Returns the north-west point of the bounds. - getNorthWest: function () { - return new LatLng(this.getNorth(), this.getWest()); - }, - // @method getSouthEast(): LatLng - // Returns the south-east point of the bounds. - getSouthEast: function () { - return new LatLng(this.getSouth(), this.getEast()); - }, - // @method getWest(): Number - // Returns the west longitude of the bounds - getWest: function () { - return this._southWest.lng; - }, - // @method getSouth(): Number - // Returns the south latitude of the bounds - getSouth: function () { - return this._southWest.lat; - }, - // @method getEast(): Number - // Returns the east longitude of the bounds - getEast: function () { - return this._northEast.lng; - }, - // @method getNorth(): Number - // Returns the north latitude of the bounds - getNorth: function () { - return this._northEast.lat; - }, - // @method contains(otherBounds: LatLngBounds): Boolean - // Returns `true` if the rectangle contains the given one. - - // @alternative - // @method contains (latlng: LatLng): Boolean - // Returns `true` if the rectangle contains the given point. - contains: function (obj) { - // (LatLngBounds) or (LatLng) -> Boolean - if (typeof obj[0] === 'number' || obj instanceof LatLng || 'lat' in obj) { - obj = toLatLng(obj); - } else { - obj = toLatLngBounds(obj); - } - var sw = this._southWest, - ne = this._northEast, - sw2, - ne2; - if (obj instanceof LatLngBounds) { - sw2 = obj.getSouthWest(); - ne2 = obj.getNorthEast(); - } else { - sw2 = ne2 = obj; - } - return sw2.lat >= sw.lat && ne2.lat <= ne.lat && sw2.lng >= sw.lng && ne2.lng <= ne.lng; - }, - // @method intersects(otherBounds: LatLngBounds): Boolean - // Returns `true` if the rectangle intersects the given bounds. Two bounds intersect if they have at least one point in common. - intersects: function (bounds) { - bounds = toLatLngBounds(bounds); - var sw = this._southWest, - ne = this._northEast, - sw2 = bounds.getSouthWest(), - ne2 = bounds.getNorthEast(), - latIntersects = ne2.lat >= sw.lat && sw2.lat <= ne.lat, - lngIntersects = ne2.lng >= sw.lng && sw2.lng <= ne.lng; - return latIntersects && lngIntersects; - }, - // @method overlaps(otherBounds: LatLngBounds): Boolean - // Returns `true` if the rectangle overlaps the given bounds. Two bounds overlap if their intersection is an area. - overlaps: function (bounds) { - bounds = toLatLngBounds(bounds); - var sw = this._southWest, - ne = this._northEast, - sw2 = bounds.getSouthWest(), - ne2 = bounds.getNorthEast(), - latOverlaps = ne2.lat > sw.lat && sw2.lat < ne.lat, - lngOverlaps = ne2.lng > sw.lng && sw2.lng < ne.lng; - return latOverlaps && lngOverlaps; - }, - // @method toBBoxString(): String - // Returns a string with bounding box coordinates in a 'southwest_lng,southwest_lat,northeast_lng,northeast_lat' format. Useful for sending requests to web services that return geo data. - toBBoxString: function () { - return [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(','); - }, - // @method equals(otherBounds: LatLngBounds, maxMargin?: Number): Boolean - // Returns `true` if the rectangle is equivalent (within a small margin of error) to the given bounds. The margin of error can be overridden by setting `maxMargin` to a small number. - equals: function (bounds, maxMargin) { - if (!bounds) { - return false; - } - bounds = toLatLngBounds(bounds); - return this._southWest.equals(bounds.getSouthWest(), maxMargin) && this._northEast.equals(bounds.getNorthEast(), maxMargin); - }, - // @method isValid(): Boolean - // Returns `true` if the bounds are properly initialized. - isValid: function () { - return !!(this._southWest && this._northEast); - } - }; - - // TODO International date line? - - // @factory L.latLngBounds(corner1: LatLng, corner2: LatLng) - // Creates a `LatLngBounds` object by defining two diagonally opposite corners of the rectangle. - - // @alternative - // @factory L.latLngBounds(latlngs: LatLng[]) - // Creates a `LatLngBounds` object defined by the geographical points it contains. Very useful for zooming the map to fit a particular set of locations with [`fitBounds`](#map-fitbounds). - function toLatLngBounds(a, b) { - if (a instanceof LatLngBounds) { - return a; - } - return new LatLngBounds(a, b); - } - - /* @class LatLng - * @aka L.LatLng - * - * Represents a geographical point with a certain latitude and longitude. - * - * @example - * - * ``` - * var latlng = L.latLng(50.5, 30.5); - * ``` - * - * All Leaflet methods that accept LatLng objects also accept them in a simple Array form and simple object form (unless noted otherwise), so these lines are equivalent: - * - * ``` - * map.panTo([50, 30]); - * map.panTo({lon: 30, lat: 50}); - * map.panTo({lat: 50, lng: 30}); - * map.panTo(L.latLng(50, 30)); - * ``` - * - * Note that `LatLng` does not inherit from Leaflet's `Class` object, - * which means new classes can't inherit from it, and new methods - * can't be added to it with the `include` function. - */ - - function LatLng(lat, lng, alt) { - if (isNaN(lat) || isNaN(lng)) { - throw new Error('Invalid LatLng object: (' + lat + ', ' + lng + ')'); - } - - // @property lat: Number - // Latitude in degrees - this.lat = +lat; - - // @property lng: Number - // Longitude in degrees - this.lng = +lng; - - // @property alt: Number - // Altitude in meters (optional) - if (alt !== undefined) { - this.alt = +alt; - } - } - LatLng.prototype = { - // @method equals(otherLatLng: LatLng, maxMargin?: Number): Boolean - // Returns `true` if the given `LatLng` point is at the same position (within a small margin of error). The margin of error can be overridden by setting `maxMargin` to a small number. - equals: function (obj, maxMargin) { - if (!obj) { - return false; - } - obj = toLatLng(obj); - var margin = Math.max(Math.abs(this.lat - obj.lat), Math.abs(this.lng - obj.lng)); - return margin <= (maxMargin === undefined ? 1.0E-9 : maxMargin); - }, - // @method toString(): String - // Returns a string representation of the point (for debugging purposes). - toString: function (precision) { - return 'LatLng(' + formatNum(this.lat, precision) + ', ' + formatNum(this.lng, precision) + ')'; - }, - // @method distanceTo(otherLatLng: LatLng): Number - // Returns the distance (in meters) to the given `LatLng` calculated using the [Spherical Law of Cosines](https://en.wikipedia.org/wiki/Spherical_law_of_cosines). - distanceTo: function (other) { - return Earth.distance(this, toLatLng(other)); - }, - // @method wrap(): LatLng - // Returns a new `LatLng` object with the longitude wrapped so it's always between -180 and +180 degrees. - wrap: function () { - return Earth.wrapLatLng(this); - }, - // @method toBounds(sizeInMeters: Number): LatLngBounds - // Returns a new `LatLngBounds` object in which each boundary is `sizeInMeters/2` meters apart from the `LatLng`. - toBounds: function (sizeInMeters) { - var latAccuracy = 180 * sizeInMeters / 40075017, - lngAccuracy = latAccuracy / Math.cos(Math.PI / 180 * this.lat); - return toLatLngBounds([this.lat - latAccuracy, this.lng - lngAccuracy], [this.lat + latAccuracy, this.lng + lngAccuracy]); - }, - clone: function () { - return new LatLng(this.lat, this.lng, this.alt); - } - }; - - // @factory L.latLng(latitude: Number, longitude: Number, altitude?: Number): LatLng - // Creates an object representing a geographical point with the given latitude and longitude (and optionally altitude). - - // @alternative - // @factory L.latLng(coords: Array): LatLng - // Expects an array of the form `[Number, Number]` or `[Number, Number, Number]` instead. - - // @alternative - // @factory L.latLng(coords: Object): LatLng - // Expects an plain object of the form `{lat: Number, lng: Number}` or `{lat: Number, lng: Number, alt: Number}` instead. - - function toLatLng(a, b, c) { - if (a instanceof LatLng) { - return a; - } - if (isArray(a) && typeof a[0] !== 'object') { - if (a.length === 3) { - return new LatLng(a[0], a[1], a[2]); - } - if (a.length === 2) { - return new LatLng(a[0], a[1]); - } - return null; - } - if (a === undefined || a === null) { - return a; - } - if (typeof a === 'object' && 'lat' in a) { - return new LatLng(a.lat, 'lng' in a ? a.lng : a.lon, a.alt); - } - if (b === undefined) { - return null; - } - return new LatLng(a, b, c); - } - - /* - * @namespace CRS - * @crs L.CRS.Base - * Object that defines coordinate reference systems for projecting - * geographical points into pixel (screen) coordinates and back (and to - * coordinates in other units for [WMS](https://en.wikipedia.org/wiki/Web_Map_Service) services). See - * [spatial reference system](https://en.wikipedia.org/wiki/Spatial_reference_system). - * - * Leaflet defines the most usual CRSs by default. If you want to use a - * CRS not defined by default, take a look at the - * [Proj4Leaflet](https://github.com/kartena/Proj4Leaflet) plugin. - * - * Note that the CRS instances do not inherit from Leaflet's `Class` object, - * and can't be instantiated. Also, new classes can't inherit from them, - * and methods can't be added to them with the `include` function. - */ - - var CRS = { - // @method latLngToPoint(latlng: LatLng, zoom: Number): Point - // Projects geographical coordinates into pixel coordinates for a given zoom. - latLngToPoint: function (latlng, zoom) { - var projectedPoint = this.projection.project(latlng), - scale = this.scale(zoom); - return this.transformation._transform(projectedPoint, scale); - }, - // @method pointToLatLng(point: Point, zoom: Number): LatLng - // The inverse of `latLngToPoint`. Projects pixel coordinates on a given - // zoom into geographical coordinates. - pointToLatLng: function (point, zoom) { - var scale = this.scale(zoom), - untransformedPoint = this.transformation.untransform(point, scale); - return this.projection.unproject(untransformedPoint); - }, - // @method project(latlng: LatLng): Point - // Projects geographical coordinates into coordinates in units accepted for - // this CRS (e.g. meters for EPSG:3857, for passing it to WMS services). - project: function (latlng) { - return this.projection.project(latlng); - }, - // @method unproject(point: Point): LatLng - // Given a projected coordinate returns the corresponding LatLng. - // The inverse of `project`. - unproject: function (point) { - return this.projection.unproject(point); - }, - // @method scale(zoom: Number): Number - // Returns the scale used when transforming projected coordinates into - // pixel coordinates for a particular zoom. For example, it returns - // `256 * 2^zoom` for Mercator-based CRS. - scale: function (zoom) { - return 256 * Math.pow(2, zoom); - }, - // @method zoom(scale: Number): Number - // Inverse of `scale()`, returns the zoom level corresponding to a scale - // factor of `scale`. - zoom: function (scale) { - return Math.log(scale / 256) / Math.LN2; - }, - // @method getProjectedBounds(zoom: Number): Bounds - // Returns the projection's bounds scaled and transformed for the provided `zoom`. - getProjectedBounds: function (zoom) { - if (this.infinite) { - return null; - } - var b = this.projection.bounds, - s = this.scale(zoom), - min = this.transformation.transform(b.min, s), - max = this.transformation.transform(b.max, s); - return new Bounds(min, max); - }, - // @method distance(latlng1: LatLng, latlng2: LatLng): Number - // Returns the distance between two geographical coordinates. - - // @property code: String - // Standard code name of the CRS passed into WMS services (e.g. `'EPSG:3857'`) - // - // @property wrapLng: Number[] - // An array of two numbers defining whether the longitude (horizontal) coordinate - // axis wraps around a given range and how. Defaults to `[-180, 180]` in most - // geographical CRSs. If `undefined`, the longitude axis does not wrap around. - // - // @property wrapLat: Number[] - // Like `wrapLng`, but for the latitude (vertical) axis. - - // wrapLng: [min, max], - // wrapLat: [min, max], - - // @property infinite: Boolean - // If true, the coordinate space will be unbounded (infinite in both axes) - infinite: false, - // @method wrapLatLng(latlng: LatLng): LatLng - // Returns a `LatLng` where lat and lng has been wrapped according to the - // CRS's `wrapLat` and `wrapLng` properties, if they are outside the CRS's bounds. - wrapLatLng: function (latlng) { - var lng = this.wrapLng ? wrapNum(latlng.lng, this.wrapLng, true) : latlng.lng, - lat = this.wrapLat ? wrapNum(latlng.lat, this.wrapLat, true) : latlng.lat, - alt = latlng.alt; - return new LatLng(lat, lng, alt); - }, - // @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds - // Returns a `LatLngBounds` with the same size as the given one, ensuring - // that its center is within the CRS's bounds. - // Only accepts actual `L.LatLngBounds` instances, not arrays. - wrapLatLngBounds: function (bounds) { - var center = bounds.getCenter(), - newCenter = this.wrapLatLng(center), - latShift = center.lat - newCenter.lat, - lngShift = center.lng - newCenter.lng; - if (latShift === 0 && lngShift === 0) { - return bounds; - } - var sw = bounds.getSouthWest(), - ne = bounds.getNorthEast(), - newSw = new LatLng(sw.lat - latShift, sw.lng - lngShift), - newNe = new LatLng(ne.lat - latShift, ne.lng - lngShift); - return new LatLngBounds(newSw, newNe); - } - }; - - /* - * @namespace CRS - * @crs L.CRS.Earth - * - * Serves as the base for CRS that are global such that they cover the earth. - * Can only be used as the base for other CRS and cannot be used directly, - * since it does not have a `code`, `projection` or `transformation`. `distance()` returns - * meters. - */ - - var Earth = extend({}, CRS, { - wrapLng: [-180, 180], - // Mean Earth Radius, as recommended for use by - // the International Union of Geodesy and Geophysics, - // see https://rosettacode.org/wiki/Haversine_formula - R: 6371000, - // distance between two geographical points using spherical law of cosines approximation - distance: function (latlng1, latlng2) { - var rad = Math.PI / 180, - lat1 = latlng1.lat * rad, - lat2 = latlng2.lat * rad, - sinDLat = Math.sin((latlng2.lat - latlng1.lat) * rad / 2), - sinDLon = Math.sin((latlng2.lng - latlng1.lng) * rad / 2), - a = sinDLat * sinDLat + Math.cos(lat1) * Math.cos(lat2) * sinDLon * sinDLon, - c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); - return this.R * c; - } - }); - - /* - * @namespace Projection - * @projection L.Projection.SphericalMercator - * - * Spherical Mercator projection — the most common projection for online maps, - * used by almost all free and commercial tile providers. Assumes that Earth is - * a sphere. Used by the `EPSG:3857` CRS. - */ - - var earthRadius = 6378137; - var SphericalMercator = { - R: earthRadius, - MAX_LATITUDE: 85.0511287798, - project: function (latlng) { - var d = Math.PI / 180, - max = this.MAX_LATITUDE, - lat = Math.max(Math.min(max, latlng.lat), -max), - sin = Math.sin(lat * d); - return new Point(this.R * latlng.lng * d, this.R * Math.log((1 + sin) / (1 - sin)) / 2); - }, - unproject: function (point) { - var d = 180 / Math.PI; - return new LatLng((2 * Math.atan(Math.exp(point.y / this.R)) - Math.PI / 2) * d, point.x * d / this.R); - }, - bounds: function () { - var d = earthRadius * Math.PI; - return new Bounds([-d, -d], [d, d]); - }() - }; - - /* - * @class Transformation - * @aka L.Transformation - * - * Represents an affine transformation: a set of coefficients `a`, `b`, `c`, `d` - * for transforming a point of a form `(x, y)` into `(a*x + b, c*y + d)` and doing - * the reverse. Used by Leaflet in its projections code. - * - * @example - * - * ```js - * var transformation = L.transformation(2, 5, -1, 10), - * p = L.point(1, 2), - * p2 = transformation.transform(p), // L.point(7, 8) - * p3 = transformation.untransform(p2); // L.point(1, 2) - * ``` - */ - - // factory new L.Transformation(a: Number, b: Number, c: Number, d: Number) - // Creates a `Transformation` object with the given coefficients. - function Transformation(a, b, c, d) { - if (isArray(a)) { - // use array properties - this._a = a[0]; - this._b = a[1]; - this._c = a[2]; - this._d = a[3]; - return; - } - this._a = a; - this._b = b; - this._c = c; - this._d = d; - } - Transformation.prototype = { - // @method transform(point: Point, scale?: Number): Point - // Returns a transformed point, optionally multiplied by the given scale. - // Only accepts actual `L.Point` instances, not arrays. - transform: function (point, scale) { - // (Point, Number) -> Point - return this._transform(point.clone(), scale); - }, - // destructive transform (faster) - _transform: function (point, scale) { - scale = scale || 1; - point.x = scale * (this._a * point.x + this._b); - point.y = scale * (this._c * point.y + this._d); - return point; - }, - // @method untransform(point: Point, scale?: Number): Point - // Returns the reverse transformation of the given point, optionally divided - // by the given scale. Only accepts actual `L.Point` instances, not arrays. - untransform: function (point, scale) { - scale = scale || 1; - return new Point((point.x / scale - this._b) / this._a, (point.y / scale - this._d) / this._c); - } - }; - - // factory L.transformation(a: Number, b: Number, c: Number, d: Number) - - // @factory L.transformation(a: Number, b: Number, c: Number, d: Number) - // Instantiates a Transformation object with the given coefficients. - - // @alternative - // @factory L.transformation(coefficients: Array): Transformation - // Expects an coefficients array of the form - // `[a: Number, b: Number, c: Number, d: Number]`. - - function toTransformation(a, b, c, d) { - return new Transformation(a, b, c, d); - } - - /* - * @namespace CRS - * @crs L.CRS.EPSG3857 - * - * The most common CRS for online maps, used by almost all free and commercial - * tile providers. Uses Spherical Mercator projection. Set in by default in - * Map's `crs` option. - */ - - var EPSG3857 = extend({}, Earth, { - code: 'EPSG:3857', - projection: SphericalMercator, - transformation: function () { - var scale = 0.5 / (Math.PI * SphericalMercator.R); - return toTransformation(scale, 0.5, -scale, 0.5); - }() - }); - var EPSG900913 = extend({}, EPSG3857, { - code: 'EPSG:900913' - }); - - // @namespace SVG; @section - // There are several static functions which can be called without instantiating L.SVG: - - // @function create(name: String): SVGElement - // Returns a instance of [SVGElement](https://developer.mozilla.org/docs/Web/API/SVGElement), - // corresponding to the class name passed. For example, using 'line' will return - // an instance of [SVGLineElement](https://developer.mozilla.org/docs/Web/API/SVGLineElement). - function svgCreate(name) { - return document.createElementNS('http://www.w3.org/2000/svg', name); - } - - // @function pointsToPath(rings: Point[], closed: Boolean): String - // Generates a SVG path string for multiple rings, with each ring turning - // into "M..L..L.." instructions - function pointsToPath(rings, closed) { - var str = '', - i, - j, - len, - len2, - points, - p; - for (i = 0, len = rings.length; i < len; i++) { - points = rings[i]; - for (j = 0, len2 = points.length; j < len2; j++) { - p = points[j]; - str += (j ? 'L' : 'M') + p.x + ' ' + p.y; - } - - // closes the ring for polygons; "x" is VML syntax - str += closed ? Browser.svg ? 'z' : 'x' : ''; - } - - // SVG complains about empty path strings - return str || 'M0 0'; - } - - /* - * @namespace Browser - * @aka L.Browser - * - * A namespace with static properties for browser/feature detection used by Leaflet internally. - * - * @example - * - * ```js - * if (L.Browser.ielt9) { - * alert('Upgrade your browser, dude!'); - * } - * ``` - */ - - var style = document.documentElement.style; - - // @property ie: Boolean; `true` for all Internet Explorer versions (not Edge). - var ie = ('ActiveXObject' in window); - - // @property ielt9: Boolean; `true` for Internet Explorer versions less than 9. - var ielt9 = ie && !document.addEventListener; - - // @property edge: Boolean; `true` for the Edge web browser. - var edge = 'msLaunchUri' in navigator && !('documentMode' in document); - - // @property webkit: Boolean; - // `true` for webkit-based browsers like Chrome and Safari (including mobile versions). - var webkit = userAgentContains('webkit'); - - // @property android: Boolean - // **Deprecated.** `true` for any browser running on an Android platform. - var android = userAgentContains('android'); - - // @property android23: Boolean; **Deprecated.** `true` for browsers running on Android 2 or Android 3. - var android23 = userAgentContains('android 2') || userAgentContains('android 3'); - - /* See https://stackoverflow.com/a/17961266 for details on detecting stock Android */ - var webkitVer = parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10); // also matches AppleWebKit - // @property androidStock: Boolean; **Deprecated.** `true` for the Android stock browser (i.e. not Chrome) - var androidStock = android && userAgentContains('Google') && webkitVer < 537 && !('AudioNode' in window); - - // @property opera: Boolean; `true` for the Opera browser - var opera = !!window.opera; - - // @property chrome: Boolean; `true` for the Chrome browser. - var chrome = !edge && userAgentContains('chrome'); - - // @property gecko: Boolean; `true` for gecko-based browsers like Firefox. - var gecko = userAgentContains('gecko') && !webkit && !opera && !ie; - - // @property safari: Boolean; `true` for the Safari browser. - var safari = !chrome && userAgentContains('safari'); - var phantom = userAgentContains('phantom'); - - // @property opera12: Boolean - // `true` for the Opera browser supporting CSS transforms (version 12 or later). - var opera12 = ('OTransition' in style); - - // @property win: Boolean; `true` when the browser is running in a Windows platform - var win = navigator.platform.indexOf('Win') === 0; - - // @property ie3d: Boolean; `true` for all Internet Explorer versions supporting CSS transforms. - var ie3d = ie && 'transition' in style; - - // @property webkit3d: Boolean; `true` for webkit-based browsers supporting CSS transforms. - var webkit3d = 'WebKitCSSMatrix' in window && 'm11' in new window.WebKitCSSMatrix() && !android23; - - // @property gecko3d: Boolean; `true` for gecko-based browsers supporting CSS transforms. - var gecko3d = ('MozPerspective' in style); - - // @property any3d: Boolean - // `true` for all browsers supporting CSS transforms. - var any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d) && !opera12 && !phantom; - - // @property mobile: Boolean; `true` for all browsers running in a mobile device. - var mobile = typeof orientation !== 'undefined' || userAgentContains('mobile'); - - // @property mobileWebkit: Boolean; `true` for all webkit-based browsers in a mobile device. - var mobileWebkit = mobile && webkit; - - // @property mobileWebkit3d: Boolean - // `true` for all webkit-based browsers in a mobile device supporting CSS transforms. - var mobileWebkit3d = mobile && webkit3d; - - // @property msPointer: Boolean - // `true` for browsers implementing the Microsoft touch events model (notably IE10). - var msPointer = !window.PointerEvent && window.MSPointerEvent; - - // @property pointer: Boolean - // `true` for all browsers supporting [pointer events](https://msdn.microsoft.com/en-us/library/dn433244%28v=vs.85%29.aspx). - var pointer = !!(window.PointerEvent || msPointer); - - // @property touchNative: Boolean - // `true` for all browsers supporting [touch events](https://developer.mozilla.org/docs/Web/API/Touch_events). - // **This does not necessarily mean** that the browser is running in a computer with - // a touchscreen, it only means that the browser is capable of understanding - // touch events. - var touchNative = 'ontouchstart' in window || !!window.TouchEvent; - - // @property touch: Boolean - // `true` for all browsers supporting either [touch](#browser-touch) or [pointer](#browser-pointer) events. - // Note: pointer events will be preferred (if available), and processed for all `touch*` listeners. - var touch = !window.L_NO_TOUCH && (touchNative || pointer); - - // @property mobileOpera: Boolean; `true` for the Opera browser in a mobile device. - var mobileOpera = mobile && opera; - - // @property mobileGecko: Boolean - // `true` for gecko-based browsers running in a mobile device. - var mobileGecko = mobile && gecko; - - // @property retina: Boolean - // `true` for browsers on a high-resolution "retina" screen or on any screen when browser's display zoom is more than 100%. - var retina = (window.devicePixelRatio || window.screen.deviceXDPI / window.screen.logicalXDPI) > 1; - - // @property passiveEvents: Boolean - // `true` for browsers that support passive events. - var passiveEvents = function () { - var supportsPassiveOption = false; - try { - var opts = Object.defineProperty({}, 'passive', { - get: function () { - // eslint-disable-line getter-return - supportsPassiveOption = true; - } - }); - window.addEventListener('testPassiveEventSupport', falseFn, opts); - window.removeEventListener('testPassiveEventSupport', falseFn, opts); - } catch (e) { - // Errors can safely be ignored since this is only a browser support test. - } - return supportsPassiveOption; - }(); - - // @property canvas: Boolean - // `true` when the browser supports [``](https://developer.mozilla.org/docs/Web/API/Canvas_API). - var canvas$1 = function () { - return !!document.createElement('canvas').getContext; - }(); - - // @property svg: Boolean - // `true` when the browser supports [SVG](https://developer.mozilla.org/docs/Web/SVG). - var svg$1 = !!(document.createElementNS && svgCreate('svg').createSVGRect); - var inlineSvg = !!svg$1 && function () { - var div = document.createElement('div'); - div.innerHTML = ''; - return (div.firstChild && div.firstChild.namespaceURI) === 'http://www.w3.org/2000/svg'; - }(); - - // @property vml: Boolean - // `true` if the browser supports [VML](https://en.wikipedia.org/wiki/Vector_Markup_Language). - var vml = !svg$1 && function () { - try { - var div = document.createElement('div'); - div.innerHTML = ''; - var shape = div.firstChild; - shape.style.behavior = 'url(#default#VML)'; - return shape && typeof shape.adj === 'object'; - } catch (e) { - return false; - } - }(); - - // @property mac: Boolean; `true` when the browser is running in a Mac platform - var mac = navigator.platform.indexOf('Mac') === 0; - - // @property mac: Boolean; `true` when the browser is running in a Linux platform - var linux = navigator.platform.indexOf('Linux') === 0; - function userAgentContains(str) { - return navigator.userAgent.toLowerCase().indexOf(str) >= 0; - } - var Browser = { - ie: ie, - ielt9: ielt9, - edge: edge, - webkit: webkit, - android: android, - android23: android23, - androidStock: androidStock, - opera: opera, - chrome: chrome, - gecko: gecko, - safari: safari, - phantom: phantom, - opera12: opera12, - win: win, - ie3d: ie3d, - webkit3d: webkit3d, - gecko3d: gecko3d, - any3d: any3d, - mobile: mobile, - mobileWebkit: mobileWebkit, - mobileWebkit3d: mobileWebkit3d, - msPointer: msPointer, - pointer: pointer, - touch: touch, - touchNative: touchNative, - mobileOpera: mobileOpera, - mobileGecko: mobileGecko, - retina: retina, - passiveEvents: passiveEvents, - canvas: canvas$1, - svg: svg$1, - vml: vml, - inlineSvg: inlineSvg, - mac: mac, - linux: linux - }; - - /* - * Extends L.DomEvent to provide touch support for Internet Explorer and Windows-based devices. - */ - - var POINTER_DOWN = Browser.msPointer ? 'MSPointerDown' : 'pointerdown'; - var POINTER_MOVE = Browser.msPointer ? 'MSPointerMove' : 'pointermove'; - var POINTER_UP = Browser.msPointer ? 'MSPointerUp' : 'pointerup'; - var POINTER_CANCEL = Browser.msPointer ? 'MSPointerCancel' : 'pointercancel'; - var pEvent = { - touchstart: POINTER_DOWN, - touchmove: POINTER_MOVE, - touchend: POINTER_UP, - touchcancel: POINTER_CANCEL - }; - var handle = { - touchstart: _onPointerStart, - touchmove: _handlePointer, - touchend: _handlePointer, - touchcancel: _handlePointer - }; - var _pointers = {}; - var _pointerDocListener = false; - - // Provides a touch events wrapper for (ms)pointer events. - // ref https://www.w3.org/TR/pointerevents/ https://www.w3.org/Bugs/Public/show_bug.cgi?id=22890 - - function addPointerListener(obj, type, handler) { - if (type === 'touchstart') { - _addPointerDocListener(); - } - if (!handle[type]) { - console.warn('wrong event specified:', type); - return falseFn; - } - handler = handle[type].bind(this, handler); - obj.addEventListener(pEvent[type], handler, false); - return handler; - } - function removePointerListener(obj, type, handler) { - if (!pEvent[type]) { - console.warn('wrong event specified:', type); - return; - } - obj.removeEventListener(pEvent[type], handler, false); - } - function _globalPointerDown(e) { - _pointers[e.pointerId] = e; - } - function _globalPointerMove(e) { - if (_pointers[e.pointerId]) { - _pointers[e.pointerId] = e; - } - } - function _globalPointerUp(e) { - delete _pointers[e.pointerId]; - } - function _addPointerDocListener() { - // need to keep track of what pointers and how many are active to provide e.touches emulation - if (!_pointerDocListener) { - // we listen document as any drags that end by moving the touch off the screen get fired there - document.addEventListener(POINTER_DOWN, _globalPointerDown, true); - document.addEventListener(POINTER_MOVE, _globalPointerMove, true); - document.addEventListener(POINTER_UP, _globalPointerUp, true); - document.addEventListener(POINTER_CANCEL, _globalPointerUp, true); - _pointerDocListener = true; - } - } - function _handlePointer(handler, e) { - if (e.pointerType === (e.MSPOINTER_TYPE_MOUSE || 'mouse')) { - return; - } - e.touches = []; - for (var i in _pointers) { - e.touches.push(_pointers[i]); - } - e.changedTouches = [e]; - handler(e); - } - function _onPointerStart(handler, e) { - // IE10 specific: MsTouch needs preventDefault. See #2000 - if (e.MSPOINTER_TYPE_TOUCH && e.pointerType === e.MSPOINTER_TYPE_TOUCH) { - preventDefault(e); - } - _handlePointer(handler, e); - } - - /* - * Extends the event handling code with double tap support for mobile browsers. - * - * Note: currently most browsers fire native dblclick, with only a few exceptions - * (see https://github.com/Leaflet/Leaflet/issues/7012#issuecomment-595087386) - */ - - function makeDblclick(event) { - // in modern browsers `type` cannot be just overridden: - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only - var newEvent = {}, - prop, - i; - for (i in event) { - prop = event[i]; - newEvent[i] = prop && prop.bind ? prop.bind(event) : prop; - } - event = newEvent; - newEvent.type = 'dblclick'; - newEvent.detail = 2; - newEvent.isTrusted = false; - newEvent._simulated = true; // for debug purposes - return newEvent; - } - var delay = 200; - function addDoubleTapListener(obj, handler) { - // Most browsers handle double tap natively - obj.addEventListener('dblclick', handler); - - // On some platforms the browser doesn't fire native dblclicks for touch events. - // It seems that in all such cases `detail` property of `click` event is always `1`. - // So here we rely on that fact to avoid excessive 'dblclick' simulation when not needed. - var last = 0, - detail; - function simDblclick(e) { - if (e.detail !== 1) { - detail = e.detail; // keep in sync to avoid false dblclick in some cases - return; - } - if (e.pointerType === 'mouse' || e.sourceCapabilities && !e.sourceCapabilities.firesTouchEvents) { - return; - } - - // When clicking on an , the browser generates a click on its - //