20 Commits

Author SHA1 Message Date
wjones df035a069d fix logging 2026-07-08 15:44:42 -04:00
wjones 4e6bf45701 Update logging configuration to set Microsoft.EntityFrameworkCore.Database.Command level to Error 2026-07-08 15:17:19 -04:00
wjones 2415f288f7 Refactor rebuild process and enhance service management in rebuild-solution.sh 2026-07-08 14:45:49 -04:00
wjones 94e46a04a7 remove publish test directories and update weekly monitoring script 2026-07-08 14:22:22 -04:00
wjones 0535515b11 Update Microsoft.Extensions.DependencyModel version and adjust project file references 2026-07-08 14:06:04 -04:00
wjones 401c24f599 Update package reference for Microsoft.Extensions.DependencyModel and modify restore command for Linux 2026-07-08 14:04:07 -04:00
wjones 41e737f3ec commit 2026-07-08 13:46:27 -04:00
wjones aca106bfe9 correct Unhandled exception. System.IO.FileNotFoundException: Could not find file '/opt/jellyfin/ServerSetupApp/index.mstemplate.html'. 2026-07-08 13:28:06 -04:00
wjones 72081ca13d commit changes to project file 2026-07-08 13:13:46 -04:00
wjones 9c9ad0f88e update projec t file to include wwwroot in publish output 2026-07-08 12:51:11 -04:00
wjones 90fb90d0be Add files for web ui 2026-07-08 12:44:58 -04:00
wjones 7a9981b872 feat: disable default content items in project file 2026-07-08 12:35:11 -04:00
wjones 2ba6c44ae8 fix: comment out unused custom.css references in project file 2026-07-08 12:32:40 -04:00
wjones 31d8aa1fc4 feat: include wwwroot content in output directory for preservation 2026-07-08 12:29:25 -04:00
wjones d6cd89ecd0 feat: add directory checks for log and config directories in rebuild script 2026-07-08 12:14:47 -04:00
wjones dce22a558f fix: remove unnecessary blank line before error logging in PostgresDatabaseProvider 2026-07-08 12:00:50 -04:00
wjones 1abf61a05f Add PostgresSubprocessException and refactor database initialization logic
- Introduced PostgresSubprocessException to handle errors during PostgreSQL subprocess execution.
- Refactored PostgresDatabaseProvider to improve schema initialization script discovery.
- Enhanced error handling for psql command execution, including logging of output and errors.
- Implemented methods to find the schema initialization script and the psql executable path.
2026-07-08 11:53:36 -04:00
wjones 4f651fc239 feat: enhance logging configuration with async file logging for SQL commands 2026-07-07 17:26:23 -04:00
wjones 421a8cc092 fix: implement exponential backoff strategy for concurrency exceptions in SaveChangesAsync 2026-07-07 11:31:47 -04:00
wjones 9bcb8501ab Add scripts for PostgreSQL migration and SQLite removal; update project references
- Introduced `publish-with-sql.ps1` to publish Jellyfin with SQL files.
- Added `remove-sqlite.ps1` to facilitate the removal of SQLite dependencies for PostgreSQL-only deployment.
- Created `rollback-to-net10.ps1` to revert .NET 11 changes back to .NET 10.
- Implemented `test_api.py` for testing API interactions.
- Added `verify-migration.ps1` to verify PostgreSQL migration steps.
- Updated various `.csproj` files to include `Microsoft.Kiota.Abstractions` package.
- Enhanced `JellyfinDbContext` to handle concurrency exceptions during save operations.
- Updated tests to include new package references and ensure compatibility with changes.
2026-07-07 10:59:40 -04:00
2458 changed files with 4631 additions and 9854271 deletions
-2
View File
@@ -31,8 +31,6 @@ obj/
lib/
/installer-output/
installer-output/
/wwwroot/*
wwwroot/*
# Publish profiles (anywhere in project)
/Properties/PublishProfiles/
Properties/PublishProfiles/
+3 -1
View File
@@ -45,11 +45,13 @@
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="11.0.0-preview.1.26104.118" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="11.0.0-preview.1.26104.118" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="11.0.0-preview.1.26104.118" />
<PackageVersion Include="Microsoft.Extensions.DependencyModel" Version="11.0.0-preview.1.26104.118" />
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Version="11.0.0-preview.1.26104.118" />
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="11.0.0-preview.1.26104.118" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="11.0.0-preview.1.26104.118" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="11.0.0-preview.1.26104.118" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="11.0.0-preview.1.26104.118" />
<PackageVersion Include="Microsoft.Kiota.Abstractions" Version="1.22.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageVersion Include="MimeTypes" Version="2.5.2" />
<PackageVersion Include="Morestachio" Version="5.0.1.670" />
@@ -65,7 +67,7 @@
<PackageVersion Include="Serilog.AspNetCore" Version="10.0.0" />
<PackageVersion Include="Serilog.Enrichers.Thread" Version="4.0.0" />
<PackageVersion Include="Serilog.Expressions" Version="5.0.0" />
<PackageVersion Include="Serilog.Settings.Configuration" Version="10.0.0" />
<PackageVersion Include="Serilog.Settings.Configuration" Version="10.0.1" />
<PackageVersion Include="Serilog.Sinks.Async" Version="2.1.0" />
<PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" />
<PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" />
+4
View File
@@ -32,6 +32,10 @@
<Compile Include="../SharedVersion.cs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Kiota.Abstractions" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="../MediaBrowser.Common/MediaBrowser.Common.csproj" />
<ProjectReference Include="../MediaBrowser.Model/MediaBrowser.Model.csproj" />
+1
View File
@@ -16,6 +16,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Kiota.Abstractions" />
<PackageReference Include="TagLibSharp" />
</ItemGroup>
@@ -29,6 +29,7 @@
<PackageReference Include="Microsoft.Extensions.DependencyInjection" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" />
<PackageReference Include="Microsoft.Kiota.Abstractions" />
<PackageReference Include="prometheus-net.DotNetRuntime" />
<PackageReference Include="DotNet.Glob" />
</ItemGroup>
+1
View File
@@ -16,6 +16,7 @@
<PackageReference Include="Jellyfin.Sdk" />
<PackageReference Include="Microsoft.AspNetCore.Authorization" />
<PackageReference Include="Microsoft.Extensions.Http" />
<PackageReference Include="Microsoft.Kiota.Abstractions" />
<PackageReference Include="Swashbuckle.AspNetCore" />
<PackageReference Include="Swashbuckle.AspNetCore.ReDoc" />
</ItemGroup>
@@ -18,6 +18,7 @@ using MediaBrowser.Controller.Configuration;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using JellyfinDbProviderFactory = System.Func<System.IServiceProvider, Jellyfin.Database.Implementations.IJellyfinDatabaseProvider>;
/// <summary>
@@ -25,6 +26,35 @@ using JellyfinDbProviderFactory = System.Func<System.IServiceProvider, Jellyfin.
/// </summary>
public static class ServiceCollectionExtensions
{
/// <summary>
/// Determines whether detailed EF Core logging should be enabled based on the configured log level.
/// </summary>
/// <param name="configuration">The application configuration.</param>
/// <returns>True if the log level for Microsoft.EntityFrameworkCore.Database.Command is Debug or lower; otherwise false.</returns>
private static bool ShouldEnableDetailedEFCoreLogging(IConfiguration configuration)
{
// Check if detailed EF Core logging is explicitly enabled in configuration
// Read the log level override for Entity Framework Core command logging
var efCoreLogLevelString = configuration["Serilog:MinimumLevel:Override:Microsoft.EntityFrameworkCore.Database.Command"];
if (string.IsNullOrWhiteSpace(efCoreLogLevelString))
{
// If not explicitly set, check the default minimum level
efCoreLogLevelString = configuration["Serilog:MinimumLevel:Default"] ?? "Information";
}
// Parse the log level string to LogLevel enum
if (Enum.TryParse<LogLevel>(efCoreLogLevelString, ignoreCase: true, out var logLevel))
{
// Enable detailed logging if the level is Debug or lower (more verbose)
// LogLevel order: Trace=0, Debug=1, Information=2, Warning=3, Error=4, Critical=5, None=6
return logLevel <= LogLevel.Debug;
}
// Default to false if we can't parse the log level
return false;
}
private static IEnumerable<Type> DatabaseProviderTypes()
{
yield return typeof(PostgresDatabaseProvider);
@@ -169,13 +199,15 @@ public static class ServiceCollectionExtensions
var lockingBehavior = serviceProvider.GetRequiredService<IEntityFrameworkCoreLockingBehavior>();
lockingBehavior.Initialise(opt);
// Enable SQL query logging when log level is Debug
var loggerFactory = serviceProvider.GetService<Microsoft.Extensions.Logging.ILoggerFactory>();
if (loggerFactory != null)
opt.UseLoggerFactory(loggerFactory);
// Only enable sensitive data logging and detailed errors if the EF Core command log level
// is set to Debug or lower, respecting the logging configuration from logging.json
if (ShouldEnableDetailedEFCoreLogging(configuration))
{
opt.UseLoggerFactory(loggerFactory)
.EnableSensitiveDataLogging()
.EnableDetailedErrors();
opt.EnableSensitiveDataLogging()
.EnableDetailedErrors();
}
});
@@ -30,6 +30,7 @@
<ItemGroup>
<PackageReference Include="AsyncKeyedLock" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" />
<PackageReference Include="Microsoft.Kiota.Abstractions" />
</ItemGroup>
<ItemGroup>
@@ -3,12 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Jellyfin.Data.Queries;
using Jellyfin.Extensions.Dapper;
using Jellyfin.Database.Implementations;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Plugins;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Tasks;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
namespace Jellyfin.Server.Implementations.ScheduledTasks
@@ -19,17 +19,17 @@ namespace Jellyfin.Server.Implementations.ScheduledTasks
public class PostgresPeriodicTuner : IScheduledTask, IConfigurableScheduledTask
{
private readonly ILogger<PostgresPeriodicTuner> _logger;
private readonly IDbContext _dbContext;
private readonly IDbContextFactory<JellyfinDbContext> _dbContextFactory;
/// <summary>
/// Initializes a new instance of the <see cref="PostgresPeriodicTuner"/> class.
/// </summary>
/// <param name="logger">The logger.</param>
/// <param name="dbContext">The database context.</param>
public PostgresPeriodicTuner(ILogger<PostgresPeriodicTuner> logger, IDbContext dbContext)
/// <param name="dbContextFactory">The database context factory.</param>
public PostgresPeriodicTuner(ILogger<PostgresPeriodicTuner> logger, IDbContextFactory<JellyfinDbContext> dbContextFactory)
{
_logger = logger;
_dbContext = dbContext;
_dbContextFactory = dbContextFactory;
}
/// <inheritdoc />
@@ -56,15 +56,17 @@ namespace Jellyfin.Server.Implementations.ScheduledTasks
/// <summary>
/// Executes the task.
/// </summary>
/// <param name="cancellationToken">The cancellation token.</param>
/// <param name="progress">The progress.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>A <see cref="Task"/> representing the asynchronous operation.</returns>
public async Task ExecuteAsync(CancellationToken cancellationToken, IProgress<double> progress)
public async Task ExecuteAsync(IProgress<double> progress, CancellationToken cancellationToken)
{
_logger.LogInformation("PostgreSQL Periodic Tuner task started.");
try
{
await using var dbContext = await _dbContextFactory.CreateDbContextAsync(cancellationToken).ConfigureAwait(false);
const string DeadTupleQuery = @"
SELECT
relname AS TableName,
@@ -76,7 +78,7 @@ namespace Jellyfin.Server.Implementations.ScheduledTasks
ORDER BY
n_dead_tup DESC;";
var tablesToVacuum = (await _dbContext.QueryAsync<(string TableName, long DeadTuples)>(DeadTupleQuery)).ToList();
var tablesToVacuum = (await dbContext.Database.SqlQueryRaw<(string TableName, long DeadTuples)>(DeadTupleQuery).ToListAsync(cancellationToken).ConfigureAwait(false)).ToList();
if (tablesToVacuum.Count == 0)
{
@@ -96,7 +98,7 @@ namespace Jellyfin.Server.Implementations.ScheduledTasks
try
{
await _dbContext.ExecuteAsync($"VACUUM ANALYZE \"{table.TableName}\"");
await dbContext.Database.ExecuteSqlInterpolatedAsync($"VACUUM ANALYZE \"{table.TableName}\"", cancellationToken).ConfigureAwait(false);
_logger.LogInformation("Successfully vacuumed and analyzed table {TableName}.", table.TableName);
}
catch (Exception ex)
@@ -129,7 +131,7 @@ namespace Jellyfin.Server.Implementations.ScheduledTasks
{
new TaskTriggerInfo
{
Type = TaskTriggerInfo.TriggerInterval,
Type = TaskTriggerInfoType.IntervalTrigger,
IntervalTicks = TimeSpan.FromHours(24).Ticks
}
};
+26 -18
View File
@@ -16,6 +16,9 @@
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<ApplicationIcon>Jellyfin.Server.ico</ApplicationIcon>
<IsPackable>true</IsPackable>
<EnableDefaultContentItems>false</EnableDefaultContentItems>
<!-- Enable assembly binding redirects in runtimeconfig.json -->
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
</PropertyGroup>
<ItemGroup>
@@ -71,7 +74,11 @@
<ItemGroup>
<PackageReference Include="CommandLineParser" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" />
<PackageReference Include="Microsoft.Kiota.Abstractions" />
<PackageReference Include="Morestachio" />
<PackageReference Include="prometheus-net" />
<PackageReference Include="prometheus-net.AspNetCore" />
@@ -86,6 +93,7 @@
<!-- SQLite package for migration routines only (SQLite -> PostgreSQL) -->
<PackageReference Include="Microsoft.Data.Sqlite" />
<PackageReference Include="Swashbuckle.AspNetCore" />
<PackageReference Include="Microsoft.Extensions.DependencyModel" />
</ItemGroup>
<ItemGroup>
@@ -100,37 +108,37 @@
</ItemGroup>
<ItemGroup>
<None Update="wwwroot\api-docs\redoc\custom.css">
<!-- Web content and static files -->
<None Include="wwwroot\**\*.*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<Link>wwwroot\%(RecursiveDir)%(Filename)%(Extension)</Link>
</None>
<None Update="wwwroot\api-docs\swagger\custom.css">
<None Include="wwwroot\*.*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<Link>wwwroot\%(Filename)%(Extension)</Link>
</None>
<None Update="wwwroot\api-docs\jellyfin.svg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="ServerSetupApp/index.mstemplate.html">
<!-- ServerSetupApp files -->
<None Include="ServerSetupApp\index.mstemplate.html">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>
</ItemGroup>
<ItemGroup>
<!-- SQL initialization scripts for PostgreSQL -->
<None Include="sql\**\*.sql">
<None Include="..\scripts\sql\**\*.sql">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<Pack>false</Pack>
<Link>sql\%(RecursiveDir)%(Filename)%(Extension)</Link>
</None>
<!-- Utility scripts (excluding SQL files) -->
<None Include="..\scripts\**\*" Exclude="..\scripts\sql\**\*.sql">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<Link>scripts\%(RecursiveDir)%(Filename)%(Extension)</Link>
</None>
</ItemGroup>
<!-- Post-build event to ensure SQL files are copied -->
<Target Name="CopySQLFiles" AfterTargets="AfterBuild">
<ItemGroup>
<SQLFiles Include="$(MSBuildProjectDirectory)\sql\**\*.sql" />
</ItemGroup>
<Message Importance="high" Text="Copying SQL files to $(OutDir)sql\" />
<Copy SourceFiles="@(SQLFiles)" DestinationFiles="@(SQLFiles->'$(OutDir)sql\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
<Message Importance="high" Text="✅ SQL files copied to output directory: $(OutDir)sql\" />
</Target>
</Project>
@@ -0,0 +1,140 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<!-- ProjectGuid is only included as a requirement for SonarQube analysis -->
<PropertyGroup>
<NoWarn>$(NoWarn);CA1024;CA1031;CA1032;CA1034;CA1054;CA1055;CA1056;CA1062;CA1308;CA1303;CA1305;CA1508;CA1722;CA1724;CA1805;CA1813;CA1815;CA1816;CA1819;CA1821;CA1822;CA1823;CA1824;CA1825;CA1826;CA1830;CA1836;CA1839;CA1840;CA1841;CA1859;CA1861;CA1873;CA1911;CA2000;CA2007;CA2016;CA2025;CA2026;CA2100;CA2101;CA2102;CA2201;CA2202;CA2207;CA2208;CA2219;CA2220;CA2222;CA2225;CA2226;CA2230;CA2231;CA2234;CA2241;CA2242;CA2243;CA2244;CA2245;CA2246;CA2247;CA2248;CA2249;CA2250;CA2253;CA3001;CA3002;CA3003;CA3004;CA3005;CA3006;CA3007;CA3008;CA3009;CA3010;CA3011;CA3012;CA3061;CA3062;CA5359;CA5360;CA5361;CA5362;CA5363;CA5364;CA5365;CA5366;CA5367;CA5368;CA5369;CA5370;CA5371;CA5372;CA5373;CA5374;CA5375;CA5376;CA5377;CA5378;CA5379;CA5380;CA5381;CA5382;CA5383;CA5384;CA5385;CA5386;CA5387;CA5388;CA5389;CA5390;CA5391;CA5392;CA5393;CA5394;CA5395;CA5396;CA5397;CA5398;CA5399;CA5400;CA5401;CA5402;CA5403;NU1903;CA1848;CA1515;CA1812;CA1849;CA1860;CA1867;CA1517;CS1061;CS0103</NoWarn>
<ProjectGuid>{07E39F42-A2C6-4B32-AF8C-725F957A73FF}</ProjectGuid>
</PropertyGroup>
<PropertyGroup>
<NoWarn>$(NoWarn);CA1024;CA1031;CA1032;CA1034;CA1054;CA1055;CA1056;CA1062;CA1308;CA1303;CA1305;CA1508;CA1722;CA1724;CA1805;CA1813;CA1815;CA1816;CA1819;CA1821;CA1822;CA1823;CA1824;CA1825;CA1826;CA1830;CA1836;CA1839;CA1840;CA1841;CA1859;CA1861;CA1873;CA1911;CA2000;CA2007;CA2016;CA2025;CA2026;CA2100;CA2101;CA2102;CA2201;CA2202;CA2207;CA2208;CA2219;CA2220;CA2222;CA2225;CA2226;CA2230;CA2231;CA2234;CA2241;CA2242;CA2243;CA2244;CA2245;CA2246;CA2247;CA2248;CA2249;CA2250;CA2253;CA3001;CA3002;CA3003;CA3004;CA3005;CA3006;CA3007;CA3008;CA3009;CA3010;CA3011;CA3012;CA3061;CA3062;CA5359;CA5360;CA5361;CA5362;CA5363;CA5364;CA5365;CA5366;CA5367;CA5368;CA5369;CA5370;CA5371;CA5372;CA5373;CA5374;CA5375;CA5376;CA5377;CA5378;CA5379;CA5380;CA5381;CA5382;CA5383;CA5384;CA5385;CA5386;CA5387;CA5388;CA5389;CA5390;CA5391;CA5392;CA5393;CA5394;CA5395;CA5396;CA5397;CA5398;CA5399;CA5400;CA5401;CA5402;CA5403;NU1903;CA1848;CA1515;CA1812;CA1849;CA1860;CA1867;CA1517;CS1061;CS0103</NoWarn>
<AssemblyName>jellyfin</AssemblyName>
<OutputType>Exe</OutputType>
<TargetFramework>net11.0</TargetFramework>
<ServerGarbageCollection>false</ServerGarbageCollection>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<ApplicationIcon>Jellyfin.Server.ico</ApplicationIcon>
<IsPackable>true</IsPackable>
<EnableDefaultContentItems>false</EnableDefaultContentItems>
</PropertyGroup>
<ItemGroup>
<Compile Remove="Filters/**/*.cs" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\SharedVersion.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="Jellyfin.Server.ico" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Resources/Configuration/*" />
</ItemGroup>
<!-- Code Analyzers -->
<ItemGroup Condition=" '$(Configuration)' == 'Debug' ">
<PackageReference Include="IDisposableAnalyzers">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="Jellyfin.Sdk" />
<PackageReference Include="Microsoft.CodeAnalysis.BannedApiAnalyzers">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="SerilogAnalyzer" PrivateAssets="All" />
<PackageReference Include="StyleCop.Analyzers" PrivateAssets="All" />
<PackageReference Include="SmartAnalyzers.MultithreadingAnalyzer" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>
<Content Remove="startup.json.example" />
</ItemGroup>
<ItemGroup>
<None Include="startup.json.linux">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>
<None Include="startup.json.windows">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>
</ItemGroup>
<ItemGroup>
<PackageReference Include="CommandLineParser" />
<PackageReference Include="Microsoft.Extensions.DependencyModel" />
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" />
<PackageReference Include="Microsoft.Kiota.Abstractions" />
<PackageReference Include="Morestachio" />
<PackageReference Include="prometheus-net" />
<PackageReference Include="prometheus-net.AspNetCore" />
<PackageReference Include="Serilog.AspNetCore" />
<PackageReference Include="Serilog.Enrichers.Thread" />
<PackageReference Include="Serilog.Expressions" />
<PackageReference Include="Serilog.Settings.Configuration" />
<PackageReference Include="Serilog.Sinks.Async" />
<PackageReference Include="Serilog.Sinks.Console" />
<PackageReference Include="Serilog.Sinks.File" />
<PackageReference Include="Serilog.Sinks.Graylog" />
<!-- SQLite package for migration routines only (SQLite -> PostgreSQL) -->
<PackageReference Include="Microsoft.Data.Sqlite" />
<PackageReference Include="Swashbuckle.AspNetCore" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\src\Jellyfin.Drawing\Jellyfin.Drawing.csproj" />
<ProjectReference Include="..\Emby.Server.Implementations\Emby.Server.Implementations.csproj" />
<ProjectReference Include="..\src\Jellyfin.Drawing.Skia\Jellyfin.Drawing.Skia.csproj" />
<ProjectReference Include="..\src\Jellyfin.LiveTv\Jellyfin.LiveTv.csproj" />
<ProjectReference Include="..\Jellyfin.Server.Implementations\Jellyfin.Server.Implementations.csproj" />
<ProjectReference Include="..\src\Jellyfin.MediaEncoding.Hls\Jellyfin.MediaEncoding.Hls.csproj" />
<ProjectReference Include="..\src\Jellyfin.Database\Jellyfin.Database.Implementations\Jellyfin.Database.Implementations.csproj" />
<ProjectReference Include="..\src\Jellyfin.Database\Jellyfin.Database.Providers.Postgres\Jellyfin.Database.Providers.Postgres.csproj" />
</ItemGroup>
<ItemGroup>
<!-- Web content and static files -->
<None Include="wwwroot\**\*.*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<Link>wwwroot\%(RecursiveDir)%(Filename)%(Extension)</Link>
</None>
<None Include="wwwroot\*.*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<Link>wwwroot\%(Filename)%(Extension)</Link>
</None>
<!-- ServerSetupApp files -->
<None Include="ServerSetupApp\index.mstemplate.html">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>
<!-- Runtime configuration for binding redirects -->
</ItemGroup>
<ItemGroup>
<!-- SQL initialization scripts for PostgreSQL -->
<None Include="..\scripts\sql\**\*.sql">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<Link>sql\%(RecursiveDir)%(Filename)%(Extension)</Link>
</None>
<!-- Utility scripts (excluding SQL files) -->
<None Include="..\scripts\**\*" Exclude="..\scripts\sql\**\*.sql">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<Link>scripts\%(RecursiveDir)%(Filename)%(Extension)</Link>
</None>
</ItemGroup>
</Project>
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<NameOfLastUsedPublishProfile>D:\Projects\pgsql-jellyfin\Jellyfin.Server\Properties\PublishProfiles\SelfContained-Linux-x64.pubxml</NameOfLastUsedPublishProfile>
<NameOfLastUsedPublishProfile>D:\Projects\pgsql-jellyfin\Jellyfin.Server\Properties\PublishProfiles\SelfContained-Win-x64.pubxml</NameOfLastUsedPublishProfile>
</PropertyGroup>
</Project>
@@ -5,7 +5,7 @@
"Override": {
"Microsoft": "Warning",
"System": "Warning",
"Microsoft.EntityFrameworkCore.Database.Command": "Information"
"Microsoft.EntityFrameworkCore.Database.Command": "Error"
}
},
"WriteTo": [
@@ -0,0 +1,407 @@
#!/bin/bash
#
# SYNOPSIS
# Automated weekly performance monitoring for Jellyfin PostgreSQL database
#
# DESCRIPTION
# This script:
# 1. Runs comprehensive diagnostics
# 2. Analyzes slow queries
# 3. Tracks index usage over time
# 4. Generates weekly performance reports
# 5. Optionally runs VACUUM ANALYZE on tables with high dead tuples
# 6. Can be scheduled via cron
#
# USAGE
# ./Weekly-Performance-Monitor.sh [OPTIONS]
#
# OPTIONS
# -o, --output-directory DIR Directory to save reports (default: reports/weekly)
# -e, --email-report If specified, emails the report (requires email configuration)
# -c, --compare-with-previous Compare current stats with previous week
# -a, --auto-vacuum-analyze Enable auto vacuum analyze
# --dead-tuple-threshold NUM Minimum dead tuples to trigger vacuum (default: 100)
# --dead-tuple-percent-threshold NUM Minimum dead tuple percentage to trigger vacuum (default: 0.02)
#
# EXAMPLE
# ./Weekly-Performance-Monitor.sh
# ./Weekly-Performance-Monitor.sh -o "/reports/jellyfin" -c
# ./Weekly-Performance-Monitor.sh -a --dead-tuple-threshold 10000 --dead-tuple-percent-threshold 20
#
# CRON JOB EXAMPLE
# # Run every Monday at 6am
# 0 6 * * 1 /path/to/Weekly-Performance-Monitor.sh -a
#
# ============================================================================
# Default Configuration
# ============================================================================
OUTPUT_DIRECTORY="reports/weekly"
EMAIL_REPORT=false
COMPARE_WITH_PREVIOUS=false
AUTO_VACUUM_ANALYZE=false
DEAD_TUPLE_THRESHOLD=100
DEAD_TUPLE_PERCENT_THRESHOLD=0.02
# ============================================================================
# Helper Functions
# ============================================================================
# Color definitions
CYAN='\033[0;36m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
GRAY='\033[0;90m'
NC='\033[0m' # No Color
write_color_output() {
local message="$1"
local color="$2"
echo -e "${color}${message}${NC}"
}
get_report_timestamp() {
date +"%Y-%m-%d_%H%M%S"
}
get_week_number() {
date +%V
}
# ============================================================================
# Script Argument Parsing
# ============================================================================
while [[ "$#" -gt 0 ]]; do
case $1 in
-o|--output-directory) OUTPUT_DIRECTORY="$2"; shift ;;
-e|--email-report) EMAIL_REPORT=true ;;
-c|--compare-with-previous) COMPARE_WITH_PREVIOUS=true ;;
-a|--auto-vacuum-analyze) AUTO_VACUUM_ANALYZE=true ;;
--dead-tuple-threshold) DEAD_TUPLE_THRESHOLD="$2"; shift ;;
--dead-tuple-percent-threshold) DEAD_TUPLE_PERCENT_THRESHOLD="$2"; shift ;;
*) write_color_output "Unknown parameter passed: $1" "$RED"; exit 1 ;;
esac
shift
done
# ============================================================================
# Configuration
# ============================================================================
set -e # Exit on error
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"
SQL_DIR="$PROJECT_ROOT/sql"
# Load database configuration
source "./db-config.sh"
# ============================================================================
# Functions
# ============================================================================
test_database_connection() {
write_color_output "\nTesting database connection..." "$CYAN"
if PGPASSWORD=$DB_PASS $PSQL_PATH -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -c "SELECT version();" > /dev/null 2>&1; then
write_color_output "[OK] Database connection successful" "$GREEN"
return 0
else
write_color_output "[ERROR] Database connection failed" "$RED"
return 1
fi
}
invoke_diagnostic_report() {
local output_file="$1"
write_color_output "\nRunning comprehensive diagnostics..." "$CYAN"
run_sql_files_from_dir "$SQL_DIR/diagnostics" "$output_file"
if [ $? -eq 0 ]; then
write_color_output "[OK] Diagnostics completed: $output_file" "$GREEN"
else
write_color_output "[WARN] Diagnostics completed with warnings" "$YELLOW"
fi
}
get_index_usage_stats() {
local output_file="$1"
write_color_output "\nGathering index usage statistics..." "$CYAN"
local query="
SELECT
schemaname,
relname AS tablename,
indexrelname,
idx_scan,
idx_tup_read,
idx_tup_fetch,
pg_size_pretty(pg_relation_size(indexrelid)) AS index_size
FROM pg_stat_user_indexes
WHERE schemaname IN ('library', 'users', 'authentication', 'displaypreferences', 'activitylog')
ORDER BY schemaname, relname, idx_scan DESC;
"
if PGPASSWORD=$DB_PASS $PSQL_PATH -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -c "$query" > "$output_file" 2>&1; then
write_color_output "[OK] Index stats gathered: $output_file" "$GREEN"
else
write_color_output "[WARN] Index stats completed with warnings" "$YELLOW"
fi
}
get_table_size_stats() {
local output_file="$1"
write_color_output "\nGathering table size statistics..." "$CYAN"
local query="
SELECT
schemaname,
relname,
pg_size_pretty(pg_total_relation_size(schemaname||'.'||relname)) AS total_size,
pg_size_pretty(pg_relation_size(schemaname||'.'||relname)) AS table_size,
pg_size_pretty(pg_total_relation_size(schemaname||'.'||relname) - pg_relation_size(schemaname||'.'||relname)) AS index_size,
n_live_tup AS row_count,
n_dead_tup AS dead_rows,
ROUND(100.0 * n_dead_tup / NULLIF(n_live_tup, 0), 2) AS dead_pct
FROM pg_stat_user_tables
WHERE schemaname IN ('library', 'users', 'authentication', 'displaypreferences', 'activitylog')
ORDER BY pg_total_relation_size(schemaname||'.'||relname) DESC;
"
if PGPASSWORD=$DB_PASS $PSQL_PATH -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -c "$query" > "$output_file" 2>&1; then
write_color_output "[OK] Table size stats gathered: $output_file" "$GREEN"
else
write_color_output "[WARN] Table size stats completed with warnings" "$YELLOW"
fi
}
invoke_conditional_vacuum_analyze() {
local min_dead_tuples="$1"
local min_dead_percent="$2"
write_color_output "\nChecking for tables that need VACUUM ANALYZE..." "$CYAN"
write_color_output "Thresholds: dead tuples >= $min_dead_tuples and dead percent >= $min_dead_percent" "$GRAY"
local table_query="
SELECT
format('%I.%I', schemaname, relname) AS qualified_table,
n_dead_tup,
ROUND(100.0 * n_dead_tup / NULLIF(n_live_tup, 0), 2) AS dead_pct
FROM pg_stat_user_tables
WHERE schemaname IN ('library', 'users', 'authentication', 'displaypreferences', 'activitylog')
AND n_live_tup > 0
AND n_dead_tup >= $min_dead_tuples
AND (100.0 * n_dead_tup / NULLIF(n_live_tup, 0)) >= $min_dead_percent
ORDER BY n_dead_tup DESC;
"
tables=$(PGPASSWORD=$DB_PASS $PSQL_PATH -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -t -A -F "|" -c "$table_query")
if [ -z "$tables" ]; then
write_color_output "[OK] No tables exceeded dead tuple thresholds" "$GREEN"
return
fi
write_color_output "Found $(echo "$tables" | wc -l) table(s) requiring VACUUM ANALYZE" "$YELLOW"
while IFS= read -r line; do
qualified_table=$(echo "$line" | cut -d'|' -f1)
dead_tuples=$(echo "$line" | cut -d'|' -f2)
dead_percent=$(echo "$line" | cut -d'|' -f3)
write_color_output "Running VACUUM ANALYZE on $qualified_table (dead tuples: $dead_tuples, dead percent: $dead_percent)" "$CYAN"
if PGPASSWORD=$DB_PASS $PSQL_PATH -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -c "VACUUM (ANALYZE, VERBOSE) $qualified_table;"; then
write_color_output "[OK] VACUUM ANALYZE completed for $qualified_table" "$GREEN"
else
write_color_output "[ERROR] VACUUM ANALYZE failed for $qualified_table" "$RED"
fi
done <<< "$tables"
}
compare_with_previous() {
local current_report="$1"
local output_dir="$2"
write_color_output "\nComparing with previous week's report..." "$CYAN"
previous_report=$(find "$output_dir" -name "diagnostics_*.txt" ! -name "$(basename "$current_report")" -printf '%T@ %p\n' | sort -n | tail -1 | cut -d' ' -f2-)
if [ -z "$previous_report" ]; then
write_color_output "[WARN] No previous reports found for comparison" "$YELLOW"
return
fi
write_color_output "Comparing with: $(basename "$previous_report")" "$CYAN"
# TODO: Add detailed comparison logic
write_color_output "[OK] Comparison data available" "$GREEN"
write_color_output " Current: $current_report" "$GRAY"
write_color_output " Previous: $previous_report" "$GRAY"
}
new_summary_report() {
local output_dir="$1"
local timestamp="$2"
write_color_output "\nGenerating summary report..." "$CYAN"
local summary_file="$output_dir/summary_$timestamp.txt"
cat > "$summary_file" <<EOF
================================================================================
JELLYFIN DATABASE WEEKLY PERFORMANCE SUMMARY
================================================================================
Report Date: $(date +"%Y-%m-%d %H:%M:%S")
Database: $DB_NAME at $DB_HOST
Week Number: $(get_week_number)
================================================================================
REPORTS GENERATED:
* diagnostics_$timestamp.txt : Full diagnostic report
* index_usage_$timestamp.txt : Index usage statistics
* table_sizes_$timestamp.txt : Table size and bloat info
* summary_$timestamp.txt : This summary
================================================================================
QUICK HEALTH CHECK:
================================================================================
To view critical issues check diagnostics file for:
* Section 5: TABLES WITH HIGH SEQUENTIAL SCANS
* Section 8: UNUSED OR RARELY USED INDEXES
* Section 10: SLOWEST QUERIES
To identify slow queries check query_analysis file for:
* Section 2: TOP 20 SLOWEST QUERIES (by max execution time)
* Section 5: BASEITEMS TABLE QUERIES ANALYSIS
================================================================================
RECOMMENDED ACTIONS:
================================================================================
* Review slow queries taking longer than 10 seconds
* Check if new indexes are being utilized
* Look for tables with many sequential scans
* Monitor cache hit ratio (should be above 95 percent)
* Check for tables with high dead tuples percentage (need VACUUM)
================================================================================
AUTOMATION SETUP:
================================================================================
To schedule this script weekly, add the following to your crontab:
0 6 * * 1 /path/to/$(basename "$0")
================================================================================
NEXT REPORT: $(date -d "+7 days" +"%Y-%m-%d")
================================================================================
EOF
write_color_output "[OK] Summary generated: $summary_file" "$GREEN"
}
# ============================================================================
# Helper Functions
# ============================================================================
run_sql_files_from_dir() {
local sql_dir="$1"
local output_file="$2"
if [ ! -d "$sql_dir" ]; then
write_color_output "[ERROR] Directory not found: $sql_dir" "$RED"
return 1
fi
# Clear the output file before running scripts
> "$output_file"
for sql_file in "$sql_dir"/*.sql; do
echo -e "\n---\n-- Executing: $(basename "$sql_file")\n---\n" >> "$output_file"
write_color_output "Running SQL file: $(basename "$sql_file")" "$CYAN"
if PGPASSWORD=$DB_PASS $PSQL_PATH -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -f "$sql_file" >> "$output_file" 2>&1; then
write_color_output "[OK] Successfully executed $(basename "$sql_file")" "$GREEN"
else
write_color_output "[WARN] Completed with warnings: $(basename "$sql_file")" "$YELLOW"
fi
done
}
# ============================================================================
# Main Execution
# ============================================================================
write_color_output "\n${CYAN}========================================${NC}"
write_color_output "Jellyfin Database Weekly Monitor" "$CYAN"
write_color_output "========================================${NC}"
write_color_output "Database: $DB_NAME" "$YELLOW"
write_color_output "Host: $DB_HOST" "$YELLOW"
write_color_output "Week: $(get_week_number)" "$YELLOW"
write_color_output "Date: $(date +'%Y-%m-%d %H:%M:%S')" "$YELLOW"
write_color_output "========================================\n${NC}"
# Create output directory
report_dir="./$OUTPUT_DIRECTORY"
mkdir -p "$report_dir"
write_color_output "Created report directory: $report_dir" "$GREEN"
# Generate timestamp for this run
timestamp=$(get_report_timestamp)
# Test connection
if ! test_database_connection; then
write_color_output "\n[ERROR] Cannot connect to database. Exiting." "$RED"
exit 1
fi
# Run diagnostics
diagnostics_file="$report_dir/diagnostics_$timestamp.txt"
invoke_diagnostic_report "$diagnostics_file"
# Gather index usage stats
index_usage_file="$report_dir/index_usage_$timestamp.txt"
get_index_usage_stats "$index_usage_file"
# Gather table size stats
table_sizes_file="$report_dir/table_sizes_$timestamp.txt"
get_table_size_stats "$table_sizes_file"
# Optionally vacuum/analyze tables
if [ "$AUTO_VACUUM_ANALYZE" = true ]; then
invoke_conditional_vacuum_analyze "$DEAD_TUPLE_THRESHOLD" "$DEAD_TUPLE_PERCENT_THRESHOLD"
fi
# Compare with previous week
if [ "$COMPARE_WITH_PREVIOUS" = true ]; then
compare_with_previous "$diagnostics_file" "$report_dir"
fi
# Generate summary
new_summary_report "$report_dir" "$timestamp"
# Cleanup old reports (keep last 12 weeks)
write_color_output "\nCleaning up old reports (keeping last 12 weeks)..." "$CYAN"
find "$report_dir" -type f -mtime +84 -delete
write_color_output "[OK] Cleanup complete" "$GREEN"
write_color_output "\n${GREEN}========================================${NC}"
write_color_output "[OK] WEEKLY MONITORING COMPLETE" "$GREEN"
write_color_output "========================================${NC}"
write_color_output "Reports saved to: $report_dir" "$YELLOW"
write_color_output "Summary: summary_$timestamp.txt" "$YELLOW"
write_color_output "\nNext steps:" "$CYAN"
write_color_output "1. Review summary_$timestamp.txt" "$NC"
write_color_output "2. Check for critical issues in diagnostics report" "$NC"
write_color_output "3. Analyze slow queries in query_analysis report" "$NC"
write_color_output "========================================\n${NC}"
# Email report if requested
if [ "$EMAIL_REPORT" = true ]; then
write_color_output "[WARN] Email functionality not yet implemented" "$YELLOW"
write_color_output " Configure a mail client like 'mail' or 'sendmail'" "$GRAY"
fi
exit 0
@@ -0,0 +1,78 @@
#!/bin/bash
# Database Configuration
# Edit this file to change which database commands run against
# Database connection settings
PSQL_PATH="/usr/bin/psql"
DB_USER="jellyfin"
DB_NAME="jellyfin_test2" # ← Change this to switch databases
DB_HOST="192.168.129.253"
DB_PORT="6432"
# Export for use in other scripts
export PSQL_PATH
export DB_USER
export DB_NAME
export DB_HOST
export DB_PORT
# Helper function to run psql commands
invoke_psql() {
local query=""
local file=""
local output_file=""
while [[ $# -gt 0 ]]; do
case "$1" in
-q|--query)
query="$2"
shift 2
;;
-f|--file)
file="$2"
shift 2
;;
-o|--output-file)
output_file="$2"
shift 2
;;
*)
echo "Unknown option: $1"
return 1
;;
esac
done
local base_cmd="$PSQL_PATH -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME"
local cmd=""
if [ -n "$file" ]; then
cmd="$base_cmd -f \"$file\""
elif [ -n "$query" ]; then
cmd="$base_cmd -c \"$query\""
else
echo "Must provide either --query or --file parameter"
return 1
fi
if [ -n "$output_file" ]; then
cmd+=" > \"$output_file\""
fi
echo -e "\e[36mConnecting to: $DB_NAME@$DB_HOST as $DB_USER\e[0m"
eval "$cmd"
}
# Display current configuration
echo -e "\e[36m========================================\e[0m"
echo -e "\e[36mDatabase Configuration Loaded\e[0m"
echo -e "\e[36m========================================\e[0m"
echo -e "\e[33mDatabase: $DB_NAME\e[0m"
echo -e "\e[33mUser: $DB_USER\e[0m"
echo -e "\e[33mHost: $DB_HOST\e[0m"
echo -e "\e[33mPort: $DB_PORT\e[0m"
echo -e "\e[36m========================================\e[0m"
echo ""
echo -e "\e[90mTo change database, edit: db-config.sh\e[0m"
echo -e "\e[90mThen run: source db-config.sh\e[0m"
echo ""
@@ -1,216 +0,0 @@
-- Combined Performance Indexes Script
-- This combines both base and supplementary indexes into one script
-- Run this on a fresh database after InitialCreate migration
\echo '========================================';
\echo 'Creating All Performance Indexes';
\echo '========================================';
\echo '';
-- ============================================================================
-- PART 1: Base Performance Indexes (18 total)
-- ============================================================================
\echo 'Part 1: Adding base performance indexes (18)...';
\echo '';
-- BaseItems Performance Indexes (9)
\echo 'Creating BaseItems performance indexes...';
CREATE INDEX IF NOT EXISTS baseitems_communityrating_idx
ON library."BaseItems" ("CommunityRating" DESC);
CREATE INDEX IF NOT EXISTS baseitems_datecreated_idx
ON library."BaseItems" ("DateCreated" DESC);
CREATE INDEX IF NOT EXISTS baseitems_datemodified_idx
ON library."BaseItems" ("DateModified" DESC);
CREATE INDEX IF NOT EXISTS baseitems_parentid_idx
ON library."BaseItems" ("ParentId", "Type");
CREATE INDEX IF NOT EXISTS baseitems_premieredate_idx
ON library."BaseItems" ("PremiereDate" DESC);
CREATE INDEX IF NOT EXISTS baseitems_productionyear_idx
ON library."BaseItems" ("ProductionYear" DESC);
CREATE INDEX IF NOT EXISTS baseitems_seriespresentationuniquekey_idx
ON library."BaseItems" ("SeriesPresentationUniqueKey", "IndexNumber", "ParentIndexNumber");
CREATE INDEX IF NOT EXISTS baseitems_sortname_idx
ON library."BaseItems" ("SortName");
CREATE INDEX IF NOT EXISTS baseitems_topparentid_idx
ON library."BaseItems" ("TopParentId", "Type");
\echo '✓ BaseItems indexes created (9)';
-- BaseItemProviders Performance Indexes (2)
\echo 'Creating BaseItemProviders performance indexes...';
CREATE INDEX IF NOT EXISTS baseitemproviders_providerid_idx
ON library."BaseItemProviders" ("ProviderId", "ItemId");
CREATE INDEX IF NOT EXISTS baseitemproviders_providervalue_idx
ON library."BaseItemProviders" ("ProviderValue", "ProviderId");
\echo '✓ BaseItemProviders indexes created (2)';
-- MediaStreamInfos Performance Indexes (2)
\echo 'Creating MediaStreamInfos performance indexes...';
CREATE INDEX IF NOT EXISTS mediastreaminfos_codec_idx
ON library."MediaStreamInfos" ("Codec");
CREATE INDEX IF NOT EXISTS mediastreaminfos_itemid_idx
ON library."MediaStreamInfos" ("ItemId", "StreamType");
\echo '✓ MediaStreamInfos indexes created (2)';
-- PeopleBaseItemMap Performance Indexes (2)
\echo 'Creating PeopleBaseItemMap performance indexes...';
CREATE INDEX IF NOT EXISTS peoplebaseitemmap_itemid_idx
ON library."PeopleBaseItemMap" ("ItemId", "PeopleId");
CREATE INDEX IF NOT EXISTS peoplebaseitemmap_peopleid_idx
ON library."PeopleBaseItemMap" ("PeopleId", "ItemId");
\echo '✓ PeopleBaseItemMap indexes created (2)';
-- UserData Performance Indexes (3)
\echo 'Creating UserData performance indexes...';
CREATE INDEX IF NOT EXISTS userdata_lastplayeddate_idx
ON library."UserData" ("LastPlayedDate" DESC);
CREATE INDEX IF NOT EXISTS userdata_userid_isfavorite_idx
ON library."UserData" ("UserId", "IsFavorite");
CREATE INDEX IF NOT EXISTS userdata_userid_played_idx
ON library."UserData" ("UserId", "Played");
\echo '✓ UserData indexes created (3)';
\echo '';
\echo '✓ Part 1 Complete: 18 base performance indexes created';
\echo '';
-- ============================================================================
-- PART 2: Supplementary Performance Indexes (5 total)
-- ============================================================================
\echo 'Part 2: Adding supplementary performance indexes (5)...';
\echo '';
-- BaseItems Supplementary Indexes (3)
\echo 'Creating BaseItems supplementary indexes...';
-- Index: idx_baseitems_type_isvirtualitem_topparentid
CREATE INDEX IF NOT EXISTS idx_baseitems_type_isvirtualitem_topparentid
ON library."BaseItems" ("Type", "IsVirtualItem", "TopParentId")
WHERE "BaseItems"."IsVirtualItem" = false;
-- Index: idx_baseitems_topparentid_isfolder
CREATE INDEX IF NOT EXISTS idx_baseitems_topparentid_isfolder
ON library."BaseItems" ("TopParentId", "IsFolder", "IsVirtualItem")
WHERE "BaseItems"."TopParentId" IS NOT NULL;
-- Index: idx_baseitems_datecreated_filtered
CREATE INDEX IF NOT EXISTS idx_baseitems_datecreated_filtered
ON library."BaseItems" ("DateCreated" DESC, "Type", "IsVirtualItem")
WHERE "BaseItems"."DateCreated" IS NOT NULL AND "BaseItems"."IsVirtualItem" = false;
\echo '✓ BaseItems supplementary indexes created (3)';
-- ItemValuesMap Supplementary Index (1)
\echo 'Creating ItemValuesMap supplementary index...';
-- Index: idx_itemvaluesmap_itemvalueid_itemid
CREATE INDEX IF NOT EXISTS idx_itemvaluesmap_itemvalueid_itemid
ON library."ItemValuesMap" ("ItemValueId", "ItemId");
\echo '✓ ItemValuesMap supplementary index created (1)';
-- ActivityLogs Supplementary Index (1)
\echo 'Creating ActivityLogs supplementary index...';
-- Index: idx_activitylogs_userid_datecreated
-- Note: Only creates if ActivityLogs table exists
DO $$
BEGIN
IF EXISTS (
SELECT 1 FROM information_schema.tables
WHERE table_schema = 'activitylog'
AND table_name = 'ActivityLogs'
) THEN
CREATE INDEX IF NOT EXISTS idx_activitylogs_userid_datecreated
ON activitylog."ActivityLogs" ("UserId", "DateCreated" DESC)
WHERE "ActivityLogs"."UserId" IS NOT NULL;
RAISE NOTICE '✓ Created idx_activitylogs_userid_datecreated';
ELSE
RAISE NOTICE '⚠ ActivityLogs table not found, skipping';
END IF;
END $$;
\echo '✓ ActivityLogs supplementary index created (1)';
\echo '';
\echo '✓ Part 2 Complete: 5 supplementary indexes created';
\echo '';
-- ============================================================================
-- Update Statistics
-- ============================================================================
\echo 'Updating table statistics...';
ANALYZE library."BaseItems";
ANALYZE library."BaseItemProviders";
ANALYZE library."MediaStreamInfos";
ANALYZE library."PeopleBaseItemMap";
ANALYZE library."UserData";
DO $$
BEGIN
IF EXISTS (
SELECT 1 FROM information_schema.tables
WHERE table_schema = 'activitylog'
AND table_name = 'ActivityLogs'
) THEN
ANALYZE activitylog."ActivityLogs";
RAISE NOTICE '✓ ActivityLogs statistics updated';
END IF;
END $$;
\echo '✓ Statistics updated';
-- ============================================================================
-- Summary
-- ============================================================================
\echo '';
\echo '========================================';
\echo '✓ All Performance Indexes Created!';
\echo '========================================';
\echo '';
\echo 'Summary:';
\echo ' Base Indexes: 18';
\echo ' - BaseItems: 9';
\echo ' - BaseItemProviders: 2';
\echo ' - MediaStreamInfos: 2';
\echo ' - PeopleBaseItemMap: 2';
\echo ' - UserData: 3';
\echo '';
\echo ' Supplementary Indexes: 5';
\echo ' - BaseItems: 3';
\echo ' - ItemValuesMap: 1';
\echo ' - ActivityLogs: 1';
\echo '';
\echo ' Total Indexes Added: 23';
\echo '';
\echo 'Performance improvement: 70-90% faster queries!';
\echo '';
\echo 'Next: Restart Jellyfin to see improvements.';
\echo '========================================';
-201
View File
@@ -1,201 +0,0 @@
-- PostgreSQL Performance Indexes for Jellyfin
-- Run this script to improve query performance
-- Safe to run multiple times (uses IF NOT EXISTS)
\timing on
\echo 'Creating performance indexes for Jellyfin PostgreSQL database...'
-- ============================================================================
-- BaseItems Table Indexes
-- ============================================================================
\echo 'Creating indexes on BaseItems table...'
-- Index for filtering by type and virtual items (improves library filtering)
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_baseitems_type_isvirtual
ON library."BaseItems" (Type, BaseItems.IsVirtualItem)
WHERE IsVirtualItem = false;
-- Index for parent-child relationships (improves hierarchy queries)
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_baseitems_parent_type
ON library."BaseItems" (BaseItems.ParentId, Type)
WHERE ParentId IS NOT NULL;
-- Index for date-based queries (recently added items, sorting)
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_baseitems_datecreated
ON library."BaseItems" (BaseItems.DateCreated DESC)
WHERE DateCreated IS NOT NULL;
-- Index for date modified (sync operations)
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_baseitems_datemodified
ON library."BaseItems" (BaseItems.DateModified DESC)
WHERE DateModified IS NOT NULL;
-- Index for sorting by name (alphabetical browsing)
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_baseitems_sortname
ON library."BaseItems" (BaseItems.SortName)
WHERE SortName IS NOT NULL;
-- Index for TopParent lookups (library organization)
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_baseitems_topparent_type
ON library."BaseItems" (BaseItems.TopParentId, Type)
WHERE TopParentId IS NOT NULL;
-- Index for premiere date (upcoming/recent content)
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_baseitems_premieredate
ON library."BaseItems" (BaseItems.PremiereDate DESC)
WHERE PremiereDate IS NOT NULL;
-- Index for production year (decade/year filtering)
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_baseitems_productionyear
ON library."BaseItems" (BaseItems.ProductionYear DESC)
WHERE ProductionYear IS NOT NULL;
-- Index for community rating (sorting by rating)
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_baseitems_rating
ON library."BaseItems" (BaseItems.CommunityRating DESC NULLS LAST);
-- Index for series episodes
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_baseitems_series_episode
ON library."BaseItems" (BaseItems.SeriesPresentationUniqueKey, BaseItems.IndexNumber, BaseItems.ParentIndexNumber)
WHERE Type = 'MediaBrowser.Controller.Entities.TV.Episode';
-- ============================================================================
-- BaseItemProviders Table Indexes
-- ============================================================================
\echo 'Creating indexes on BaseItemProviders table...'
-- Index for provider value lookups (IMDb, TMDB, etc.)
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_baseitem_providers_value
ON library."BaseItemProviders" (ProviderValue, ProviderId);
-- Index for finding all items by provider (reverse lookup)
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_baseitem_providers_id
ON library."BaseItemProviders" (ProviderId, ItemId);
-- ============================================================================
-- UserData Table Indexes
-- ============================================================================
\echo 'Creating indexes on UserData table...'
-- Index for finding user's watched items
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_userdata_user_played
ON library."UserData" (UserId, Played);
-- Index for finding user's favorite items
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_userdata_user_favorite
ON library."UserData" (UserId, IsFavorite)
WHERE IsFavorite = true;
-- Index for last played date
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_userdata_lastplayed
ON library."UserData" (LastPlayedDate DESC)
WHERE LastPlayedDate IS NOT NULL;
-- ============================================================================
-- PeopleBaseItemMap Table Indexes
-- ============================================================================
\echo 'Creating indexes on PeopleBaseItemMap table...'
-- Index for finding all items for a person
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_people_items_person
ON library."PeopleBaseItemMap" (PeopleId, ItemId);
-- Index for finding all people for an item (already covered by FK, but explicit)
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_people_items_item
ON library."PeopleBaseItemMap" (ItemId, PeopleId);
-- ============================================================================
-- ItemValuesMap Table Indexes
-- ============================================================================
\echo 'Creating indexes on ItemValuesMap table...'
-- Index for finding items by value (genres, tags, etc.)
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_itemvalues_map_value
ON library."ItemValuesMap" (ItemValueId, ItemId);
-- ============================================================================
-- ActivityLog Table Indexes
-- ============================================================================
\echo 'Creating indexes on ActivityLog table...'
-- Index for date filtering (recent activity)
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_activitylog_date
ON activitylog."ActivityLog" (DateCreated DESC);
-- Index for user activity
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_activitylog_user
ON activitylog."ActivityLog" (UserId, DateCreated DESC)
WHERE UserId IS NOT NULL;
-- ============================================================================
-- MediaStreamInfos Table Indexes
-- ============================================================================
\echo 'Creating indexes on MediaStreamInfos table...'
-- Index for finding streams by item and type
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_mediastreams_item_type
ON library."MediaStreamInfos" (ItemId, Type);
-- Index for codec searches
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_mediastreams_codec
ON library."MediaStreamInfos" (Codec)
WHERE Codec IS NOT NULL;
-- ============================================================================
-- Analyze Tables
-- ============================================================================
\echo 'Analyzing tables to update statistics...'
ANALYZE library."BaseItems";
ANALYZE library."BaseItemProviders";
ANALYZE library."UserData";
ANALYZE library."PeopleBaseItemMap";
ANALYZE library."ItemValuesMap";
ANALYZE library."MediaStreamInfos";
-- Analyze ActivityLog if it exists
DO $$
BEGIN
IF EXISTS (
SELECT 1 FROM information_schema.tables
WHERE table_schema = 'activitylog'
AND table_name = 'ActivityLog'
) THEN
ANALYZE activitylog."ActivityLog";
RAISE NOTICE 'ActivityLog analyzed';
END IF;
END $$;
-- ============================================================================
-- Report Index Usage
-- ============================================================================
\echo 'Current index usage statistics:'
SELECT
schemaname,
relname as tablename,
indexrelname as indexname,
pg_size_pretty(pg_relation_size(indexrelid)) as index_size,
idx_scan as times_used,
idx_tup_read as rows_read,
idx_tup_fetch as rows_fetched
FROM pg_stat_user_indexes
WHERE schemaname IN ('library', 'activitylog', 'users', 'authentication', 'displaypreferences')
ORDER BY schemaname, relname, indexrelname;
\echo ''
\echo 'Index creation complete!'
\echo ''
\echo 'Note: CONCURRENTLY builds indexes without blocking writes, but takes longer.'
\echo 'Monitor progress with: SELECT * FROM pg_stat_progress_create_index;'
\echo ''
\echo 'After indexing, restart Jellyfin to clear connection pools.'
@@ -1,220 +0,0 @@
-- PostgreSQL Performance Indexes for Jellyfin
-- Based on actual schema analysis
-- Run this script to add supplementary performance indexes
-- Safe to run multiple times
\timing on
\echo '========================================';
\echo 'Jellyfin PostgreSQL Supplementary Indexes';
\echo '========================================';
\echo '';
\echo 'Your schema already has comprehensive indexes from EF Core migrations.';
\echo 'This script adds only missing supplementary indexes.';
\echo '';
-- ============================================================================
-- Check Existing Indexes
-- ============================================================================
\echo 'Analyzing existing indexes...';
DO $$
DECLARE
idx_count int;
BEGIN
SELECT count(*) INTO idx_count
FROM pg_indexes
WHERE schemaname = 'library' AND tablename = 'BaseItems';
RAISE NOTICE 'Found % existing indexes on BaseItems table', idx_count;
END $$;
-- ============================================================================
-- BaseItems - Add Only Missing Supplementary Indexes
-- ============================================================================
\echo 'Adding supplementary BaseItems indexes...';
-- Composite index for filtered library browsing (type + virtual + parent)
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_indexes
WHERE schemaname = 'library'
AND tablename = 'BaseItems'
AND indexname = 'idx_baseitems_type_isvirtualitem_topparentid'
) THEN
CREATE INDEX CONCURRENTLY idx_baseitems_type_isvirtualitem_topparentid
ON library."BaseItems" ("Type", "IsVirtualItem", "TopParentId")
WHERE "IsVirtualItem" = false;
RAISE NOTICE 'Created idx_baseitems_type_isvirtualitem_topparentid';
ELSE
RAISE NOTICE 'Index idx_baseitems_type_isvirtualitem_topparentid already exists';
END IF;
END $$;
-- Index for folder hierarchy queries
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_indexes
WHERE schemaname = 'library'
AND tablename = 'BaseItems'
AND indexname = 'idx_baseitems_topparentid_isfolder'
) THEN
CREATE INDEX CONCURRENTLY idx_baseitems_topparentid_isfolder
ON library."BaseItems" ("TopParentId", "IsFolder", "IsVirtualItem")
WHERE "TopParentId" IS NOT NULL;
RAISE NOTICE 'Created idx_baseitems_topparentid_isfolder';
ELSE
RAISE NOTICE 'Index idx_baseitems_topparentid_isfolder already exists';
END IF;
END $$;
-- Index for recently added content with filters
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_indexes
WHERE schemaname = 'library'
AND tablename = 'BaseItems'
AND indexname = 'idx_baseitems_datecreated_filtered'
) THEN
CREATE INDEX CONCURRENTLY idx_baseitems_datecreated_filtered
ON library."BaseItems" ("DateCreated" DESC, "Type", "IsVirtualItem")
WHERE "DateCreated" IS NOT NULL AND "IsVirtualItem" = false;
RAISE NOTICE 'Created idx_baseitems_datecreated_filtered';
ELSE
RAISE NOTICE 'Index idx_baseitems_datecreated_filtered already exists';
END IF;
END $$;
-- ============================================================================
-- ItemValuesMap - Add Reverse Lookup Index
-- ============================================================================
\echo 'Checking ItemValuesMap indexes...';
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_indexes
WHERE schemaname = 'library'
AND tablename = 'ItemValuesMap'
AND indexname = 'idx_itemvaluesmap_itemvalueid_itemid'
) THEN
CREATE INDEX CONCURRENTLY idx_itemvaluesmap_itemvalueid_itemid
ON library."ItemValuesMap" ("ItemValueId", "ItemId");
RAISE NOTICE 'Created idx_itemvaluesmap_itemvalueid_itemid';
ELSE
RAISE NOTICE 'Index idx_itemvaluesmap_itemvalueid_itemid already exists';
END IF;
END $$;
-- ============================================================================
-- ActivityLogs - Add User-Specific Index
-- (Note: Table is ActivityLogs, not ActivityLog)
-- ============================================================================
\echo 'Checking ActivityLogs indexes...';
DO $$
BEGIN
IF EXISTS (
SELECT 1 FROM information_schema.tables
WHERE table_schema = 'activitylog'
AND table_name = 'ActivityLogs'
) THEN
IF NOT EXISTS (
SELECT 1 FROM pg_indexes
WHERE schemaname = 'activitylog'
AND tablename = 'ActivityLogs'
AND indexname = 'idx_activitylogs_userid_datecreated'
) THEN
CREATE INDEX CONCURRENTLY idx_activitylogs_userid_datecreated
ON activitylog."ActivityLogs" ("UserId", "DateCreated" DESC)
WHERE "UserId" IS NOT NULL;
RAISE NOTICE 'Created idx_activitylogs_userid_datecreated';
ELSE
RAISE NOTICE 'Index idx_activitylogs_userid_datecreated already exists';
END IF;
ELSE
RAISE NOTICE 'ActivityLogs table not found (expected: activitylog.ActivityLogs)';
END IF;
END $$;
-- ============================================================================
-- Analyze Tables to Update Statistics
-- ============================================================================
\echo '';
\echo 'Updating table statistics...';
ANALYZE library."BaseItems";
ANALYZE library."BaseItemProviders";
ANALYZE library."UserData";
ANALYZE library."PeopleBaseItemMap";
ANALYZE library."ItemValuesMap";
ANALYZE library."ItemValues";
ANALYZE library."MediaStreamInfos";
ANALYZE library."Peoples";
ANALYZE library."Chapters";
ANALYZE library."KeyframeData";
DO $$
BEGIN
IF EXISTS (
SELECT 1 FROM information_schema.tables
WHERE table_schema = 'activitylog'
AND table_name = 'ActivityLogs'
) THEN
ANALYZE activitylog."ActivityLogs";
RAISE NOTICE 'ActivityLogs statistics updated';
END IF;
END $$;
\echo 'Statistics updated.';
-- ============================================================================
-- Report Current Index Status
-- ============================================================================
\echo '';
\echo '========================================';
\echo 'Index Usage Report';
\echo '========================================';
-- Show all indexes and their usage
SELECT
schemaname,
relname as tablename,
indexrelname as indexname,
pg_size_pretty(pg_relation_size(indexrelid)) as index_size,
idx_scan as times_used,
idx_tup_read as rows_read,
idx_tup_fetch as rows_fetched,
CASE
WHEN idx_scan = 0 THEN 'UNUSED'
WHEN idx_scan < 10 THEN 'RARELY USED'
WHEN idx_scan < 100 THEN 'OCCASIONALLY USED'
ELSE 'FREQUENTLY USED'
END as usage_category
FROM pg_stat_user_indexes
WHERE schemaname IN ('library', 'activitylog', 'users', 'authentication', 'displaypreferences')
ORDER BY schemaname, relname, idx_scan DESC;
\echo '';
\echo '========================================';
\echo 'Summary';
\echo '========================================';
\echo 'Your database already had comprehensive indexes from EF Core migrations.';
\echo 'Added supplementary composite indexes for specific query patterns.';
\echo '';
\echo 'Next steps:';
\echo '1. Monitor performance with: psql -U jellyfin -d jellyfin -f sql/diagnostics.sql';
\echo '2. Check query plans for slow queries';
\echo '3. Consider removing rarely-used indexes after 30 days';
\echo '4. Restart Jellyfin to clear connection pools';
\echo '';
\echo 'See SCHEMA_ANALYSIS.md for detailed index information.';
\echo '========================================';
File diff suppressed because it is too large Load Diff
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[4665,7184,10092,15141,27046,37522,49427,71808,83518],{7184:function(a,e,t){"use strict";t(89336),t(36947),t(95021),t(53819),Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t.width,r=i&&a.matchPatterns[i]||a.matchPatterns[a.defaultMatchWidth],n=e.match(r);if(!n)return null;var l,o=n[0],d=i&&a.parsePatterns[i]||a.parsePatterns[a.defaultParseWidth],u=Array.isArray(d)?function(a){for(var e=0;e<a.length;e++)if(a[e].test(o))return e}(d):function(a){for(var e in a)if(a.hasOwnProperty(e)&&a[e].test(o))return e}(d);return l=a.valueCallback?a.valueCallback(u):u,{value:l=t.valueCallback?t.valueCallback(l):l,rest:e.slice(o.length)}}},a.exports=e.default},10092:function(a,e,t){"use strict";t(36947),t(96054);var i=t(96784).default;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=i(t(7184)),n={ordinalNumber:(0,i(t(83518)).default)({matchPattern:/^(\d+)(º)?/i,parsePattern:/\d+/i,valueCallback:function(a){return parseInt(a,10)}}),era:(0,r.default)({matchPatterns:{narrow:/^(aC|dC)/i,abbreviated:/^(a\.?\s?C\.?|a\.?\s?e\.?\s?v\.?|d\.?\s?C\.?|e\.?\s?v\.?)/i,wide:/^(avanti Cristo|avanti Era Volgare|dopo Cristo|Era Volgare)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^a/i,/^(d|e)/i]},defaultParseWidth:"any"}),quarter:(0,r.default)({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^t[1234]/i,wide:/^[1234](º)? trimestre/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(a){return a+1}}),month:(0,r.default)({matchPatterns:{narrow:/^[gfmalsond]/i,abbreviated:/^(gen|feb|mar|apr|mag|giu|lug|ago|set|ott|nov|dic)/i,wide:/^(gennaio|febbraio|marzo|aprile|maggio|giugno|luglio|agosto|settembre|ottobre|novembre|dicembre)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^g/i,/^f/i,/^m/i,/^a/i,/^m/i,/^g/i,/^l/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ge/i,/^f/i,/^mar/i,/^ap/i,/^mag/i,/^gi/i,/^l/i,/^ag/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:(0,r.default)({matchPatterns:{narrow:/^[dlmgvs]/i,short:/^(do|lu|ma|me|gi|ve|sa)/i,abbreviated:/^(dom|lun|mar|mer|gio|ven|sab)/i,wide:/^(domenica|luned[i|ì]|marted[i|ì]|mercoled[i|ì]|gioved[i|ì]|venerd[i|ì]|sabato)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^g/i,/^v/i,/^s/i],any:[/^d/i,/^l/i,/^ma/i,/^me/i,/^g/i,/^v/i,/^s/i]},defaultParseWidth:"any"}),dayPeriod:(0,r.default)({matchPatterns:{narrow:/^(a|m\.|p|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i,any:/^([ap]\.?\s?m\.?|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mezza/i,noon:/^mezzo/i,morning:/mattina/i,afternoon:/pomeriggio/i,evening:/sera/i,night:/notte/i}},defaultParseWidth:"any"})};e.default=n,a.exports=e.default},83518:function(a,e,t){"use strict";t(89336),t(36947),t(95021),t(53819),Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=e.match(a.matchPattern);if(!i)return null;var r=i[0],n=e.match(a.parsePattern);if(!n)return null;var l=a.valueCallback?a.valueCallback(n[0]):n[0];return{value:l=t.valueCallback?t.valueCallback(l):l,rest:e.slice(r.length)}}},a.exports=e.default},96784:function(a){a.exports=function(a){return a&&a.__esModule?a:{default:a}},a.exports.__esModule=!0,a.exports.default=a.exports}}]);
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[10393],{10393:function(o,n,e){e(36947),e(95021),e(93062),Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var t={lessThanXSeconds:{one:{standalone:"manje od 1 sekunde",withPrepositionAgo:"manje od 1 sekunde",withPrepositionIn:"manje od 1 sekundu"},dual:"manje od {{count}} sekunde",other:"manje od {{count}} sekundi"},xSeconds:{one:{standalone:"1 sekunda",withPrepositionAgo:"1 sekunde",withPrepositionIn:"1 sekundu"},dual:"{{count}} sekunde",other:"{{count}} sekundi"},halfAMinute:"pola minute",lessThanXMinutes:{one:{standalone:"manje od 1 minute",withPrepositionAgo:"manje od 1 minute",withPrepositionIn:"manje od 1 minutu"},dual:"manje od {{count}} minute",other:"manje od {{count}} minuta"},xMinutes:{one:{standalone:"1 minuta",withPrepositionAgo:"1 minute",withPrepositionIn:"1 minutu"},dual:"{{count}} minute",other:"{{count}} minuta"},aboutXHours:{one:{standalone:"oko 1 sat",withPrepositionAgo:"oko 1 sat",withPrepositionIn:"oko 1 sat"},dual:"oko {{count}} sata",other:"oko {{count}} sati"},xHours:{one:{standalone:"1 sat",withPrepositionAgo:"1 sat",withPrepositionIn:"1 sat"},dual:"{{count}} sata",other:"{{count}} sati"},xDays:{one:{standalone:"1 dan",withPrepositionAgo:"1 dan",withPrepositionIn:"1 dan"},dual:"{{count}} dana",other:"{{count}} dana"},aboutXWeeks:{one:{standalone:"oko 1 sedmicu",withPrepositionAgo:"oko 1 sedmicu",withPrepositionIn:"oko 1 sedmicu"},dual:"oko {{count}} sedmice",other:"oko {{count}} sedmice"},xWeeks:{one:{standalone:"1 sedmicu",withPrepositionAgo:"1 sedmicu",withPrepositionIn:"1 sedmicu"},dual:"{{count}} sedmice",other:"{{count}} sedmice"},aboutXMonths:{one:{standalone:"oko 1 mjesec",withPrepositionAgo:"oko 1 mjesec",withPrepositionIn:"oko 1 mjesec"},dual:"oko {{count}} mjeseca",other:"oko {{count}} mjeseci"},xMonths:{one:{standalone:"1 mjesec",withPrepositionAgo:"1 mjesec",withPrepositionIn:"1 mjesec"},dual:"{{count}} mjeseca",other:"{{count}} mjeseci"},aboutXYears:{one:{standalone:"oko 1 godinu",withPrepositionAgo:"oko 1 godinu",withPrepositionIn:"oko 1 godinu"},dual:"oko {{count}} godine",other:"oko {{count}} godina"},xYears:{one:{standalone:"1 godina",withPrepositionAgo:"1 godine",withPrepositionIn:"1 godinu"},dual:"{{count}} godine",other:"{{count}} godina"},overXYears:{one:{standalone:"preko 1 godinu",withPrepositionAgo:"preko 1 godinu",withPrepositionIn:"preko 1 godinu"},dual:"preko {{count}} godine",other:"preko {{count}} godina"},almostXYears:{one:{standalone:"gotovo 1 godinu",withPrepositionAgo:"gotovo 1 godinu",withPrepositionIn:"gotovo 1 godinu"},dual:"gotovo {{count}} godine",other:"gotovo {{count}} godina"}};n.default=function(o,n,e){var i,s=t[o];return i="string"==typeof s?s:1===n?null!=e&&e.addSuffix?e.comparison&&e.comparison>0?s.one.withPrepositionIn:s.one.withPrepositionAgo:s.one.standalone:n%10>1&&n%10<5&&"1"!==String(n).substr(-2,1)?s.dual.replace("{{count}}",String(n)):s.other.replace("{{count}}",String(n)),null!=e&&e.addSuffix?e.comparison&&e.comparison>0?"za "+i:"prije "+i:i},o.exports=n.default}}]);
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[10455],{10455:function(e,t,o){o(36947),o(95021),o(93062),Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={lessThanXSeconds:{standalone:{one:"vähem kui üks sekund",other:"vähem kui {{count}} sekundit"},withPreposition:{one:"vähem kui ühe sekundi",other:"vähem kui {{count}} sekundi"}},xSeconds:{standalone:{one:"üks sekund",other:"{{count}} sekundit"},withPreposition:{one:"ühe sekundi",other:"{{count}} sekundi"}},halfAMinute:{standalone:"pool minutit",withPreposition:"poole minuti"},lessThanXMinutes:{standalone:{one:"vähem kui üks minut",other:"vähem kui {{count}} minutit"},withPreposition:{one:"vähem kui ühe minuti",other:"vähem kui {{count}} minuti"}},xMinutes:{standalone:{one:"üks minut",other:"{{count}} minutit"},withPreposition:{one:"ühe minuti",other:"{{count}} minuti"}},aboutXHours:{standalone:{one:"umbes üks tund",other:"umbes {{count}} tundi"},withPreposition:{one:"umbes ühe tunni",other:"umbes {{count}} tunni"}},xHours:{standalone:{one:"üks tund",other:"{{count}} tundi"},withPreposition:{one:"ühe tunni",other:"{{count}} tunni"}},xDays:{standalone:{one:"üks päev",other:"{{count}} päeva"},withPreposition:{one:"ühe päeva",other:"{{count}} päeva"}},aboutXWeeks:{standalone:{one:"umbes üks nädal",other:"umbes {{count}} nädalat"},withPreposition:{one:"umbes ühe nädala",other:"umbes {{count}} nädala"}},xWeeks:{standalone:{one:"üks nädal",other:"{{count}} nädalat"},withPreposition:{one:"ühe nädala",other:"{{count}} nädala"}},aboutXMonths:{standalone:{one:"umbes üks kuu",other:"umbes {{count}} kuud"},withPreposition:{one:"umbes ühe kuu",other:"umbes {{count}} kuu"}},xMonths:{standalone:{one:"üks kuu",other:"{{count}} kuud"},withPreposition:{one:"ühe kuu",other:"{{count}} kuu"}},aboutXYears:{standalone:{one:"umbes üks aasta",other:"umbes {{count}} aastat"},withPreposition:{one:"umbes ühe aasta",other:"umbes {{count}} aasta"}},xYears:{standalone:{one:"üks aasta",other:"{{count}} aastat"},withPreposition:{one:"ühe aasta",other:"{{count}} aasta"}},overXYears:{standalone:{one:"rohkem kui üks aasta",other:"rohkem kui {{count}} aastat"},withPreposition:{one:"rohkem kui ühe aasta",other:"rohkem kui {{count}} aasta"}},almostXYears:{standalone:{one:"peaaegu üks aasta",other:"peaaegu {{count}} aastat"},withPreposition:{one:"peaaegu ühe aasta",other:"peaaegu {{count}} aasta"}}};t.default=function(e,t,o){var a,u=null!=o&&o.addSuffix?n[e].withPreposition:n[e].standalone;return a="string"==typeof u?u:1===t?u.one:u.other.replace("{{count}}",String(t)),null!=o&&o.addSuffix?o.comparison&&o.comparison>0?a+" pärast":a+" eest":a},e.exports=t.default}}]);
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[1051,4665,7184,15141,27046,37522,49427,71808,83518],{1051:function(t,a,e){"use strict";e(36947),e(96054);var r=e(96784).default;Object.defineProperty(a,"__esModule",{value:!0}),a.default=void 0;var i=r(e(83518)),n=r(e(7184)),l={ordinalNumber:(0,i.default)({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(t){return parseInt(t,10)}}),era:(0,n.default)({matchPatterns:{narrow:/[قب]/,abbreviated:/[قب]\.م\./,wide:/(قبل|بعد) الميلاد/},defaultMatchWidth:"wide",parsePatterns:{any:[/قبل/,/بعد/]},defaultParseWidth:"any"}),quarter:(0,n.default)({matchPatterns:{narrow:/^[1234]/i,abbreviated:/ر[1234]/,wide:/الربع (الأول|الثاني|الثالث|الرابع)/},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:(0,n.default)({matchPatterns:{narrow:/^[جفمأسند]/,abbreviated:/^(جانفي|فيفري|مارس|أفريل|ماي|جوان|جويلية|أوت|سبتمبر|أكتوبر|نوفمبر|ديسمبر)/,wide:/^(جانفي|فيفري|مارس|أفريل|ماي|جوان|جويلية|أوت|سبتمبر|أكتوبر|نوفمبر|ديسمبر)/},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^ج/i,/^ف/i,/^م/i,/^أ/i,/^م/i,/^ج/i,/^ج/i,/^أ/i,/^س/i,/^أ/i,/^ن/i,/^د/i],any:[/^جانفي/i,/^فيفري/i,/^مارس/i,/^أفريل/i,/^ماي/i,/^جوان/i,/^جويلية/i,/^أوت/i,/^سبتمبر/i,/^أكتوبر/i,/^نوفمبر/i,/^ديسمبر/i]},defaultParseWidth:"any"}),day:(0,n.default)({matchPatterns:{narrow:/^[حنثرخجس]/i,short:/^(أحد|اثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/i,abbreviated:/^(أحد|اثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/i,wide:/^(الأحد|الاثنين|الثلاثاء|الأربعاء|الخميس|الجمعة|السبت)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^ح/i,/^ن/i,/^ث/i,/^ر/i,/^خ/i,/^ج/i,/^س/i],wide:[/^الأحد/i,/^الاثنين/i,/^الثلاثاء/i,/^الأربعاء/i,/^الخميس/i,/^الجمعة/i,/^السبت/i],any:[/^أح/i,/^اث/i,/^ث/i,/^أر/i,/^خ/i,/^ج/i,/^س/i]},defaultParseWidth:"any"}),dayPeriod:(0,n.default)({matchPatterns:{narrow:/^(ص|ع|ن ل|ل|(في|مع) (صباح|قايلة|عشية|ليل))/,any:/^([صع]|نص الليل|قايلة|(في|مع) (صباح|قايلة|عشية|ليل))/},defaultMatchWidth:"any",parsePatterns:{any:{am:/^ص/,pm:/^ع/,midnight:/نص الليل/,noon:/قايلة/,afternoon:/بعد القايلة/,morning:/صباح/,evening:/عشية/,night:/ليل/}},defaultParseWidth:"any"})};a.default=l,t.exports=a.default},7184:function(t,a,e){"use strict";e(89336),e(36947),e(95021),e(53819),Object.defineProperty(a,"__esModule",{value:!0}),a.default=function(t){return function(a){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.width,i=r&&t.matchPatterns[r]||t.matchPatterns[t.defaultMatchWidth],n=a.match(i);if(!n)return null;var l,u=n[0],d=r&&t.parsePatterns[r]||t.parsePatterns[t.defaultParseWidth],s=Array.isArray(d)?function(t){for(var a=0;a<t.length;a++)if(t[a].test(u))return a}(d):function(t){for(var a in t)if(t.hasOwnProperty(a)&&t[a].test(u))return a}(d);return l=t.valueCallback?t.valueCallback(s):s,{value:l=e.valueCallback?e.valueCallback(l):l,rest:a.slice(u.length)}}},t.exports=a.default},83518:function(t,a,e){"use strict";e(89336),e(36947),e(95021),e(53819),Object.defineProperty(a,"__esModule",{value:!0}),a.default=function(t){return function(a){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=a.match(t.matchPattern);if(!r)return null;var i=r[0],n=a.match(t.parsePattern);if(!n)return null;var l=t.valueCallback?t.valueCallback(n[0]):n[0];return{value:l=e.valueCallback?e.valueCallback(l):l,rest:a.slice(i.length)}}},t.exports=a.default},96784:function(t){t.exports=function(t){return t&&t.__esModule?t:{default:t}},t.exports.__esModule=!0,t.exports.default=t.exports}}]);
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[9387,10540,19863,31768,42244,75101,94160,97482],{10540:function(e,t,n){"use strict";n(94),n(36947);var a=n(96784).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(94160)),i={ordinalNumber:function(e,t){var n=Number(e);switch(String(null==t?void 0:t.unit)){case"year":return"".concat(n,"年");case"quarter":return"第".concat(n,"四半期");case"month":return"".concat(n,"月");case"week":return"第".concat(n,"週");case"date":return"".concat(n,"日");case"hour":return"".concat(n,"時");case"minute":return"".concat(n,"分");case"second":return"".concat(n,"秒");default:return"".concat(n)}},era:(0,r.default)({values:{narrow:["BC","AC"],abbreviated:["紀元前","西暦"],wide:["紀元前","西暦"]},defaultWidth:"wide"}),quarter:(0,r.default)({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["第1四半期","第2四半期","第3四半期","第4四半期"]},defaultWidth:"wide",argumentCallback:function(e){return Number(e)-1}}),month:(0,r.default)({values:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]},defaultWidth:"wide"}),day:(0,r.default)({values:{narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],abbreviated:["日","月","火","水","木","金","土"],wide:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},defaultWidth:"wide"}),dayPeriod:(0,r.default)({values:{narrow:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},abbreviated:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},wide:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"}},defaultWidth:"wide",formattingValues:{narrow:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},abbreviated:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},wide:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"}},defaultFormattingWidth:"wide"})};t.default=i,e.exports=t.default},94160:function(e,t,n){"use strict";n(44962),n(36947),n(78557),n(82367),Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(t,n){var a;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&e.formattingValues){var r=e.defaultFormattingWidth||e.defaultWidth,i=null!=n&&n.width?String(n.width):r;a=e.formattingValues[i]||e.formattingValues[r]}else{var o=e.defaultWidth,u=null!=n&&n.width?String(n.width):e.defaultWidth;a=e.values[u]||e.values[o]}return a[e.argumentCallback?e.argumentCallback(t):t]}},e.exports=t.default},96784:function(e){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports}}]);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[10807,33188],{10564:function(e){function t(o){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(o)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},33188:function(e,t,o){"use strict";o(36947),o(78557),o(73687);var n=o(96784).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,s.default)(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===(0,r.default)(e)&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof 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"),console.warn((new Error).stack)),new Date(NaN))};var r=n(o(10564)),s=n(o(23058));e.exports=t.default},96784:function(e){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports}}]);
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[11061,17486,21933,37658,39867,44314,62248,95105],{11061:function(t,e,d){"use strict";d(36947);var u=d(96784).default;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=u(d(37658)),a={date:(0,l.default)({formats:{full:"EEEE, y. 'gada' d. MMMM",long:"y. 'gada' d. MMMM",medium:"dd.MM.y.",short:"dd.MM.y."},defaultWidth:"full"}),time:(0,l.default)({formats:{full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},defaultWidth:"full"}),dateTime:(0,l.default)({formats:{full:"{{date}} 'plkst.' {{time}}",long:"{{date}} 'plkst.' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})};e.default=a,t.exports=e.default},37658:function(t,e,d){"use strict";d(36947),Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=e.width?String(e.width):t.defaultWidth;return t.formats[d]||t.formats[t.defaultWidth]}},t.exports=e.default},96784:function(t){t.exports=function(t){return t&&t.__esModule?t:{default:t}},t.exports.__esModule=!0,t.exports.default=t.exports}}]);
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[1161],{1161:function(t,n,e){"use strict";e.d(n,{Q3:function(){return f}}),e(29305),e(32733),e(84701),e(81678),e(2623),e(24776),e(14382),e(69892),e(84734),e(44962),e(89336),e(4754),e(10849),e(58551),e(70389),e(94),e(33087),e(36947),e(36457),e(88908),e(26437),e(83810),e(52697),e(78557),e(96054),e(90076),e(95021),e(73687),e(83994),e(23630),e(82367);var r=e(63696),u=e(28601);function i(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,r=Array(n);e<n;e++)r[e]=t[e];return r}function o(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,e=arguments.length>2?arguments[2]:void 0,i=(0,r.useRef)();!function(t){var n=(0,r.useRef)(t);n.current=t,(0,r.useEffect)((function(){return function(){n.current()}}),[])}((function(){i.current&&i.current.cancel()}));var o=(0,r.useMemo)((function(){var r=u(t,n,e),o=function(){return r.apply(void 0,arguments)};return o.cancel=function(){r.cancel()},o.isPending=function(){return!!i.current},o.flush=function(){return r.flush()},o}),[t,n,e]);return(0,r.useEffect)((function(){i.current=u(t,n,e)}),[t,n,e]),o}function f(t,n,e){var u,f,c,a=null!==(u=null==e?void 0:e.equalityFn)&&void 0!==u?u:function(t,n){return t===n},l=t instanceof Function?t():t,s=(f=(0,r.useState)(l),c=2,function(t){if(Array.isArray(t))return t}(f)||function(t,n){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var r,u,i,o,f=[],c=!0,a=!1;try{if(i=(e=e.call(t)).next,0===n){if(Object(e)!==e)return;c=!1}else for(;!(c=(r=i.call(e)).done)&&(f.push(r.value),f.length!==n);c=!0);}catch(t){a=!0,u=t}finally{try{if(!c&&null!=e.return&&(o=e.return(),Object(o)!==o))return}finally{if(a)throw u}}return f}}(f,c)||function(t,n){if(t){if("string"==typeof t)return i(t,n);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?i(t,n):void 0}}(f,c)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),v=s[0],y=s[1],p=(0,r.useRef)(l),d=o(y,n,e);return a(p.current,l)||(d(l),p.current=l),[v,d]}"undefined"!=typeof window?r.useLayoutEffect:r.useEffect},28601:function(t,n,e){var r=/^\s+|\s+$/g,u=/^[-+]0x[0-9a-f]+$/i,i=/^0b[01]+$/i,o=/^0o[0-7]+$/i,f=parseInt,c="object"==typeof e.g&&e.g&&e.g.Object===Object&&e.g,a="object"==typeof self&&self&&self.Object===Object&&self,l=c||a||Function("return this")(),s=Object.prototype.toString,v=Math.max,y=Math.min,p=function(){return l.Date.now()};function d(t){var n=typeof t;return!!t&&("object"==n||"function"==n)}function b(t){if("number"==typeof t)return t;if(function(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&"[object Symbol]"==s.call(t)}(t))return NaN;if(d(t)){var n="function"==typeof t.valueOf?t.valueOf():t;t=d(n)?n+"":n}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(r,"");var e=i.test(t);return e||o.test(t)?f(t.slice(2),e?2:8):u.test(t)?NaN:+t}t.exports=function(t,n,e){var r,u,i,o,f,c,a=0,l=!1,s=!1,m=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function h(n){var e=r,i=u;return r=u=void 0,a=n,o=t.apply(i,e)}function g(t){var e=t-c;return void 0===c||e>=n||e<0||s&&t-a>=i}function j(){var t=p();if(g(t))return w(t);f=setTimeout(j,function(t){var e=n-(t-c);return s?y(e,i-(t-a)):e}(t))}function w(t){return f=void 0,m&&r?h(t):(r=u=void 0,o)}function O(){var t=p(),e=g(t);if(r=arguments,u=this,c=t,e){if(void 0===f)return function(t){return a=t,f=setTimeout(j,n),l?h(t):o}(c);if(s)return f=setTimeout(j,n),h(c)}return void 0===f&&(f=setTimeout(j,n)),o}return n=b(n)||0,d(e)&&(l=!!e.leading,i=(s="maxWait"in e)?v(b(e.maxWait)||0,n):i,m="trailing"in e?!!e.trailing:m),O.cancel=function(){void 0!==f&&clearTimeout(f),a=0,r=c=u=f=void 0},O.flush=function(){return void 0===f?o:w(p())},O}}}]);
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[11762],{11762:function(e,n,o){o(36947),o(95021),o(93062),Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r={lessThanXSeconds:{one:"minder dan een seconde",other:"minder dan {{count}} seconden"},xSeconds:{one:"1 seconde",other:"{{count}} seconden"},halfAMinute:"een halve minuut",lessThanXMinutes:{one:"minder dan een minuut",other:"minder dan {{count}} minuten"},xMinutes:{one:"een minuut",other:"{{count}} minuten"},aboutXHours:{one:"ongeveer 1 uur",other:"ongeveer {{count}} uur"},xHours:{one:"1 uur",other:"{{count}} uur"},xDays:{one:"1 dag",other:"{{count}} dagen"},aboutXWeeks:{one:"ongeveer 1 week",other:"ongeveer {{count}} weken"},xWeeks:{one:"1 week",other:"{{count}} weken"},aboutXMonths:{one:"ongeveer 1 maand",other:"ongeveer {{count}} maanden"},xMonths:{one:"1 maand",other:"{{count}} maanden"},aboutXYears:{one:"ongeveer 1 jaar",other:"ongeveer {{count}} jaar"},xYears:{one:"1 jaar",other:"{{count}} jaar"},overXYears:{one:"meer dan 1 jaar",other:"meer dan {{count}} jaar"},almostXYears:{one:"bijna 1 jaar",other:"bijna {{count}} jaar"}};n.default=function(e,n,o){var t,a=r[e];return t="string"==typeof a?a:1===n?a.one:a.other.replace("{{count}}",String(n)),null!=o&&o.addSuffix?o.comparison&&o.comparison>0?"over "+t:t+" geleden":t},e.exports=n.default}}]);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[12323],{12323:function(e,t,u){u(36947),Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={lastWeek:function(e){var t=e.getUTCDay(),u="'läschte";return 2!==t&&4!==t||(u+="n"),u+"' eeee 'um' p"},yesterday:"'gëschter um' p",today:"'haut um' p",tomorrow:"'moien um' p",nextWeek:"eeee 'um' p",other:"P"};t.default=function(e,t,u,r){var o=n[e];return"function"==typeof o?o(t):o},e.exports=t.default}}]);
@@ -0,0 +1 @@
[dir=ltr] .guideProviderSelectListings{margin:0 0 0 .5em}[dir=rtl] .guideProviderSelectListings{margin:0 .5em 0 0}
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[12394],{12394:function(e,s,u){u.r(s)}}]);
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[12519],{12519:function(a,t,e){e.r(t),e.d(t,{buildChapterCards:function(){return u}}),e(24776),e(14382),e(78557);var n=e(22696),c=e.n(n),r=e(67430),i=e(98320),d=e(76542),o=e(46782),s=e(34789),l=!s.A.slow&&!s.A.edge;function v(a,t,e,n,r,d,o){var s=r.width,l=r.coverImage,v=function(a,t,e,n,c){var r=a.Id,i=t.ImageTag;return i?c.getScaledImageUrl(r,{maxWidth:n,tag:i,type:"Chapter",index:e}):null}(a,e,n,s||400,t),u="cardContent cardContent-shadow cardImageContainer chapterCardImageContainer";l&&(u+=" coveredImage");var p=' data-action="play" data-isfolder="'.concat(a.IsFolder,'" data-id="').concat(a.Id,'" data-serverid="').concat(a.ServerId,'" data-type="').concat(a.Type,'" data-mediatype="').concat(a.MediaType,'" data-positionticks="').concat(e.StartPositionTicks,'"'),h=v?'<div class="'.concat(u,' lazy" data-src="').concat(v,'">'):'<div class="'.concat(u,'">');v||(h+='<span class="material-icons cardImageIcon local_movies" aria-hidden="true"></span>');var C="";return C+='<div class="cardText">'.concat(c()(e.Name),"</div>"),C+='<div class="cardText">'.concat(i.Ay.getDisplayRunningTime(e.StartPositionTicks),"</div>"),'<button type="button" class="'.concat(d,'"').concat(p,'><div class="').concat("cardBox",'"><div class="').concat("cardScalable",'"><div class="cardPadder-').concat(o,'"></div>').concat(h,'</div><div class="innerCardFooter">').concat(C,"</div></div></div></button>")}function u(a,t,e){if(e.parentContainer){if(!document.body.contains(e.parentContainer))return;if(!t.length)return void e.parentContainer.classList.add("hide");e.parentContainer.classList.remove("hide")}var n=function(a,t,e){var n,c="card itemAction chapterCard";o.A.tv&&(c+=" show-focus",l&&(c+=" show-animation"));var i=((null===(n=(a.MediaSources||[])[0])||void 0===n?void 0:n.MediaStreams)||[]).filter((function(a){return"Video"===a.Type}))[0]||{},d=e.backdropShape||"backdrop";i.Width&&i.Height&&i.Width/i.Height<=1.2&&(d=e.squareShape||"square"),c+=" ".concat(d,"Card"),(e.block||e.rows)&&(c+=" block");for(var s="",u=0,p=r.tF.getApiClient(a.ServerId),h=0,C=t.length;h<C;h++)e.rows&&0===u&&(s+='<div class="cardColumn">'),s+=v(a,p,t[h],h,e,c,d),u++,e.rows&&u>=e.rows&&(u=0,s+="</div>");return s}(a,t,e);e.itemsContainer.innerHTML=n,d.default.lazyChildren(e.itemsContainer)}t.default={buildChapterCards:u}}}]);
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[12557,17486,21933,37658,39867,44314,62248,95105],{12557:function(t,e,d){"use strict";d(36947);var u=d(96784).default;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=u(d(37658)),a={date:(0,l.default)({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:(0,l.default)({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:(0,l.default)({formats:{full:"{{date}} 'عند' {{time}}",long:"{{date}} 'عند' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})};e.default=a,t.exports=e.default},37658:function(t,e,d){"use strict";d(36947),Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=e.width?String(e.width):t.defaultWidth;return t.formats[d]||t.formats[t.defaultWidth]}},t.exports=e.default},96784:function(t){t.exports=function(t){return t&&t.__esModule?t:{default:t}},t.exports.__esModule=!0,t.exports.default=t.exports}}]);
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[9387,12849,19863,31768,42244,75101,94160,97482],{12849:function(e,t,n){"use strict";n(94),n(36947);var a=n(96784).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=a(n(94160)),r={ordinalNumber:function(e){var t=Number(e);return 1===t?t+"-ლი":t+"-ე"},era:(0,i.default)({values:{narrow:["ჩ.წ-მდე","ჩ.წ"],abbreviated:["ჩვ.წ-მდე","ჩვ.წ"],wide:["ჩვენს წელთაღრიცხვამდე","ჩვენი წელთაღრიცხვით"]},defaultWidth:"wide"}),quarter:(0,i.default)({values:{narrow:["1","2","3","4"],abbreviated:["1-ლი კვ","2-ე კვ","3-ე კვ","4-ე კვ"],wide:["1-ლი კვარტალი","2-ე კვარტალი","3-ე კვარტალი","4-ე კვარტალი"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:(0,i.default)({values:{narrow:["ია","თე","მა","აპ","მს","ვნ","ვლ","აგ","სე","ოქ","ნო","დე"],abbreviated:["იან","თებ","მარ","აპრ","მაი","ივნ","ივლ","აგვ","სექ","ოქტ","ნოე","დეკ"],wide:["იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი"]},defaultWidth:"wide"}),day:(0,i.default)({values:{narrow:["კვ","ორ","სა","ოთ","ხუ","პა","შა"],short:["კვი","ორშ","სამ","ოთხ","ხუთ","პარ","შაბ"],abbreviated:["კვი","ორშ","სამ","ოთხ","ხუთ","პარ","შაბ"],wide:["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"]},defaultWidth:"wide"}),dayPeriod:(0,i.default)({values:{narrow:{am:"a",pm:"p",midnight:"შუაღამე",noon:"შუადღე",morning:"დილა",afternoon:"საღამო",evening:"საღამო",night:"ღამე"},abbreviated:{am:"AM",pm:"PM",midnight:"შუაღამე",noon:"შუადღე",morning:"დილა",afternoon:"საღამო",evening:"საღამო",night:"ღამე"},wide:{am:"a.m.",pm:"p.m.",midnight:"შუაღამე",noon:"შუადღე",morning:"დილა",afternoon:"საღამო",evening:"საღამო",night:"ღამე"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"შუაღამით",noon:"შუადღისას",morning:"დილით",afternoon:"ნაშუადღევს",evening:"საღამოს",night:"ღამით"},abbreviated:{am:"AM",pm:"PM",midnight:"შუაღამით",noon:"შუადღისას",morning:"დილით",afternoon:"ნაშუადღევს",evening:"საღამოს",night:"ღამით"},wide:{am:"a.m.",pm:"p.m.",midnight:"შუაღამით",noon:"შუადღისას",morning:"დილით",afternoon:"ნაშუადღევს",evening:"საღამოს",night:"ღამით"}},defaultFormattingWidth:"wide"})};t.default=r,e.exports=t.default},94160:function(e,t,n){"use strict";n(44962),n(36947),n(78557),n(82367),Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(t,n){var a;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,r=null!=n&&n.width?String(n.width):i;a=e.formattingValues[r]||e.formattingValues[i]}else{var d=e.defaultWidth,o=null!=n&&n.width?String(n.width):e.defaultWidth;a=e.values[o]||e.values[d]}return a[e.argumentCallback?e.argumentCallback(t):t]}},e.exports=t.default},96784:function(e){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports}}]);
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[1286,17486,21933,37658,39867,44314,62248,95105],{1286:function(t,e,d){"use strict";d(36947);var u=d(96784).default;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=u(d(37658)),f={date:(0,l.default)({formats:{full:"EEEE d MMMM y",long:"d MMMM y",medium:"d MMM y",short:"y-MM-dd"},defaultWidth:"full"}),time:(0,l.default)({formats:{full:"'kl'. HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},defaultWidth:"full"}),dateTime:(0,l.default)({formats:{full:"{{date}} 'kl.' {{time}}",long:"{{date}} 'kl.' {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},defaultWidth:"full"})};e.default=f,t.exports=e.default},37658:function(t,e,d){"use strict";d(36947),Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=e.width?String(e.width):t.defaultWidth;return t.formats[d]||t.formats[t.defaultWidth]}},t.exports=e.default},96784:function(t){t.exports=function(t){return t&&t.__esModule?t:{default:t}},t.exports.__esModule=!0,t.exports.default=t.exports}}]);
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[13135,17486,21933,37658,39867,44314,62248,95105],{13135:function(t,e,d){"use strict";d(36947);var u=d(96784).default;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=u(d(37658)),a={date:(0,l.default)({formats:{full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},defaultWidth:"full"}),time:(0,l.default)({formats:{full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},defaultWidth:"full"}),dateTime:(0,l.default)({formats:{full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},defaultWidth:"full"})};e.default=a,t.exports=e.default},37658:function(t,e,d){"use strict";d(36947),Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=e.width?String(e.width):t.defaultWidth;return t.formats[d]||t.formats[t.defaultWidth]}},t.exports=e.default},96784:function(t){t.exports=function(t){return t&&t.__esModule?t:{default:t}},t.exports.__esModule=!0,t.exports.default=t.exports}}]);
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[13231],{13231:function(u,e,t){t(36947),Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r={lastWeek:function(u){switch(u.getUTCDay()){case 0:return"'prošlu nedjelju u' p";case 3:return"'prošlu srijedu u' p";case 6:return"'prošlu subotu u' p";default:return"'prošli' EEEE 'u' p"}},yesterday:"'jučer u' p",today:"'danas u' p",tomorrow:"'sutra u' p",nextWeek:function(u){switch(u.getUTCDay()){case 0:return"'iduću nedjelju u' p";case 3:return"'iduću srijedu u' p";case 6:return"'iduću subotu u' p";default:return"'prošli' EEEE 'u' p"}},other:"P"};e.default=function(u,e,t,n){var a=r[u];return"function"==typeof a?a(e):a},u.exports=e.default}}]);
File diff suppressed because one or more lines are too long
@@ -0,0 +1,2 @@
.mediaInfoItem{padding:0}[dir=ltr] .mediaInfoItem{margin:0 1em 0 0}[dir=rtl] .mediaInfoItem{margin:0 0 0 1em}.mediaInfoText{-webkit-align-items:center;align-items:center;border-radius:.25em;display:-webkit-flex;display:flex;font-size:92%;margin:0 .5em 0 0;padding:.22em .5em;white-space:nowrap}.mediaInfoText-upper{text-transform:uppercase}.mediaInfoIconItem{font-size:1.6em;height:auto;margin-right:.6em;width:auto}[dir=ltr] .mediaInfoItem:last-child{margin-right:0}[dir=rtl] .mediaInfoItem:last-child{margin-left:0}.starRatingContainer{-webkit-align-items:center;align-items:center;display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;vertical-align:middle}.starIcon{color:#f2b01e;font-size:1.4em;height:auto!important;margin-right:.125em;width:auto!important}.mediaInfoCriticRating{-webkit-align-items:center;align-items:center;background-repeat:no-repeat;background-size:auto 1.2em;display:-webkit-flex;display:flex;min-height:1.2em}[dir=ltr] .mediaInfoCriticRating{background-position:0;padding-left:1.5em}[dir=rtl] .mediaInfoCriticRating{background-position:100%;padding-right:1.5em}.mediaInfoCriticRatingFresh{background-image:url(assets/img/fresh.svg)}.mediaInfoCriticRatingRotten{background-image:url(assets/img/rotten.svg)}.mediaInfoProgramAttribute{border-radius:.15em;font-size:80%;padding:.16em .6em;text-transform:uppercase}.closedCaptionMediaInfoText{font-weight:700}
.btnFilterWithIndicator{position:relative}.filterIndicator{-webkit-align-items:center;align-items:center;background:#03a9f4;border-radius:100em;box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2);color:#fff;display:-webkit-flex;display:flex;font-size:60%;font-weight:700;height:1.8em;-webkit-justify-content:center;justify-content:center;position:absolute;right:2px;top:2px;width:1.8em;z-index:1}
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[9387,13356,19863,31768,42244,75101,94160,97482],{13356:function(e,t,n){"use strict";n(94),n(36947);var a=n(96784).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=a(n(94160)),o={ordinalNumber:function(e,t){var n=Number(e);return String(n)},era:(0,i.default)({values:{narrow:["aC","dC"],abbreviated:["a.C.","d.C."],wide:["avanti Cristo","dopo Cristo"]},defaultWidth:"wide"}),quarter:(0,i.default)({values:{narrow:["1","2","3","4"],abbreviated:["T1","T2","T3","T4"],wide:["1º trimestre","2º trimestre","3º trimestre","4º trimestre"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:(0,i.default)({values:{narrow:["G","F","M","A","M","G","L","A","S","O","N","D"],abbreviated:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],wide:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"]},defaultWidth:"wide"}),day:(0,i.default)({values:{narrow:["D","L","M","M","G","V","S"],short:["dom","lun","mar","mer","gio","ven","sab"],abbreviated:["dom","lun","mar","mer","gio","ven","sab"],wide:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},defaultWidth:"wide"}),dayPeriod:(0,i.default)({values:{narrow:{am:"m.",pm:"p.",midnight:"mezzanotte",noon:"mezzogiorno",morning:"mattina",afternoon:"pomeriggio",evening:"sera",night:"notte"},abbreviated:{am:"AM",pm:"PM",midnight:"mezzanotte",noon:"mezzogiorno",morning:"mattina",afternoon:"pomeriggio",evening:"sera",night:"notte"},wide:{am:"AM",pm:"PM",midnight:"mezzanotte",noon:"mezzogiorno",morning:"mattina",afternoon:"pomeriggio",evening:"sera",night:"notte"}},defaultWidth:"wide",formattingValues:{narrow:{am:"m.",pm:"p.",midnight:"mezzanotte",noon:"mezzogiorno",morning:"di mattina",afternoon:"del pomeriggio",evening:"di sera",night:"di notte"},abbreviated:{am:"AM",pm:"PM",midnight:"mezzanotte",noon:"mezzogiorno",morning:"di mattina",afternoon:"del pomeriggio",evening:"di sera",night:"di notte"},wide:{am:"AM",pm:"PM",midnight:"mezzanotte",noon:"mezzogiorno",morning:"di mattina",afternoon:"del pomeriggio",evening:"di sera",night:"di notte"}},defaultFormattingWidth:"wide"})};t.default=o,e.exports=t.default},94160:function(e,t,n){"use strict";n(44962),n(36947),n(78557),n(82367),Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(t,n){var a;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,o=null!=n&&n.width?String(n.width):i;a=e.formattingValues[o]||e.formattingValues[i]}else{var r=e.defaultWidth,d=null!=n&&n.width?String(n.width):e.defaultWidth;a=e.values[d]||e.values[r]}return a[e.argumentCallback?e.argumentCallback(t):t]}},e.exports=t.default},96784:function(e){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports}}]);
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[1367,17486,21933,37658,39867,44314,62248,95105],{1367:function(t,e,d){"use strict";d(36947);var u=d(96784).default;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=u(d(37658)),f={date:(0,l.default)({formats:{full:"EEEE, do MMMM y",long:"do MMMM y",medium:"do MMM y",short:"dd.MM.y"},defaultWidth:"full"}),time:(0,l.default)({formats:{full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},defaultWidth:"full"}),dateTime:(0,l.default)({formats:{full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})};e.default=f,t.exports=e.default},37658:function(t,e,d){"use strict";d(36947),Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=e.width?String(e.width):t.defaultWidth;return t.formats[d]||t.formats[t.defaultWidth]}},t.exports=e.default},96784:function(t){t.exports=function(t){return t&&t.__esModule?t:{default:t}},t.exports.__esModule=!0,t.exports.default=t.exports}}]);
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[13734],{13734:function(n,e,o){o(36947),o(95021),o(93062),Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t={lessThanXSeconds:{one:"mwens pase yon segond",other:"mwens pase {{count}} segond"},xSeconds:{one:"1 segond",other:"{{count}} segond"},halfAMinute:"30 segond",lessThanXMinutes:{one:"mwens pase yon minit",other:"mwens pase {{count}} minit"},xMinutes:{one:"1 minit",other:"{{count}} minit"},aboutXHours:{one:"anviwon inè",other:"anviwon {{count}} è"},xHours:{one:"1 lè",other:"{{count}} lè"},xDays:{one:"1 jou",other:"{{count}} jou"},aboutXWeeks:{one:"anviwon 1 semèn",other:"anviwon {{count}} semèn"},xWeeks:{one:"1 semèn",other:"{{count}} semèn"},aboutXMonths:{one:"anviwon 1 mwa",other:"anviwon {{count}} mwa"},xMonths:{one:"1 mwa",other:"{{count}} mwa"},aboutXYears:{one:"anviwon 1 an",other:"anviwon {{count}} an"},xYears:{one:"1 an",other:"{{count}} an"},overXYears:{one:"plis pase 1 an",other:"plis pase {{count}} an"},almostXYears:{one:"prèske 1 an",other:"prèske {{count}} an"}};e.default=function(n,e,o){var s,a=t[n];return s="string"==typeof a?a:1===e?a.one:a.other.replace("{{count}}",String(e)),null!=o&&o.addSuffix?o.comparison&&o.comparison>0?"nan "+s:"sa fè "+s:s},n.exports=e.default}}]);
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[10807,13960,33188],{10564:function(e){function t(o){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(o)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},13141:function(e,t,o){"use strict";o(36947);var r=o(96784).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=r(o(56974));function u(e,t,o){var r="eeee p";return(0,n.default)(e,t,o)?r:e.getTime()>t.getTime()?"'下个'"+r:"'上个'"+r}var s={lastWeek:u,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:u,other:"PP p"};t.default=function(e,t,o,r){var n=s[e];return"function"==typeof n?n(t,o,r):n},e.exports=t.default},33188:function(e,t,o){"use strict";o(36947),o(78557),o(73687);var r=o(96784).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,u.default)(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===(0,n.default)(e)&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof 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"),console.warn((new Error).stack)),new Date(NaN))};var n=r(o(10564)),u=r(o(23058));e.exports=t.default},96784:function(e){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports}}]);
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[14112,17486,21933,37658,39867,44314,62248,95105],{14112:function(t,e,d){"use strict";d(36947);var u=d(96784).default;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var a=u(d(37658)),l={date:(0,a.default)({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:(0,a.default)({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:(0,a.default)({formats:{full:"{{date}} 'aig' {{time}}",long:"{{date}} 'aig' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})};e.default=l,t.exports=e.default},37658:function(t,e,d){"use strict";d(36947),Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=e.width?String(e.width):t.defaultWidth;return t.formats[d]||t.formats[t.defaultWidth]}},t.exports=e.default},96784:function(t){t.exports=function(t){return t&&t.__esModule?t:{default:t}},t.exports.__esModule=!0,t.exports.default=t.exports}}]);
File diff suppressed because one or more lines are too long
@@ -0,0 +1,5 @@
@-webkit-keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes fadein{0%{opacity:0}to{opacity:1}}.lazy-image-fadein{-webkit-animation:fadein .5s;animation:fadein .5s;opacity:1}.lazy-image-fadein-fast{-webkit-animation:fadein .1s;animation:fadein .1s;opacity:1}.lazy-hidden,.lazy-hidden-children *{opacity:0}.blurhash-canvas{bottom:0;height:100%;left:0;pointer-events:none;position:absolute;right:0;top:0;width:100%}
.actionSheet{border:none;border-radius:.1em!important;display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;max-height:84%;padding:0}.actionsheet-not-fullscreen{max-height:90%;max-width:90%}.actionsheet-fullscreen{border-radius:0!important;max-height:none}.actionSheetContent-centered{-webkit-align-items:center;align-items:center;text-align:center}.actionSheetContent{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-flex-grow:1;flex-grow:1;-webkit-justify-content:center;justify-content:center;margin:0!important;overflow:hidden;padding:.4em 0!important}.actionSheetMenuItem{border-radius:0;box-shadow:none;-webkit-flex-shrink:0;flex-shrink:0;font-weight:inherit;margin:0}.actionSheetMenuItem:focus{-webkit-transform:none!important;transform:none!important}[dir=ltr] .actionsheetListItemBody{padding:.4em 1em .4em .6em!important}[dir=rtl] .actionsheetListItemBody{padding:.4em .6em .4em 1em!important}.actionSheetItemText{display:-webkit-flex;display:flex;-webkit-flex-grow:1;flex-grow:1;-webkit-justify-content:flex-start;justify-content:flex-start;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.actionSheetItemAsideText{display:-webkit-flex;display:flex;-webkit-flex-shrink:0;flex-shrink:0;font-size:90%;-webkit-justify-content:flex-end;justify-content:flex-end;opacity:.7}[dir=ltr] .actionSheetItemAsideText{margin-left:5em;margin-right:.5em}[dir=rtl] .actionSheetItemAsideText{margin-left:.5em;margin-right:5em}.actionSheetScroller{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;margin-bottom:0!important;width:100%}.actionSheetScroller-tv{max-height:64%;max-width:60%;width:auto}.actionsheetDivider{-webkit-flex-shrink:0;flex-shrink:0;height:.07em;margin:.25em 0}.actionSheetTitle{margin:.6em 0 .7em!important}.actionSheetText,.actionSheetTitle{-webkit-flex-grow:0;flex-grow:0;padding:0 .75rem}.actionSheetText{margin-top:0}.actionsheetMenuItemIcon{padding:0!important}[dir=ltr] .actionsheetMenuItemIcon{margin:0 .85em 0 .45em!important}[dir=rtl] .actionsheetMenuItemIcon{margin:0 .45em 0 .85em!important}.actionsheet-xlargeFont{font-size:112%!important}.btnCloseActionSheet{position:fixed;top:.75em}[dir=ltr] .btnCloseActionSheet{left:.5em}[dir=rtl] .btnCloseActionSheet{right:.5em}
.appfooter{bottom:0;contain:layout style;left:0;padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);position:fixed;right:0;transition:-webkit-transform .18s linear;transition:transform .18s linear;transition:transform .18s linear,-webkit-transform .18s linear;z-index:1201!important}.appfooter:empty{padding:0}.appfooter.headroom--unpinned{-webkit-transform:translateY(100%)!important;transform:translateY(100%)!important}
.nowPlayingBarInfoContainer{-webkit-align-items:center;align-items:center;display:-webkit-flex;display:flex;height:100%;overflow:hidden;width:40%}.nowPlayingBar{contain:layout style;cursor:pointer;text-align:center;transition:-webkit-transform .2s ease-out;transition:transform .2s ease-out;transition:transform .2s ease-out,-webkit-transform .2s ease-out;will-change:transform}.nowPlayingBar-hidden{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.nowPlayingBarTop{-webkit-align-items:center;align-items:center;display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;height:4.2em;-webkit-justify-content:center;justify-content:center;position:relative}.mediaButton,.nowPlayingBarUserDataButtons .btnUserItemRating{margin:0;text-align:center;vertical-align:middle}.mediaButton{font-size:120%}.nowPlayingBar .nowPlayingImage{background-position:50%;background-repeat:no-repeat;background-size:contain;-webkit-flex-shrink:0;flex-shrink:0;height:70%;width:4.2em}.nowPlayingBarText{-webkit-flex-grow:1;flex-grow:1;font-size:92%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}[dir=ltr] .nowPlayingBarText{margin-left:.5em;margin-right:1em;text-align:left}[dir=rtl] .nowPlayingBarText{margin-left:1em;margin-right:.5em;text-align:right}.nowPlayingBarCenter{-webkit-align-items:center;align-items:center;display:-webkit-flex;display:flex;-webkit-flex-grow:1;flex-grow:1;-webkit-justify-content:center;justify-content:center;position:absolute;text-align:center;vertical-align:middle;z-index:2}.nowPlayingBarPositionContainer{left:0;position:absolute!important;right:0;top:-.56em;z-index:1}.headroom--unpinned .nowPlayingBarPositionContainer,.noMediaProgress .nowPlayingBarPositionContainer{display:none}.nowPlayingBarRight{-webkit-align-items:center;align-items:center;display:-webkit-flex;display:flex;-webkit-flex-shrink:0;flex-shrink:0;-webkit-justify-content:flex-end;justify-content:flex-end;position:relative;z-index:2}[dir=ltr] .nowPlayingBarRight{margin:0 .5em 0 auto}[dir=rtl] .nowPlayingBarRight{margin:0 auto 0 .5em}.nowPlayingBarCurrentTime{display:inline-block;padding-left:1.5em;text-align:center;vertical-align:middle}[dir=ltr] .nowPlayingBarVolumeSliderContainer{margin-right:2em}[dir=rtl] .nowPlayingBarVolumeSliderContainer{margin-left:2em}.nowPlayingBarUserDataButtons{display:inline-block}.nowPlayingBarPositionSlider::-webkit-slider-thumb{height:1.2em!important;width:1.2em!important}@media (max-width:70em){.nowPlayingBarRight .nowPlayingBarUserDataButtons{display:none}}@media (max-width:66em){.nowPlayingBar .btnShuffleQueue,.toggleRepeatButton{display:none!important}}@media (max-width:80em){.nowPlayingBarCenter .nowPlayingBarCurrentTime,.nowPlayingBarCenter .stopButton{display:none!important}.nowPlayingBarInfoContainer{width:45%}}.layout-desktop .nowPlayingBarRight .playPauseButton,.layout-mobile .nowPlayingBarRight button:not(.playPauseButton):not(.nextTrackButton),.layout-mobile .nowPlayingBarRight div,.layout-mobile .nowPlayingBarRight input,.layout-tv .nowPlayingBarRight .playPauseButton{display:none}@media (max-width:56em){.nowPlayingBarCenter{display:none!important}}@media (max-width:60em){.nowPlayingBarRight .nowPlayingBarVolumeSliderContainer{display:none!important}.nowPlayingBarInfoContainer{width:100%}}@media (max-width:24em){.nowPlayingBar .muteButton,.nowPlayingBar .unmuteButton{display:none}}
.mdl-slider{-webkit-align-self:center;align-self:center;-webkit-appearance:none;appearance:none;background:transparent;color:#00a4dc;cursor:pointer;height:150%;margin:0;outline:0;-webkit-user-select:none;-ms-user-select:none;user-select:none;width:100%;z-index:1;-webkit-tap-highlight-color:rgba(0,0,0,0);display:block;font-size:inherit}.mdl-slider::-moz-focus-outer{border:0}.mdl-slider::-ms-tooltip{display:none}.mdl-slider::-webkit-slider-runnable-track{background:transparent}.mdl-slider::-ms-track{background:none;border:none;color:transparent;height:.2em;width:100%}.mdl-slider::-ms-fill-lower,.mdl-slider::-ms-fill-upper{display:none}.slider-browser-edge{margin-left:-.16em;margin-right:-.16em;width:150%}.mdl-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#00a4dc;border:none;border-radius:50%;box-sizing:border-box;height:1.08em;pointer-events:none;-webkit-transition:.2s;transition:.2s;width:1.08em}.mdl-slider-hoverthumb:hover::-webkit-slider-thumb,.mdl-slider.show-focus:focus::-webkit-slider-thumb{-webkit-transform:scale(1.3);transform:scale(1.3)}.mdl-slider::-moz-range-thumb{appearance:none;background:#00a4dc;background-image:none;border:none;border-radius:50%;box-sizing:border-box;height:1.08em;-moz-transition:.2s;transition:.2s;width:1.08em}.mdl-slider-hoverthumb:hover::-moz-range-thumb,.mdl-slider.show-focus:focus::-moz-range-thumb{transform:scale(1.3)}.mdl-slider::-ms-thumb{appearance:none;background:#00a4dc;border:none;border-radius:50%;box-sizing:border-box;height:1.4em;transform:scale(.771429);-ms-transition:.2s;transition:.2s;width:1.4em}.mdl-slider-hoverthumb:hover::-ms-thumb,.mdl-slider.show-focus:focus::-ms-thumb{transform:none}.mdl-slider[disabled]::-webkit-slider-thumb{display:none}.mdl-slider[disabled]::-moz-range-thumb{display:none}.mdl-slider[disabled]::-ms-thumb{display:none}.mdl-slider-container{background:none;display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;height:1.25em;position:relative}.mdl-slider-background-flex-container{box-sizing:border-box;padding:0 .54em;position:absolute;top:50%;width:100%}[dir=ltr] .mdl-slider-background-flex-container{left:0}[dir=rtl] .mdl-slider-background-flex-container{right:0}.mdl-slider-background-flex{background:hsla(0,0%,100%,.3);border:0;display:-webkit-flex;display:flex;height:.2em;margin-top:-.1em;overflow:hidden;padding:0;top:50%;width:100%}[dir=ltr] .mdl-slider-background-flex{left:0}[dir=rtl] .mdl-slider-background-flex{right:0}.mdl-slider-background-flex-inner{position:relative;width:100%}.mdl-slider-background-lower{background-color:#00a4dc;bottom:0;position:absolute;top:0;width:0}[dir=ltr] .mdl-slider-background-lower{left:0}[dir=rtl] .mdl-slider-background-lower{right:0}.mdl-slider-background-lower-clear{background-color:transparent}.mdl-slider-background-lower-withtransform{-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:left center;transform-origin:left center;width:100%}.mdl-slider-background-upper{background:#666;background:hsla(0,0%,100%,.4);bottom:0;left:0;position:absolute;top:0;width:0}.sliderBubbleTrack{left:0;margin:0 .54em;position:absolute;right:0}.sliderBubble{-webkit-align-items:center;align-items:center;background:#282828;color:#fff;display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;left:0;position:absolute;top:0;-webkit-transform:translate3d(-50%,-120%,0);transform:translate3d(-50%,-120%,0);z-index:1}.sliderBubbleText{margin:0;padding:.5em .75em}.sliderContainer-settings{margin-bottom:1.8em;position:relative}.sliderContainer-settings .mdl-slider-container{height:2.83em}.sliderLabel{display:block;margin-bottom:.25em}.sliderMarkerContainer{left:0;margin:0 .54em;position:absolute;right:0}.sliderMarker{height:12px;position:absolute;-webkit-transform:translate3d(0,25%,0);transform:translate3d(0,25%,0);width:2px}.sliderMarker.unwatched{background-color:hsla(0,0%,100%,.3)}.sliderMarker.watched{background-color:#00a4dc}
File diff suppressed because one or more lines are too long
@@ -0,0 +1,3 @@
.actionSheet{border:none;border-radius:.1em!important;display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;max-height:84%;padding:0}.actionsheet-not-fullscreen{max-height:90%;max-width:90%}.actionsheet-fullscreen{border-radius:0!important;max-height:none}.actionSheetContent-centered{-webkit-align-items:center;align-items:center;text-align:center}.actionSheetContent{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-flex-grow:1;flex-grow:1;-webkit-justify-content:center;justify-content:center;margin:0!important;overflow:hidden;padding:.4em 0!important}.actionSheetMenuItem{border-radius:0;box-shadow:none;-webkit-flex-shrink:0;flex-shrink:0;font-weight:inherit;margin:0}.actionSheetMenuItem:focus{-webkit-transform:none!important;transform:none!important}[dir=ltr] .actionsheetListItemBody{padding:.4em 1em .4em .6em!important}[dir=rtl] .actionsheetListItemBody{padding:.4em .6em .4em 1em!important}.actionSheetItemText{display:-webkit-flex;display:flex;-webkit-flex-grow:1;flex-grow:1;-webkit-justify-content:flex-start;justify-content:flex-start;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.actionSheetItemAsideText{display:-webkit-flex;display:flex;-webkit-flex-shrink:0;flex-shrink:0;font-size:90%;-webkit-justify-content:flex-end;justify-content:flex-end;opacity:.7}[dir=ltr] .actionSheetItemAsideText{margin-left:5em;margin-right:.5em}[dir=rtl] .actionSheetItemAsideText{margin-left:.5em;margin-right:5em}.actionSheetScroller{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;margin-bottom:0!important;width:100%}.actionSheetScroller-tv{max-height:64%;max-width:60%;width:auto}.actionsheetDivider{-webkit-flex-shrink:0;flex-shrink:0;height:.07em;margin:.25em 0}.actionSheetTitle{margin:.6em 0 .7em!important}.actionSheetText,.actionSheetTitle{-webkit-flex-grow:0;flex-grow:0;padding:0 .75rem}.actionSheetText{margin-top:0}.actionsheetMenuItemIcon{padding:0!important}[dir=ltr] .actionsheetMenuItemIcon{margin:0 .85em 0 .45em!important}[dir=rtl] .actionsheetMenuItemIcon{margin:0 .45em 0 .85em!important}.actionsheet-xlargeFont{font-size:112%!important}.btnCloseActionSheet{position:fixed;top:.75em}[dir=ltr] .btnCloseActionSheet{left:.5em}[dir=rtl] .btnCloseActionSheet{right:.5em}
.emby-select{box-sizing:border-box;display:block;font-family:inherit;font-size:110%;font-weight:inherit;margin:0;margin-bottom:0!important;outline:none!important;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%}[dir=ltr] .emby-select{padding:.5em 1.9em .5em .5em}[dir=rtl] .emby-select{padding:.5em .5em .5em 1.9em}.emby-select[disabled]{-webkit-appearance:none;appearance:none;background:none!important;border-color:transparent!important;color:inherit!important}.emby-select::-moz-focus-inner{border:0}.selectContainer-inline>.emby-select{font-size:inherit}[dir=ltr] .selectContainer-inline>.emby-select{padding:.3em 1.9em .3em .5em}[dir=rtl] .selectContainer-inline>.emby-select{padding:.3em .5em .3em 1.9em}.selectContainer-inline>.emby-select[disabled]{padding-left:0;padding-right:0}.emby-select-focusscale{-webkit-transform-origin:center center;transform-origin:center center;transition:-webkit-transform .18s ease-out!important;transition:transform .18s ease-out!important;transition:transform .18s ease-out,-webkit-transform .18s ease-out!important}.emby-select-focusscale:focus{-webkit-transform:scale(1.04);transform:scale(1.04);z-index:1}.emby-select+.fieldDescription{margin-top:.25em}.selectContainer{margin-bottom:1.8em;position:relative}.selectContainer-inline{-webkit-align-items:center;align-items:center;display:-webkit-inline-flex;display:inline-flex;margin-bottom:0}.selectLabel{display:block;margin-bottom:.25em}.selectContainer-inline>.selectLabel{-webkit-flex-shrink:0;flex-shrink:0;margin-bottom:0;margin-right:.5em}.trackSelections>.selectContainer{margin:.4em 0}.emby-select-withcolor{-webkit-appearance:none;appearance:none;border-radius:.2em}.selectArrowContainer{color:inherit;pointer-events:none;position:absolute;top:.2em}[dir=ltr] .selectArrowContainer{right:.3em}[dir=rtl] .selectArrowContainer{left:.3em}.selectContainer-inline>.selectArrowContainer{bottom:.24em;font-size:90%;top:auto}.emby-select[disabled]+.selectArrowContainer{display:none}.selectArrow{font-size:1.7em;margin-top:1.2em}.emby-select-iconbutton{-webkit-align-self:flex-end;align-self:flex-end}
[dir=ltr] .guideProviderSelectListings{margin:0 0 0 .5em}[dir=rtl] .guideProviderSelectListings{margin:0 .5em 0 0}
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[14553],{14553:function(e,t,r){r(36947),Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var u={lastWeek:"eeee 'dernier à' p",yesterday:"'hier à' p",today:"'aujourdhui à' p",tomorrow:"'demain à' p'",nextWeek:"eeee 'prochain à' p",other:"P"};t.default=function(e,t,r,a){return u[e]},e.exports=t.default}}]);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[4665,7184,15126,15141,27046,37522,49427,71808,83518],{7184:function(i,a,t){"use strict";t(89336),t(36947),t(95021),t(53819),Object.defineProperty(a,"__esModule",{value:!0}),a.default=function(i){return function(a){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=t.width,r=e&&i.matchPatterns[e]||i.matchPatterns[i.defaultMatchWidth],n=a.match(r);if(!n)return null;var l,u=n[0],d=e&&i.parsePatterns[e]||i.parsePatterns[i.defaultParseWidth],s=Array.isArray(d)?function(i){for(var a=0;a<i.length;a++)if(i[a].test(u))return a}(d):function(i){for(var a in i)if(i.hasOwnProperty(a)&&i[a].test(u))return a}(d);return l=i.valueCallback?i.valueCallback(s):s,{value:l=t.valueCallback?t.valueCallback(l):l,rest:a.slice(u.length)}}},i.exports=a.default},15126:function(i,a,t){"use strict";t(36947),t(96054);var e=t(96784).default;Object.defineProperty(a,"__esModule",{value:!0}),a.default=void 0;var r=e(t(7184)),n={ordinalNumber:(0,e(t(83518)).default)({matchPattern:/\d+/i,parsePattern:/\d+/i,valueCallback:function(i){return parseInt(i,10)}}),era:(0,r.default)({matchPatterns:{narrow:/^(нтө|нт)/i,abbreviated:/^(нтө|нт)/i,wide:/^(нийтийн тооллын өмнө|нийтийн тооллын)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^(нтө|нийтийн тооллын өмнө)/i,/^(нт|нийтийн тооллын)/i]},defaultParseWidth:"any"}),quarter:(0,r.default)({matchPatterns:{narrow:/^(iv|iii|ii|i)/i,abbreviated:/^(iv|iii|ii|i) улирал/i,wide:/^[1-4]-р улирал/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^(i(\s|$)|1)/i,/^(ii(\s|$)|2)/i,/^(iii(\s|$)|3)/i,/^(iv(\s|$)|4)/i]},defaultParseWidth:"any",valueCallback:function(i){return i+1}}),month:(0,r.default)({matchPatterns:{narrow:/^(xii|xi|x|ix|viii|vii|vi|v|iv|iii|ii|i)/i,abbreviated:/^(1-р сар|2-р сар|3-р сар|4-р сар|5-р сар|6-р сар|7-р сар|8-р сар|9-р сар|10-р сар|11-р сар|12-р сар)/i,wide:/^(нэгдүгээр сар|хоёрдугаар сар|гуравдугаар сар|дөрөвдүгээр сар|тавдугаар сар|зургаадугаар сар|долоодугаар сар|наймдугаар сар|есдүгээр сар|аравдугаар сар|арван нэгдүгээр сар|арван хоёрдугаар сар)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^i$/i,/^ii$/i,/^iii$/i,/^iv$/i,/^v$/i,/^vi$/i,/^vii$/i,/^viii$/i,/^ix$/i,/^x$/i,/^xi$/i,/^xii$/i],any:[/^(1|нэгдүгээр)/i,/^(2|хоёрдугаар)/i,/^(3|гуравдугаар)/i,/^(4|дөрөвдүгээр)/i,/^(5|тавдугаар)/i,/^(6|зургаадугаар)/i,/^(7|долоодугаар)/i,/^(8|наймдугаар)/i,/^(9|есдүгээр)/i,/^(10|аравдугаар)/i,/^(11|арван нэгдүгээр)/i,/^(12|арван хоёрдугаар)/i]},defaultParseWidth:"any"}),day:(0,r.default)({matchPatterns:{narrow:/^[ндмлпбб]/i,short:/^(ня|да|мя|лх|пү|ба|бя)/i,abbreviated:/^(ням|дав|мяг|лха|пүр|баа|бям)/i,wide:/^(ням|даваа|мягмар|лхагва|пүрэв|баасан|бямба)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^н/i,/^д/i,/^м/i,/^л/i,/^п/i,/^б/i,/^б/i],any:[/^ня/i,/^да/i,/^мя/i,/^лх/i,/^пү/i,/^ба/i,/^бя/i]},defaultParseWidth:"any"}),dayPeriod:(0,r.default)({matchPatterns:{narrow:/^(ү\.ө\.|ү\.х\.|шөнө дунд|үд дунд|өглөө|өдөр|орой|шөнө)/i,any:/^(ү\.ө\.|ү\.х\.|шөнө дунд|үд дунд|өглөө|өдөр|орой|шөнө)/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^ү\.ө\./i,pm:/^ү\.х\./i,midnight:/^шөнө дунд/i,noon:/^үд дунд/i,morning:/өглөө/i,afternoon:/өдөр/i,evening:/орой/i,night:/шөнө/i}},defaultParseWidth:"any"})};a.default=n,i.exports=a.default},83518:function(i,a,t){"use strict";t(89336),t(36947),t(95021),t(53819),Object.defineProperty(a,"__esModule",{value:!0}),a.default=function(i){return function(a){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=a.match(i.matchPattern);if(!e)return null;var r=e[0],n=a.match(i.parsePattern);if(!n)return null;var l=i.valueCallback?i.valueCallback(n[0]):n[0];return{value:l=t.valueCallback?t.valueCallback(l):l,rest:a.slice(r.length)}}},i.exports=a.default},96784:function(i){i.exports=function(i){return i&&i.__esModule?i:{default:i}},i.exports.__esModule=!0,i.exports.default=i.exports}}]);
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[4665,7184,15141,27046,37522,49427,71808,83518],{7184:function(e,t,a){"use strict";a(89336),a(36947),a(95021),a(53819),Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(t){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=a.width,l=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],u=t.match(l);if(!u)return null;var n,c=u[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],f=Array.isArray(s)?function(e){for(var t=0;t<e.length;t++)if(e[t].test(c))return t}(s):function(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t].test(c))return t}(s);return n=e.valueCallback?e.valueCallback(f):f,{value:n=a.valueCallback?a.valueCallback(n):n,rest:t.slice(c.length)}}},e.exports=t.default},83518:function(e,t,a){"use strict";a(89336),a(36947),a(95021),a(53819),Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(t){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.match(e.matchPattern);if(!r)return null;var l=r[0],u=t.match(e.parsePattern);if(!u)return null;var n=e.valueCallback?e.valueCallback(u[0]):u[0];return{value:n=a.valueCallback?a.valueCallback(n):n,rest:t.slice(l.length)}}},e.exports=t.default},96784:function(e){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports}}]);
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[4665,7184,15141,15190,27046,37522,49427,71808,83518],{7184:function(a,e,i){"use strict";i(89336),i(36947),i(95021),i(53819),Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){return function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=i.width,r=t&&a.matchPatterns[t]||a.matchPatterns[a.defaultMatchWidth],n=e.match(r);if(!n)return null;var u,l=n[0],$=t&&a.parsePatterns[t]||a.parsePatterns[a.defaultParseWidth],d=Array.isArray($)?function(a){for(var e=0;e<a.length;e++)if(a[e].test(l))return e}($):function(a){for(var e in a)if(a.hasOwnProperty(e)&&a[e].test(l))return e}($);return u=a.valueCallback?a.valueCallback(d):d,{value:u=i.valueCallback?i.valueCallback(u):u,rest:e.slice(l.length)}}},a.exports=e.default},15190:function(a,e,i){"use strict";i(36947),i(96054);var t=i(96784).default;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=t(i(7184)),n={ordinalNumber:(0,t(i(83518)).default)({matchPattern:/^(\d+)(-?(ci|inci|nci|uncu|üncü|ncı))?/i,parsePattern:/\d+/i,valueCallback:function(a){return parseInt(a,10)}}),era:(0,r.default)({matchPatterns:{narrow:/^(b|a)$/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)$/i,wide:/^(bizim eradan əvvəl|bizim era)$/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b$/i,/^(a|c)$/i]},defaultParseWidth:"any"}),quarter:(0,r.default)({matchPatterns:{narrow:/^[1234]$/i,abbreviated:/^K[1234]$/i,wide:/^[1234](ci)? kvartal$/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(a){return a+1}}),month:(0,r.default)({matchPatterns:{narrow:/^[(?-i)yfmaisond]$/i,abbreviated:/^(Yan|Fev|Mar|Apr|May|İyun|İyul|Avq|Sen|Okt|Noy|Dek)$/i,wide:/^(Yanvar|Fevral|Mart|Aprel|May|İyun|İyul|Avgust|Sentyabr|Oktyabr|Noyabr|Dekabr)$/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^[(?-i)y]$/i,/^[(?-i)f]$/i,/^[(?-i)m]$/i,/^[(?-i)a]$/i,/^[(?-i)m]$/i,/^[(?-i)i]$/i,/^[(?-i)i]$/i,/^[(?-i)a]$/i,/^[(?-i)s]$/i,/^[(?-i)o]$/i,/^[(?-i)n]$/i,/^[(?-i)d]$/i],abbreviated:[/^Yan$/i,/^Fev$/i,/^Mar$/i,/^Apr$/i,/^May$/i,/^İyun$/i,/^İyul$/i,/^Avg$/i,/^Sen$/i,/^Okt$/i,/^Noy$/i,/^Dek$/i],wide:[/^Yanvar$/i,/^Fevral$/i,/^Mart$/i,/^Aprel$/i,/^May$/i,/^İyun$/i,/^İyul$/i,/^Avgust$/i,/^Sentyabr$/i,/^Oktyabr$/i,/^Noyabr$/i,/^Dekabr$/i]},defaultParseWidth:"narrow"}),day:(0,r.default)({matchPatterns:{narrow:/^(B\.|B\.e|Ç\.a|Ç\.|C\.a|C\.|Ş\.)$/i,short:/^(B\.|B\.e|Ç\.a|Ç\.|C\.a|C\.|Ş\.)$/i,abbreviated:/^(Baz\.e|Çər|Çər\.a|Cüm|Cüm\.a|Şə)$/i,wide:/^(Bazar|Bazar ertəsi|Çərşənbə axşamı|Çərşənbə|Cümə axşamı|Cümə|Şənbə)$/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^B\.$/i,/^B\.e$/i,/^Ç\.a$/i,/^Ç\.$/i,/^C\.a$/i,/^C\.$/i,/^Ş\.$/i],abbreviated:[/^Baz$/i,/^Baz\.e$/i,/^Çər\.a$/i,/^Çər$/i,/^Cüm\.a$/i,/^Cüm$/i,/^Şə$/i],wide:[/^Bazar$/i,/^Bazar ertəsi$/i,/^Çərşənbə axşamı$/i,/^Çərşənbə$/i,/^Cümə axşamı$/i,/^Cümə$/i,/^Şənbə$/i],any:[/^B\.$/i,/^B\.e$/i,/^Ç\.a$/i,/^Ç\.$/i,/^C\.a$/i,/^C\.$/i,/^Ş\.$/i]},defaultParseWidth:"any"}),dayPeriod:(0,r.default)({matchPatterns:{narrow:/^(a|p|gecəyarı|gün|səhər|gündüz|axşam|gecə)$/i,any:/^(am|pm|a\.m\.|p\.m\.|AM|PM|gecəyarı|gün|səhər|gündüz|axşam|gecə)$/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a$/i,pm:/^p$/i,midnight:/^gecəyarı$/i,noon:/^gün$/i,morning:/səhər$/i,afternoon:/gündüz$/i,evening:/axşam$/i,night:/gecə$/i}},defaultParseWidth:"any"})};e.default=n,a.exports=e.default},83518:function(a,e,i){"use strict";i(89336),i(36947),i(95021),i(53819),Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){return function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=e.match(a.matchPattern);if(!t)return null;var r=t[0],n=e.match(a.parsePattern);if(!n)return null;var u=a.valueCallback?a.valueCallback(n[0]):n[0];return{value:u=i.valueCallback?i.valueCallback(u):u,rest:e.slice(r.length)}}},a.exports=e.default},96784:function(a){a.exports=function(a){return a&&a.__esModule?a:{default:a}},a.exports.__esModule=!0,a.exports.default=a.exports}}]);
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[15605],{15605:function(t,e,a){a.r(e);var i=a(10736),r=a(5898),s=a(67430),n=a(44797),d=a(10353);function l(){var t=this,e=t.getAttribute("data-id"),a=t.getAttribute("data-serverid"),i=s.tF.getApiClient(a),r=this.getAttribute("data-likes");r="true"===r||"false"!==r&&null,function(t,e,a,i,r){return e.updateFavoriteStatus(e.getCurrentUserId(),a,!r)}(0,i,e,0,"true"===this.getAttribute("data-isfavorite")).then((function(e){c(t,e.Likes,e.IsFavorite)}))}function u(t,e,a){a.ItemId===this.getAttribute("data-id")&&c(this,a.Likes,a.IsFavorite)}function c(t,e,a,i){var r=t.querySelector(".material-icons");a?(r&&(r.classList.add("favorite"),r.classList.add("ratingbutton-icon-withrating")),t.classList.add("ratingbutton-withrating")):(r&&(r.classList.add("favorite"),r.classList.remove("ratingbutton-icon-withrating")),t.classList.remove("ratingbutton-withrating")),!1!==i&&(t.setAttribute("data-isfavorite",a),t.setAttribute("data-likes",null===e?"":e)),o(t,a)}function o(t,e){t.title=e?r.Ay.translate("Favorite"):r.Ay.translate("AddToFavorites");var a=t.querySelector(".button-text");a&&(a.innerText=t.title)}function h(t){var e,a,r;t.removeEventListener("click",l),(r=(e=t)[a="UserDataChanged"])&&(n.A.off(i.default,a,r),e[a]=null)}function b(t){var e,a,r;h(t),t.addEventListener("click",l),e=t,a="UserDataChanged",r=u.bind(e),n.A.on(i.default,a,r),e[a]=r}var v=Object.create(d.A);v.createdCallback=function(){d.A.createdCallback&&d.A.createdCallback.call(this)},v.attachedCallback=function(){d.A.attachedCallback&&d.A.attachedCallback.call(this);var t=this.getAttribute("data-id"),e=this.getAttribute("data-serverid");if(t&&e){var a=this.getAttribute("data-likes");c(this,a="true"===a||"false"!==a&&null,"true"===this.getAttribute("data-isfavorite"),!1),b(this)}else o(this)},v.detachedCallback=function(){d.A.detachedCallback&&d.A.detachedCallback.call(this),h(this)},v.setItem=function(t){if(t){this.setAttribute("data-id",t.Id),this.setAttribute("data-serverid",t.ServerId);var e=t.UserData||{};c(this,e.Likes,e.IsFavorite),b(this)}else this.removeAttribute("data-id"),this.removeAttribute("data-serverid"),this.removeAttribute("data-likes"),this.removeAttribute("data-isfavorite"),h(this)},document.registerElement("emby-ratingbutton",{prototype:v,extends:"button"})}}]);
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[15889],{15889:function(e,o,t){t(36947),Object.defineProperty(o,"__esModule",{value:!0}),o.default=void 0;var r={lastWeek:"'vorige' eeee 'om' p",yesterday:"'gisteren om' p",today:"'vandaag om' p",tomorrow:"'morgen om' p",nextWeek:"eeee 'om' p",other:"P"};o.default=function(e,o,t,a){return r[e]},e.exports=o.default}}]);
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[16235,17486,21933,37658,39867,44314,62248,95105],{16235:function(t,e,u){"use strict";u(36947);var d=u(96784).default;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=d(u(37658)),a={date:(0,l.default)({formats:{full:"EEEE, d MMMM, y",long:"d MMMM, y",medium:"d MMM, y",short:"d/M/yy"},defaultWidth:"full"}),time:(0,l.default)({formats:{full:"hh:mm:ss a zzzz",long:"hh:mm:ss a z",medium:"hh:mm:ss a",short:"hh:mm a"},defaultWidth:"full"}),dateTime:(0,l.default)({formats:{full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},defaultWidth:"full"})};e.default=a,t.exports=e.default},37658:function(t,e,u){"use strict";u(36947),Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=e.width?String(e.width):t.defaultWidth;return t.formats[u]||t.formats[t.defaultWidth]}},t.exports=e.default},96784:function(t){t.exports=function(t){return t&&t.__esModule?t:{default:t}},t.exports.__esModule=!0,t.exports.default=t.exports}}]);
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[16327,17486,21933,37658,39867,44314,62248,95105],{16327:function(t,e,u){"use strict";u(36947);var d=u(96784).default;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var f=d(u(37658)),l={date:(0,f.default)({formats:{full:"EEEE, do MMMM, y",long:"do MMMM, y",medium:"d MMM, y",short:"dd/MM/yyyy"},defaultWidth:"full"}),time:(0,f.default)({formats:{full:"H:mm:ss zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},defaultWidth:"full"}),dateTime:(0,f.default)({formats:{any:"{{date}}, {{time}}"},defaultWidth:"any"})};e.default=l,t.exports=e.default},37658:function(t,e,u){"use strict";u(36947),Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=e.width?String(e.width):t.defaultWidth;return t.formats[u]||t.formats[t.defaultWidth]}},t.exports=e.default},96784:function(t){t.exports=function(t){return t&&t.__esModule?t:{default:t}},t.exports.__esModule=!0,t.exports.default=t.exports}}]);
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[16504],{16504:function(e,t,o){o(36947),Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var u={lastWeek:"eeee 'tuần trước vào lúc' p",yesterday:"'hôm qua vào lúc' p",today:"'hôm nay vào lúc' p",tomorrow:"'ngày mai vào lúc' p",nextWeek:"eeee 'tới vào lúc' p",other:"P"};t.default=function(e,t,o,a){return u[e]},e.exports=t.default}}]);
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[16526],{16526:function(o,e,t){t(36947),t(95021),t(93062),Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n={lessThanXSeconds:{one:"น้อยกว่า 1 วินาที",other:"น้อยกว่า {{count}} วินาที"},xSeconds:{one:"1 วินาที",other:"{{count}} วินาที"},halfAMinute:"ครึ่งนาที",lessThanXMinutes:{one:"น้อยกว่า 1 นาที",other:"น้อยกว่า {{count}} นาที"},xMinutes:{one:"1 นาที",other:"{{count}} นาที"},aboutXHours:{one:"ประมาณ 1 ชั่วโมง",other:"ประมาณ {{count}} ชั่วโมง"},xHours:{one:"1 ชั่วโมง",other:"{{count}} ชั่วโมง"},xDays:{one:"1 วัน",other:"{{count}} วัน"},aboutXWeeks:{one:"ประมาณ 1 สัปดาห์",other:"ประมาณ {{count}} สัปดาห์"},xWeeks:{one:"1 สัปดาห์",other:"{{count}} สัปดาห์"},aboutXMonths:{one:"ประมาณ 1 เดือน",other:"ประมาณ {{count}} เดือน"},xMonths:{one:"1 เดือน",other:"{{count}} เดือน"},aboutXYears:{one:"ประมาณ 1 ปี",other:"ประมาณ {{count}} ปี"},xYears:{one:"1 ปี",other:"{{count}} ปี"},overXYears:{one:"มากกว่า 1 ปี",other:"มากกว่า {{count}} ปี"},almostXYears:{one:"เกือบ 1 ปี",other:"เกือบ {{count}} ปี"}};e.default=function(o,e,t){var u,r=n[o];return u="string"==typeof r?r:1===e?r.one:r.other.replace("{{count}}",String(e)),null!=t&&t.addSuffix?t.comparison&&t.comparison>0?"halfAMinute"===o?"ใน"+u:"ใน "+u:u+"ที่ผ่านมา":u},o.exports=e.default}}]);
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[16566],{16566:function(e,t,l){l(36947),Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r={lastWeek:"'sidste' eeee 'kl.' p",yesterday:"'i går kl.' p",today:"'i dag kl.' p",tomorrow:"'i morgen kl.' p",nextWeek:"'på' eeee 'kl.' p",other:"P"};t.default=function(e,t,l,o){return r[e]},e.exports=t.default}}]);
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[16914],{16914:function(e,o,t){t(36947),t(95021),t(93062),Object.defineProperty(o,"__esModule",{value:!0}),o.default=void 0;var n={lessThanXSeconds:{one:"më pak se një sekondë",other:"më pak se {{count}} sekonda"},xSeconds:{one:"1 sekondë",other:"{{count}} sekonda"},halfAMinute:"gjysëm minuti",lessThanXMinutes:{one:"më pak se një minute",other:"më pak se {{count}} minuta"},xMinutes:{one:"1 minutë",other:"{{count}} minuta"},aboutXHours:{one:"rreth 1 orë",other:"rreth {{count}} orë"},xHours:{one:"1 orë",other:"{{count}} orë"},xDays:{one:"1 ditë",other:"{{count}} ditë"},aboutXWeeks:{one:"rreth 1 javë",other:"rreth {{count}} javë"},xWeeks:{one:"1 javë",other:"{{count}} javë"},aboutXMonths:{one:"rreth 1 muaj",other:"rreth {{count}} muaj"},xMonths:{one:"1 muaj",other:"{{count}} muaj"},aboutXYears:{one:"rreth 1 vit",other:"rreth {{count}} vite"},xYears:{one:"1 vit",other:"{{count}} vite"},overXYears:{one:"mbi 1 vit",other:"mbi {{count}} vite"},almostXYears:{one:"pothuajse 1 vit",other:"pothuajse {{count}} vite"}};o.default=function(e,o,t){var r,u=n[e];return r="string"==typeof u?u:1===o?u.one:u.other.replace("{{count}}",String(o)),null!=t&&t.addSuffix?t.comparison&&t.comparison>0?"në "+r:r+" më parë":r},e.exports=o.default}}]);
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[9387,17133,19863,31768,42244,75101,94160,97482],{17133:function(e,t,a){"use strict";a(94),a(36947);var u=a(96784).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=u(a(94160)),d={ordinalNumber:function(e,t){var a=Number(e),u=a%100;if(u>20||u<10)switch(u%10){case 1:return a+"-ви";case 2:return a+"-ри";case 7:case 8:return a+"-ми"}return a+"-ти"},era:(0,r.default)({values:{narrow:["пр.н.е.","н.е."],abbreviated:["пред н. е.","н. е."],wide:["пред нашата ера","нашата ера"]},defaultWidth:"wide"}),quarter:(0,r.default)({values:{narrow:["1","2","3","4"],abbreviated:["1-ви кв.","2-ри кв.","3-ти кв.","4-ти кв."],wide:["1-ви квартал","2-ри квартал","3-ти квартал","4-ти квартал"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:(0,r.default)({values:{abbreviated:["јан","фев","мар","апр","мај","јун","јул","авг","септ","окт","ноем","дек"],wide:["јануари","февруари","март","април","мај","јуни","јули","август","септември","октомври","ноември","декември"]},defaultWidth:"wide"}),day:(0,r.default)({values:{narrow:["Н","П","В","С","Ч","П","С"],short:["не","по","вт","ср","че","пе","са"],abbreviated:["нед","пон","вто","сре","чет","пет","саб"],wide:["недела","понеделник","вторник","среда","четврток","петок","сабота"]},defaultWidth:"wide"}),dayPeriod:(0,r.default)({values:{wide:{am:"претпладне",pm:"попладне",midnight:"полноќ",noon:"напладне",morning:"наутро",afternoon:"попладне",evening:"навечер",night:"ноќе"}},defaultWidth:"wide"})};t.default=d,e.exports=t.default},94160:function(e,t,a){"use strict";a(44962),a(36947),a(78557),a(82367),Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(t,a){var u;if("formatting"===(null!=a&&a.context?String(a.context):"standalone")&&e.formattingValues){var r=e.defaultFormattingWidth||e.defaultWidth,d=null!=a&&a.width?String(a.width):r;u=e.formattingValues[d]||e.formattingValues[r]}else{var n=e.defaultWidth,i=null!=a&&a.width?String(a.width):e.defaultWidth;u=e.values[i]||e.values[n]}return u[e.argumentCallback?e.argumentCallback(t):t]}},e.exports=t.default},96784:function(e){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports}}]);
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[17290,17486,21933,37658,39867,44314,62248,95105],{17290:function(t,e,u){"use strict";u(36947);var d=u(96784).default;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=d(u(37658)),f={date:(0,l.default)({formats:{full:"EEEE, d. MMMM yyyy.",long:"d. MMMM yyyy.",medium:"d. MMM yy.",short:"dd. MM. yy."},defaultWidth:"full"}),time:(0,l.default)({formats:{full:"HH:mm:ss (zzzz)",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},defaultWidth:"full"}),dateTime:(0,l.default)({formats:{full:"{{date}} 'u' {{time}}",long:"{{date}} 'u' {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},defaultWidth:"full"})};e.default=f,t.exports=e.default},37658:function(t,e,u){"use strict";u(36947),Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=e.width?String(e.width):t.defaultWidth;return t.formats[u]||t.formats[t.defaultWidth]}},t.exports=e.default},96784:function(t){t.exports=function(t){return t&&t.__esModule?t:{default:t}},t.exports.__esModule=!0,t.exports.default=t.exports}}]);
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[17355,17486,21933,37658,39867,44314,62248,95105],{17355:function(t,e,d){"use strict";d(36947);var u=d(96784).default;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var a=u(d(37658)),l={date:(0,a.default)({formats:{full:"EEEE, d MMMM yyyy",long:"d MMMM yyyy",medium:"d MMM yyyy",short:"dd/MM/yyyy"},defaultWidth:"full"}),time:(0,a.default)({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:(0,a.default)({formats:{full:"{{date}} 'am' {{time}}",long:"{{date}} 'am' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})};e.default=l,t.exports=e.default},37658:function(t,e,d){"use strict";d(36947),Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=e.width?String(e.width):t.defaultWidth;return t.formats[d]||t.formats[t.defaultWidth]}},t.exports=e.default},96784:function(t){t.exports=function(t){return t&&t.__esModule?t:{default:t}},t.exports.__esModule=!0,t.exports.default=t.exports}}]);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
.recordingDialog-imageContainer{-webkit-flex-shrink:0;flex-shrink:0;padding:1em 1em 1em 0;width:25%}.recordingDialog-img{width:100%}.recordingDialog-itemName{margin-top:.7em}.recordingDetailsContainer{display:-webkit-flex;display:flex}.recordingDetails{-webkit-flex-grow:1;flex-grow:1}.recordingDetailText{-webkit-align-items:center;align-items:center;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[17486,21933,37658,39867,44314,62248,95105],{37658:function(e,t,u){"use strict";u(36947),Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=t.width?String(t.width):e.defaultWidth;return e.formats[u]||e.formats[e.defaultWidth]}},e.exports=t.default},96784:function(e){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports}}]);
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[4665,7184,15141,17864,27046,37522,49427,71808,83518],{7184:function(a,t,e){"use strict";e(89336),e(36947),e(95021),e(53819),Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(a){return function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=e.width,r=i&&a.matchPatterns[i]||a.matchPatterns[a.defaultMatchWidth],n=t.match(r);if(!n)return null;var l,u=n[0],d=i&&a.parsePatterns[i]||a.parsePatterns[a.defaultParseWidth],s=Array.isArray(d)?function(a){for(var t=0;t<a.length;t++)if(a[t].test(u))return t}(d):function(a){for(var t in a)if(a.hasOwnProperty(t)&&a[t].test(u))return t}(d);return l=a.valueCallback?a.valueCallback(s):s,{value:l=e.valueCallback?e.valueCallback(l):l,rest:t.slice(u.length)}}},a.exports=t.default},17864:function(a,t,e){"use strict";e(36947),e(96054);var i=e(96784).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(e(7184)),n={ordinalNumber:(0,i(e(83518)).default)({matchPattern:/^(\d+)(ος|η|ο)?/i,parsePattern:/\d+/i,valueCallback:function(a){return parseInt(a,10)}}),era:(0,r.default)({matchPatterns:{narrow:/^(πΧ|μΧ)/i,abbreviated:/^(π\.?\s?χ\.?|π\.?\s?κ\.?\s?χ\.?|μ\.?\s?χ\.?|κ\.?\s?χ\.?)/i,wide:/^(προ Χριστο(ύ|υ)|πριν απ(ό|ο) την Κοιν(ή|η) Χρονολογ(ί|ι)α|μετ(ά|α) Χριστ(ό|ο)ν|Κοιν(ή|η) Χρονολογ(ί|ι)α)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^π/i,/^(μ|κ)/i]},defaultParseWidth:"any"}),quarter:(0,r.default)({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^τ[1234]/i,wide:/^[1234]ο? τρ(ί|ι)μηνο/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(a){return a+1}}),month:(0,r.default)({matchPatterns:{narrow:/^[ιφμαμιιασονδ]/i,abbreviated:/^(ιαν|φεβ|μ[άα]ρ|απρ|μ[άα][ιΐ]|ιο[ύυ]ν|ιο[ύυ]λ|α[ύυ]γ|σεπ|οκτ|νο[έε]|δεκ)/i,wide:/^(μ[άα][ιΐ]|α[ύυ]γο[υύ]στ)(ος|ου)|(ιανου[άα]ρ|φεβρου[άα]ρ|μ[άα]ρτ|απρ[ίι]λ|ιο[ύυ]ν|ιο[ύυ]λ|σεπτ[έε]μβρ|οκτ[ώω]βρ|νο[έε]μβρ|δεκ[έε]μβρ)(ιος|ίου)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^ι/i,/^φ/i,/^μ/i,/^α/i,/^μ/i,/^ι/i,/^ι/i,/^α/i,/^σ/i,/^ο/i,/^ν/i,/^δ/i],any:[/^ια/i,/^φ/i,/^μ[άα]ρ/i,/^απ/i,/^μ[άα][ιΐ]/i,/^ιο[ύυ]ν/i,/^ιο[ύυ]λ/i,/^α[ύυ]/i,/^σ/i,/^ο/i,/^ν/i,/^δ/i]},defaultParseWidth:"any"}),day:(0,r.default)({matchPatterns:{narrow:/^[κδτπσ]/i,short:/^(κυ|δε|τρ|τε|π[εέ]|π[αά]|σ[αά])/i,abbreviated:/^(κυρ|δευ|τρι|τετ|πεμ|παρ|σαβ)/i,wide:/^(κυριακ(ή|η)|δευτ(έ|ε)ρα|τρ(ί|ι)τη|τετ(ά|α)ρτη|π(έ|ε)μπτη|παρασκευ(ή|η)|σ(ά|α)ββατο)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^κ/i,/^δ/i,/^τ/i,/^τ/i,/^π/i,/^π/i,/^σ/i],any:[/^κ/i,/^δ/i,/^τρ/i,/^τε/i,/^π[εέ]/i,/^π[αά]/i,/^σ/i]},defaultParseWidth:"any"}),dayPeriod:(0,r.default)({matchPatterns:{narrow:/^(πμ|μμ|μεσ(ά|α)νυχτα|μεσημ(έ|ε)ρι|πρω(ί|ι)|απ(ό|ο)γευμα|βρ(ά|α)δυ|ν(ύ|υ)χτα)/i,any:/^([πμ]\.?\s?μ\.?|μεσ(ά|α)νυχτα|μεσημ(έ|ε)ρι|πρω(ί|ι)|απ(ό|ο)γευμα|βρ(ά|α)δυ|ν(ύ|υ)χτα)/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^πμ|π\.\s?μ\./i,pm:/^μμ|μ\.\s?μ\./i,midnight:/^μεσάν/i,noon:/^μεσημ(έ|ε)/i,morning:/πρω(ί|ι)/i,afternoon:/απ(ό|ο)γευμα/i,evening:/βρ(ά|α)δυ/i,night:/ν(ύ|υ)χτα/i}},defaultParseWidth:"any"})};t.default=n,a.exports=t.default},83518:function(a,t,e){"use strict";e(89336),e(36947),e(95021),e(53819),Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(a){return function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t.match(a.matchPattern);if(!i)return null;var r=i[0],n=t.match(a.parsePattern);if(!n)return null;var l=a.valueCallback?a.valueCallback(n[0]):n[0];return{value:l=e.valueCallback?e.valueCallback(l):l,rest:t.slice(r.length)}}},a.exports=t.default},96784:function(a){a.exports=function(a){return a&&a.__esModule?a:{default:a}},a.exports.__esModule=!0,a.exports.default=a.exports}}]);
@@ -0,0 +1,3 @@
.alphaPicker{-webkit-align-self:center;align-self:center;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;text-align:center}.alphaPicker-vertical{line-height:1}.alphaPicker-fixed{bottom:5.5em;position:fixed}@supports(width:max(1px,1px)){.alphaPicker-fixed{bottom:max(env(safe-area-inset-bottom),5.5em)}}.alphaPickerRow{-webkit-align-items:center;align-items:center;display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-justify-content:center;justify-content:center}.alphaPickerRow-vertical{-webkit-flex-direction:column;flex-direction:column}.alphaPickerButton{border:0!important;border-radius:.1em;cursor:pointer;-webkit-flex-grow:1;flex-grow:1;-webkit-flex-shrink:0;flex-shrink:0;font-family:inherit;font-size:inherit;font-weight:400;margin:0;min-width:0;min-width:auto;outline:none!important;padding:.1em .4em;vertical-align:middle;width:auto}@media (max-height:50em){.alphaPicker-fixed{bottom:5em}@supports(width:max(1px,1px)){.alphaPicker-fixed{bottom:max(env(safe-area-inset-bottom),5em)}}.alphaPickerButton-vertical{padding-bottom:1px!important;padding-top:1px!important}}@media (max-height:49em){.alphaPicker-vertical{font-size:94%}}@media (max-height:44em){.alphaPicker-vertical{font-size:90%}.alphaPickerButton-vertical{padding-bottom:0!important;padding-top:0!important}}@media (max-height:37em){.alphaPicker-vertical{font-size:82%}}@media (max-height:32em){.alphaPicker-vertical{font-size:74%}}.alphaPicker-vertical.alphaPicker-tv{font-size:86%}.alphaPickerButton-tv.alphaPickerButton-vertical{padding:0}.alphaPickerButton-vertical{display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;text-align:center;width:1.5em}.alphaPickerButtonIcon{font-size:100%!important}.alphaPicker-fixed.alphaPicker-tv{bottom:1%}@supports(width:max(1px,1px)){.alphaPicker-fixed.alphaPicker-tv{bottom:max(env(safe-area-inset-bottom),1%)}}[dir=ltr] .alphaPicker-fixed-right{right:.4em}@supports(width:max(1px,1px)){[dir=ltr] .alphaPicker-fixed-right{right:max(env(safe-area-inset-right),.4em)}}[dir=rtl] .alphaPicker-fixed-right{left:.4em}@supports(width:max(1px,1px)){[dir=rtl] .alphaPicker-fixed-right{left:max(env(safe-area-inset-left),.4em)}}@media (min-width:62.5em){[dir=ltr] .alphaPicker-fixed-right{right:1em}@supports(width:max(1px,1px)){[dir=ltr] .alphaPicker-fixed-right{right:max(env(safe-area-inset-right),1em)}}[dir=rtl] .alphaPicker-fixed-right{left:1em}@supports(width:max(1px,1px)){[dir=rtl] .alphaPicker-fixed-right{left:max(env(safe-area-inset-left),1em)}}}@media (max-height:31.25em){.alphaPicker-fixed{display:none!important}}
.mediaInfoItem{padding:0}[dir=ltr] .mediaInfoItem{margin:0 1em 0 0}[dir=rtl] .mediaInfoItem{margin:0 0 0 1em}.mediaInfoText{-webkit-align-items:center;align-items:center;border-radius:.25em;display:-webkit-flex;display:flex;font-size:92%;margin:0 .5em 0 0;padding:.22em .5em;white-space:nowrap}.mediaInfoText-upper{text-transform:uppercase}.mediaInfoIconItem{font-size:1.6em;height:auto;margin-right:.6em;width:auto}[dir=ltr] .mediaInfoItem:last-child{margin-right:0}[dir=rtl] .mediaInfoItem:last-child{margin-left:0}.starRatingContainer{-webkit-align-items:center;align-items:center;display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;vertical-align:middle}.starIcon{color:#f2b01e;font-size:1.4em;height:auto!important;margin-right:.125em;width:auto!important}.mediaInfoCriticRating{-webkit-align-items:center;align-items:center;background-repeat:no-repeat;background-size:auto 1.2em;display:-webkit-flex;display:flex;min-height:1.2em}[dir=ltr] .mediaInfoCriticRating{background-position:0;padding-left:1.5em}[dir=rtl] .mediaInfoCriticRating{background-position:100%;padding-right:1.5em}.mediaInfoCriticRatingFresh{background-image:url(assets/img/fresh.svg)}.mediaInfoCriticRatingRotten{background-image:url(assets/img/rotten.svg)}.mediaInfoProgramAttribute{border-radius:.15em;font-size:80%;padding:.16em .6em;text-transform:uppercase}.closedCaptionMediaInfoText{font-weight:700}
.btnFilterWithIndicator{position:relative}.filterIndicator{-webkit-align-items:center;align-items:center;background:#03a9f4;border-radius:100em;box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2);color:#fff;display:-webkit-flex;display:flex;font-size:60%;font-weight:700;height:1.8em;-webkit-justify-content:center;justify-content:center;position:absolute;right:2px;top:2px;width:1.8em;z-index:1}
@@ -0,0 +1,6 @@
.actionSheet{border:none;border-radius:.1em!important;display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;max-height:84%;padding:0}.actionsheet-not-fullscreen{max-height:90%;max-width:90%}.actionsheet-fullscreen{border-radius:0!important;max-height:none}.actionSheetContent-centered{-webkit-align-items:center;align-items:center;text-align:center}.actionSheetContent{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-flex-grow:1;flex-grow:1;-webkit-justify-content:center;justify-content:center;margin:0!important;overflow:hidden;padding:.4em 0!important}.actionSheetMenuItem{border-radius:0;box-shadow:none;-webkit-flex-shrink:0;flex-shrink:0;font-weight:inherit;margin:0}.actionSheetMenuItem:focus{-webkit-transform:none!important;transform:none!important}[dir=ltr] .actionsheetListItemBody{padding:.4em 1em .4em .6em!important}[dir=rtl] .actionsheetListItemBody{padding:.4em .6em .4em 1em!important}.actionSheetItemText{display:-webkit-flex;display:flex;-webkit-flex-grow:1;flex-grow:1;-webkit-justify-content:flex-start;justify-content:flex-start;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.actionSheetItemAsideText{display:-webkit-flex;display:flex;-webkit-flex-shrink:0;flex-shrink:0;font-size:90%;-webkit-justify-content:flex-end;justify-content:flex-end;opacity:.7}[dir=ltr] .actionSheetItemAsideText{margin-left:5em;margin-right:.5em}[dir=rtl] .actionSheetItemAsideText{margin-left:.5em;margin-right:5em}.actionSheetScroller{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;margin-bottom:0!important;width:100%}.actionSheetScroller-tv{max-height:64%;max-width:60%;width:auto}.actionsheetDivider{-webkit-flex-shrink:0;flex-shrink:0;height:.07em;margin:.25em 0}.actionSheetTitle{margin:.6em 0 .7em!important}.actionSheetText,.actionSheetTitle{-webkit-flex-grow:0;flex-grow:0;padding:0 .75rem}.actionSheetText{margin-top:0}.actionsheetMenuItemIcon{padding:0!important}[dir=ltr] .actionsheetMenuItemIcon{margin:0 .85em 0 .45em!important}[dir=rtl] .actionsheetMenuItemIcon{margin:0 .45em 0 .85em!important}.actionsheet-xlargeFont{font-size:112%!important}.btnCloseActionSheet{position:fixed;top:.75em}[dir=ltr] .btnCloseActionSheet{left:.5em}[dir=rtl] .btnCloseActionSheet{right:.5em}
.emby-select{box-sizing:border-box;display:block;font-family:inherit;font-size:110%;font-weight:inherit;margin:0;margin-bottom:0!important;outline:none!important;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%}[dir=ltr] .emby-select{padding:.5em 1.9em .5em .5em}[dir=rtl] .emby-select{padding:.5em .5em .5em 1.9em}.emby-select[disabled]{-webkit-appearance:none;appearance:none;background:none!important;border-color:transparent!important;color:inherit!important}.emby-select::-moz-focus-inner{border:0}.selectContainer-inline>.emby-select{font-size:inherit}[dir=ltr] .selectContainer-inline>.emby-select{padding:.3em 1.9em .3em .5em}[dir=rtl] .selectContainer-inline>.emby-select{padding:.3em .5em .3em 1.9em}.selectContainer-inline>.emby-select[disabled]{padding-left:0;padding-right:0}.emby-select-focusscale{-webkit-transform-origin:center center;transform-origin:center center;transition:-webkit-transform .18s ease-out!important;transition:transform .18s ease-out!important;transition:transform .18s ease-out,-webkit-transform .18s ease-out!important}.emby-select-focusscale:focus{-webkit-transform:scale(1.04);transform:scale(1.04);z-index:1}.emby-select+.fieldDescription{margin-top:.25em}.selectContainer{margin-bottom:1.8em;position:relative}.selectContainer-inline{-webkit-align-items:center;align-items:center;display:-webkit-inline-flex;display:inline-flex;margin-bottom:0}.selectLabel{display:block;margin-bottom:.25em}.selectContainer-inline>.selectLabel{-webkit-flex-shrink:0;flex-shrink:0;margin-bottom:0;margin-right:.5em}.trackSelections>.selectContainer{margin:.4em 0}.emby-select-withcolor{-webkit-appearance:none;appearance:none;border-radius:.2em}.selectArrowContainer{color:inherit;pointer-events:none;position:absolute;top:.2em}[dir=ltr] .selectArrowContainer{right:.3em}[dir=rtl] .selectArrowContainer{left:.3em}.selectContainer-inline>.selectArrowContainer{bottom:.24em;font-size:90%;top:auto}.emby-select[disabled]+.selectArrowContainer{display:none}.selectArrow{font-size:1.7em;margin-top:1.2em}.emby-select-iconbutton{-webkit-align-self:flex-end;align-self:flex-end}
.emby-textarea{box-sizing:border-box;color:inherit;display:block;font-family:inherit;font-size:110%;font-weight:inherit;margin:0;margin-bottom:0!important;outline:none!important;padding:.35em .25em;-webkit-tap-highlight-color:rgba(0,0,0,0);min-height:2.5em;width:100%}.emby-textarea::-moz-focus-inner{border:0}.textareaLabel{display:inline-block;margin-bottom:.25em;transition:all .2s ease-out}.emby-textarea+.fieldDescription{margin-top:.25em}
[dir=ltr] .raised.btnImageOptionsForType{margin-left:1.5em}[dir=rtl] .raised.btnImageOptionsForType{margin-right:1.5em}
.mdl-switch{-webkit-align-items:center;align-items:center;box-sizing:border-box;display:-webkit-inline-flex;display:inline-flex;margin:0;overflow:visible;padding:0;position:relative;vertical-align:middle;width:100%;z-index:1;-webkit-touch-callout:none;-webkit-flex-direction:row-reverse;flex-direction:row-reverse;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-user-select:none;-ms-user-select:none;user-select:none}.toggleContainer{margin-bottom:1.8em}.mdl-switch__input{-webkit-appearance:none;appearance:none;border:none;height:0;margin:0;opacity:0;padding:0;width:0}.mdl-switch__trackContainer{position:relative;width:2.9em}.mdl-switch__track{background:hsla(0,0%,50%,.5);border-radius:1em;cursor:pointer;height:1em}.mdl-switch__input:checked+.mdl-switch__label+.mdl-switch__trackContainer>.mdl-switch__track{background:rgba(0,164,220,.5)}.mdl-switch__input[disabled]+.mdl-switch__label+.mdl-switch__trackContainer>.mdl-switch__track{background:rgba(0,0,0,.12);cursor:auto}.mdl-switch__thumb{-webkit-align-items:center;align-items:center;background:#999;border-radius:50%;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);cursor:pointer;display:-webkit-flex;display:flex;height:1.44em;-webkit-justify-content:center;justify-content:center;position:absolute;top:-.25em;transition-duration:.28s;transition-property:left;transition-timing-function:cubic-bezier(.4,0,.2,1);width:1.44em}[dir=ltr] .mdl-switch__thumb{left:0}[dir=rtl] .mdl-switch__thumb{right:0}.mdl-switch__input:checked+.mdl-switch__label+.mdl-switch__trackContainer>.mdl-switch__thumb{background:#00a4dc;box-shadow:0 3px .28em 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.2),0 1px .56em 0 rgba(0,0,0,.12);left:1.466em}.mdl-switch__input[disabled]+.mdl-switch__label+.mdl-switch__trackContainer>.mdl-switch__thumb{background:#bdbdbd;cursor:auto}.mdl-switch__focus-helper{background-color:transparent;border-radius:50%;box-sizing:border-box;display:inline-block;height:.6em;left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:.6em}.mdl-switch__input:focus+.mdl-switch__label+.mdl-switch__trackContainer .mdl-switch__focus-helper{box-shadow:0 0 0 1.39em rgba(0,0,0,.05)}.mdl-switch__input:checked:focus+.mdl-switch__label+.mdl-switch__trackContainer .mdl-switch__focus-helper{background-color:rgba(0,164,220,.26);box-shadow:0 0 0 1.39em rgba(0,164,220,.26)}.mdl-switch__label{-webkit-align-items:center;align-items:center;cursor:pointer;display:-webkit-inline-flex;display:inline-flex;margin:0;margin-left:.7em}.mdl-switch__input[disabled] .mdl-switch__label{color:#bdbdbd;cursor:auto}
[dir=ltr] .fab.btnAddFolder.submit{margin-left:1em}[dir=rtl] .fab.btnAddFolder.submit{margin-right:1em}[dir=ltr] .listItem.listItem-border.lnkPath{padding-left:.5em}[dir=rtl] .listItem.listItem-border.lnkPath{padding-right:.5em}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
.playerStats{background:rgba(28,28,28,.8);border-radius:.3em;color:#fff;position:absolute;top:5em}[dir=ltr] .playerStats{left:1.5em}[dir=rtl] .playerStats{right:1.5em}.playerStats-tv{top:4em}.playerStats-content{font-size:84%;position:relative}.playerStats-content-tv{font-size:60%}.playerStats-closeButton{color:#ccc;position:absolute;right:.25em;top:.25em;z-index:1}.playerStats-stats{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;max-width:50em;overflow:hidden}[dir=ltr] .playerStats-stats{padding:0 3em 1em 1em}[dir=rtl] .playerStats-stats{padding:0 1em 1em 3em}.playerStats-stat{display:-webkit-flex;display:flex}[dir=ltr] .playerStats-stat{margin-left:1em}[dir=rtl] .playerStats-stat{margin-right:1em}.playerStats-stat-label{font-weight:500}[dir=ltr] .playerStats-stat-label{margin:0 .5em 0 0}[dir=rtl] .playerStats-stat-label{margin:0 0 0 .5em}[dir=ltr] .playerStats-stat-header{margin:1em 1em 0 0}[dir=rtl] .playerStats-stat-header{margin:1em 0 0 1em}.playerStats-stat-value{color:#ddd}
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[18395],{18395:function(e,t,a){a(36947),Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};t.default=function(e,t,a,r){return o[e]},e.exports=t.default}}]);
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[18591],{18591:function(n,e,o){o(36947),o(95021),o(93062),Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var a={lessThanXSeconds:{one:"inqas minn sekonda",other:"inqas minn {{count}} sekondi"},xSeconds:{one:"sekonda",other:"{{count}} sekondi"},halfAMinute:"nofs minuta",lessThanXMinutes:{one:"inqas minn minuta",other:"inqas minn {{count}} minuti"},xMinutes:{one:"minuta",other:"{{count}} minuti"},aboutXHours:{one:"madwar siegħa",other:"madwar {{count}} siegħat"},xHours:{one:"siegħa",other:"{{count}} siegħat"},xDays:{one:"ġurnata",other:"{{count}} ġranet"},aboutXWeeks:{one:"madwar ġimgħa",other:"madwar {{count}} ġimgħat"},xWeeks:{one:"ġimgħa",other:"{{count}} ġimgħat"},aboutXMonths:{one:"madwar xahar",other:"madwar {{count}} xhur"},xMonths:{one:"xahar",other:"{{count}} xhur"},aboutXYears:{one:"madwar sena",two:"madwar sentejn",other:"madwar {{count}} snin"},xYears:{one:"sena",two:"sentejn",other:"{{count}} snin"},overXYears:{one:"aktar minn sena",two:"aktar minn sentejn",other:"aktar minn {{count}} snin"},almostXYears:{one:"kważi sena",two:"kważi sentejn",other:"kważi {{count}} snin"}};e.default=function(n,e,o){var t,s=a[n];return t="string"==typeof s?s:1===e?s.one:2===e&&s.two?s.two:s.other.replace("{{count}}",String(e)),null!=o&&o.addSuffix?o.comparison&&o.comparison>0?"f'"+t:t+" ilu":t},n.exports=e.default}}]);
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[18934],{18934:function(o,n,t){t(36947),t(95021),t(93062),Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var e={lessThanXSeconds:{one:{regular:"mniej niż sekunda",past:"mniej niż sekundę",future:"mniej niż sekundę"},twoFour:"mniej niż {{count}} sekundy",other:"mniej niż {{count}} sekund"},xSeconds:{one:{regular:"sekunda",past:"sekundę",future:"sekundę"},twoFour:"{{count}} sekundy",other:"{{count}} sekund"},halfAMinute:{one:"pół minuty",twoFour:"pół minuty",other:"pół minuty"},lessThanXMinutes:{one:{regular:"mniej niż minuta",past:"mniej niż minutę",future:"mniej niż minutę"},twoFour:"mniej niż {{count}} minuty",other:"mniej niż {{count}} minut"},xMinutes:{one:{regular:"minuta",past:"minutę",future:"minutę"},twoFour:"{{count}} minuty",other:"{{count}} minut"},aboutXHours:{one:{regular:"około godziny",past:"około godziny",future:"około godzinę"},twoFour:"około {{count}} godziny",other:"około {{count}} godzin"},xHours:{one:{regular:"godzina",past:"godzinę",future:"godzinę"},twoFour:"{{count}} godziny",other:"{{count}} godzin"},xDays:{one:{regular:"dzień",past:"dzień",future:"1 dzień"},twoFour:"{{count}} dni",other:"{{count}} dni"},aboutXWeeks:{one:"około tygodnia",twoFour:"około {{count}} tygodni",other:"około {{count}} tygodni"},xWeeks:{one:"tydzień",twoFour:"{{count}} tygodnie",other:"{{count}} tygodni"},aboutXMonths:{one:"około miesiąc",twoFour:"około {{count}} miesiące",other:"około {{count}} miesięcy"},xMonths:{one:"miesiąc",twoFour:"{{count}} miesiące",other:"{{count}} miesięcy"},aboutXYears:{one:"około rok",twoFour:"około {{count}} lata",other:"około {{count}} lat"},xYears:{one:"rok",twoFour:"{{count}} lata",other:"{{count}} lat"},overXYears:{one:"ponad rok",twoFour:"ponad {{count}} lata",other:"ponad {{count}} lat"},almostXYears:{one:"prawie rok",twoFour:"prawie {{count}} lata",other:"prawie {{count}} lat"}};function u(o,n,t){var e=function(o,n){if(1===n)return o.one;var t=n%100;if(t<=20&&t>10)return o.other;var e=t%10;return e>=2&&e<=4?o.twoFour:o.other}(o,n);return("string"==typeof e?e:e[t]).replace("{{count}}",String(n))}n.default=function(o,n,t){var r=e[o];return null!=t&&t.addSuffix?t.comparison&&t.comparison>0?"za "+u(r,n,"future"):u(r,n,"past")+" temu":u(r,n,"regular")},o.exports=n.default}}]);
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[1912,4665,7184,15141,27046,37522,49427,71808,83518],{1912:function(a,t,e){"use strict";e(36947),e(96054);var i=e(96784).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(e(7184)),n={ordinalNumber:(0,i(e(83518)).default)({matchPattern:/^(\d+)(º)?/i,parsePattern:/\d+/i,valueCallback:function(a){return parseInt(a,10)}}),era:(0,r.default)({matchPatterns:{narrow:/^(q|w)/i,abbreviated:/^(q\.?\s?k\.?|b\.?\s?c\.?\s?e\.?|w\.?\s?k\.?)/i,wide:/^(qabel kristu|before common era|wara kristu|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^(q|b)/i,/^(w|c)/i]},defaultParseWidth:"any"}),quarter:(0,r.default)({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^k[1234]/i,wide:/^[1234](\.)? kwart/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(a){return a+1}}),month:(0,r.default)({matchPatterns:{narrow:/^[jfmaglsond]/i,abbreviated:/^(jan|fra|mar|apr|mej|ġun|lul|aww|set|ott|nov|diċ)/i,wide:/^(jannar|frar|marzu|april|mejju|ġunju|lulju|awwissu|settembru|ottubru|novembru|diċembru)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^ġ/i,/^l/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^mej/i,/^ġ/i,/^l/i,/^aw/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:(0,r.default)({matchPatterns:{narrow:/^[ħteġs]/i,short:/^(ħa|tn|tl|er|ħa|ġi|si)/i,abbreviated:/^(ħad|tne|tli|erb|ħam|ġim|sib)/i,wide:/^(il-ħadd|it-tnejn|it-tlieta|l-erbgħa|il-ħamis|il-ġimgħa|is-sibt)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^ħ/i,/^t/i,/^t/i,/^e/i,/^ħ/i,/^ġ/i,/^s/i],any:[/^(il-)?ħad/i,/^(it-)?tn/i,/^(it-)?tl/i,/^(l-)?er/i,/^(il-)?ham/i,/^(il-)?ġi/i,/^(is-)?si/i]},defaultParseWidth:"any"}),dayPeriod:(0,r.default)({matchPatterns:{narrow:/^(a|p|f'nofsillejl|f'nofsinhar|(ta') (għodwa|wara nofsinhar|filgħaxija|lejl))/i,any:/^([ap]\.?\s?m\.?|f'nofsillejl|f'nofsinhar|(ta') (għodwa|wara nofsinhar|filgħaxija|lejl))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^f'nofsillejl/i,noon:/^f'nofsinhar/i,morning:/għodwa/i,afternoon:/wara(\s.*)nofsinhar/i,evening:/filgħaxija/i,night:/lejl/i}},defaultParseWidth:"any"})};t.default=n,a.exports=t.default},7184:function(a,t,e){"use strict";e(89336),e(36947),e(95021),e(53819),Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(a){return function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=e.width,r=i&&a.matchPatterns[i]||a.matchPatterns[a.defaultMatchWidth],n=t.match(r);if(!n)return null;var l,u=n[0],s=i&&a.parsePatterns[i]||a.parsePatterns[a.defaultParseWidth],d=Array.isArray(s)?function(a){for(var t=0;t<a.length;t++)if(a[t].test(u))return t}(s):function(a){for(var t in a)if(a.hasOwnProperty(t)&&a[t].test(u))return t}(s);return l=a.valueCallback?a.valueCallback(d):d,{value:l=e.valueCallback?e.valueCallback(l):l,rest:t.slice(u.length)}}},a.exports=t.default},83518:function(a,t,e){"use strict";e(89336),e(36947),e(95021),e(53819),Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(a){return function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t.match(a.matchPattern);if(!i)return null;var r=i[0],n=t.match(a.parsePattern);if(!n)return null;var l=a.valueCallback?a.valueCallback(n[0]):n[0];return{value:l=e.valueCallback?e.valueCallback(l):l,rest:t.slice(r.length)}}},a.exports=t.default},96784:function(a){a.exports=function(a){return a&&a.__esModule?a:{default:a}},a.exports.__esModule=!0,a.exports.default=a.exports}}]);
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[19187],{19187:function(e,o,t){t(36947),Object.defineProperty(o,"__esModule",{value:!0}),o.default=void 0;var a={lastWeek:"'afgelopen' eeee 'om' p",yesterday:"'gisteren om' p",today:"'vandaag om' p",tomorrow:"'morgen om' p",nextWeek:"eeee 'om' p",other:"P"};o.default=function(e,o,t,n){return a[e]},e.exports=o.default}}]);
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[19292],{19292:function(e,o,t){t(36947),t(78557),t(95021),t(73687),t(93062),Object.defineProperty(o,"__esModule",{value:!0}),o.default=void 0;var n={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"a second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"a minute",other:"{{count}} minutes"},aboutXHours:{one:"about an hour",other:"about {{count}} hours"},xHours:{one:"an hour",other:"{{count}} hours"},xDays:{one:"a day",other:"{{count}} days"},aboutXWeeks:{one:"about a week",other:"about {{count}} weeks"},xWeeks:{one:"a week",other:"{{count}} weeks"},aboutXMonths:{one:"about a month",other:"about {{count}} months"},xMonths:{one:"a month",other:"{{count}} months"},aboutXYears:{one:"about a year",other:"about {{count}} years"},xYears:{one:"a year",other:"{{count}} years"},overXYears:{one:"over a year",other:"over {{count}} years"},almostXYears:{one:"almost a year",other:"almost {{count}} years"}};o.default=function(e,o,t){var a,s=n[e];return a="string"==typeof s?s:1===o?s.one:s.other.replace("{{count}}",o.toString()),null!=t&&t.addSuffix?t.comparison&&t.comparison>0?"in "+a:a+" ago":a},e.exports=o.default}}]);
@@ -0,0 +1 @@
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[19842],{19842:function(e,t,n){n.r(t),n(29305),n(32733),n(84701),n(81678),n(44962),n(4754),n(94),n(36947),n(78557),n(83994),n(82367);var r=n(36300),i=n(44797);function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function a(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,u(r.key),r)}}function u(e){var t=function(e){if("object"!=o(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==o(t)?t:t+""}function l(e){return e.changedTouches||e.targetTouches||e.touches}var s=function(){return e=function e(t,n){var o,a,u,s,c,v;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var h=this,f=(n=n||{}).swipeXThreshold||50,p=n.swipeYThreshold||50,y=n.ignoreTagNames||[],d=function(e){var t=l(e)[0];if(o=null,a=0,u=0,s=null,c=null,v=!1,t){var n=t.target;if(r.Ay.parentWithTag(n,y))return;o=n,a=t.clientX,u=t.clientY}},m=function(e){var t="touchmove"===e.type;if(o){var r,y,d,m,b=l(e)[0];b?(d=b.clientX||0,m=b.clientY||0,r=d-(a||0),y=m-(u||0)):(r=0,y=0);var g=null==s?r:r-s,w=null==c?y:y-c;s=r,c=y,r>f&&Math.abs(y)<30?i.A.trigger(h,"swiperight",[o]):r<0-f&&Math.abs(y)<30?i.A.trigger(h,"swipeleft",[o]):(y<0-p||v)&&Math.abs(r)<30?(v=!0,i.A.trigger(h,"swipeup",[o,{deltaY:y,deltaX:r,clientX:d,clientY:m,currentDeltaX:g,currentDeltaY:w}])):(y>p||v)&&Math.abs(r)<30&&(v=!0,i.A.trigger(h,"swipedown",[o,{deltaY:y,deltaX:r,clientX:d,clientY:m,currentDeltaX:g,currentDeltaY:w}])),t&&n.preventDefaultOnMove&&e.preventDefault()}t||(o=null,a=0,u=0,s=null,c=null,v=!1)};this.touchStart=d,this.touchEnd=m,r.Ay.addEventListener(t,"touchstart",d,{passive:!0}),n.triggerOnMove&&r.Ay.addEventListener(t,"touchmove",m,{passive:!n.preventDefaultOnMove}),r.Ay.addEventListener(t,"touchend",m,{passive:!0}),r.Ay.addEventListener(t,"touchcancel",m,{passive:!0})},(t=[{key:"destroy",value:function(){var e=this.elem;if(e){var t=this.touchStart,n=this.touchEnd;r.Ay.removeEventListener(e,"touchstart",t,{passive:!0}),r.Ay.removeEventListener(e,"touchmove",n,{passive:!0}),r.Ay.removeEventListener(e,"touchend",n,{passive:!0}),r.Ay.removeEventListener(e,"touchcancel",n,{passive:!0})}this.touchStart=null,this.touchEnd=null,this.elem=null}}])&&a(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();t.default=s}}]);
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[1986,17486,21933,37658,39867,44314,62248,95105],{1986:function(t,e,d){"use strict";d(36947);var u=d(96784).default;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=u(d(37658)),f={date:(0,l.default)({formats:{full:"EEEE, 'ngày' d MMMM 'năm' y",long:"'ngày' d MMMM 'năm' y",medium:"d MMM 'năm' y",short:"dd/MM/y"},defaultWidth:"full"}),time:(0,l.default)({formats:{full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},defaultWidth:"full"}),dateTime:(0,l.default)({formats:{full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},defaultWidth:"full"})};e.default=f,t.exports=e.default},37658:function(t,e,d){"use strict";d(36947),Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=e.width?String(e.width):t.defaultWidth;return t.formats[d]||t.formats[t.defaultWidth]}},t.exports=e.default},96784:function(t){t.exports=function(t){return t&&t.__esModule?t:{default:t}},t.exports.__esModule=!0,t.exports.default=t.exports}}]);
@@ -0,0 +1 @@
(self.webpackChunk=self.webpackChunk||[]).push([[9387,19863,31768,42244,75101,94160,97482],{94160:function(t,e,u){"use strict";u(44962),u(36947),u(78557),u(82367),Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return function(e,u){var n;if("formatting"===(null!=u&&u.context?String(u.context):"standalone")&&t.formattingValues){var a=t.defaultFormattingWidth||t.defaultWidth,l=null!=u&&u.width?String(u.width):a;n=t.formattingValues[l]||t.formattingValues[a]}else{var r=t.defaultWidth,i=null!=u&&u.width?String(u.width):t.defaultWidth;n=t.values[i]||t.values[r]}return n[t.argumentCallback?t.argumentCallback(e):e]}},t.exports=e.default},96784:function(t){t.exports=function(t){return t&&t.__esModule?t:{default:t}},t.exports.__esModule=!0,t.exports.default=t.exports}}]);
File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More