From 38db2b7d3a78fcd78e45cbb15b8fca5c22c468e1 Mon Sep 17 00:00:00 2001 From: "IRC-A\\anavarro" Date: Thu, 25 Sep 2025 09:22:56 +0200 Subject: [PATCH 1/4] Many fixes --- .gitignore | 4 +- TestRevify.Api/Dockerfile | 20 ++-- TestRevify.Api/Dockerfiles/.gitignore | 4 + .../Dockerfiles/docker-compose.yaml | 14 +++ .../Dockerfiles/tmp/grafana/grafana.db | Bin 1155072 -> 1163264 bytes .../Dockerfiles/tmp/prometheus/wal/00000000 | Bin 32768 -> 0 bytes .../Endpoints/Base/NativeEndpoints.cs | 44 -------- TestRevify.Api/Endpoints/NativeEndpoints.cs | 89 +++++++++++++++ .../Endpoints/TodoItemsEndpoints.cs | 51 +++------ .../Extensions/RegisterEndpointExtension.cs | 14 +-- .../Middlewares/GlobalExceptionHandler.cs | 5 + TestRevify.Api/OTL/OtlSetupExtensions.cs | 105 +++++++----------- TestRevify.Api/Program.cs | 14 +-- TestRevify.Api/Properties/launchSettings.json | 2 +- 14 files changed, 194 insertions(+), 172 deletions(-) create mode 100644 TestRevify.Api/Dockerfiles/.gitignore delete mode 100644 TestRevify.Api/Dockerfiles/tmp/prometheus/wal/00000000 delete mode 100644 TestRevify.Api/Endpoints/Base/NativeEndpoints.cs create mode 100644 TestRevify.Api/Endpoints/NativeEndpoints.cs create mode 100644 TestRevify.Api/Middlewares/GlobalExceptionHandler.cs diff --git a/.gitignore b/.gitignore index 9491a2f..36ed6e5 100644 --- a/.gitignore +++ b/.gitignore @@ -360,4 +360,6 @@ MigrationBackup/ .ionide/ # Fody - auto-generated XML schema -FodyWeavers.xsd \ No newline at end of file +FodyWeavers.xsd + +#TestRevify.Api/Dockerfiles/tmp/ \ No newline at end of file diff --git a/TestRevify.Api/Dockerfile b/TestRevify.Api/Dockerfile index 8c8e98b..bd9d0fb 100644 --- a/TestRevify.Api/Dockerfile +++ b/TestRevify.Api/Dockerfile @@ -6,18 +6,17 @@ ARG LAUNCHING_FROM_VS ARG FINAL_BASE_IMAGE=${LAUNCHING_FROM_VS:+aotdebug} # Esta fase se usa cuando se ejecuta desde VS en modo rápido (valor predeterminado para la configuración de depuración) -FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base +FROM mcr.microsoft.com/dotnet/aspnet:9.0-alpine AS base USER $APP_UID WORKDIR /app -EXPOSE 8080 +EXPOSE 80 # Esta fase se usa para compilar el proyecto de servicio -FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build +FROM mcr.microsoft.com/dotnet/sdk:9.0-alpine AS build # Instalación de las dependencias clang/zlib1g-dev para publicar en nativo -RUN apt-get update \ - && apt-get install -y --no-install-recommends \ - clang zlib1g-dev +RUN apk update \ + && apk add build-base zlib-dev ARG BUILD_CONFIGURATION=Release WORKDIR /src COPY ["TestRevify.Api.csproj", "."] @@ -35,14 +34,13 @@ RUN dotnet publish "./TestRevify.Api.csproj" -c $BUILD_CONFIGURATION -o /app/pub FROM base AS aotdebug USER root # Instalación de GDB para admitir la depuración nativa -RUN apt-get update \ - && apt-get install -y --no-install-recommends \ - gdb +RUN apk update \ + && apk add gdb USER app # Esta fase se usa en producción o cuando se ejecuta desde VS en modo normal (valor predeterminado cuando no se usa la configuración de depuración) -FROM ${FINAL_BASE_IMAGE:-mcr.microsoft.com/dotnet/runtime-deps:9.0} AS final +FROM ${FINAL_BASE_IMAGE:-mcr.microsoft.com/dotnet/runtime-deps:9.0-alpine} AS final WORKDIR /app -EXPOSE 8080 +EXPOSE 80 COPY --from=publish /app/publish . ENTRYPOINT ["./TestRevify.Api"] \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/.gitignore b/TestRevify.Api/Dockerfiles/.gitignore new file mode 100644 index 0000000..520daf0 --- /dev/null +++ b/TestRevify.Api/Dockerfiles/.gitignore @@ -0,0 +1,4 @@ +tmp/ +!.yaml +!.yml +!.gitignore \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/docker-compose.yaml b/TestRevify.Api/Dockerfiles/docker-compose.yaml index aef03a8..04b86d8 100644 --- a/TestRevify.Api/Dockerfiles/docker-compose.yaml +++ b/TestRevify.Api/Dockerfiles/docker-compose.yaml @@ -1,5 +1,15 @@ services: + web: + container_name: webApi + build: ../ + ports: + - "80:80" + environment: + - ASPNETCORE_HTTP_PORTS=80 + networks: + - opentelemetry loki: + container_name: loki image: grafana/loki:latest ports: - "3100:3100" @@ -8,6 +18,7 @@ services: - opentelemetry grafana: + container_name: grafana image: grafana/grafana:latest ports: - "3000:3000" @@ -25,6 +36,7 @@ services: - opentelemetry otel-collector: + container_name: otel-collector image: otel/opentelemetry-collector-contrib:latest command: ["--config=/etc/otel-collector-config.yaml"] volumes: @@ -37,6 +49,7 @@ services: - opentelemetry prometheus: + container_name: prometheus image: prom/prometheus:latest ports: - "9090:9090" @@ -50,6 +63,7 @@ services: - otel-collector zipkin: + container_name: zipkin image: openzipkin/zipkin:latest ports: - "9411:9411" diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/grafana.db b/TestRevify.Api/Dockerfiles/tmp/grafana/grafana.db index fdf30aad30521f869b7137a34aa075c4f688a2b3..6d6340f3475cca5d764be2ef95db5381324ad630 100644 GIT binary patch delta 3539 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 logger, CancellationToken ct) => - { - await queue.QueueBackgroundWorkItemAsync(async (ct) => - { - //int delayLoop = 0; - var guid = Guid.NewGuid().ToString(); - logger.LogInformation("Queued Background Task {Guid} is starting.", guid); - var result = await RevifyFacade.ExternalInvoke(val1, val2); - logger.LogInformation("LLAMADA A NATIVE_CODE RESULT Suma {val1}+{val2} -> {result}", val1, val2, result); - logger.LogInformation("Queued Background Task {Guid} is complete.", guid); - }); - }) - .WithDisplayName("Sum two numbers") - .WithDescription("Call a C++ function to sum numbers") - ; - - nativeApi.MapGet("/sleep", async ([FromQuery] int val1, IBackgroundTaskQueue queue, ILogger logger, CancellationToken ct) => - { - await queue.QueueBackgroundWorkItemAsync(async (ct) => - { - //int delayLoop = 0; - var guid = Guid.NewGuid().ToString(); - logger.LogInformation("Queued Background Task {Guid} is starting.", guid); - await RevifyFacade.ExternalSleepInvoke(val1); - logger.LogInformation("LLAMADA A NATIVE_CODE RESULT"); - logger.LogInformation("Queued Background Task {Guid} is complete.", guid); - }); - }) - .WithDisplayName("Sleep some seconds") - .WithDescription("Call a C++ function to wait a heavy process."); - } -} diff --git a/TestRevify.Api/Endpoints/NativeEndpoints.cs b/TestRevify.Api/Endpoints/NativeEndpoints.cs new file mode 100644 index 0000000..9303ec2 --- /dev/null +++ b/TestRevify.Api/Endpoints/NativeEndpoints.cs @@ -0,0 +1,89 @@ +using Microsoft.AspNetCore.Http.HttpResults; +using TestRevify.Api.Facade; +using TestRevify.Api.Workers; + +namespace TestRevify.Api.Endpoints; + +public static class NativeEndpoints +{ + public static void RegisterNativeEndpoints(this WebApplication app) + { + var nativeApi = app.MapGroup("/natives"); + + nativeApi.WithTags("NativeCodeEndpoints"); + + #region Old code + //nativeApi.MapGet("/suma", async ([FromQuery] int val1, [FromQuery] int val2, IBackgroundTaskQueue queue, ILogger logger, CancellationToken ct) => + //{ + // await queue.QueueBackgroundWorkItemAsync(async (ct) => + // { + // //int delayLoop = 0; + // var guid = Guid.NewGuid().ToString(); + // logger.LogInformation("Queued Background Task {Guid} is starting.", guid); + // var result = await RevifyFacade.ExternalInvoke(val1, val2); + // logger.LogInformation("LLAMADA A NATIVE_CODE RESULT Suma {val1}+{val2} -> {result}", val1, val2, result); + // logger.LogInformation("Queued Background Task {Guid} is complete.", guid); + // }); + //}) + //.WithDisplayName("Sum two numbers") + //.WithDescription("Call a C++ function to sum numbers") + //; + + //nativeApi.MapGet("/sleep", async ([FromQuery] int val1, IBackgroundTaskQueue queue, ILogger logger, CancellationToken ct) => + //{ + // await queue.QueueBackgroundWorkItemAsync(async (ct) => + // { + // //int delayLoop = 0; + // var guid = Guid.NewGuid().ToString(); + // logger.LogInformation("Queued Background Task {Guid} is starting.", guid); + // await RevifyFacade.ExternalSleepInvoke(val1); + // logger.LogInformation("LLAMADA A NATIVE_CODE RESULT"); + // logger.LogInformation("Queued Background Task {Guid} is complete.", guid); + // }); + //}) + //.WithDisplayName("Sleep some seconds") + //.WithDescription("Call a C++ function to wait a heavy process."); + #endregion + + nativeApi.MapGet("/suma", NativeCallerSum) + .WithDisplayName("Sum two numbers") + .WithDescription("Call a C++ function to sum numbers") +; + + nativeApi.MapGet("/sleep", NativeCallerSleep) + .WithDisplayName("Sleep some seconds") + .WithDescription("Call a C++ function to wait a heavy process."); + + static async Task, InternalServerError>> NativeCallerSum(int p1, int p2, IBackgroundTaskQueue queue, ILogger logger, CancellationToken ct) + { + try + { + logger.LogInformation("LLAMADA A NATIVE_CODE START"); + var result = await RevifyFacade.ExternalInvoke(p1, p2); + logger.LogInformation("LLAMADA A NATIVE_CODE RESULT Suma {val1}+{val2} -> {result}", p1, p2, result); + return TypedResults.Ok(result); + } + catch (Exception ex) + { + logger.LogError(ex, "Error calling native code"); + return TypedResults.InternalServerError(ex.Message); + } + } + + static async Task>> NativeCallerSleep(int p1, IBackgroundTaskQueue queue, ILogger logger, CancellationToken ct) + { + try + { + logger.LogInformation("LLAMADA A NATIVE_CODE START"); + await RevifyFacade.ExternalSleepInvoke(p1); + logger.LogInformation("LLAMADA A NATIVE_CODE RESULT Sleep {val1}", p1); + return TypedResults.Ok(); + } + catch (Exception ex) + { + logger.LogError(ex, "Error calling native code"); + return TypedResults.InternalServerError(ex.Message); + } + } + } +} diff --git a/TestRevify.Api/Endpoints/TodoItemsEndpoints.cs b/TestRevify.Api/Endpoints/TodoItemsEndpoints.cs index 3788a93..d4c9f0c 100644 --- a/TestRevify.Api/Endpoints/TodoItemsEndpoints.cs +++ b/TestRevify.Api/Endpoints/TodoItemsEndpoints.cs @@ -1,56 +1,35 @@ -using Microsoft.AspNetCore.Http.HttpResults; -using Microsoft.AspNetCore.Mvc; -using TestRevify.Api.Facade; -using TestRevify.Api.Workers; + +using Microsoft.AspNetCore.Http.HttpResults; namespace TestRevify.Api.Endpoints; -public record Todo(int Id,string Title,DateOnly? DueBy=null,bool IsComplete=false); +public record Todo(int Id, string Title, DateOnly? DueBy = null, bool IsComplete = false); public static class TodoItemsEndpoints { - public static void RegisterTodoItemsEndpoints(this WebApplication app) - { - Todo[] sampleTodos = [ + public static Todo[] sampleTodos = [ new(1, "Walk the dog"), new(2, "Do the dishes", DateOnly.FromDateTime(DateTime.Now)), new(3, "Do the laundry", DateOnly.FromDateTime(DateTime.Now.AddDays(1))), new(4, "Clean the bathroom"), new(5, "Clean the car", DateOnly.FromDateTime(DateTime.Now.AddDays(2))) ]; + public static void RegisterTodoItemsEndpoints(this WebApplication app) + { + var todosApi = app.MapGroup("/todos"); - todosApi.MapGet("/", () => sampleTodos); + todosApi.WithTags("TestEndpoints"); + + todosApi.MapGet("/",() => TypedResults.Ok(sampleTodos)); todosApi.MapGet("/{id}", GetTodoByIdAsync); - + + static Results, NotFound> GetTodoByIdAsync(int id, CancellationToken ct) { - Todo[] sampleTodos = [ - new(1, "Walk the dog"), - new(2, "Do the dishes", DateOnly.FromDateTime(DateTime.Now)), - new(3, "Do the laundry", DateOnly.FromDateTime(DateTime.Now.AddDays(1))), - new(4, "Clean the bathroom"), - new(5, "Clean the car", DateOnly.FromDateTime(DateTime.Now.AddDays(2))) - ]; - - return (Results, NotFound>) - (sampleTodos.FirstOrDefault(a => a.Id == id) is Todo todo - ? Results.Ok(todo) - : Results.NotFound()); + return sampleTodos.FirstOrDefault(a => a.Id == id) is Todo todo + ? TypedResults.Ok(todo) + : TypedResults.NotFound(); } - - //static async Task,error> CallNativeCodeAsync(int n1,int n2,CancellationToken ct) - //{ - // //call to C++ function - // try - // { - // var t = await Task.Run(() => RevifyFacade.Logger_testSuma(n1, n2)); - // return Results.Ok(t); - // } - // catch - // { - // throw; - // } - //} } } diff --git a/TestRevify.Api/Extensions/RegisterEndpointExtension.cs b/TestRevify.Api/Extensions/RegisterEndpointExtension.cs index 5050f7e..f9da419 100644 --- a/TestRevify.Api/Extensions/RegisterEndpointExtension.cs +++ b/TestRevify.Api/Extensions/RegisterEndpointExtension.cs @@ -14,13 +14,13 @@ public static class RegisterEndpointExtension /// public static IServiceCollection AddEndpoints(this IServiceCollection services, Assembly assembly) { - ServiceDescriptor[] serviceDescriptors = [.. assembly - .DefinedTypes - .Where(type => type is { IsAbstract: false, IsInterface: false } && - type.IsAssignableTo(typeof(IEndpoint))) - .Select(type => ServiceDescriptor.Transient(typeof(IEndpoint), type))]; + //ServiceDescriptor[] serviceDescriptors = [.. assembly + // .DefinedTypes + // .Where(type => type is { IsAbstract: false, IsInterface: false } && + // type.IsAssignableTo(typeof(IEndpoint))) + // .Select(type => ServiceDescriptor.Transient(typeof(IEndpoint), type))]; - services.TryAddEnumerable(serviceDescriptors); + //services.TryAddEnumerable(serviceDescriptors); return services; } @@ -31,7 +31,7 @@ public static IServiceCollection AddEndpoints(this IServiceCollection services, /// /// /// - public static IApplicationBuilder MapEndpoints(this WebApplication app, RouteGroupBuilder routeGroupBuilder = null) + public static IApplicationBuilder MapEndpoints(this WebApplication app, RouteGroupBuilder routeGroupBuilder) { IEnumerable endpoints = app.Services .GetRequiredService>(); diff --git a/TestRevify.Api/Middlewares/GlobalExceptionHandler.cs b/TestRevify.Api/Middlewares/GlobalExceptionHandler.cs new file mode 100644 index 0000000..29ed397 --- /dev/null +++ b/TestRevify.Api/Middlewares/GlobalExceptionHandler.cs @@ -0,0 +1,5 @@ +namespace TestRevify.Api.Middlewares; + +public class GlobalExceptionHandler +{ +} diff --git a/TestRevify.Api/OTL/OtlSetupExtensions.cs b/TestRevify.Api/OTL/OtlSetupExtensions.cs index 0f4330d..f9b121d 100644 --- a/TestRevify.Api/OTL/OtlSetupExtensions.cs +++ b/TestRevify.Api/OTL/OtlSetupExtensions.cs @@ -9,72 +9,47 @@ public static class OtlSetupExtensions public static IServiceCollection RegisterOtl(this IServiceCollection services, string serviceName) { services.AddSingleton(); - - //services.AddOpenTelemetry() - // .WithTracing(tracing => tracing - // .AddSource(Instrumentor.ServiceName) - // .ConfigureResource(resource => resource - // .AddService(Instrumentor.ServiceName)) - // .AddAspNetCoreInstrumentation() - // .AddHttpClientInstrumentation() - // .AddOtlpExporter(options => - // { - // options.Endpoint = new Uri("http://localhost:") - // })) - // .WithMetrics(metrics => metrics - // .AddMeter(Instrumentor.ServiceName) - // .ConfigureResource(resource => resource - // .AddService(Instrumentor.ServiceName)) - // .AddRuntimeInstrumentation() - // .AddAspNetCoreInstrumentation() - // //.AddProcessInstrumentation() - // .AddHttpClientInstrumentation() - // //.AddEventCountersInstrumentation(c => - // //{ - // // // https://learn.microsoft.com/en-us/dotnet/core/diagnostics/available-counters - // // c.AddEventSources( - // // "Microsoft.AspNetCore.Hosting", - // // "Microsoft-AspNetCore-Server-Kestrel", - // // "System.Net.Http", - // // "System.Net.Sockets"); - // //}) - // .AddOtlpExporter()); - services.AddOpenTelemetry() - .WithTracing(tracerProviderBuilder => - { - tracerProviderBuilder - .AddSource(serviceName) - .SetResourceBuilder( - ResourceBuilder.CreateDefault() - .AddService(serviceName: serviceName)) - .AddAspNetCoreInstrumentation() // Rastrea peticiones entrantes - .AddHttpClientInstrumentation() // Rastrea llamadas salientes - .AddSource("MyApplicationActivitySource") - .AddOtlpExporter(o => - { - // El exportador OTLP enviará los datos al Collector - //o.Endpoint = new Uri("http://otel-collector:4317"); - o.Endpoint = new Uri("http://localhost:4317"); - }); - }) - .WithMetrics(meterProviderBuilder => - { - meterProviderBuilder - .SetResourceBuilder( - ResourceBuilder.CreateDefault() - .AddService(serviceName: serviceName)) - .AddAspNetCoreInstrumentation() - .AddHttpClientInstrumentation() - .AddRuntimeInstrumentation() - .AddProcessInstrumentation() - .AddOtlpExporter(o => - { - //o.Endpoint = new Uri("http://otel-collector:4317"); - o.Endpoint = new Uri("http://localhost:4317"); - }); - }) - ; + .WithTracing(tracerProviderBuilder => + { + tracerProviderBuilder + .AddSource(serviceName) + .SetResourceBuilder( + ResourceBuilder.CreateDefault() + .AddService(serviceName: serviceName)) + .AddAspNetCoreInstrumentation() // Rastrea peticiones entrantes + .AddHttpClientInstrumentation() // Rastrea llamadas salientes + .AddSource("MyApplicationActivitySource") + .AddOtlpExporter(o => + { +#if DEBUG + // El exportador OTLP enviará los datos al Collector + o.Endpoint = new Uri("http://localhost:4317"); +#else + o.Endpoint = new Uri("http://otel-collector:4317"); +#endif + }); + }) + .WithMetrics(meterProviderBuilder => + { + meterProviderBuilder + .SetResourceBuilder( + ResourceBuilder.CreateDefault() + .AddService(serviceName: serviceName)) + .AddAspNetCoreInstrumentation() + .AddHttpClientInstrumentation() + .AddRuntimeInstrumentation() + .AddProcessInstrumentation() + .AddOtlpExporter(o => + { +#if DEBUG + // El exportador OTLP enviará los datos al Collector + o.Endpoint = new Uri("http://localhost:4317"); +#else + o.Endpoint = new Uri("http://otel-collector:4317"); +#endif + }); + }); return services; } diff --git a/TestRevify.Api/Program.cs b/TestRevify.Api/Program.cs index 249f558..e0f2938 100644 --- a/TestRevify.Api/Program.cs +++ b/TestRevify.Api/Program.cs @@ -2,15 +2,14 @@ using Serilog; using System.Text.Json.Serialization; using TestRevify.Api.Endpoints; -using TestRevify.Api.Endpoints.Base; using TestRevify.Api.Workers; using TestRevify.Api.OTL; using Serilog.Enrichers.Span; var serviceName = "WebApi"; var builder = WebApplication.CreateSlimBuilder(args); -const string outputTemplate = - "[{Level:w}]: {Timestamp:dd-MM-yyyy:HH:mm:ss} {MachineName} {EnvironmentName} {SourceContext} {Message}{NewLine}{Exception}"; +//const string outputTemplate = +// "[{Level:w}]: {Timestamp:dd-MM-yyyy:HH:mm:ss} {MachineName} {EnvironmentName} {SourceContext} {Message}{NewLine}{Exception}"; builder.Logging.ClearProviders(); @@ -22,9 +21,11 @@ .WriteTo.Console() .WriteTo.OpenTelemetry(options => { - // El exportador OTLP enviar los datos al Collector - //options.Endpoint = "http://otel-collector:4317"; +#if DEBUG options.Endpoint = "http://localhost:4317"; +#else + options.Endpoint = "http://otel-collector:4317"; +#endif options.Protocol = Serilog.Sinks.OpenTelemetry.OtlpProtocol.Grpc; options.ResourceAttributes = new Dictionary { @@ -63,8 +64,7 @@ { options .WithTheme(ScalarTheme.Kepler) - .WithLayout(ScalarLayout.Modern) - .WithFavicon("https://scalar.com/logo-light.svg"); + .WithLayout(ScalarLayout.Modern); }); app.UseHttpsRedirection(); diff --git a/TestRevify.Api/Properties/launchSettings.json b/TestRevify.Api/Properties/launchSettings.json index 7affc28..9da481e 100644 --- a/TestRevify.Api/Properties/launchSettings.json +++ b/TestRevify.Api/Properties/launchSettings.json @@ -15,7 +15,7 @@ "launchBrowser": true, "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/scalar", "environmentVariables": { - "ASPNETCORE_HTTP_PORTS": "8080" + "ASPNETCORE_HTTP_PORTS": "80" }, "publishAllPorts": true, "useSSL": false From ee021b439de497e42f63f6941167e1e9815fba1b Mon Sep 17 00:00:00 2001 From: "IRC-A\\anavarro" Date: Thu, 25 Sep 2025 16:45:45 +0200 Subject: [PATCH 2/4] Cleanup files --- .../Dockerfiles/tmp/grafana/grafana.db | Bin 1163264 -> 0 bytes .../1382cadfeb81ccdaa67d.svg | 2 - .../plugins/grafana-exploretraces-app/150.js | 2 - .../grafana-exploretraces-app/150.js.map | 1 - .../plugins/grafana-exploretraces-app/190.js | 2 - .../grafana-exploretraces-app/190.js.map | 1 - .../plugins/grafana-exploretraces-app/2.js | 2 - .../grafana-exploretraces-app/2.js.map | 1 - .../plugins/grafana-exploretraces-app/202.js | 8 - .../grafana-exploretraces-app/202.js.map | 1 - .../plugins/grafana-exploretraces-app/206.js | 2 - .../grafana-exploretraces-app/206.js.map | 1 - .../plugins/grafana-exploretraces-app/211.js | 41 - .../grafana-exploretraces-app/211.js.map | 1 - .../plugins/grafana-exploretraces-app/220.js | 2 - .../grafana-exploretraces-app/220.js.map | 1 - .../plugins/grafana-exploretraces-app/327.js | 2 - .../grafana-exploretraces-app/327.js.map | 1 - .../plugins/grafana-exploretraces-app/341.js | 2 - .../grafana-exploretraces-app/341.js.map | 1 - .../plugins/grafana-exploretraces-app/353.js | 2 - .../grafana-exploretraces-app/353.js.map | 1 - .../plugins/grafana-exploretraces-app/43.js | 3 - .../43.js.LICENSE.txt | 29 - .../grafana-exploretraces-app/43.js.map | 1 - .../plugins/grafana-exploretraces-app/535.js | 2 - .../grafana-exploretraces-app/535.js.map | 1 - .../plugins/grafana-exploretraces-app/549.js | 2 - .../grafana-exploretraces-app/549.js.map | 1 - .../plugins/grafana-exploretraces-app/582.js | 2 - .../grafana-exploretraces-app/582.js.map | 1 - .../plugins/grafana-exploretraces-app/64.js | 2 - .../grafana-exploretraces-app/64.js.map | 1 - .../plugins/grafana-exploretraces-app/644.js | 2 - .../grafana-exploretraces-app/644.js.map | 1 - .../plugins/grafana-exploretraces-app/660.js | 2 - .../grafana-exploretraces-app/660.js.map | 1 - .../plugins/grafana-exploretraces-app/697.js | 2 - .../grafana-exploretraces-app/697.js.map | 1 - .../plugins/grafana-exploretraces-app/70.js | 2 - .../grafana-exploretraces-app/70.js.map | 1 - .../plugins/grafana-exploretraces-app/722.js | 2 - .../grafana-exploretraces-app/722.js.map | 1 - .../plugins/grafana-exploretraces-app/74.js | 2 - .../grafana-exploretraces-app/74.js.map | 1 - .../plugins/grafana-exploretraces-app/766.js | 2 - .../grafana-exploretraces-app/766.js.map | 1 - .../plugins/grafana-exploretraces-app/767.js | 2 - .../grafana-exploretraces-app/767.js.map | 1 - .../plugins/grafana-exploretraces-app/812.js | 2 - .../grafana-exploretraces-app/812.js.map | 1 - .../plugins/grafana-exploretraces-app/876.js | 2 - .../grafana-exploretraces-app/876.js.map | 1 - .../944c737f589d02ecf603.svg | 67 - .../plugins/grafana-exploretraces-app/980.js | 2 - .../grafana-exploretraces-app/980.js.map | 1 - .../grafana-exploretraces-app/CHANGELOG.md | 164 - .../plugins/grafana-exploretraces-app/LICENSE | 661 -- .../grafana-exploretraces-app/MANIFEST.txt | 94 - .../grafana-exploretraces-app/README.md | 107 - .../states/EmptyState/img/grot-404-dark.svg | 67 - .../states/EmptyState/img/grot-404-light.svg | 68 - .../e79edcfbe2068fae2364.svg | 68 - .../img/errors-metric-flow.png | Bin 943127 -> 0 bytes .../img/errors-root-cause.png | Bin 1090307 -> 0 bytes .../img/histogram-breakdown.png | Bin 464856 -> 0 bytes .../grafana-exploretraces-app/img/logo.svg | 2 - .../grafana-exploretraces-app/module.js | 3 - .../grafana-exploretraces-app/module.js.map | 1 - .../grafana-exploretraces-app/plugin.json | 122 - .../test-responses/service-struct.json | 6143 ----------------- .../087755a1246f96c42579.svg | 1 - .../0b7992cbbccaaaabfb4e.svg | 1 - .../1759fd27b2c9f73dea05.wasm | Bin 190779 -> 0 bytes .../2168a10beed690100fcb.svg | 2 - .../26a78975976a604ba774.svg | 2 - .../2946a9608ee7f2b5f618.svg | 1 - .../plugins/grafana-lokiexplore-app/328.js | 2 - .../grafana-lokiexplore-app/328.js.map | 1 - .../3982c6482f693636d827.svg | 1 - .../3cf91cbcfc3c94965931.svg | 1 - .../3d7fda5219d0a128c3a7.svg | 2 - .../3d96a93cfcb32df74eef.svg | 1 - .../45984fdddc778c4b7076.svg | 1 - .../plugins/grafana-lokiexplore-app/470.js | 3 - .../470.js.LICENSE.txt | 10 - .../grafana-lokiexplore-app/470.js.map | 1 - .../plugins/grafana-lokiexplore-app/546.js | 2 - .../grafana-lokiexplore-app/546.js.map | 1 - .../5ff755573093d28cbf2b.svg | 1 - .../6327ceb22fede245e36b.svg | 1 - .../649058283f564041551d.wasm | Bin 201435 -> 0 bytes .../plugins/grafana-lokiexplore-app/677.js | 2 - .../grafana-lokiexplore-app/677.js.map | 1 - .../plugins/grafana-lokiexplore-app/7.js | 119 - .../plugins/grafana-lokiexplore-app/7.js.map | 1 - .../plugins/grafana-lokiexplore-app/727.js | 52 - .../grafana-lokiexplore-app/727.js.map | 1 - .../plugins/grafana-lokiexplore-app/767.js | 2 - .../grafana-lokiexplore-app/767.js.map | 1 - .../7c69e09a44ae38215563.svg | 1 - .../plugins/grafana-lokiexplore-app/82.js | 2 - .../plugins/grafana-lokiexplore-app/82.js.map | 1 - .../plugins/grafana-lokiexplore-app/826.js | 8 - .../grafana-lokiexplore-app/826.js.map | 1 - .../plugins/grafana-lokiexplore-app/854.js | 2 - .../grafana-lokiexplore-app/854.js.map | 1 - .../85b746ba2cec564b9a89.svg | 1 - .../plugins/grafana-lokiexplore-app/864.js | 2 - .../grafana-lokiexplore-app/864.js.map | 1 - .../8a289c3c1e2e6710580c.svg | 2 - .../8de041fb65ff0bb36133.svg | 1 - .../plugins/grafana-lokiexplore-app/906.js | 3 - .../906.js.LICENSE.txt | 14 - .../grafana-lokiexplore-app/906.js.map | 1 - .../plugins/grafana-lokiexplore-app/919.js | 2 - .../grafana-lokiexplore-app/919.js.map | 1 - .../plugins/grafana-lokiexplore-app/944.js | 2 - .../grafana-lokiexplore-app/944.js.map | 1 - .../grafana-lokiexplore-app/CHANGELOG.md | 699 -- .../plugins/grafana-lokiexplore-app/LICENSE | 661 -- .../grafana-lokiexplore-app/MANIFEST.txt | 120 - .../plugins/grafana-lokiexplore-app/README.md | 38 - .../a02d697b42ff5ef7323b.svg | 1 - .../b6946652df0df52a6ebf.svg | 1 - .../bd5bafea986ef624f050.svg | 1 - .../da86b141436a1efb9287.svg | 1 - .../f0b5af7b8afc5505b70a.svg | 2 - .../f4a80ec106902b21468c.svg | 1 - .../f6f180a5b21afe1799fd.svg | 1 - .../fca8b87950e835f73012.svg | 1 - .../img/drilldown-features.png | Bin 208476 -> 0 bytes .../img/explore-logs-features.jpeg | Bin 996518 -> 0 bytes .../grafana-lokiexplore-app/img/fields.png | Bin 2825845 -> 0 bytes .../grafana-lokiexplore-app/img/grot_err.svg | 78 - .../img/grot_err_light.svg | 78 - .../grafana-lokiexplore-app/img/grot_loki.svg | 272 - .../img/icons/dark/copy--hover.svg | 1 - .../img/icons/dark/copy.svg | 1 - .../img/icons/dark/eye--hover.svg | 1 - .../img/icons/dark/eye.svg | 1 - .../img/icons/dark/search-minus--hover.svg | 1 - .../img/icons/dark/search-minus.svg | 1 - .../img/icons/dark/search-plus--hover.svg | 2 - .../img/icons/dark/search-plus.svg | 2 - .../img/icons/dark/share-alt--hover.svg | 1 - .../img/icons/dark/share-alt.svg | 1 - .../img/icons/eye--active.svg | 1 - .../img/icons/light/copy--hover.svg | 1 - .../img/icons/light/copy.svg | 1 - .../img/icons/light/eye--hover.svg | 1 - .../img/icons/light/eye.svg | 1 - .../img/icons/light/search-minus--hover.svg | 1 - .../img/icons/light/search-minus.svg | 1 - .../img/icons/light/search-plus--hover.svg | 2 - .../img/icons/light/search-plus.svg | 2 - .../img/icons/light/share-alt--hover.svg | 1 - .../img/icons/light/share-alt.svg | 1 - .../img/icons/search-minus--active.svg | 1 - .../img/icons/search-plus--active.svg | 2 - .../grafana-lokiexplore-app/img/logo.svg | 1 - .../grafana-lokiexplore-app/img/patterns.png | Bin 597876 -> 0 bytes .../img/service_logs.jpg | Bin 311278 -> 0 bytes .../grafana-lokiexplore-app/img/table.png | Bin 2719883 -> 0 bytes .../plugins/grafana-lokiexplore-app/module.js | 3 - .../grafana-lokiexplore-app/module.js.map | 1 - .../grafana-lokiexplore-app/plugin.json | 107 - .../grafana-metricsdrilldown-app/14.js | 3 - .../14.js.LICENSE.txt | 14 - .../grafana-metricsdrilldown-app/14.js.map | 1 - .../grafana-metricsdrilldown-app/140.js | 2 - .../grafana-metricsdrilldown-app/140.js.map | 1 - .../grafana-metricsdrilldown-app/351.js | 2 - .../grafana-metricsdrilldown-app/351.js.map | 1 - .../5e493d758066ba82f810.wasm | Bin 203253 -> 0 bytes .../grafana-metricsdrilldown-app/605.js | 160 - .../grafana-metricsdrilldown-app/605.js.map | 1 - .../grafana-metricsdrilldown-app/619.js | 2 - .../grafana-metricsdrilldown-app/619.js.map | 1 - .../grafana-metricsdrilldown-app/767.js | 2 - .../grafana-metricsdrilldown-app/767.js.map | 1 - .../grafana-metricsdrilldown-app/78.js | 2 - .../grafana-metricsdrilldown-app/78.js.map | 1 - .../grafana-metricsdrilldown-app/792.js | 2 - .../grafana-metricsdrilldown-app/792.js.map | 1 - .../grafana-metricsdrilldown-app/944.js | 2 - .../grafana-metricsdrilldown-app/944.js.map | 1 - .../grafana-metricsdrilldown-app/CHANGELOG.md | 113 - .../grafana-metricsdrilldown-app/LICENSE | 661 -- .../grafana-metricsdrilldown-app/MANIFEST.txt | 55 - .../grafana-metricsdrilldown-app/README.md | 29 - .../ac01ecbc64128d2f3e68.svg | 1 - .../img/breakdown.png | Bin 1046098 -> 0 bytes .../grafana-metricsdrilldown-app/img/logo.svg | 1 - .../img/metrics-drilldown.png | Bin 1053947 -> 0 bytes .../grafana-metricsdrilldown-app/module.js | 3 - .../module.js.map | 1 - .../grafana-metricsdrilldown-app/plugin.json | 98 - .../plugins/grafana-pyroscope-app/133.js | 963 --- .../plugins/grafana-pyroscope-app/133.js.map | 1 - .../plugins/grafana-pyroscope-app/516.js | 3 - .../grafana-pyroscope-app/516.js.LICENSE.txt | 30 - .../plugins/grafana-pyroscope-app/516.js.map | 1 - .../944c737f589d02ecf603.svg | 67 - .../grafana-pyroscope-app/CHANGELOG.md | 543 -- .../plugins/grafana-pyroscope-app/LICENSE | 661 -- .../grafana-pyroscope-app/MANIFEST.txt | 53 - .../plugins/grafana-pyroscope-app/README.md | 58 - .../e6c722427cfa8715e19d.svg | 15 - .../e79edcfbe2068fae2364.svg | 68 - .../img/58f0b0e1cfa063e4b662.png | Bin 307262 -> 0 bytes .../img/61b4cf746a6f58780f27.png | Bin 3599 -> 0 bytes .../img/8cdf4d2e2df8326311ab.gif | Bin 174077 -> 0 bytes .../img/9c9cdd5175734d579007.png | Bin 4262 -> 0 bytes .../img/bafee50693eb02088442.png | Bin 3256 -> 0 bytes .../img/decrease-latency.png | Bin 3599 -> 0 bytes .../img/diff-view-how-to.gif | Bin 174077 -> 0 bytes .../grafana-pyroscope-app/img/hero-image.png | Bin 307262 -> 0 bytes .../grafana-pyroscope-app/img/logo.svg | 15 - .../img/reduce-costs.png | Bin 4262 -> 0 bytes .../img/resolve-incidents.png | Bin 3256 -> 0 bytes .../plugins/grafana-pyroscope-app/module.js | 3 - .../grafana-pyroscope-app/module.js.map | 1 - .../SceneEmptyState/ui/img/grot-404-dark.svg | 67 - .../SceneEmptyState/ui/img/grot-404-light.svg | 68 - .../plugins/grafana-pyroscope-app/plugin.json | 86 - .../profile-metrics/profile-metrics.json | 162 - .../Dockerfiles/tmp/prometheus/queries.active | Bin 20001 -> 0 bytes 228 files changed, 14105 deletions(-) delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/grafana.db delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/1382cadfeb81ccdaa67d.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/150.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/150.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/190.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/190.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/2.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/2.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/202.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/202.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/206.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/206.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/211.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/211.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/220.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/220.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/327.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/327.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/341.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/341.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/353.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/353.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/43.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/43.js.LICENSE.txt delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/43.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/535.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/535.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/549.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/549.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/582.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/582.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/64.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/64.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/644.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/644.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/660.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/660.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/697.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/697.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/70.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/70.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/722.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/722.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/74.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/74.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/766.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/766.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/767.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/767.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/812.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/812.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/876.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/876.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/944c737f589d02ecf603.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/980.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/980.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/CHANGELOG.md delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/LICENSE delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/MANIFEST.txt delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/README.md delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/components/states/EmptyState/img/grot-404-dark.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/components/states/EmptyState/img/grot-404-light.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/e79edcfbe2068fae2364.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/img/errors-metric-flow.png delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/img/errors-root-cause.png delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/img/histogram-breakdown.png delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/img/logo.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/module.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/module.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/plugin.json delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/utils/trace-merge/test-responses/service-struct.json delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/087755a1246f96c42579.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/0b7992cbbccaaaabfb4e.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/1759fd27b2c9f73dea05.wasm delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/2168a10beed690100fcb.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/26a78975976a604ba774.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/2946a9608ee7f2b5f618.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/328.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/328.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/3982c6482f693636d827.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/3cf91cbcfc3c94965931.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/3d7fda5219d0a128c3a7.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/3d96a93cfcb32df74eef.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/45984fdddc778c4b7076.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/470.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/470.js.LICENSE.txt delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/470.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/546.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/546.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/5ff755573093d28cbf2b.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/6327ceb22fede245e36b.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/649058283f564041551d.wasm delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/677.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/677.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/7.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/7.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/727.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/727.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/767.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/767.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/7c69e09a44ae38215563.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/82.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/82.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/826.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/826.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/854.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/854.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/85b746ba2cec564b9a89.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/864.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/864.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/8a289c3c1e2e6710580c.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/8de041fb65ff0bb36133.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/906.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/906.js.LICENSE.txt delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/906.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/919.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/919.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/944.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/944.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/CHANGELOG.md delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/LICENSE delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/MANIFEST.txt delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/README.md delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/a02d697b42ff5ef7323b.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/b6946652df0df52a6ebf.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/bd5bafea986ef624f050.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/da86b141436a1efb9287.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/f0b5af7b8afc5505b70a.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/f4a80ec106902b21468c.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/f6f180a5b21afe1799fd.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/fca8b87950e835f73012.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/drilldown-features.png delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/explore-logs-features.jpeg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/fields.png delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/grot_err.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/grot_err_light.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/grot_loki.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/dark/copy--hover.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/dark/copy.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/dark/eye--hover.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/dark/eye.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/dark/search-minus--hover.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/dark/search-minus.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/dark/search-plus--hover.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/dark/search-plus.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/dark/share-alt--hover.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/dark/share-alt.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/eye--active.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/light/copy--hover.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/light/copy.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/light/eye--hover.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/light/eye.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/light/search-minus--hover.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/light/search-minus.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/light/search-plus--hover.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/light/search-plus.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/light/share-alt--hover.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/light/share-alt.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/search-minus--active.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/icons/search-plus--active.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/logo.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/patterns.png delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/service_logs.jpg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/img/table.png delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/module.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/module.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-lokiexplore-app/plugin.json delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/14.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/14.js.LICENSE.txt delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/14.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/140.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/140.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/351.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/351.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/5e493d758066ba82f810.wasm delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/605.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/605.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/619.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/619.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/767.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/767.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/78.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/78.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/792.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/792.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/944.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/944.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/CHANGELOG.md delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/LICENSE delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/MANIFEST.txt delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/README.md delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/ac01ecbc64128d2f3e68.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/img/breakdown.png delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/img/logo.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/img/metrics-drilldown.png delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/module.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/module.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-metricsdrilldown-app/plugin.json delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/133.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/133.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/516.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/516.js.LICENSE.txt delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/516.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/944c737f589d02ecf603.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/CHANGELOG.md delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/LICENSE delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/MANIFEST.txt delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/README.md delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/e6c722427cfa8715e19d.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/e79edcfbe2068fae2364.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/img/58f0b0e1cfa063e4b662.png delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/img/61b4cf746a6f58780f27.png delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/img/8cdf4d2e2df8326311ab.gif delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/img/9c9cdd5175734d579007.png delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/img/bafee50693eb02088442.png delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/img/decrease-latency.png delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/img/diff-view-how-to.gif delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/img/hero-image.png delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/img/logo.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/img/reduce-costs.png delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/img/resolve-incidents.png delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/module.js delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/module.js.map delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/pages/ProfilesExplorerView/components/SceneByVariableRepeaterGrid/components/SceneEmptyState/ui/img/grot-404-dark.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/pages/ProfilesExplorerView/components/SceneByVariableRepeaterGrid/components/SceneEmptyState/ui/img/grot-404-light.svg delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/plugin.json delete mode 100644 TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-pyroscope-app/shared/infrastructure/profile-metrics/profile-metrics.json delete mode 100644 TestRevify.Api/Dockerfiles/tmp/prometheus/queries.active diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/grafana.db b/TestRevify.Api/Dockerfiles/tmp/grafana/grafana.db deleted file mode 100644 index 6d6340f3475cca5d764be2ef95db5381324ad630..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1163264 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¨g#GdN4qxMBb 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

ld?ut^As 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 - \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/150.js b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/150.js deleted file mode 100644 index b4320c3..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/150.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[150],{5150:(e,a,r)=>{r.r(a),r.d(a,{default:()=>o});var o={"grafana-scenes":{components:{"adhoc-filter-pill":{"edit-filter-with-key":"Editar filtro com chave {{keyLabel}}","managed-filter":"Filtro gerenciado de {{origin}}","remove-filter-with-key":"Remover filtro com chave {{keyLabel}}"},"adhoc-filters-combobox":{"remove-filter-value":"Remover valor do filtro: {{itemLabel}}","use-custom-value":"Usar valor personalizado: {{itemLabel}}"},"fallback-page":{content:"Se você chegou aqui usando um link, pode haver um bug neste aplicativo.",subTitle:"O URL não corresponde a nenhuma página",title:"Não encontrado"},"nested-scene-renderer":{"collapse-button-label":"Recolher cena","expand-button-label":"Expandir cena","remove-button-label":"Remover cena"},"scene-debugger":{"object-details":"Detalhes do objeto","scene-graph":"Gráfico de cena","title-scene-debugger":"Depurador de cena"},"scene-grid-row":{"collapse-row":"Recolher linha","expand-row":"Expandir linha"},"scene-time-range-compare-renderer":{"button-label":"Comparação","button-tooltip":"Ativar comparação de intervalo de tempo"},splitter:{"aria-label-pane-resize-widget":"Widget de redimensionamento do painel"},"viz-panel":{title:{title:"Título"}},"viz-panel-explore-button":{explore:"Explorar"},"viz-panel-renderer":{"loading-plugin-panel":"Carregando painel do plug-in…","panel-plugin-has-no-panel-component":"O plug-in do painel não possui componente de painel"},"viz-panel-series-limit":{"content-rendering-series-single-panel-impact-performance":"Renderizar muitas séries em um único painel pode afetar o desempenho e dificultar a leitura dos dados.","warning-message":"Mostrando apenas {{seriesLimit}} série(s)"}},utils:{"controls-label":{"tooltip-remove":"Remover"},"loading-indicator":{"content-cancel-query":"Cancelar consulta"}},variables:{"ad-hoc-combobox":{"aria-label-edit-filter-operator":"Editar operador de filtro"},"ad-hoc-filter-builder":{"aria-label-add-filter":"Adicionar filtro","title-add-filter":"Adicionar filtro"},"ad-hoc-filter-renderer":{"aria-label-remove-filter":"Remover filtro","key-select":{"placeholder-select-label":"Selecionar rótulo"},"label-select-label":"Selecionar rótulo","title-remove-filter":"Remover filtro","value-select":{"placeholder-select-value":"Selecionar valor"}},"data-source-variable":{label:{default:"padrão"}},"default-group-by-custom-indicator-container":{"aria-label-clear":"limpar",tooltip:"Aplicado por padrão neste painel. Se editado, ele é transferido para outros painéis.","tooltip-restore-groupby-set-by-this-dashboard":"Restaura a função groupby definida por este painel."},"format-registry":{formats:{description:{"commaseparated-values":"Valores separados por vírgula","double-quoted-values":"Valores entre aspas duplas","format-date-in-different-ways":"Formatar data de diferentes maneiras","format-multivalued-variables-using-syntax-example":"Formatar variáveis de múltiplos valores usando a sintaxe glob. Por exemplo: {value1,value2}","html-escaping-of-values":"Escape HTML de valores","json-stringify-value":"Valor convertido em string JSON","keep-value-as-is":"Manter o valor como está","multiple-values-are-formatted-like-variablevalue":"Vários valores são formatados como variável=valor","single-quoted-values":"Valores entre aspas simples","useful-escaping-values-taking-syntax-characters":"Útil para valores de escape de URL, levando em consideração caracteres de sintaxe URI","useful-for-url-escaping-values":"Útil para valores de escape de URL","values-are-separated-by-character":'Os valores são separados pelo caractere "|"'}}},"group-by-variable-renderer":{"aria-label-group-by-selector":"Agrupar por seletor","placeholder-group-by-label":"Agrupar por rótulo"},"interval-variable":{"placeholder-select-value":"Selecionar valor"},"loading-options-placeholder":{"loading-options":"Carregando opções…"},"multi-value-apply-button":{apply:"Aplicar"},"no-options-placeholder":{"no-options-found":"Nenhuma opção encontrada"},"options-error-placeholder":{"error-occurred-fetching-labels-click-retry":"Ocorreu um erro ao buscar rótulos. Clique para tentar novamente"},"test-object-with-variable-dependency":{title:{hello:"Olá"}},"test-variable":{text:{text:"Texto"}},"variable-value-input":{"placeholder-enter-value":"Digite um valor"},"variable-value-select":{"placeholder-select-value":"Selecionar valor"}}}}}}]); -//# sourceMappingURL=150.js.map?_cache=a99ca9bc52a47e729056 \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/150.js.map b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/150.js.map deleted file mode 100644 index 056883d..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/150.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"150.js?_cache=a99ca9bc52a47e729056","mappings":"mKAAA,IAAIA,EAAgB,CACnB,iBAAkB,CAClBC,WAAY,CACX,oBAAqB,CACpB,uBAAwB,uCACxB,iBAAkB,kCAClB,yBAA0B,yCAE3B,yBAA0B,CACzB,sBAAuB,yCACvB,mBAAoB,2CAErB,gBAAiB,CAChBC,QAAS,0EACTC,SAAU,yCACVC,MAAO,kBAER,wBAAyB,CACxB,wBAAyB,gBACzB,sBAAuB,gBACvB,sBAAuB,gBAExB,iBAAkB,CACjB,iBAAkB,qBAClB,cAAe,kBACf,uBAAwB,qBAEzB,iBAAkB,CACjB,eAAgB,iBAChB,aAAc,kBAEf,oCAAqC,CACpC,eAAgB,aAChB,iBAAkB,2CAEnBC,SAAU,CACT,gCAAiC,yCAElC,YAAa,CACZD,MAAO,CACNA,MAAO,WAGT,2BAA4B,CAC3BE,QAAS,YAEV,qBAAsB,CACrB,uBAAwB,gCACxB,sCAAuC,uDAExC,yBAA0B,CACzB,2DAA4D,yGAC5D,kBAAmB,8CAGrBC,MAAO,CACN,iBAAkB,CACjB,iBAAkB,WAEnB,oBAAqB,CACpB,uBAAwB,sBAG1BC,UAAW,CACV,kBAAmB,CAClB,kCAAmC,6BAEpC,wBAAyB,CACxB,wBAAyB,mBACzB,mBAAoB,oBAErB,yBAA0B,CACzB,2BAA4B,iBAC5B,aAAc,CACb,2BAA4B,qBAE7B,qBAAsB,oBACtB,sBAAuB,iBACvB,eAAgB,CACf,2BAA4B,qBAG9B,uBAAwB,CACvBC,MAAO,CACN,QAAW,WAGb,8CAA+C,CAC9C,mBAAoB,SACpBC,QAAS,uFACT,gDAAiD,uDAElD,kBAAmB,CAClBC,QAAS,CACRC,YAAa,CACZ,wBAAyB,gCACzB,uBAAwB,6BACxB,gCAAiC,uCACjC,oDAAqD,8FACrD,0BAA2B,yBAC3B,uBAAwB,kCACxB,mBAAoB,2BACpB,mDAAoD,oDACpD,uBAAwB,8BACxB,kDAAmD,wFACnD,iCAAkC,qCAClC,oCAAqC,iDAIxC,6BAA8B,CAC7B,+BAAgC,sBAChC,6BAA8B,sBAE/B,oBAAqB,CACpB,2BAA4B,oBAE7B,8BAA+B,CAC9B,kBAAmB,sBAEpB,2BAA4B,CAC3BC,MAAO,WAER,yBAA0B,CACzB,mBAAoB,4BAErB,4BAA6B,CAC5B,6CAA8C,mEAE/C,uCAAwC,CACvCT,MAAO,CACNU,MAAO,QAGT,gBAAiB,CAChBC,KAAM,CACLA,KAAM,UAGR,uBAAwB,CACvB,0BAA2B,mBAE5B,wBAAyB,CACxB,2BAA4B,sB","sources":["webpack://grafana-exploretraces-app/../node_modules/@grafana/scenes/dist/esm/locales/pt-BR/grafana-scenes.json.js"],"sourcesContent":["var grafanaScenes = {\n\t\"grafana-scenes\": {\n\tcomponents: {\n\t\t\"adhoc-filter-pill\": {\n\t\t\t\"edit-filter-with-key\": \"Editar filtro com chave {{keyLabel}}\",\n\t\t\t\"managed-filter\": \"Filtro gerenciado de {{origin}}\",\n\t\t\t\"remove-filter-with-key\": \"Remover filtro com chave {{keyLabel}}\"\n\t\t},\n\t\t\"adhoc-filters-combobox\": {\n\t\t\t\"remove-filter-value\": \"Remover valor do filtro: {{itemLabel}}\",\n\t\t\t\"use-custom-value\": \"Usar valor personalizado: {{itemLabel}}\"\n\t\t},\n\t\t\"fallback-page\": {\n\t\t\tcontent: \"Se você chegou aqui usando um link, pode haver um bug neste aplicativo.\",\n\t\t\tsubTitle: \"O URL não corresponde a nenhuma página\",\n\t\t\ttitle: \"Não encontrado\"\n\t\t},\n\t\t\"nested-scene-renderer\": {\n\t\t\t\"collapse-button-label\": \"Recolher cena\",\n\t\t\t\"expand-button-label\": \"Expandir cena\",\n\t\t\t\"remove-button-label\": \"Remover cena\"\n\t\t},\n\t\t\"scene-debugger\": {\n\t\t\t\"object-details\": \"Detalhes do objeto\",\n\t\t\t\"scene-graph\": \"Gráfico de cena\",\n\t\t\t\"title-scene-debugger\": \"Depurador de cena\"\n\t\t},\n\t\t\"scene-grid-row\": {\n\t\t\t\"collapse-row\": \"Recolher linha\",\n\t\t\t\"expand-row\": \"Expandir linha\"\n\t\t},\n\t\t\"scene-time-range-compare-renderer\": {\n\t\t\t\"button-label\": \"Comparação\",\n\t\t\t\"button-tooltip\": \"Ativar comparação de intervalo de tempo\"\n\t\t},\n\t\tsplitter: {\n\t\t\t\"aria-label-pane-resize-widget\": \"Widget de redimensionamento do painel\"\n\t\t},\n\t\t\"viz-panel\": {\n\t\t\ttitle: {\n\t\t\t\ttitle: \"Título\"\n\t\t\t}\n\t\t},\n\t\t\"viz-panel-explore-button\": {\n\t\t\texplore: \"Explorar\"\n\t\t},\n\t\t\"viz-panel-renderer\": {\n\t\t\t\"loading-plugin-panel\": \"Carregando painel do plug-in…\",\n\t\t\t\"panel-plugin-has-no-panel-component\": \"O plug-in do painel não possui componente de painel\"\n\t\t},\n\t\t\"viz-panel-series-limit\": {\n\t\t\t\"content-rendering-series-single-panel-impact-performance\": \"Renderizar muitas séries em um único painel pode afetar o desempenho e dificultar a leitura dos dados.\",\n\t\t\t\"warning-message\": \"Mostrando apenas {{seriesLimit}} série(s)\"\n\t\t}\n\t},\n\tutils: {\n\t\t\"controls-label\": {\n\t\t\t\"tooltip-remove\": \"Remover\"\n\t\t},\n\t\t\"loading-indicator\": {\n\t\t\t\"content-cancel-query\": \"Cancelar consulta\"\n\t\t}\n\t},\n\tvariables: {\n\t\t\"ad-hoc-combobox\": {\n\t\t\t\"aria-label-edit-filter-operator\": \"Editar operador de filtro\"\n\t\t},\n\t\t\"ad-hoc-filter-builder\": {\n\t\t\t\"aria-label-add-filter\": \"Adicionar filtro\",\n\t\t\t\"title-add-filter\": \"Adicionar filtro\"\n\t\t},\n\t\t\"ad-hoc-filter-renderer\": {\n\t\t\t\"aria-label-remove-filter\": \"Remover filtro\",\n\t\t\t\"key-select\": {\n\t\t\t\t\"placeholder-select-label\": \"Selecionar rótulo\"\n\t\t\t},\n\t\t\t\"label-select-label\": \"Selecionar rótulo\",\n\t\t\t\"title-remove-filter\": \"Remover filtro\",\n\t\t\t\"value-select\": {\n\t\t\t\t\"placeholder-select-value\": \"Selecionar valor\"\n\t\t\t}\n\t\t},\n\t\t\"data-source-variable\": {\n\t\t\tlabel: {\n\t\t\t\t\"default\": \"padrão\"\n\t\t\t}\n\t\t},\n\t\t\"default-group-by-custom-indicator-container\": {\n\t\t\t\"aria-label-clear\": \"limpar\",\n\t\t\ttooltip: \"Aplicado por padrão neste painel. Se editado, ele é transferido para outros painéis.\",\n\t\t\t\"tooltip-restore-groupby-set-by-this-dashboard\": \"Restaura a função groupby definida por este painel.\"\n\t\t},\n\t\t\"format-registry\": {\n\t\t\tformats: {\n\t\t\t\tdescription: {\n\t\t\t\t\t\"commaseparated-values\": \"Valores separados por vírgula\",\n\t\t\t\t\t\"double-quoted-values\": \"Valores entre aspas duplas\",\n\t\t\t\t\t\"format-date-in-different-ways\": \"Formatar data de diferentes maneiras\",\n\t\t\t\t\t\"format-multivalued-variables-using-syntax-example\": \"Formatar variáveis de múltiplos valores usando a sintaxe glob. Por exemplo: {value1,value2}\",\n\t\t\t\t\t\"html-escaping-of-values\": \"Escape HTML de valores\",\n\t\t\t\t\t\"json-stringify-value\": \"Valor convertido em string JSON\",\n\t\t\t\t\t\"keep-value-as-is\": \"Manter o valor como está\",\n\t\t\t\t\t\"multiple-values-are-formatted-like-variablevalue\": \"Vários valores são formatados como variável=valor\",\n\t\t\t\t\t\"single-quoted-values\": \"Valores entre aspas simples\",\n\t\t\t\t\t\"useful-escaping-values-taking-syntax-characters\": \"Útil para valores de escape de URL, levando em consideração caracteres de sintaxe URI\",\n\t\t\t\t\t\"useful-for-url-escaping-values\": \"Útil para valores de escape de URL\",\n\t\t\t\t\t\"values-are-separated-by-character\": \"Os valores são separados pelo caractere \\\"|\\\"\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"group-by-variable-renderer\": {\n\t\t\t\"aria-label-group-by-selector\": \"Agrupar por seletor\",\n\t\t\t\"placeholder-group-by-label\": \"Agrupar por rótulo\"\n\t\t},\n\t\t\"interval-variable\": {\n\t\t\t\"placeholder-select-value\": \"Selecionar valor\"\n\t\t},\n\t\t\"loading-options-placeholder\": {\n\t\t\t\"loading-options\": \"Carregando opções…\"\n\t\t},\n\t\t\"multi-value-apply-button\": {\n\t\t\tapply: \"Aplicar\"\n\t\t},\n\t\t\"no-options-placeholder\": {\n\t\t\t\"no-options-found\": \"Nenhuma opção encontrada\"\n\t\t},\n\t\t\"options-error-placeholder\": {\n\t\t\t\"error-occurred-fetching-labels-click-retry\": \"Ocorreu um erro ao buscar rótulos. Clique para tentar novamente\"\n\t\t},\n\t\t\"test-object-with-variable-dependency\": {\n\t\t\ttitle: {\n\t\t\t\thello: \"Olá\"\n\t\t\t}\n\t\t},\n\t\t\"test-variable\": {\n\t\t\ttext: {\n\t\t\t\ttext: \"Texto\"\n\t\t\t}\n\t\t},\n\t\t\"variable-value-input\": {\n\t\t\t\"placeholder-enter-value\": \"Digite um valor\"\n\t\t},\n\t\t\"variable-value-select\": {\n\t\t\t\"placeholder-select-value\": \"Selecionar valor\"\n\t\t}\n\t}\n}\n};\n\nexport { grafanaScenes as default };\n//# sourceMappingURL=grafana-scenes.json.js.map\n"],"names":["grafanaScenes","components","content","subTitle","title","splitter","explore","utils","variables","label","tooltip","formats","description","apply","hello","text"],"sourceRoot":""} \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/190.js b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/190.js deleted file mode 100644 index b4339da..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/190.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[190],{2190:(e,a,l)=>{l.r(a),l.d(a,{default:()=>r});var r={"grafana-scenes":{components:{"adhoc-filter-pill":{"edit-filter-with-key":"Editar filtro con la clave {{keyLabel}}","managed-filter":"Filtro gestionado de {{origin}}","remove-filter-with-key":"Eliminar filtro con la clave {{keyLabel}}"},"adhoc-filters-combobox":{"remove-filter-value":"Eliminar valor del filtro: {{itemLabel}}","use-custom-value":"Usar valor personalizado: {{itemLabel}}"},"fallback-page":{content:"Si ha llegado hasta aquí mediante un enlace, es posible que haya un error en esta aplicación.",subTitle:"La URL no coincide con ninguna página",title:"No se ha encontrado"},"nested-scene-renderer":{"collapse-button-label":"Contraer escena","expand-button-label":"Expandir escena","remove-button-label":"Eliminar escena"},"scene-debugger":{"object-details":"Detalles del objeto","scene-graph":"Gráfico de la escena","title-scene-debugger":"Depurador de escenas"},"scene-grid-row":{"collapse-row":"Contraer fila","expand-row":"Expandir fila"},"scene-time-range-compare-renderer":{"button-label":"Comparación","button-tooltip":"Habilitar comparación de intervalos de tiempo"},splitter:{"aria-label-pane-resize-widget":"Widget de cambio de tamaño del panel"},"viz-panel":{title:{title:"Título"}},"viz-panel-explore-button":{explore:"Explorar"},"viz-panel-renderer":{"loading-plugin-panel":"Cargando panel de plugins...","panel-plugin-has-no-panel-component":"El plugin del panel no tiene ningún componente de panel"},"viz-panel-series-limit":{"content-rendering-series-single-panel-impact-performance":"Representar demasiadas series en un solo panel puede afectar al rendimiento y dificultar la lectura de los datos.","warning-message":"Mostrando solo {{seriesLimit}} serie(s)"}},utils:{"controls-label":{"tooltip-remove":"Eliminar"},"loading-indicator":{"content-cancel-query":"Cancelar consulta"}},variables:{"ad-hoc-combobox":{"aria-label-edit-filter-operator":"Editar operador de filtro"},"ad-hoc-filter-builder":{"aria-label-add-filter":"Añadir filtro","title-add-filter":"Añadir filtro"},"ad-hoc-filter-renderer":{"aria-label-remove-filter":"Eliminar filtro","key-select":{"placeholder-select-label":"Seleccionar etiqueta"},"label-select-label":"Seleccionar etiqueta","title-remove-filter":"Eliminar filtro","value-select":{"placeholder-select-value":"Seleccionar valor"}},"data-source-variable":{label:{default:"predeterminada"}},"default-group-by-custom-indicator-container":{"aria-label-clear":"borrar",tooltip:"Aplicado de forma predeterminada en este dashboard. Si se edita, se transfiere a otros dashboards.","tooltip-restore-groupby-set-by-this-dashboard":"Restaura la función groupby definida por este dashboard."},"format-registry":{formats:{description:{"commaseparated-values":"Valores separados por comas","double-quoted-values":"Valores entre comillas dobles","format-date-in-different-ways":"Dar formato a la fecha de diferentes maneras","format-multivalued-variables-using-syntax-example":"Dar formato a las variables de múltiples valores con la sintaxis glob, por ejemplo, {value1,value2}","html-escaping-of-values":"Escape HTML de valores","json-stringify-value":"Valor de JSON stringify","keep-value-as-is":"Mantener el valor tal cual","multiple-values-are-formatted-like-variablevalue":"Los valores múltiples tienen el formato variable=valor","single-quoted-values":"Valores entre comillas simples","useful-escaping-values-taking-syntax-characters":"Útil para valores de escape URL, utilizando caracteres de sintaxis URI","useful-for-url-escaping-values":"Útil para valores de escape URL","values-are-separated-by-character":"Los valores están separados por el carácter |"}}},"group-by-variable-renderer":{"aria-label-group-by-selector":"Agrupar por selector","placeholder-group-by-label":"Agrupar por etiqueta"},"interval-variable":{"placeholder-select-value":"Seleccionar valor"},"loading-options-placeholder":{"loading-options":"Cargando opciones..."},"multi-value-apply-button":{apply:"Aplicar"},"no-options-placeholder":{"no-options-found":"No se han encontrado opciones"},"options-error-placeholder":{"error-occurred-fetching-labels-click-retry":"Se ha producido un error al recuperar las etiquetas. Haga clic para volver a intentarlo"},"test-object-with-variable-dependency":{title:{hello:"Hola"}},"test-variable":{text:{text:"Texto"}},"variable-value-input":{"placeholder-enter-value":"Introducir valor"},"variable-value-select":{"placeholder-select-value":"Seleccionar valor"}}}}}}]); -//# sourceMappingURL=190.js.map?_cache=e94cf276a1cd31bbbc4d \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/190.js.map b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/190.js.map deleted file mode 100644 index a0978c9..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/190.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"190.js?_cache=e94cf276a1cd31bbbc4d","mappings":"mKAAA,IAAIA,EAAgB,CACnB,iBAAkB,CAClBC,WAAY,CACX,oBAAqB,CACpB,uBAAwB,0CACxB,iBAAkB,kCAClB,yBAA0B,6CAE3B,yBAA0B,CACzB,sBAAuB,2CACvB,mBAAoB,2CAErB,gBAAiB,CAChBC,QAAS,gGACTC,SAAU,wCACVC,MAAO,uBAER,wBAAyB,CACxB,wBAAyB,kBACzB,sBAAuB,kBACvB,sBAAuB,mBAExB,iBAAkB,CACjB,iBAAkB,sBAClB,cAAe,uBACf,uBAAwB,wBAEzB,iBAAkB,CACjB,eAAgB,gBAChB,aAAc,iBAEf,oCAAqC,CACpC,eAAgB,cAChB,iBAAkB,iDAEnBC,SAAU,CACT,gCAAiC,wCAElC,YAAa,CACZD,MAAO,CACNA,MAAO,WAGT,2BAA4B,CAC3BE,QAAS,YAEV,qBAAsB,CACrB,uBAAwB,+BACxB,sCAAuC,2DAExC,yBAA0B,CACzB,2DAA4D,oHAC5D,kBAAmB,4CAGrBC,MAAO,CACN,iBAAkB,CACjB,iBAAkB,YAEnB,oBAAqB,CACpB,uBAAwB,sBAG1BC,UAAW,CACV,kBAAmB,CAClB,kCAAmC,6BAEpC,wBAAyB,CACxB,wBAAyB,gBACzB,mBAAoB,iBAErB,yBAA0B,CACzB,2BAA4B,kBAC5B,aAAc,CACb,2BAA4B,wBAE7B,qBAAsB,uBACtB,sBAAuB,kBACvB,eAAgB,CACf,2BAA4B,sBAG9B,uBAAwB,CACvBC,MAAO,CACN,QAAW,mBAGb,8CAA+C,CAC9C,mBAAoB,SACpBC,QAAS,qGACT,gDAAiD,4DAElD,kBAAmB,CAClBC,QAAS,CACRC,YAAa,CACZ,wBAAyB,8BACzB,uBAAwB,gCACxB,gCAAiC,+CACjC,oDAAqD,sGACrD,0BAA2B,yBAC3B,uBAAwB,0BACxB,mBAAoB,6BACpB,mDAAoD,yDACpD,uBAAwB,iCACxB,kDAAmD,yEACnD,iCAAkC,kCAClC,oCAAqC,mDAIxC,6BAA8B,CAC7B,+BAAgC,uBAChC,6BAA8B,wBAE/B,oBAAqB,CACpB,2BAA4B,qBAE7B,8BAA+B,CAC9B,kBAAmB,wBAEpB,2BAA4B,CAC3BC,MAAO,WAER,yBAA0B,CACzB,mBAAoB,iCAErB,4BAA6B,CAC5B,6CAA8C,2FAE/C,uCAAwC,CACvCT,MAAO,CACNU,MAAO,SAGT,gBAAiB,CAChBC,KAAM,CACLA,KAAM,UAGR,uBAAwB,CACvB,0BAA2B,oBAE5B,wBAAyB,CACxB,2BAA4B,uB","sources":["webpack://grafana-exploretraces-app/../node_modules/@grafana/scenes/dist/esm/locales/es-ES/grafana-scenes.json.js"],"sourcesContent":["var grafanaScenes = {\n\t\"grafana-scenes\": {\n\tcomponents: {\n\t\t\"adhoc-filter-pill\": {\n\t\t\t\"edit-filter-with-key\": \"Editar filtro con la clave {{keyLabel}}\",\n\t\t\t\"managed-filter\": \"Filtro gestionado de {{origin}}\",\n\t\t\t\"remove-filter-with-key\": \"Eliminar filtro con la clave {{keyLabel}}\"\n\t\t},\n\t\t\"adhoc-filters-combobox\": {\n\t\t\t\"remove-filter-value\": \"Eliminar valor del filtro: {{itemLabel}}\",\n\t\t\t\"use-custom-value\": \"Usar valor personalizado: {{itemLabel}}\"\n\t\t},\n\t\t\"fallback-page\": {\n\t\t\tcontent: \"Si ha llegado hasta aquí mediante un enlace, es posible que haya un error en esta aplicación.\",\n\t\t\tsubTitle: \"La URL no coincide con ninguna página\",\n\t\t\ttitle: \"No se ha encontrado\"\n\t\t},\n\t\t\"nested-scene-renderer\": {\n\t\t\t\"collapse-button-label\": \"Contraer escena\",\n\t\t\t\"expand-button-label\": \"Expandir escena\",\n\t\t\t\"remove-button-label\": \"Eliminar escena\"\n\t\t},\n\t\t\"scene-debugger\": {\n\t\t\t\"object-details\": \"Detalles del objeto\",\n\t\t\t\"scene-graph\": \"Gráfico de la escena\",\n\t\t\t\"title-scene-debugger\": \"Depurador de escenas\"\n\t\t},\n\t\t\"scene-grid-row\": {\n\t\t\t\"collapse-row\": \"Contraer fila\",\n\t\t\t\"expand-row\": \"Expandir fila\"\n\t\t},\n\t\t\"scene-time-range-compare-renderer\": {\n\t\t\t\"button-label\": \"Comparación\",\n\t\t\t\"button-tooltip\": \"Habilitar comparación de intervalos de tiempo\"\n\t\t},\n\t\tsplitter: {\n\t\t\t\"aria-label-pane-resize-widget\": \"Widget de cambio de tamaño del panel\"\n\t\t},\n\t\t\"viz-panel\": {\n\t\t\ttitle: {\n\t\t\t\ttitle: \"Título\"\n\t\t\t}\n\t\t},\n\t\t\"viz-panel-explore-button\": {\n\t\t\texplore: \"Explorar\"\n\t\t},\n\t\t\"viz-panel-renderer\": {\n\t\t\t\"loading-plugin-panel\": \"Cargando panel de plugins...\",\n\t\t\t\"panel-plugin-has-no-panel-component\": \"El plugin del panel no tiene ningún componente de panel\"\n\t\t},\n\t\t\"viz-panel-series-limit\": {\n\t\t\t\"content-rendering-series-single-panel-impact-performance\": \"Representar demasiadas series en un solo panel puede afectar al rendimiento y dificultar la lectura de los datos.\",\n\t\t\t\"warning-message\": \"Mostrando solo {{seriesLimit}} serie(s)\"\n\t\t}\n\t},\n\tutils: {\n\t\t\"controls-label\": {\n\t\t\t\"tooltip-remove\": \"Eliminar\"\n\t\t},\n\t\t\"loading-indicator\": {\n\t\t\t\"content-cancel-query\": \"Cancelar consulta\"\n\t\t}\n\t},\n\tvariables: {\n\t\t\"ad-hoc-combobox\": {\n\t\t\t\"aria-label-edit-filter-operator\": \"Editar operador de filtro\"\n\t\t},\n\t\t\"ad-hoc-filter-builder\": {\n\t\t\t\"aria-label-add-filter\": \"Añadir filtro\",\n\t\t\t\"title-add-filter\": \"Añadir filtro\"\n\t\t},\n\t\t\"ad-hoc-filter-renderer\": {\n\t\t\t\"aria-label-remove-filter\": \"Eliminar filtro\",\n\t\t\t\"key-select\": {\n\t\t\t\t\"placeholder-select-label\": \"Seleccionar etiqueta\"\n\t\t\t},\n\t\t\t\"label-select-label\": \"Seleccionar etiqueta\",\n\t\t\t\"title-remove-filter\": \"Eliminar filtro\",\n\t\t\t\"value-select\": {\n\t\t\t\t\"placeholder-select-value\": \"Seleccionar valor\"\n\t\t\t}\n\t\t},\n\t\t\"data-source-variable\": {\n\t\t\tlabel: {\n\t\t\t\t\"default\": \"predeterminada\"\n\t\t\t}\n\t\t},\n\t\t\"default-group-by-custom-indicator-container\": {\n\t\t\t\"aria-label-clear\": \"borrar\",\n\t\t\ttooltip: \"Aplicado de forma predeterminada en este dashboard. Si se edita, se transfiere a otros dashboards.\",\n\t\t\t\"tooltip-restore-groupby-set-by-this-dashboard\": \"Restaura la función groupby definida por este dashboard.\"\n\t\t},\n\t\t\"format-registry\": {\n\t\t\tformats: {\n\t\t\t\tdescription: {\n\t\t\t\t\t\"commaseparated-values\": \"Valores separados por comas\",\n\t\t\t\t\t\"double-quoted-values\": \"Valores entre comillas dobles\",\n\t\t\t\t\t\"format-date-in-different-ways\": \"Dar formato a la fecha de diferentes maneras\",\n\t\t\t\t\t\"format-multivalued-variables-using-syntax-example\": \"Dar formato a las variables de múltiples valores con la sintaxis glob, por ejemplo, {value1,value2}\",\n\t\t\t\t\t\"html-escaping-of-values\": \"Escape HTML de valores\",\n\t\t\t\t\t\"json-stringify-value\": \"Valor de JSON stringify\",\n\t\t\t\t\t\"keep-value-as-is\": \"Mantener el valor tal cual\",\n\t\t\t\t\t\"multiple-values-are-formatted-like-variablevalue\": \"Los valores múltiples tienen el formato variable=valor\",\n\t\t\t\t\t\"single-quoted-values\": \"Valores entre comillas simples\",\n\t\t\t\t\t\"useful-escaping-values-taking-syntax-characters\": \"Útil para valores de escape URL, utilizando caracteres de sintaxis URI\",\n\t\t\t\t\t\"useful-for-url-escaping-values\": \"Útil para valores de escape URL\",\n\t\t\t\t\t\"values-are-separated-by-character\": \"Los valores están separados por el carácter |\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"group-by-variable-renderer\": {\n\t\t\t\"aria-label-group-by-selector\": \"Agrupar por selector\",\n\t\t\t\"placeholder-group-by-label\": \"Agrupar por etiqueta\"\n\t\t},\n\t\t\"interval-variable\": {\n\t\t\t\"placeholder-select-value\": \"Seleccionar valor\"\n\t\t},\n\t\t\"loading-options-placeholder\": {\n\t\t\t\"loading-options\": \"Cargando opciones...\"\n\t\t},\n\t\t\"multi-value-apply-button\": {\n\t\t\tapply: \"Aplicar\"\n\t\t},\n\t\t\"no-options-placeholder\": {\n\t\t\t\"no-options-found\": \"No se han encontrado opciones\"\n\t\t},\n\t\t\"options-error-placeholder\": {\n\t\t\t\"error-occurred-fetching-labels-click-retry\": \"Se ha producido un error al recuperar las etiquetas. Haga clic para volver a intentarlo\"\n\t\t},\n\t\t\"test-object-with-variable-dependency\": {\n\t\t\ttitle: {\n\t\t\t\thello: \"Hola\"\n\t\t\t}\n\t\t},\n\t\t\"test-variable\": {\n\t\t\ttext: {\n\t\t\t\ttext: \"Texto\"\n\t\t\t}\n\t\t},\n\t\t\"variable-value-input\": {\n\t\t\t\"placeholder-enter-value\": \"Introducir valor\"\n\t\t},\n\t\t\"variable-value-select\": {\n\t\t\t\"placeholder-select-value\": \"Seleccionar valor\"\n\t\t}\n\t}\n}\n};\n\nexport { grafanaScenes as default };\n//# sourceMappingURL=grafana-scenes.json.js.map\n"],"names":["grafanaScenes","components","content","subTitle","title","splitter","explore","utils","variables","label","tooltip","formats","description","apply","hello","text"],"sourceRoot":""} \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/2.js b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/2.js deleted file mode 100644 index 081d9e5..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/2.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[2],{6002:(e,a,l)=>{l.r(a),l.d(a,{default:()=>r});var r={"grafana-scenes":{components:{"adhoc-filter-pill":{"edit-filter-with-key":"Modifier le filtre ayant pour clé {{keyLabel}}","managed-filter":"Filtre géré {{origin}}","remove-filter-with-key":"Supprimer le filtre ayant pour clé {{keyLabel}}"},"adhoc-filters-combobox":{"remove-filter-value":"Supprimer la valeur du filtre – {{itemLabel}}","use-custom-value":"Utiliser une valeur personnalisée : {{itemLabel}}"},"fallback-page":{content:"Si vous êtes arrivé ici via un lien, il se peut qu’il y ait un bug dans l’application.",subTitle:"L’URL ne correspond à aucune page",title:"Page introuvable"},"nested-scene-renderer":{"collapse-button-label":"Réduire la scène","expand-button-label":"Développer la scène","remove-button-label":"Supprimer la scène"},"scene-debugger":{"object-details":"Détails de l’objet","scene-graph":"Graphique de la scène","title-scene-debugger":"Débogueur de scène"},"scene-grid-row":{"collapse-row":"Réduire la ligne","expand-row":"Développer la ligne"},"scene-time-range-compare-renderer":{"button-label":"Comparaison","button-tooltip":"Activer la comparaison d’intervalles"},splitter:{"aria-label-pane-resize-widget":"Widget de redimensionnement du panneau"},"viz-panel":{title:{title:"Titre"}},"viz-panel-explore-button":{explore:"Explorer"},"viz-panel-renderer":{"loading-plugin-panel":"Chargement du panneau du plugin…","panel-plugin-has-no-panel-component":"Le plugin de panneau ne contient aucun composant de panneau"},"viz-panel-series-limit":{"content-rendering-series-single-panel-impact-performance":"Le rendu d’un trop grand nombre de séries dans un seul panneau peut nuire aux performances et rendre les données plus difficiles à lire.","warning-message":"Affichage limité à {{seriesLimit}} séries"}},utils:{"controls-label":{"tooltip-remove":"Supprimer"},"loading-indicator":{"content-cancel-query":"Annuler la requête"}},variables:{"ad-hoc-combobox":{"aria-label-edit-filter-operator":"Modifier l’opérateur du filtre"},"ad-hoc-filter-builder":{"aria-label-add-filter":"Ajouter un filtre","title-add-filter":"Ajouter un filtre"},"ad-hoc-filter-renderer":{"aria-label-remove-filter":"Supprimer le filtre","key-select":{"placeholder-select-label":"Sélectionner une étiquette"},"label-select-label":"Sélectionner une étiquette","title-remove-filter":"Supprimer le filtre","value-select":{"placeholder-select-value":"Sélectionner une valeur"}},"data-source-variable":{label:{default:"par défaut"}},"default-group-by-custom-indicator-container":{"aria-label-clear":"effacer",tooltip:"Appliqué par défaut dans ce tableau de bord. En cas de modification, il s’applique aussi aux autres tableaux de bord.","tooltip-restore-groupby-set-by-this-dashboard":"Restaurer le groupage défini par ce tableau de bord."},"format-registry":{formats:{description:{"commaseparated-values":"Valeurs séparées par des virgules","double-quoted-values":"Valeurs entre guillemets doubles","format-date-in-different-ways":"Formater la date de différentes façons","format-multivalued-variables-using-syntax-example":"Formater les variables à valeurs multiples avec la syntaxe glob : exemple {value1,value2}","html-escaping-of-values":"Échappement HTML des valeurs","json-stringify-value":"Valeur au format JSON (stringify)","keep-value-as-is":"Conserver la valeur telle quelle","multiple-values-are-formatted-like-variablevalue":"Plusieurs valeurs sont formatées ainsi : variable=valeur","single-quoted-values":"Valeurs entre guillemets simples","useful-escaping-values-taking-syntax-characters":"Utile pour l’échappement des valeurs dans les URL en tenant compte des caractères de syntaxe URI","useful-for-url-escaping-values":"Utile pour l’échappement des valeurs dans les URL","values-are-separated-by-character":"Les valeurs sont séparées par le caractère « | »"}}},"group-by-variable-renderer":{"aria-label-group-by-selector":"Sélecteur de regroupement","placeholder-group-by-label":"Regrouper par étiquette"},"interval-variable":{"placeholder-select-value":"Sélectionner une valeur"},"loading-options-placeholder":{"loading-options":"Chargement des options..."},"multi-value-apply-button":{apply:"Appliquer"},"no-options-placeholder":{"no-options-found":"Aucune option trouvée"},"options-error-placeholder":{"error-occurred-fetching-labels-click-retry":"Une erreur est survenue lors de la récupération des étiquettes. Cliquez pour réessayer"},"test-object-with-variable-dependency":{title:{hello:"Bonjour"}},"test-variable":{text:{text:"Texte"}},"variable-value-input":{"placeholder-enter-value":"Saisir une valeur"},"variable-value-select":{"placeholder-select-value":"Sélectionner une valeur"}}}}}}]); -//# sourceMappingURL=2.js.map?_cache=e8dfc983374527051249 \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/2.js.map b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/2.js.map deleted file mode 100644 index 15c37f2..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/2.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"2.js?_cache=e8dfc983374527051249","mappings":"iKAAA,IAAIA,EAAgB,CACnB,iBAAkB,CAClBC,WAAY,CACX,oBAAqB,CACpB,uBAAwB,iDACxB,iBAAkB,yBAClB,yBAA0B,mDAE3B,yBAA0B,CACzB,sBAAuB,gDACvB,mBAAoB,qDAErB,gBAAiB,CAChBC,QAAS,yFACTC,SAAU,oCACVC,MAAO,oBAER,wBAAyB,CACxB,wBAAyB,mBACzB,sBAAuB,sBACvB,sBAAuB,sBAExB,iBAAkB,CACjB,iBAAkB,qBAClB,cAAe,wBACf,uBAAwB,sBAEzB,iBAAkB,CACjB,eAAgB,mBAChB,aAAc,uBAEf,oCAAqC,CACpC,eAAgB,cAChB,iBAAkB,wCAEnBC,SAAU,CACT,gCAAiC,0CAElC,YAAa,CACZD,MAAO,CACNA,MAAO,UAGT,2BAA4B,CAC3BE,QAAS,YAEV,qBAAsB,CACrB,uBAAwB,mCACxB,sCAAuC,+DAExC,yBAA0B,CACzB,2DAA4D,2IAC5D,kBAAmB,8CAGrBC,MAAO,CACN,iBAAkB,CACjB,iBAAkB,aAEnB,oBAAqB,CACpB,uBAAwB,uBAG1BC,UAAW,CACV,kBAAmB,CAClB,kCAAmC,kCAEpC,wBAAyB,CACxB,wBAAyB,oBACzB,mBAAoB,qBAErB,yBAA0B,CACzB,2BAA4B,sBAC5B,aAAc,CACb,2BAA4B,8BAE7B,qBAAsB,6BACtB,sBAAuB,sBACvB,eAAgB,CACf,2BAA4B,4BAG9B,uBAAwB,CACvBC,MAAO,CACN,QAAW,eAGb,8CAA+C,CAC9C,mBAAoB,UACpBC,QAAS,wHACT,gDAAiD,wDAElD,kBAAmB,CAClBC,QAAS,CACRC,YAAa,CACZ,wBAAyB,oCACzB,uBAAwB,mCACxB,gCAAiC,yCACjC,oDAAqD,4FACrD,0BAA2B,+BAC3B,uBAAwB,oCACxB,mBAAoB,mCACpB,mDAAoD,2DACpD,uBAAwB,mCACxB,kDAAmD,mGACnD,iCAAkC,oDAClC,oCAAqC,sDAIxC,6BAA8B,CAC7B,+BAAgC,4BAChC,6BAA8B,2BAE/B,oBAAqB,CACpB,2BAA4B,2BAE7B,8BAA+B,CAC9B,kBAAmB,6BAEpB,2BAA4B,CAC3BC,MAAO,aAER,yBAA0B,CACzB,mBAAoB,yBAErB,4BAA6B,CAC5B,6CAA8C,0FAE/C,uCAAwC,CACvCT,MAAO,CACNU,MAAO,YAGT,gBAAiB,CAChBC,KAAM,CACLA,KAAM,UAGR,uBAAwB,CACvB,0BAA2B,qBAE5B,wBAAyB,CACxB,2BAA4B,6B","sources":["webpack://grafana-exploretraces-app/../node_modules/@grafana/scenes/dist/esm/locales/fr-FR/grafana-scenes.json.js"],"sourcesContent":["var grafanaScenes = {\n\t\"grafana-scenes\": {\n\tcomponents: {\n\t\t\"adhoc-filter-pill\": {\n\t\t\t\"edit-filter-with-key\": \"Modifier le filtre ayant pour clé {{keyLabel}}\",\n\t\t\t\"managed-filter\": \"Filtre géré {{origin}}\",\n\t\t\t\"remove-filter-with-key\": \"Supprimer le filtre ayant pour clé {{keyLabel}}\"\n\t\t},\n\t\t\"adhoc-filters-combobox\": {\n\t\t\t\"remove-filter-value\": \"Supprimer la valeur du filtre – {{itemLabel}}\",\n\t\t\t\"use-custom-value\": \"Utiliser une valeur personnalisée : {{itemLabel}}\"\n\t\t},\n\t\t\"fallback-page\": {\n\t\t\tcontent: \"Si vous êtes arrivé ici via un lien, il se peut qu’il y ait un bug dans l’application.\",\n\t\t\tsubTitle: \"L’URL ne correspond à aucune page\",\n\t\t\ttitle: \"Page introuvable\"\n\t\t},\n\t\t\"nested-scene-renderer\": {\n\t\t\t\"collapse-button-label\": \"Réduire la scène\",\n\t\t\t\"expand-button-label\": \"Développer la scène\",\n\t\t\t\"remove-button-label\": \"Supprimer la scène\"\n\t\t},\n\t\t\"scene-debugger\": {\n\t\t\t\"object-details\": \"Détails de l’objet\",\n\t\t\t\"scene-graph\": \"Graphique de la scène\",\n\t\t\t\"title-scene-debugger\": \"Débogueur de scène\"\n\t\t},\n\t\t\"scene-grid-row\": {\n\t\t\t\"collapse-row\": \"Réduire la ligne\",\n\t\t\t\"expand-row\": \"Développer la ligne\"\n\t\t},\n\t\t\"scene-time-range-compare-renderer\": {\n\t\t\t\"button-label\": \"Comparaison\",\n\t\t\t\"button-tooltip\": \"Activer la comparaison d’intervalles\"\n\t\t},\n\t\tsplitter: {\n\t\t\t\"aria-label-pane-resize-widget\": \"Widget de redimensionnement du panneau\"\n\t\t},\n\t\t\"viz-panel\": {\n\t\t\ttitle: {\n\t\t\t\ttitle: \"Titre\"\n\t\t\t}\n\t\t},\n\t\t\"viz-panel-explore-button\": {\n\t\t\texplore: \"Explorer\"\n\t\t},\n\t\t\"viz-panel-renderer\": {\n\t\t\t\"loading-plugin-panel\": \"Chargement du panneau du plugin…\",\n\t\t\t\"panel-plugin-has-no-panel-component\": \"Le plugin de panneau ne contient aucun composant de panneau\"\n\t\t},\n\t\t\"viz-panel-series-limit\": {\n\t\t\t\"content-rendering-series-single-panel-impact-performance\": \"Le rendu d’un trop grand nombre de séries dans un seul panneau peut nuire aux performances et rendre les données plus difficiles à lire.\",\n\t\t\t\"warning-message\": \"Affichage limité à {{seriesLimit}} séries\"\n\t\t}\n\t},\n\tutils: {\n\t\t\"controls-label\": {\n\t\t\t\"tooltip-remove\": \"Supprimer\"\n\t\t},\n\t\t\"loading-indicator\": {\n\t\t\t\"content-cancel-query\": \"Annuler la requête\"\n\t\t}\n\t},\n\tvariables: {\n\t\t\"ad-hoc-combobox\": {\n\t\t\t\"aria-label-edit-filter-operator\": \"Modifier l’opérateur du filtre\"\n\t\t},\n\t\t\"ad-hoc-filter-builder\": {\n\t\t\t\"aria-label-add-filter\": \"Ajouter un filtre\",\n\t\t\t\"title-add-filter\": \"Ajouter un filtre\"\n\t\t},\n\t\t\"ad-hoc-filter-renderer\": {\n\t\t\t\"aria-label-remove-filter\": \"Supprimer le filtre\",\n\t\t\t\"key-select\": {\n\t\t\t\t\"placeholder-select-label\": \"Sélectionner une étiquette\"\n\t\t\t},\n\t\t\t\"label-select-label\": \"Sélectionner une étiquette\",\n\t\t\t\"title-remove-filter\": \"Supprimer le filtre\",\n\t\t\t\"value-select\": {\n\t\t\t\t\"placeholder-select-value\": \"Sélectionner une valeur\"\n\t\t\t}\n\t\t},\n\t\t\"data-source-variable\": {\n\t\t\tlabel: {\n\t\t\t\t\"default\": \"par défaut\"\n\t\t\t}\n\t\t},\n\t\t\"default-group-by-custom-indicator-container\": {\n\t\t\t\"aria-label-clear\": \"effacer\",\n\t\t\ttooltip: \"Appliqué par défaut dans ce tableau de bord. En cas de modification, il s’applique aussi aux autres tableaux de bord.\",\n\t\t\t\"tooltip-restore-groupby-set-by-this-dashboard\": \"Restaurer le groupage défini par ce tableau de bord.\"\n\t\t},\n\t\t\"format-registry\": {\n\t\t\tformats: {\n\t\t\t\tdescription: {\n\t\t\t\t\t\"commaseparated-values\": \"Valeurs séparées par des virgules\",\n\t\t\t\t\t\"double-quoted-values\": \"Valeurs entre guillemets doubles\",\n\t\t\t\t\t\"format-date-in-different-ways\": \"Formater la date de différentes façons\",\n\t\t\t\t\t\"format-multivalued-variables-using-syntax-example\": \"Formater les variables à valeurs multiples avec la syntaxe glob : exemple {value1,value2}\",\n\t\t\t\t\t\"html-escaping-of-values\": \"Échappement HTML des valeurs\",\n\t\t\t\t\t\"json-stringify-value\": \"Valeur au format JSON (stringify)\",\n\t\t\t\t\t\"keep-value-as-is\": \"Conserver la valeur telle quelle\",\n\t\t\t\t\t\"multiple-values-are-formatted-like-variablevalue\": \"Plusieurs valeurs sont formatées ainsi : variable=valeur\",\n\t\t\t\t\t\"single-quoted-values\": \"Valeurs entre guillemets simples\",\n\t\t\t\t\t\"useful-escaping-values-taking-syntax-characters\": \"Utile pour l’échappement des valeurs dans les URL en tenant compte des caractères de syntaxe URI\",\n\t\t\t\t\t\"useful-for-url-escaping-values\": \"Utile pour l’échappement des valeurs dans les URL\",\n\t\t\t\t\t\"values-are-separated-by-character\": \"Les valeurs sont séparées par le caractère « | »\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"group-by-variable-renderer\": {\n\t\t\t\"aria-label-group-by-selector\": \"Sélecteur de regroupement\",\n\t\t\t\"placeholder-group-by-label\": \"Regrouper par étiquette\"\n\t\t},\n\t\t\"interval-variable\": {\n\t\t\t\"placeholder-select-value\": \"Sélectionner une valeur\"\n\t\t},\n\t\t\"loading-options-placeholder\": {\n\t\t\t\"loading-options\": \"Chargement des options...\"\n\t\t},\n\t\t\"multi-value-apply-button\": {\n\t\t\tapply: \"Appliquer\"\n\t\t},\n\t\t\"no-options-placeholder\": {\n\t\t\t\"no-options-found\": \"Aucune option trouvée\"\n\t\t},\n\t\t\"options-error-placeholder\": {\n\t\t\t\"error-occurred-fetching-labels-click-retry\": \"Une erreur est survenue lors de la récupération des étiquettes. Cliquez pour réessayer\"\n\t\t},\n\t\t\"test-object-with-variable-dependency\": {\n\t\t\ttitle: {\n\t\t\t\thello: \"Bonjour\"\n\t\t\t}\n\t\t},\n\t\t\"test-variable\": {\n\t\t\ttext: {\n\t\t\t\ttext: \"Texte\"\n\t\t\t}\n\t\t},\n\t\t\"variable-value-input\": {\n\t\t\t\"placeholder-enter-value\": \"Saisir une valeur\"\n\t\t},\n\t\t\"variable-value-select\": {\n\t\t\t\"placeholder-select-value\": \"Sélectionner une valeur\"\n\t\t}\n\t}\n}\n};\n\nexport { grafanaScenes as default };\n//# sourceMappingURL=grafana-scenes.json.js.map\n"],"names":["grafanaScenes","components","content","subTitle","title","splitter","explore","utils","variables","label","tooltip","formats","description","apply","hello","text"],"sourceRoot":""} \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/202.js b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/202.js deleted file mode 100644 index 26e0282..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/202.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict";(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[202],{202:(e,t,a)=>{a.r(t),a.d(t,{default:()=>v,updatePlugin:()=>f});var n=a(5959),r=a.n(n),i=a(2007),l=a(8531),o=a(6089),c=a(1269);function p(e,t,a,n,r,i,l){try{var o=e[i](l),c=o.value}catch(e){return void a(e)}o.done?t(c):Promise.resolve(c).then(n,r)}function s(e){return function(){var t=this,a=arguments;return new Promise(function(n,r){var i=e.apply(t,a);function l(e){p(i,n,r,l,o,"next",e)}function o(e){p(i,n,r,l,o,"throw",e)}l(void 0)})}}function u(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function d(e){for(var t=1;t({colorWeak:o.css` - color: ${e.colors.text.secondary}; - `,marginTop:o.css` - margin-top: ${e.spacing(3)}; - `,marginTopXl:o.css` - margin-top: ${e.spacing(6)}; - `}),g=(e,t)=>s(function*(){try{yield f(e,t),l.locationService.reload()}catch(e){console.error("Error while updating the plugin",e)}})(),b={appConfig:{container:"data-testid ac-container",apiKey:"data-testid ac-api-key",apiUrl:"data-testid ac-api-url",submit:"data-testid ac-submit-form"}},f=(e,t)=>s(function*(){const a=(0,l.getBackendSrv)().fetch({url:`/api/plugins/${e}/settings`,method:"POST",data:t});return(yield(0,c.lastValueFrom)(a)).data})(),v=({plugin:e})=>{const t=(0,i.useStyles2)(y),{enabled:a,pinned:l,jsonData:o}=e.meta,[c,p]=(0,n.useState)({apiUrl:(null==o?void 0:o.apiUrl)||"",apiKey:"",isApiKeySet:Boolean(null==o?void 0:o.isApiKeySet)});return r().createElement("div",{"data-testid":b.appConfig.container},r().createElement(i.FieldSet,{label:"Enable / Disable"},!a&&r().createElement(r().Fragment,null,r().createElement("div",{className:t.colorWeak},"The plugin is currently not enabled."),r().createElement(i.Button,{className:t.marginTop,variant:"primary",onClick:()=>g(e.meta.id,{enabled:!0,pinned:!0,jsonData:o})},"Enable plugin")),a&&r().createElement(r().Fragment,null,r().createElement("div",{className:t.colorWeak},"The plugin is currently enabled."),r().createElement(i.Button,{className:t.marginTop,variant:"destructive",onClick:()=>g(e.meta.id,{enabled:!1,pinned:!1,jsonData:o})},"Disable plugin"))),r().createElement(i.FieldSet,{label:"API Settings",className:t.marginTopXl},r().createElement(i.Field,{label:"API Key",description:"A secret key for authenticating to our custom API"},r().createElement(i.SecretInput,{width:60,"data-testid":b.appConfig.apiKey,id:"api-key",value:null==c?void 0:c.apiKey,isConfigured:c.isApiKeySet,placeholder:"Your secret API key",onChange:e=>{p(m(d({},c),{apiKey:e.target.value.trim()}))},onReset:()=>p(m(d({},c),{apiKey:"",isApiKeySet:!1}))})),r().createElement(i.Field,{label:"API Url",description:"",className:t.marginTop},r().createElement(i.Input,{width:60,id:"api-url","data-testid":b.appConfig.apiUrl,label:"API Url",value:null==c?void 0:c.apiUrl,placeholder:"E.g.: http://mywebsite.com/api/v1",onChange:e=>{p(m(d({},c),{apiUrl:e.target.value.trim()}))}})),r().createElement("div",{className:t.marginTop},r().createElement(i.Button,{type:"submit","data-testid":b.appConfig.submit,onClick:()=>g(e.meta.id,{enabled:a,pinned:l,jsonData:{apiUrl:c.apiUrl,isApiKeySet:!0},secureJsonData:c.isApiKeySet?void 0:{apiKey:c.apiKey}}),disabled:Boolean(!c.apiUrl||!c.isApiKeySet&&!c.apiKey)},"Save API settings"))))}}}]); -//# sourceMappingURL=202.js.map?_cache=71520d621a6b7c0f04bb \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/202.js.map b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/202.js.map deleted file mode 100644 index 512ab17..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/202.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"202.js?_cache=71520d621a6b7c0f04bb","mappings":"86CAyBA,MAsIMA,EAAaC,IAA0B,CAC3CC,UAAWC,EAAAA,GAAG;aACHF,EAAMG,OAAOC,KAAKC;IAE7BC,UAAWJ,EAAAA,GAAG;kBACEF,EAAMO,QAAQ;IAE9BC,YAAaN,EAAAA,GAAG;kBACAF,EAAMO,QAAQ;MAI1BE,EAAwB,CAAOC,EAAkBC,IAAAA,EAAAA,YACrD,UACQC,EAAaF,EAAUC,GAI7BE,EAAAA,gBAAgBC,QAClB,CAAE,MAAOC,GACPC,QAAQC,MAAM,kCAAmCF,EACnD,CACF,EAVuDJ,GAYjDO,EAAU,CACdC,UAAW,CACTC,UAAW,2BACXC,OAAQ,yBACRC,OAAQ,yBACRC,OAAQ,+BAICX,EAAe,CAAOF,EAAkBC,IAAAA,EAAAA,YACnD,MAAMa,GAAWC,EAAAA,EAAAA,iBAAgBC,MAAM,CACrCC,IAAK,gBAAgBjB,aACrBkB,OAAQ,OACRjB,SAKF,aAF2BkB,EAAAA,EAAAA,eAAcL,IAErBb,IACtB,EAVqDA,GAYrD,EAnLkB,EAAGmB,aACnB,MAAMC,GAAIC,EAAAA,EAAAA,YAAWjC,IACf,QAAEkC,EAAO,OAAEC,EAAM,SAAEC,GAAaL,EAAOM,MACtCC,EAAOC,IAAYC,EAAAA,EAAAA,UAAgB,CACxCjB,QAAQa,aAAAA,EAAAA,EAAUb,SAAU,GAC5BD,OAAQ,GACRmB,YAAaC,QAAQN,aAAAA,EAAAA,EAAUK,eAwBjC,OACE,kBAACE,MAAAA,CAAIC,cAAazB,EAAQC,UAAUC,WAElC,kBAACwB,EAAAA,SAAQA,CAACC,MAAM,qBACZZ,GACA,oCACE,kBAACS,MAAAA,CAAII,UAAWf,EAAE9B,WAAW,wCAC7B,kBAAC8C,EAAAA,OAAMA,CACLD,UAAWf,EAAEzB,UACb0C,QAAQ,UACRC,QAAS,IACPxC,EAAsBqB,EAAOM,KAAKc,GAAI,CACpCjB,SAAS,EACTC,QAAQ,EACRC,cAGL,kBAOJF,GACC,oCACE,kBAACS,MAAAA,CAAII,UAAWf,EAAE9B,WAAW,oCAC7B,kBAAC8C,EAAAA,OAAMA,CACLD,UAAWf,EAAEzB,UACb0C,QAAQ,cACRC,QAAS,IACPxC,EAAsBqB,EAAOM,KAAKc,GAAI,CACpCjB,SAAS,EACTC,QAAQ,EACRC,cAGL,oBAQP,kBAACS,EAAAA,SAAQA,CAACC,MAAM,eAAeC,UAAWf,EAAEvB,aAE1C,kBAAC2C,EAAAA,MAAKA,CAACN,MAAM,UAAUO,YAAY,qDACjC,kBAACC,EAAAA,YAAWA,CACVC,MAAO,GACPX,cAAazB,EAAQC,UAAUE,OAC/B6B,GAAG,UACHK,MAAOlB,aAAAA,EAAAA,EAAOhB,OACdmC,aAAcnB,EAAMG,YACpBiB,YAAa,sBACbC,SArEcC,IACtBrB,EAAS,OACJD,GAAAA,CACHhB,OAAQsC,EAAMC,OAAOL,MAAMM,WAmErBC,QA7EY,IACpBxB,EAAS,OACJD,GAAAA,CACHhB,OAAQ,GACRmB,aAAa,QA8EX,kBAACW,EAAAA,MAAKA,CAACN,MAAM,UAAUO,YAAY,GAAGN,UAAWf,EAAEzB,WACjD,kBAACyD,EAAAA,MAAKA,CACJT,MAAO,GACPJ,GAAG,UACHP,cAAazB,EAAQC,UAAUG,OAC/BuB,MAAO,UACPU,MAAOlB,aAAAA,EAAAA,EAAOf,OACdmC,YAAa,oCACbC,SA5EcC,IACtBrB,EAAS,OACJD,GAAAA,CACHf,OAAQqC,EAAMC,OAAOL,MAAMM,cA6EzB,kBAACnB,MAAAA,CAAII,UAAWf,EAAEzB,WAChB,kBAACyC,EAAAA,OAAMA,CACLiB,KAAK,SACLrB,cAAazB,EAAQC,UAAUI,OAC/B0B,QAAS,IACPxC,EAAsBqB,EAAOM,KAAKc,GAAI,CACpCjB,UACAC,SACAC,SAAU,CACRb,OAAQe,EAAMf,OACdkB,aAAa,GAIfyB,eAAgB5B,EAAMG,iBAClB0B,EACA,CACE7C,OAAQgB,EAAMhB,UAIxB8C,SAAU1B,SAASJ,EAAMf,SAAYe,EAAMG,cAAgBH,EAAMhB,SAClE,wB","sources":["webpack://grafana-exploretraces-app/./components/AppConfig/AppConfig.tsx"],"sourcesContent":["import React, { useState, ChangeEvent } from 'react';\nimport { Button, Field, Input, useStyles2, FieldSet, SecretInput } from '@grafana/ui';\nimport { PluginConfigPageProps, AppPluginMeta, PluginMeta, GrafanaTheme2 } from '@grafana/data';\nimport { FetchResponse, getBackendSrv, locationService } from '@grafana/runtime';\nimport { css } from '@emotion/css';\nimport { lastValueFrom, Observable } from 'rxjs';\n\nexport type JsonData = {\n apiUrl?: string;\n isApiKeySet?: boolean;\n};\n\ntype State = {\n // The URL to reach our custom API.\n apiUrl: string;\n // Tells us if the API key secret is set.\n // Set to `true` ONLY if it has already been set and haven't been changed.\n // (We unfortunately need an auxiliary variable for this, as `secureJsonData` is never exposed to the browser after it is set)\n isApiKeySet: boolean;\n // An secret key for our custom API.\n apiKey: string;\n};\n\ninterface Props extends PluginConfigPageProps> {}\n\nconst AppConfig = ({ plugin }: Props) => {\n const s = useStyles2(getStyles);\n const { enabled, pinned, jsonData } = plugin.meta;\n const [state, setState] = useState({\n apiUrl: jsonData?.apiUrl || '',\n apiKey: '',\n isApiKeySet: Boolean(jsonData?.isApiKeySet),\n });\n\n const onResetApiKey = () =>\n setState({\n ...state,\n apiKey: '',\n isApiKeySet: false,\n });\n\n const onChangeApiKey = (event: ChangeEvent) => {\n setState({\n ...state,\n apiKey: event.target.value.trim(),\n });\n };\n\n const onChangeApiUrl = (event: ChangeEvent) => {\n setState({\n ...state,\n apiUrl: event.target.value.trim(),\n });\n };\n\n return (\n

\n {/* ENABLE / DISABLE PLUGIN */}\n
\n {!enabled && (\n <>\n
The plugin is currently not enabled.
\n \n updatePluginAndReload(plugin.meta.id, {\n enabled: true,\n pinned: true,\n jsonData,\n })\n }\n >\n Enable plugin\n \n \n )}\n\n {/* Disable the plugin */}\n {enabled && (\n <>\n
The plugin is currently enabled.
\n \n updatePluginAndReload(plugin.meta.id, {\n enabled: false,\n pinned: false,\n jsonData,\n })\n }\n >\n Disable plugin\n \n \n )}\n
\n\n {/* CUSTOM SETTINGS */}\n
\n {/* API Key */}\n \n \n \n\n {/* API Url */}\n \n \n \n\n
\n \n updatePluginAndReload(plugin.meta.id, {\n enabled,\n pinned,\n jsonData: {\n apiUrl: state.apiUrl,\n isApiKeySet: true,\n },\n // This cannot be queried later by the frontend.\n // We don't want to override it in case it was set previously and left untouched now.\n secureJsonData: state.isApiKeySet\n ? undefined\n : {\n apiKey: state.apiKey,\n },\n })\n }\n disabled={Boolean(!state.apiUrl || (!state.isApiKeySet && !state.apiKey))}\n >\n Save API settings\n \n
\n
\n
\n );\n};\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n colorWeak: css`\n color: ${theme.colors.text.secondary};\n `,\n marginTop: css`\n margin-top: ${theme.spacing(3)};\n `,\n marginTopXl: css`\n margin-top: ${theme.spacing(6)};\n `,\n});\n\nconst updatePluginAndReload = async (pluginId: string, data: Partial>) => {\n try {\n await updatePlugin(pluginId, data);\n\n // Reloading the page as the changes made here wouldn't be propagated to the actual plugin otherwise.\n // This is not ideal, however unfortunately currently there is no supported way for updating the plugin state.\n locationService.reload();\n } catch (e) {\n console.error('Error while updating the plugin', e);\n }\n};\n\nconst testIds = {\n appConfig: {\n container: 'data-testid ac-container',\n apiKey: 'data-testid ac-api-key',\n apiUrl: 'data-testid ac-api-url',\n submit: 'data-testid ac-submit-form',\n },\n};\n\nexport const updatePlugin = async (pluginId: string, data: Partial) => {\n const response = getBackendSrv().fetch({\n url: `/api/plugins/${pluginId}/settings`,\n method: 'POST',\n data,\n }) as unknown as Observable;\n\n const dataResponse = await lastValueFrom(response);\n\n return dataResponse.data;\n};\n\nexport default AppConfig;\n"],"names":["getStyles","theme","colorWeak","css","colors","text","secondary","marginTop","spacing","marginTopXl","updatePluginAndReload","pluginId","data","updatePlugin","locationService","reload","e","console","error","testIds","appConfig","container","apiKey","apiUrl","submit","response","getBackendSrv","fetch","url","method","lastValueFrom","plugin","s","useStyles2","enabled","pinned","jsonData","meta","state","setState","useState","isApiKeySet","Boolean","div","data-testid","FieldSet","label","className","Button","variant","onClick","id","Field","description","SecretInput","width","value","isConfigured","placeholder","onChange","event","target","trim","onReset","Input","type","secureJsonData","undefined","disabled"],"sourceRoot":""} \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/206.js b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/206.js deleted file mode 100644 index 50133c5..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/206.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[206],{6206:(e,a,r)=>{r.r(a),r.d(a,{default:()=>o});var o={"grafana-scenes":{components:{"adhoc-filter-pill":{"edit-filter-with-key":"Editar filtro com a chave {{keyLabel}}","managed-filter":"Filtro gerido de {{origin}}","remove-filter-with-key":"Remover filtro com a chave {{keyLabel}} "},"adhoc-filters-combobox":{"remove-filter-value":"Remover o valor do filtro - {{itemLabel}} ","use-custom-value":"Utilizar valor personalizado: {{itemLabel}}"},"fallback-page":{content:"Se chegou aqui através de um link, pode existir um erro nesta aplicação.",subTitle:"O URL não corresponde a nenhuma página",title:"Não encontrado"},"nested-scene-renderer":{"collapse-button-label":"Recolher cena","expand-button-label":"Expandir cena","remove-button-label":"Remover cena"},"scene-debugger":{"object-details":"Detalhes do objeto","scene-graph":"Gráfico de cena","title-scene-debugger":"Depurador de cena"},"scene-grid-row":{"collapse-row":"Recolher linha","expand-row":"Expandir linha"},"scene-time-range-compare-renderer":{"button-label":"Comparação","button-tooltip":"Ativar a comparação de intervalos de tempo"},splitter:{"aria-label-pane-resize-widget":"Widget de redimensionamento de painel"},"viz-panel":{title:{title:"Título"}},"viz-panel-explore-button":{explore:"Explorar"},"viz-panel-renderer":{"loading-plugin-panel":"A carregar o painel de plugins...","panel-plugin-has-no-panel-component":"O plugin do painel não tem componente de painel"},"viz-panel-series-limit":{"content-rendering-series-single-panel-impact-performance":"A renderização de demasiadas séries num único painel pode afetar o desempenho e dificultar a leitura dos dados. ","warning-message":"A mostrar apenas {{seriesLimit}} séries"}},utils:{"controls-label":{"tooltip-remove":"Remover"},"loading-indicator":{"content-cancel-query":"Cancelar consulta"}},variables:{"ad-hoc-combobox":{"aria-label-edit-filter-operator":"Editar operador de filtro"},"ad-hoc-filter-builder":{"aria-label-add-filter":"Adicionar filtro","title-add-filter":"Adicionar filtro"},"ad-hoc-filter-renderer":{"aria-label-remove-filter":"Remover filtro","key-select":{"placeholder-select-label":"Selecione etiqueta"},"label-select-label":"Selecione etiqueta","title-remove-filter":"Remover filtro","value-select":{"placeholder-select-value":"Selecionar valor"}},"data-source-variable":{label:{default:"padrão"}},"default-group-by-custom-indicator-container":{"aria-label-clear":"limpar",tooltip:"Aplicado por predefinição neste painel de controlo. Em caso de edição, é transferido para outros painéis de controlo.","tooltip-restore-groupby-set-by-this-dashboard":"Restaurar grupo definido por este painel de controlo."},"format-registry":{formats:{description:{"commaseparated-values":"Valores separados por vírgulas","double-quoted-values":"Valores entre aspas duplas","format-date-in-different-ways":"Formatar a data de diferentes formas","format-multivalued-variables-using-syntax-example":"Formatar variáveis de valores múltiplos com a sintaxe glob, exemplo {value1,value2}","html-escaping-of-values":"Escape de valores HTML","json-stringify-value":"Valor no formato JSON (stringify)","keep-value-as-is":"Manter o valor como está","multiple-values-are-formatted-like-variablevalue":"Os valores múltiplos são formatados como variável=valor","single-quoted-values":"Valores entre aspas simples","useful-escaping-values-taking-syntax-characters":"Útil para valores de escape de URL, tendo em conta carateres de sintaxe URI","useful-for-url-escaping-values":"Útil para valores de escape de URL","values-are-separated-by-character":"Os valores são separados pelo caráter |"}}},"group-by-variable-renderer":{"aria-label-group-by-selector":"Agrupar por seletor","placeholder-group-by-label":"Agrupar por etiqueta"},"interval-variable":{"placeholder-select-value":"Selecionar valor"},"loading-options-placeholder":{"loading-options":"A carregar opções..."},"multi-value-apply-button":{apply:"Aplicar"},"no-options-placeholder":{"no-options-found":"Nenhuma opção encontrada"},"options-error-placeholder":{"error-occurred-fetching-labels-click-retry":"Ocorreu um erro ao obter as etiquetas. Clique para tentar novamente"},"test-object-with-variable-dependency":{title:{hello:"Olá"}},"test-variable":{text:{text:"Texto"}},"variable-value-input":{"placeholder-enter-value":"Introduza o valor"},"variable-value-select":{"placeholder-select-value":"Selecionar valor"}}}}}}]); -//# sourceMappingURL=206.js.map?_cache=e569ac060d9762698b17 \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/206.js.map b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/206.js.map deleted file mode 100644 index 513b5b0..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/206.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"206.js?_cache=e569ac060d9762698b17","mappings":"mKAAA,IAAIA,EAAgB,CACnB,iBAAkB,CAClBC,WAAY,CACX,oBAAqB,CACpB,uBAAwB,yCACxB,iBAAkB,8BAClB,yBAA0B,4CAE3B,yBAA0B,CACzB,sBAAuB,6CACvB,mBAAoB,+CAErB,gBAAiB,CAChBC,QAAS,2EACTC,SAAU,yCACVC,MAAO,kBAER,wBAAyB,CACxB,wBAAyB,gBACzB,sBAAuB,gBACvB,sBAAuB,gBAExB,iBAAkB,CACjB,iBAAkB,qBAClB,cAAe,kBACf,uBAAwB,qBAEzB,iBAAkB,CACjB,eAAgB,iBAChB,aAAc,kBAEf,oCAAqC,CACpC,eAAgB,aAChB,iBAAkB,8CAEnBC,SAAU,CACT,gCAAiC,yCAElC,YAAa,CACZD,MAAO,CACNA,MAAO,WAGT,2BAA4B,CAC3BE,QAAS,YAEV,qBAAsB,CACrB,uBAAwB,oCACxB,sCAAuC,mDAExC,yBAA0B,CACzB,2DAA4D,mHAC5D,kBAAmB,4CAGrBC,MAAO,CACN,iBAAkB,CACjB,iBAAkB,WAEnB,oBAAqB,CACpB,uBAAwB,sBAG1BC,UAAW,CACV,kBAAmB,CAClB,kCAAmC,6BAEpC,wBAAyB,CACxB,wBAAyB,mBACzB,mBAAoB,oBAErB,yBAA0B,CACzB,2BAA4B,iBAC5B,aAAc,CACb,2BAA4B,sBAE7B,qBAAsB,qBACtB,sBAAuB,iBACvB,eAAgB,CACf,2BAA4B,qBAG9B,uBAAwB,CACvBC,MAAO,CACN,QAAW,WAGb,8CAA+C,CAC9C,mBAAoB,SACpBC,QAAS,wHACT,gDAAiD,yDAElD,kBAAmB,CAClBC,QAAS,CACRC,YAAa,CACZ,wBAAyB,iCACzB,uBAAwB,6BACxB,gCAAiC,uCACjC,oDAAqD,sFACrD,0BAA2B,yBAC3B,uBAAwB,oCACxB,mBAAoB,2BACpB,mDAAoD,0DACpD,uBAAwB,8BACxB,kDAAmD,8EACnD,iCAAkC,qCAClC,oCAAqC,6CAIxC,6BAA8B,CAC7B,+BAAgC,sBAChC,6BAA8B,wBAE/B,oBAAqB,CACpB,2BAA4B,oBAE7B,8BAA+B,CAC9B,kBAAmB,wBAEpB,2BAA4B,CAC3BC,MAAO,WAER,yBAA0B,CACzB,mBAAoB,4BAErB,4BAA6B,CAC5B,6CAA8C,uEAE/C,uCAAwC,CACvCT,MAAO,CACNU,MAAO,QAGT,gBAAiB,CAChBC,KAAM,CACLA,KAAM,UAGR,uBAAwB,CACvB,0BAA2B,qBAE5B,wBAAyB,CACxB,2BAA4B,sB","sources":["webpack://grafana-exploretraces-app/../node_modules/@grafana/scenes/dist/esm/locales/pt-PT/grafana-scenes.json.js"],"sourcesContent":["var grafanaScenes = {\n\t\"grafana-scenes\": {\n\tcomponents: {\n\t\t\"adhoc-filter-pill\": {\n\t\t\t\"edit-filter-with-key\": \"Editar filtro com a chave {{keyLabel}}\",\n\t\t\t\"managed-filter\": \"Filtro gerido de {{origin}}\",\n\t\t\t\"remove-filter-with-key\": \"Remover filtro com a chave {{keyLabel}} \"\n\t\t},\n\t\t\"adhoc-filters-combobox\": {\n\t\t\t\"remove-filter-value\": \"Remover o valor do filtro - {{itemLabel}} \",\n\t\t\t\"use-custom-value\": \"Utilizar valor personalizado: {{itemLabel}}\"\n\t\t},\n\t\t\"fallback-page\": {\n\t\t\tcontent: \"Se chegou aqui através de um link, pode existir um erro nesta aplicação.\",\n\t\t\tsubTitle: \"O URL não corresponde a nenhuma página\",\n\t\t\ttitle: \"Não encontrado\"\n\t\t},\n\t\t\"nested-scene-renderer\": {\n\t\t\t\"collapse-button-label\": \"Recolher cena\",\n\t\t\t\"expand-button-label\": \"Expandir cena\",\n\t\t\t\"remove-button-label\": \"Remover cena\"\n\t\t},\n\t\t\"scene-debugger\": {\n\t\t\t\"object-details\": \"Detalhes do objeto\",\n\t\t\t\"scene-graph\": \"Gráfico de cena\",\n\t\t\t\"title-scene-debugger\": \"Depurador de cena\"\n\t\t},\n\t\t\"scene-grid-row\": {\n\t\t\t\"collapse-row\": \"Recolher linha\",\n\t\t\t\"expand-row\": \"Expandir linha\"\n\t\t},\n\t\t\"scene-time-range-compare-renderer\": {\n\t\t\t\"button-label\": \"Comparação\",\n\t\t\t\"button-tooltip\": \"Ativar a comparação de intervalos de tempo\"\n\t\t},\n\t\tsplitter: {\n\t\t\t\"aria-label-pane-resize-widget\": \"Widget de redimensionamento de painel\"\n\t\t},\n\t\t\"viz-panel\": {\n\t\t\ttitle: {\n\t\t\t\ttitle: \"Título\"\n\t\t\t}\n\t\t},\n\t\t\"viz-panel-explore-button\": {\n\t\t\texplore: \"Explorar\"\n\t\t},\n\t\t\"viz-panel-renderer\": {\n\t\t\t\"loading-plugin-panel\": \"A carregar o painel de plugins...\",\n\t\t\t\"panel-plugin-has-no-panel-component\": \"O plugin do painel não tem componente de painel\"\n\t\t},\n\t\t\"viz-panel-series-limit\": {\n\t\t\t\"content-rendering-series-single-panel-impact-performance\": \"A renderização de demasiadas séries num único painel pode afetar o desempenho e dificultar a leitura dos dados. \",\n\t\t\t\"warning-message\": \"A mostrar apenas {{seriesLimit}} séries\"\n\t\t}\n\t},\n\tutils: {\n\t\t\"controls-label\": {\n\t\t\t\"tooltip-remove\": \"Remover\"\n\t\t},\n\t\t\"loading-indicator\": {\n\t\t\t\"content-cancel-query\": \"Cancelar consulta\"\n\t\t}\n\t},\n\tvariables: {\n\t\t\"ad-hoc-combobox\": {\n\t\t\t\"aria-label-edit-filter-operator\": \"Editar operador de filtro\"\n\t\t},\n\t\t\"ad-hoc-filter-builder\": {\n\t\t\t\"aria-label-add-filter\": \"Adicionar filtro\",\n\t\t\t\"title-add-filter\": \"Adicionar filtro\"\n\t\t},\n\t\t\"ad-hoc-filter-renderer\": {\n\t\t\t\"aria-label-remove-filter\": \"Remover filtro\",\n\t\t\t\"key-select\": {\n\t\t\t\t\"placeholder-select-label\": \"Selecione etiqueta\"\n\t\t\t},\n\t\t\t\"label-select-label\": \"Selecione etiqueta\",\n\t\t\t\"title-remove-filter\": \"Remover filtro\",\n\t\t\t\"value-select\": {\n\t\t\t\t\"placeholder-select-value\": \"Selecionar valor\"\n\t\t\t}\n\t\t},\n\t\t\"data-source-variable\": {\n\t\t\tlabel: {\n\t\t\t\t\"default\": \"padrão\"\n\t\t\t}\n\t\t},\n\t\t\"default-group-by-custom-indicator-container\": {\n\t\t\t\"aria-label-clear\": \"limpar\",\n\t\t\ttooltip: \"Aplicado por predefinição neste painel de controlo. Em caso de edição, é transferido para outros painéis de controlo.\",\n\t\t\t\"tooltip-restore-groupby-set-by-this-dashboard\": \"Restaurar grupo definido por este painel de controlo.\"\n\t\t},\n\t\t\"format-registry\": {\n\t\t\tformats: {\n\t\t\t\tdescription: {\n\t\t\t\t\t\"commaseparated-values\": \"Valores separados por vírgulas\",\n\t\t\t\t\t\"double-quoted-values\": \"Valores entre aspas duplas\",\n\t\t\t\t\t\"format-date-in-different-ways\": \"Formatar a data de diferentes formas\",\n\t\t\t\t\t\"format-multivalued-variables-using-syntax-example\": \"Formatar variáveis de valores múltiplos com a sintaxe glob, exemplo {value1,value2}\",\n\t\t\t\t\t\"html-escaping-of-values\": \"Escape de valores HTML\",\n\t\t\t\t\t\"json-stringify-value\": \"Valor no formato JSON (stringify)\",\n\t\t\t\t\t\"keep-value-as-is\": \"Manter o valor como está\",\n\t\t\t\t\t\"multiple-values-are-formatted-like-variablevalue\": \"Os valores múltiplos são formatados como variável=valor\",\n\t\t\t\t\t\"single-quoted-values\": \"Valores entre aspas simples\",\n\t\t\t\t\t\"useful-escaping-values-taking-syntax-characters\": \"Útil para valores de escape de URL, tendo em conta carateres de sintaxe URI\",\n\t\t\t\t\t\"useful-for-url-escaping-values\": \"Útil para valores de escape de URL\",\n\t\t\t\t\t\"values-are-separated-by-character\": \"Os valores são separados pelo caráter |\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"group-by-variable-renderer\": {\n\t\t\t\"aria-label-group-by-selector\": \"Agrupar por seletor\",\n\t\t\t\"placeholder-group-by-label\": \"Agrupar por etiqueta\"\n\t\t},\n\t\t\"interval-variable\": {\n\t\t\t\"placeholder-select-value\": \"Selecionar valor\"\n\t\t},\n\t\t\"loading-options-placeholder\": {\n\t\t\t\"loading-options\": \"A carregar opções...\"\n\t\t},\n\t\t\"multi-value-apply-button\": {\n\t\t\tapply: \"Aplicar\"\n\t\t},\n\t\t\"no-options-placeholder\": {\n\t\t\t\"no-options-found\": \"Nenhuma opção encontrada\"\n\t\t},\n\t\t\"options-error-placeholder\": {\n\t\t\t\"error-occurred-fetching-labels-click-retry\": \"Ocorreu um erro ao obter as etiquetas. Clique para tentar novamente\"\n\t\t},\n\t\t\"test-object-with-variable-dependency\": {\n\t\t\ttitle: {\n\t\t\t\thello: \"Olá\"\n\t\t\t}\n\t\t},\n\t\t\"test-variable\": {\n\t\t\ttext: {\n\t\t\t\ttext: \"Texto\"\n\t\t\t}\n\t\t},\n\t\t\"variable-value-input\": {\n\t\t\t\"placeholder-enter-value\": \"Introduza o valor\"\n\t\t},\n\t\t\"variable-value-select\": {\n\t\t\t\"placeholder-select-value\": \"Selecionar valor\"\n\t\t}\n\t}\n}\n};\n\nexport { grafanaScenes as default };\n//# sourceMappingURL=grafana-scenes.json.js.map\n"],"names":["grafanaScenes","components","content","subTitle","title","splitter","explore","utils","variables","label","tooltip","formats","description","apply","hello","text"],"sourceRoot":""} \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/211.js b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/211.js deleted file mode 100644 index 3f9c52c..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/211.js +++ /dev/null @@ -1,41 +0,0 @@ -(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[211],{271:(e,t,n)=>{"use strict";n.d(t,{VV:()=>xt,jc:()=>yt});var r=n(5959),a=n.n(r),i=n(7781),s=n(118),o=n(7197),l=n(1829),c=n(8531),u=n(6089),d=n(2007),m=n(1051),p=n(940);const f=({exploration:e})=>{const{origin:t}=(0,p.A)(),[n,i]=(0,r.useState)("Copy url");return a().createElement(d.ToolbarButton,{variant:"canvas",icon:"share-alt",tooltip:n,onClick:()=>{navigator.clipboard&&(navigator.clipboard.writeText(t+(0,m.__)(e)),i("Copied!"),setTimeout(()=>{i("Copy url")},2e3))}})};var v=n(2645),g=n(775),h=n(3049),b=n(1269);function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function w(e){for(var t=1;tObject.values(e.reduce((e,t)=>{if(t.label){const s=t.label.slice(t.label.indexOf(".")+1);if(O.includes(t.label)){var n;const r=null!==(n=e.recommended)&&void 0!==n?n:{label:"Recommended",options:[]};r.options.push(S(w({},t),{label:s})),e.recommended=r}else if(t.label.startsWith("resource.")){var r;const n=null!==(r=e.resource)&&void 0!==r?r:{label:"Resource",options:[]};n.options.push(S(w({},t),{label:s})),e.resource=n}else if(t.label.startsWith("span.")){var a;const n=null!==(a=e.span)&&void 0!==a?a:{label:"Span",options:[]};n.options.push(S(w({},t),{label:s})),e.span=n}else{var i;const n=null!==(i=e.other)&&void 0!==i?i:{label:"Other",options:[]};n.options.push(t),e.other=n}}return e},{})).sort((e,t)=>x.indexOf(e.label)-x.indexOf(t.label)),[e]);var l;return a().createElement("div",{className:s.container},a().createElement(d.Field,{label:"Add extra columns"},a().createElement(d.Select,{value:""!==(null==t?void 0:t.toString())&&null!==(l=null==t||null===(i=t.toString())||void 0===i?void 0:i.split(","))&&void 0!==l?l:"",placeholder:"Select an attribute",options:o,onChange:e=>n(e.map(e=>e.value).join(",")),isMulti:!0,isClearable:!0,virtualized:!0,prefix:a().createElement(d.Icon,{name:"columns"})})))}const j=()=>({container:(0,u.css)({display:"flex",minWidth:"300px","& > div":{width:"100%"}})});var k=n(6338);function C(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function P(e){for(var t=1;te=>e.pipe((0,b.map)(e=>e.map(e=>{var t;const n=e.fields,r=n.find(e=>"traceName"===e.name),i={type:d.TableCellDisplayMode.Custom,cellComponent:e=>{const t=e.frame,n=null==t?void 0:t.fields.find(e=>"traceIdHidden"===e.name),r=null==t?void 0:t.fields.find(e=>"spanID"===e.name),i=null==n?void 0:n.values[e.rowIndex],s=null==r?void 0:r.values[e.rowIndex];if(!i)return e.value;const o=e.value?e.value:"";return a().createElement("div",{className:"cell-link-wrapper"},a().createElement("div",{className:"cell-link",title:o,onClick:()=>{this.publishEvent(new l.vR({traceId:i,spanId:s}),!0)}},o),a().createElement(d.Link,{href:this.getLinkToExplore(i,s),target:"_blank",title:"Open in new tab"},a().createElement(d.Icon,{name:"external-link-alt",size:"sm"})))}};return(null==r||null===(t=r.config)||void 0===t?void 0:t.custom)&&(r.config.custom.cellOptions=i),_(P({},e),{fields:n})})))]}updatePanel(e){var t,n;if((null==e?void 0:e.state)!==i.LoadingState.Loading&&(null==e?void 0:e.state)!==i.LoadingState.NotStarted&&(null==e?void 0:e.state)&&((null==e?void 0:e.state)!==i.LoadingState.Streaming||(null===(n=e.series)||void 0===n||null===(t=n[0])||void 0===t?void 0:t.length))){if((null==e?void 0:e.state)===i.LoadingState.Done||(null==e?void 0:e.state)===i.LoadingState.Streaming)if(0===e.series.length||0===e.series[0].length){if("empty"===this.state.dataState&&this.state.panel)return;this.setState({dataState:"empty",panel:new s.G1({children:[new s.vA({body:new g.v({message:l.PL,remedyMessage:l.a5,padding:"32px"})})]})})}else"done"!==this.state.dataState&&this.setState({dataState:"done",panel:new s.G1({direction:"row",children:[new s.vA({body:s.d0.table().setHoverHeader(!0).setOverrides(e=>e.matchFieldsWithName("spanID").overrideCustomFieldConfig("hidden",!0).matchFieldsWithName("traceService").overrideCustomFieldConfig("width",350).matchFieldsWithName("traceName").overrideCustomFieldConfig("width",350)).build()})]})})}else{if("loading"===this.state.dataState)return;this.setState({dataState:"loading",panel:new s.G1({direction:"row",children:[new v.G({component:T})]})})}}constructor(e){super(P({dataState:"empty"},e)),C(this,"getLinkToExplore",(e,t)=>{const n=(0,m.zY)(this),r=(0,m.U4)(n),a=s.jh.getTimeRange(this).state.value,o=JSON.stringify({"explore-traces":{range:(0,i.toURLRange)(a.raw),queries:[{refId:"traceId",queryType:"traceql",query:e,datasource:r}],panelsState:{trace:{spanId:t}},datasource:r}});var l;const u=null!==(l=c.config.appSubUrl)&&void 0!==l?l:"";return i.urlUtil.renderUrl(`${u}/explore`,{panes:o,schemaVersion:1})}),C(this,"onChange",e=>{const t=(0,m.gi)(this);t.getValue()!==e&&(t.changeValueTo(e),(0,k.EE)(k.NO.analyse_traces,k.ir.analyse_traces.span_list_columns_changed,{columns:e}))}),this.addActivationHandler(()=>{this.setState({$data:new s.Es({transformations:this.setupTransformations()})});const e=s.jh.getData(this);this.updatePanel(e.state.data),this._subs.add(e.subscribeToState(e=>{this.updatePanel(e.data)}))})}}C(N,"Component",({model:e})=>{const{panel:t}=e.useState(),n=D((0,d.useTheme2)()),r=(0,m.gi)(e),{attributes:s}=(0,m.YX)(e).useState();var o;if(t)return a().createElement("div",{className:n.container},a().createElement("div",{className:n.header},a().createElement("div",{className:n.description},"View a list of spans for the current set of filters."),a().createElement(E,{options:null!==(o=null==s?void 0:s.map(e=>(0,i.toOption)(e)))&&void 0!==o?o:[],value:r.getValue(),onChange:e.onChange})),a().createElement(t.Component,{model:t}))});const D=e=>({container:(0,u.css)({display:"contents",'[role="cell"] > div':{display:"flex",width:"100%"},".cell-link-wrapper":{display:"flex",gap:"4px",justifyContent:"space-between",alignItems:"center",width:"100%",a:{padding:4,fontSize:0,":hover":{background:e.colors.background.secondary}}},".cell-link":{color:e.colors.text.link,cursor:"pointer",maxWidth:"300px",overflow:"hidden",textOverflow:"ellipsis",":hover":{textDecoration:"underline"}}}),description:(0,u.css)({fontSize:e.typography.h6.fontSize,padding:`${e.spacing(1)} 0 ${e.spacing(2)} 0`}),header:(0,u.css)({display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:"10px"})}),T=()=>{const e=(0,d.useStyles2)(I);return a().createElement("div",{className:e.container},a().createElement("div",{className:e.title},a().createElement(h.A,{count:1,width:80})),[...Array(3)].map((t,n)=>a().createElement("div",{className:e.row,key:n},[...Array(6)].map((t,n)=>a().createElement("span",{className:e.rowItem,key:n},a().createElement(h.A,{count:1}))))))};function I(e){return{container:(0,u.css)({height:"100%",width:"100%",position:"absolute",backgroundColor:e.colors.background.primary,border:`1px solid ${e.colors.border.weak}`,padding:"5px"}),title:(0,u.css)({marginBottom:"20px"}),row:(0,u.css)({marginBottom:"5px",display:"flex",justifyContent:"space-around"}),rowItem:(0,u.css)({width:"14%"})}}function A(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class $ extends s.Bs{_onActivate(){var e;this._subs.add(null===(e=(0,m.YX)(this).state.$data)||void 0===e?void 0:e.subscribeToState(()=>{this.updateBody()})),this._subs.add((0,m.YX)(this).subscribeToState((e,t)=>{var n,r;(null===(n=e.$data)||void 0===n?void 0:n.state.key)!==(null===(r=t.$data)||void 0===r?void 0:r.state.key)&&this.updateBody()})),this._subs.add((0,m.H_)(this).subscribeToState((e,t)=>{e.value!==t.value&&this.updateBody()})),this.updateBody()}updateBody(){this.setState({body:new N({})})}constructor(e){super(function(e){for(var t=1;t{const{body:t}=e.useState();return t&&a().createElement(t.Component,{model:t})});class F{addSpan(e){this.left=Math.min(L(e),this.left),this.right=Math.max(V(e),this.right),this.spans.push(e)}addChild(e){e.parent=this,this.children.push(e)}isChild(e){return L(e)>this.left&&V(e)"service.name"===e.key);var i,s,o,l;return new F({left:L(e),right:V(e),name:M(e),serviceName:null!==(s=null!==(i=null==a?void 0:a.value.stringValue)&&void 0!==i?i:null==a||null===(r=a.value)||void 0===r||null===(n=r.Value)||void 0===n?void 0:n.string_value)&&void 0!==s?s:"",operationName:null!==(o=e.name)&&void 0!==o?o:"",spans:[e],traceID:null!==(l=e.traceId)&&void 0!==l?l:""})}function M(e){let t="";for(const n of e.attributes||[])"service.name"===n.key&&n.value.stringValue&&(t=n.value.stringValue);return`${t}:${e.name}`}function R(e){e.left=Number.MAX_SAFE_INTEGER,e.right=Number.MIN_SAFE_INTEGER;for(const t of e.children)R(t)}var H=n(3733);function q(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function G(e){for(var t=1;t{var t,n,r,a;if((null===(t=e.data)||void 0===t?void 0:t.state)!==i.LoadingState.Loading&&(null===(n=e.data)||void 0===n?void 0:n.state)!==i.LoadingState.Streaming){if((null===(r=e.data)||void 0===r?void 0:r.state)===i.LoadingState.Done&&(null===(a=e.data)||void 0===a?void 0:a.series.length)){var o;const t=null===(o=e.data)||void 0===o?void 0:o.series[0].fields[0].values[0];if(t){const e=function(e){const t=new F({name:"root",serviceName:"",operationName:"",left:Number.MIN_SAFE_INTEGER,right:Number.MAX_SAFE_INTEGER,spans:[],traceID:""});if(e&&e.length>0)for(const r of e){var n;if(1!==(null===(n=r.spanSets)||void 0===n?void 0:n.length))throw new Error("there should be only 1 spanset!");const e=parseInt(r.startTimeUnixNano||"0",10),a=r.spanSets[0];a.spans.sort((e,t)=>L(e)-L(t));let i=t;R(t);for(const t of a.spans){for(t.traceId=r.traceID,t.startTimeUnixNano=""+(parseInt(t.startTimeUnixNano,10)-e);null!==i.parent&&!i.isChild(t);)i=i.parent;const n=i.findMatchingChild(t);if(n){n.addSpan(t),i=n;continue}const a=z(t);a.traceID=r.traceID,i.addChild(a),i=a}}return t}(JSON.parse(t));e.children.sort((e,t)=>X(t)-X(e)),this.setState({loading:!1,tree:e,panel:new s.G1({height:"100%",wrap:"wrap",children:this.getPanels(e)})})}}}else this.setState({loading:!0})}))}getPanels(e){return e.children.map(e=>new s.vA({height:150,width:"100%",minHeight:"400px",body:this.getPanel(e)}))}getPanel(e){const t=s.jh.getTimeRange(this),n=t.state.value.from,r=t.state.value.to,a=(0,m.w$)(this);return s.d0.traces().setTitle(`Structure for ${e.serviceName} [${X(e)} spans used]`).setOption("createFocusSpanLink",(e,t)=>({title:"Open trace",href:"#",onClick:()=>a(e,t),origin:{},target:"_self"})).setData(new s.Zv({data:{state:i.LoadingState.Done,timeRange:{from:n,to:r,raw:{from:n,to:r}},series:[G({},this.buildData(e))]}})).build()}buildData(e){const t=this.getTrace(e,W),n=t[0].serviceName+":"+t[0].operationName;return(0,i.createDataFrame)({name:`Trace ${n}`,refId:`trace_${n}`,fields:[{name:"references",type:i.FieldType.other,values:t.map(e=>e.references)},{name:"traceID",type:i.FieldType.string,values:t.map(e=>e.traceID)},{name:"spanID",type:i.FieldType.string,values:t.map(e=>e.spanID)},{name:"parentSpanID",type:i.FieldType.string,values:t.map(e=>e.parentSpanId)},{name:"serviceName",type:i.FieldType.string,values:t.map(e=>e.serviceName)},{name:"operationName",type:i.FieldType.string,values:t.map(e=>e.operationName)},{name:"duration",type:i.FieldType.number,values:t.map(e=>e.duration)},{name:"startTime",type:i.FieldType.number,values:t.map(e=>e.startTime)},{name:"statusCode",type:i.FieldType.number,values:t.map(e=>e.statusCode)}]})}getTrace(e,t){const n=e.spans.reduce((e,t)=>{var n,r;return"error"===(null===(r=t.attributes)||void 0===r||null===(n=r.find(e=>"status"===e.key))||void 0===n?void 0:n.value.stringValue)?e+1:e},0);let r=1e-4;t!==W&&(r=e.spans.reduce((e,t)=>e+parseInt(t.startTimeUnixNano,10),0)/e.spans.length/1e6);const a=[{references:e.spans.slice(-5).map(e=>({refType:"EXTERNAL",traceID:e.traceId,spanID:e.spanID})),traceID:e.traceID,spanID:e.spans[0].spanID,parentSpanId:t,serviceName:e.serviceName,operationName:e.operationName,statusCode:n>0?2:0,duration:e.spans.reduce((e,t)=>e+parseInt(t.durationNanos,10),0)/e.spans.length/1e6,startTime:r}];for(const t of e.children)a.push(...this.getTrace(t,e.spans[0].spanID));return a}constructor(e){super(G({$data:new s.Es({$data:new s.dt({datasource:l.Vl,queries:[Y(e.metric)]}),transformations:l.s9}),loading:!0},e)),this.addActivationHandler(this._onActivate.bind(this))}}function Y(e){let t,n="";switch(e){case"errors":t="status = error",n="status = error";break;case"duration":t=`duration > ${l.Ld}`,n=`duration > ${l.xT}`;break;default:t="kind = server"}return{refId:"A",query:`{${l.ui} ${n.length?`&& ${n}`:""}} &>> { ${t} } | select(status, resource.service.name, name, nestedSetParent, nestedSetLeft, nestedSetRight)`,queryType:"traceql",tableType:"raw",limit:200,spss:20,filters:[]}}q(U,"Component",({model:e})=>{var t,n;const{tree:r,loading:s,panel:o,$data:c}=e.useState(),u=K((0,d.useTheme2)()),p=(0,d.useTheme2)(),f=(0,m.zY)(e),{value:v}=f.getMetricVariable().useState(),g=v;let b,y=s||!(null==r?void 0:r.children.length);(null==c||null===(t=c.state.data)||void 0===t?void 0:t.state)===i.LoadingState.Done&&(y=!1);let w="";switch(g){case"rate":b=a().createElement(a().Fragment,null,a().createElement("div",null,"Analyse the service structure of the traces that match the current filters."),a().createElement("div",null,"Each panel represents an aggregate view compiled using spans from multiple traces.")),w="server";break;case"errors":b=a().createElement(a().Fragment,null,a().createElement("div",null,"Analyse the errors structure of the traces that match the current filters."),a().createElement("div",null,"Each panel represents an aggregate view compiled using spans from multiple traces.")),w="error";break;case"duration":b=a().createElement(a().Fragment,null,a().createElement("div",null,"Analyse the structure of slow spans from the traces that match the current filters."),a().createElement("div",null,"Each panel represents an aggregate view compiled using spans from multiple traces.")),w="slow"}const S=ot(g),O=a().createElement(a().Fragment,null,a().createElement(d.Text,{textAlignment:"center",variant:"h3"},l.PL),a().createElement(d.Text,{textAlignment:"center",variant:"body"},a().createElement("div",{className:u.longText},"The structure tab shows ",w," spans beneath what you are currently investigating. Currently, there are no descendant ",w," spans beneath the spans you are investigating.")),a().createElement(d.Stack,{gap:.5,alignItems:"center"},a().createElement(d.Icon,{name:"info-circle"}),a().createElement(d.Text,{textAlignment:"center",variant:"body"},"The structure tab works best with full traces.")),a().createElement("div",{className:u.actionContainer},"Read more about",a().createElement("div",{className:u.action},a().createElement(d.LinkButton,{icon:"external-link-alt",fill:"solid",size:"sm",target:"_blank",href:"https://grafana.com/docs/grafana/next/explore/simplified-exploration/traces/concepts/#trace-structure"},`${S.toLowerCase()}`))));return a().createElement(d.Stack,{direction:"column",gap:1},a().createElement("div",{className:u.description},b),y&&a().createElement(d.Stack,{direction:"column",gap:2},a().createElement(h.A,{count:4,height:200,baseColor:p.colors.background.secondary,highlightColor:p.colors.background.primary})),!y&&r&&r.children.length>0&&a().createElement("div",{className:u.traceViewList},o&&a().createElement(o.Component,{model:o})),(null==c||null===(n=c.state.data)||void 0===n?void 0:n.state)===i.LoadingState.Done&&!(null==r?void 0:r.children.length)&&a().createElement(H.p,{message:O,padding:"32px"}))});const K=e=>({description:(0,u.css)({fontSize:e.typography.h6.fontSize,padding:`${e.spacing(1)} 0`}),traceViewList:(0,u.css)({display:"flex",flexDirection:"column",gap:e.spacing.x1,'div[class*="panel-content"] > div':{overflow:"auto",'> :not([class*="TraceTimelineViewer"])':{display:"none"}},'div[data-testid="span-detail-component"] > :nth-child(4) > :nth-child(1)':{display:"none"},".span-detail-row":{display:"none"},'div[data-testid="TimelineRowCell"]':{'button[role="switch"]':{cursor:"text"}},'div[data-testid="span-view"]':{cursor:"text !important"}}),longText:(0,u.css)({maxWidth:"800px",margin:"0 auto"}),action:(0,u.css)({marginLeft:e.spacing(1)}),actionContainer:(0,u.css)({display:"flex",justifyContent:"space-between",alignItems:"center"})});function X(e){let t=e.spans.length;for(const n of e.children)t+=X(n);return t}var Q=n(5540);function Z({options:e,radioAttributes:t,value:n,onChange:i,showAll:s=!1,model:o}){var c,u;const p=(0,d.useStyles2)(J),f=(0,d.useTheme2)(),{fontSize:v}=f.typography,[g,h]=(0,r.useState)(""),[b,y]=(0,r.useState)(!0),[w,S]=(0,r.useState)(0),O=(0,r.useRef)(null),{initialGroupBy:x}=(0,m.zY)(o).useState(),{filters:E}=(0,m.gG)(o).useState(),{value:j}=(0,m.H_)(o).useState(),k=j;(0,Q.w)({ref:O,onResize:()=>{const e=O.current;e&&S(e.clientWidth)}});const C=(0,r.useMemo)(()=>{let n=0;return t.filter(t=>{let n=!!e.find(e=>e.value===t);return!E.find(e=>e.key===t&&("="===e.operator||"!="===e.operator))&&(E.find(e=>"nestedSetParent"===e.key)&&(n=n&&"rootName"!==t&&"rootServiceName"!==t),"rate"!==k&&"errors"!==k||(n=n&&"status"!==t),n)}).map(e=>({label:e.replace(l.zd,"").replace(l.$d,""),text:e,value:e})).filter(e=>{const t=e.label||e.text||"",r=(0,d.measureText)(t,v).width;return n+r+40+180{const t=e.filter(e=>!C.find(t=>{var n;return t.value===(null===(n=e.value)||void 0===n?void 0:n.toString())}));return ee(t,g)},[g,e,C]),_=e=>e.filter(e=>{var t;return!l.uK.includes(null===(t=e.value)||void 0===t?void 0:t.toString())}).map(e=>{var t;return{label:null===(t=e.label)||void 0===t?void 0:t.replace(l.zd,"").replace(l.$d,""),value:e.value}});var N;const D=null!==(N=null!=x?x:null===(c=C[0])||void 0===c?void 0:c.value)&&void 0!==N?N:null===(u=P[0])||void 0===u?void 0:u.value;(0,r.useEffect)(()=>{D&&!s&&b&&(i(D,!0),y(!1))},[n,D,s,i,b]),(0,r.useEffect)(()=>{t.length>0&&y(!0)},[t]),(0,r.useEffect)(()=>{E.some(e=>e.key===n)&&y(!0)},[E,n]);const T=s?[{label:l.y2,value:l.y2}]:[],I=s?l.y2:"";return a().createElement(d.Field,{label:"Group by"},a().createElement("div",{ref:O,className:p.container},C.length>0&&a().createElement(d.RadioButtonGroup,{options:[...T,...C],value:n,onChange:i}),a().createElement(d.Select,{value:n&&_(P).some(e=>e.value===n)?n:null,placeholder:"Other attributes",options:_(P),onChange:e=>{var t;const n=null!==(t=null==e?void 0:e.value)&&void 0!==t?t:I;i(n)},className:p.select,isClearable:!0,onInputChange:(e,{action:t})=>{"input-change"===t&&h(e)},onCloseMenu:()=>h(""),virtualized:!0})))}function J(e){return{select:(0,u.css)({maxWidth:e.spacing(22)}),container:(0,u.css)({display:"flex",gap:e.spacing(1)})}}const ee=(e,t)=>{if(0===e.length)return[];if(0===t.length)return e.slice(0,l.nr);const n=t.toLowerCase();return e.filter(e=>!!(e.value&&e.value.length>0)&&e.value.toLowerCase().includes(n)).slice(0,l.nr)};function te(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class ne extends s.Bs{Selector({model:e}){const{active:t,options:n}=e.useState();return a().createElement(d.Field,{label:"View"},a().createElement(d.RadioButtonGroup,{options:n,value:t,onChange:e.onLayoutChange}))}constructor(...e){super(...e),te(this,"onLayoutChange",e=>{this.setState({active:e}),(0,k.EE)(k.NO.analyse_traces,k.ir.analyse_traces.layout_type_changed,{layout:e})})}}te(ne,"Component",({model:e})=>{const{layouts:t,options:n,active:r}=e.useState(),i=n.findIndex(e=>e.value===r);if(-1===i)return null;const s=t[i];return a().createElement(s.Component,{model:s})});var re=n(806),ae=n(8327),ie=n(9840),se=n(6997);const oe=()=>s.d0.timeseries().setOption("legend",{showLegend:!1}).setOption("tooltip",{mode:d.TooltipDisplayMode.Multi}).setCustomFieldConfig("fillOpacity",15);var le=n(6374),ce=n(3241);function ue(){return e=>{const t=new Map,n=e.subscribeToEvent(l.sv,n=>{const r=n.payload.series;null==r||r.forEach(e=>{e.fields.slice(1).forEach(n=>{t.set(e.refId,Math.max(...n.values.filter(e=>e)))})}),function(e,t){const n=s.jh.findAllObjects(e,e=>e instanceof s.Eb);for(const e of n)e.clearFieldConfigCache(),e.setState({fieldConfig:(0,ce.merge)((0,ce.cloneDeep)(e.state.fieldConfig),{defaults:{max:t}})})}(e,Math.max(...t.values()))});return()=>{n.unsubscribe()}}}var de=n(3247),me=n(4524);function pe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function fe(e){for(var t=1;te=>e.pipe((0,b.map)(e=>(e.forEach(e=>(0,i.reduceField)({field:e.fields[1],reducers:[i.ReducerID.max]})),e.sort((e,t)=>{var n,r,a,i;return((null===(r=t.fields[1].state)||void 0===r||null===(n=r.calcs)||void 0===n?void 0:n.max)||0)-((null===(i=e.fields[1].state)||void 0===i||null===(a=i.calcs)||void 0===a?void 0:a.max)||0)}))))]}),options:[{value:"single",label:"Single"},{value:"grid",label:"Grid"},{value:"rows",label:"Rows"}],active:"grid",layouts:[new s.G1({direction:"column",children:[new s.vA({minHeight:300,body:("duration"===r?oe().setUnit("s"):oe()).build()})]}),new ae.hE({body:new s.gF({templateColumns:l.MV,autoRows:"200px",isLazy:!0,children:[]}),groupBy:!0,getLayoutChild:he(o,m.ee,t,r,n)}),new ae.hE({body:new s.gF({templateColumns:"1fr",autoRows:"200px",isLazy:!0,children:[]}),groupBy:!0,getLayoutChild:he(o,m.ee,t,r,n)})]})}function he(e,t,n,r,a){return(i,o)=>{var l;const c=o.name?e[o.name]:void 0,u=new s.Zv({data:ve(fe({},i),{annotations:null===(l=i.annotations)||void 0===l?void 0:l.filter(e=>e.refId===o.refId),series:[ve(fe({},o),{fields:o.fields.sort((e,t)=>{var n,r,a;return(null===(a=e.labels)||void 0===a||null===(r=a.status)||void 0===r?void 0:r.localeCompare((null===(n=t.labels)||void 0===n?void 0:n.status)||""))||0})})]})});var d;if(c)return null===(d=c.state.body)||void 0===d||d.setState({$data:u}),c;const p=s.jh.interpolate(n,(0,ie.n)({metric:r,extraFilters:`${n.getValueText()}=${(0,m.xo)((0,m.ee)(o))}`})),f=("duration"===r?oe().setUnit("s"):(0,se.z)(r)).setTitle(t(o,n.getValueText())).setMenu(new me.GD({query:p,labelValue:(0,m.ee)(o)})).setData(u),v=a(o);v&&f.setHeaderActions(v);const g=new s.xK({body:f.build()});return o.name&&(e[o.name]=g),g}}function be({description:e,tags:t}){const n=function(e){return{infoFlex:(0,u.css)({display:"flex",gap:e.spacing(2),alignItems:"center",padding:`${e.spacing(1)} 0 ${e.spacing(2)} 0`}),tagsFlex:(0,u.css)({display:"flex",gap:e.spacing(1),alignItems:"center"}),tag:(0,u.css)({display:"inline-block",width:e.spacing(2),height:e.spacing(.5),borderRadius:e.spacing(.5)})}}((0,d.useTheme2)());return a().createElement("div",{className:n.infoFlex},a().createElement("div",{className:n.tagsFlex},e),t.length>0&&t.map(e=>a().createElement("div",{className:n.tagsFlex,key:e.label},a().createElement("div",{className:n.tag,style:{backgroundColor:e.color}}),a().createElement("div",null,e.label))))}function ye(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class we extends s.Bs{_onActivate(){const e=(0,m.pl)(this);e.subscribeToState(()=>{this.setBody(e)}),(0,m.YX)(this).subscribeToState(()=>{this.setBody(e)}),this.setBody(e)}onReferencedVariableValueChanged(){const e=(0,m.pl)(this);e.changeValueTo(l.u0[0]),this.setBody(e)}onAddToFiltersClick(e){(0,k.EE)(k.NO.analyse_traces,k.ir.analyse_traces.breakdown_add_to_filters_clicked,e)}constructor(e){super(function(e){for(var t=1;t{this.setState({body:ge(this,e,t=>[new re.Ms({frame:t,labelKey:e.getValueText(),onClick:this.onAddToFiltersClick})])})}),ye(this,"onChange",(e,t)=>{const n=(0,m.pl)(this);n.getValueText()!==e&&(n.changeValueTo(e,void 0,!t),(0,k.EE)(k.NO.analyse_traces,k.ir.analyse_traces.breakdown_group_by_changed,{groupBy:e}))}),this.addActivationHandler(this._onActivate.bind(this))}}function Se(e){return{container:(0,u.css)({flexGrow:1,display:"flex",minHeight:"100%",flexDirection:"column"}),content:(0,u.css)({flexGrow:1,display:"flex",paddingTop:e.spacing(0)}),controls:(0,u.css)({flexGrow:0,display:"flex",alignItems:"top",gap:e.spacing(2)}),controlsRight:(0,u.css)({flexGrow:0,display:"flex",justifyContent:"flex-end"}),scope:(0,u.css)({marginRight:e.spacing(2)}),groupBy:(0,u.css)({width:"100%"}),controlsLeft:(0,u.css)({display:"flex",justifyContent:"flex-left",justifyItems:"left",width:"100%",flexDirection:"row"})}}function Oe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}ye(we,"Component",({model:e})=>{const{value:t}=(0,m.pl)(e).useState(),n=t,i=n.includes(l.zd)||l.jx.includes(n)?l.BS:l.bD,[s,o]=(0,r.useState)(i),{body:c}=e.useState(),u=(0,d.useStyles2)(Se),{attributes:p}=(0,m.YX)(e).useState(),f=s===l.bD?l.$d:l.zd;let v=null==p?void 0:p.filter(e=>e.includes(f));s===l.BS&&(v=null==v?void 0:v.concat(l.jx));const g=(0,m.zY)(e),{value:h}=g.getMetricVariable().useState(),b=(e=>{switch(e){case"rate":return"Attributes are ordered by their rate of requests per second.";case"errors":return"Attributes are ordered by their rate of errors per second.";case"duration":return"Attributes are ordered by their average duration.";default:throw new Error("Metric not supported")}})(h);return(0,r.useEffect)(()=>{s!==i&&o(i)},[n]),a().createElement("div",{className:u.container},a().createElement(be,{description:b,tags:"duration"===h?[]:[{label:"Rate",color:"green"},{label:"Error",color:"red"}]}),a().createElement("div",{className:u.controls},(null==v?void 0:v.length)&&a().createElement("div",{className:u.controlsLeft},a().createElement("div",{className:u.scope},a().createElement(d.Field,{label:"Scope"},a().createElement(d.RadioButtonGroup,{options:(0,m._g)([l.bD,l.BS]),value:s,onChange:o}))),a().createElement("div",{className:u.groupBy},a().createElement(Z,{options:(0,m._g)(v),radioAttributes:s===l.bD?l.u0:l.jx,value:n,onChange:e.onChange,model:e}))),c instanceof ne&&a().createElement("div",{className:u.controlsRight},a().createElement(c.Selector,{model:c}))),a().createElement("div",{className:u.content},c&&a().createElement(c.Component,{model:c})))});class xe extends s.Bs{_onActivate(){this.updateBody()}updateBody(){this.setState({body:new we({})})}constructor(e){super(function(e){for(var t=1;t{const{body:t}=e.useState();return t&&a().createElement(t.Component,{model:t})});var Ee=n(1625);var je=n(7975);function ke(e){if(!e.length)return[];e.sort((e,t)=>e-t);const t=(e[e.length-1]-e[0])/1e3,n=1e3*(0,je.KS)(t,50),r=new Map;for(const t of e){const e=Math.floor(t/n)*n;r.set(e,(r.get(e)||0)+1)}return Array.from(r.entries()).map(([e,t])=>({time:e,count:t})).sort((e,t)=>e.time-t.time)}function Ce(e){return e?e.replace(/\s+/g," ").trim():""}function Pe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _e(e){for(var t=1;t0){const t=this.calculateExceptionsCount(e);this.setState({dataState:"done",exceptionsCount:t,panel:new s.G1({children:[new s.vA({body:s.d0.table().setOption("cellHeight",Ee.qM.Lg).setHoverHeader(!0).setOverrides(e=>e.matchFieldsWithName("Service").overrideCustomFieldConfig("width",200).matchFieldsWithName("Occurrences").overrideCustomFieldConfig("width",120).matchFieldsWithName("Time Series").overrideCustomFieldConfig("width",220).matchFieldsWithName("Last Seen").overrideCustomFieldConfig("width",120)).build()})]})})}}else this.setState({dataState:"empty",exceptionsCount:0,panel:new s.G1({children:[new s.vA({body:new g.v({message:l.PL,remedyMessage:l.a5,padding:"32px"})})]})})}createTransformation(){return()=>e=>e.pipe((0,b.map)(e=>e.map(e=>{const t=e.fields.find(e=>"exception.message"===e.name),n=e.fields.find(e=>"exception.type"===e.name),r=e.fields.find(e=>"service.name"===e.name),a=e.fields.find(e=>"time"===e.name);let s=[],o=[],l=[],c=[],u=[],m=[];if(!(!t||!t.values.length)){const e=function(e,t,n,r){const a=new Map,i=new Map,s=new Map,o=new Map,l=new Map,c=new Map;for(let l=0;l(s.get(e)||0)&&s.set(e,t)}}}for(const[e,t]of c.entries()){const n=ke(t);l.set(e,n)}const u=Array.from(a.entries()).sort((e,t)=>t[1]-e[1]);return{messages:u.map(([e])=>e),types:u.map(([e])=>i.get(e)||""),occurrences:u.map(([,e])=>e),services:u.map(([e])=>o.get(e)||""),timeSeries:u.map(([e])=>l.get(e)||[]),lastSeenTimes:u.map(([e])=>{const t=s.get(e);if(!t)return"";const n=Date.now()-t;return n<6e4?"Just now":n<36e5?`${Math.floor(n/6e4)}m ago`:n<864e5?`${Math.floor(n/36e5)}h ago`:`${Math.floor(n/864e5)}d ago`})}}(t,n,a,r);s=e.messages,o=e.types,l=e.occurrences,c=e.lastSeenTimes,u=e.services,m=e.timeSeries}const p={type:d.TableCellDisplayMode.Custom,cellComponent:e=>{const t=e.value;return this.renderSparklineCell(t)}};return Ne(_e({},e),{length:s.length,fields:[{name:"Message",type:i.FieldType.string,values:s,config:{links:s.length>0?[this.createDataLink()]:[]}},{name:"Type",type:i.FieldType.string,values:o,config:{}},{name:"Trace Service",type:i.FieldType.string,values:u,config:{}},{name:"Occurrences",type:i.FieldType.number,values:l,config:{}},{name:"Frequency",type:i.FieldType.other,values:m,config:{custom:{cellOptions:p}}},{name:"Last Seen",type:i.FieldType.string,values:c,config:{}}]})})))}createDataLink(){return{title:"View traces for this exception",url:"",onClick:e=>{var t;const n=null===(t=e.origin)||void 0===t?void 0:t.rowIndex;if(void 0!==n){var r,a,i;const t=null===(i=e.origin)||void 0===i||null===(a=i.field)||void 0===a||null===(r=a.values)||void 0===r?void 0:r[n];t&&((0,k.EE)(k.NO.analyse_traces,k.ir.analyse_traces.exception_message_clicked),this.navigateToTracesWithFilter(t))}}}}escapeFilterValue(e){return e.replace(/[\n\r\t]/g," ").replace(/\s+/g," ").replace(/\\/g,"\\\\").replace(/"/g,'"').trim()}calculateExceptionsCount(e){var t;if(!(null==e||null===(t=e.series)||void 0===t?void 0:t[0]))return 0;const n=e.series[0].fields.find(e=>"Occurrences"===e.name);return(null==n?void 0:n.values)?n.values.reduce((e,t)=>e+(t||0),0):0}getExceptionsCount(){return this.state.exceptionsCount||0}constructor(e){super(_e({$data:new s.Es({$data:new s.dt({datasource:l.Vl,queries:[{refId:"A",query:`{${l.ui} && status = error} | select(resource.service.name, event.exception.message,event.exception.stacktrace,event.exception.type) with(most_recent=true)`,queryType:"traceql",tableType:"spans",limit:400,spss:10,filters:[]}]}),transformations:[]}),dataState:"empty"},e)),Pe(this,"renderSparklineCell",e=>{const t=(0,d.useStyles2)(Te),n=()=>{const n=(0,d.useTheme2)();if(!e||!e.length)return a().createElement("div",{className:t.sparklineMessage},"No data");const r=e.map(e=>e.count),s=e.map(e=>e.time),o=r.filter(e=>isFinite(e)&&!isNaN(e)),l=s.filter(e=>isFinite(e)&&!isNaN(e));if(o.length<2||l.length<2)return a().createElement("div",{className:t.sparklineMessage},"Not enough data");const c=Math.min(...o),u=Math.max(...o),m=Math.min(...l),p=Math.max(...l),f=u-c,v=p-m,g=0===f?1:f,h=0===v?1:v,b={y:{name:"count",type:i.FieldType.number,values:o,config:{},state:{range:{min:c,max:u,delta:g}}},x:{name:"time",type:i.FieldType.time,values:l,config:{},state:{range:{min:m,max:p,delta:h}}}};return a().createElement("div",{className:t.sparklineContainer},a().createElement(d.Sparkline,{width:180,height:20,sparkline:b,theme:n,config:{custom:{drawStyle:Ee.GR.Line,fillOpacity:5,fillColor:n.colors.background.secondary,lineWidth:1,showPoints:Ee.yL.Never}}}))};return a().createElement(n,null)}),Pe(this,"navigateToTracesWithFilter",e=>{const t=(0,m.gG)(this);if(!t)return;const n=(0,m.YX)(this);null==n||n.setActionView("traceList");const r=t.state.filters||[],a=this.escapeFilterValue(e),i=r.findIndex(e=>"event.exception.message"===e.key),s={key:"event.exception.message",operator:"=",value:a},o=i>=0?r.map((e,t)=>t===i?s:e):[...r,s];t.setState({filters:o})});this.state.$data.setState({transformations:[...l.s9,this.createTransformation()]}),this.addActivationHandler(()=>{const e=this.state.$data;this._subs.add(e.subscribeToState((e,t)=>{e.data!==t.data&&this.updatePanel(e.data)}))})}}Pe(De,"Component",({model:e})=>{const t=(0,d.useStyles2)(Te),n=(0,d.useTheme2)(),{panel:r,dataState:i}=e.useState();return a().createElement("div",{className:t.container},a().createElement("div",{className:t.description},"View exception details from errored traces for the current set of filters."),"loading"===i&&a().createElement("div",{className:t.loadingContainer},a().createElement(h.A,{count:10,height:40,baseColor:n.colors.background.secondary,highlightColor:n.colors.background.primary})),r&&a().createElement(r.Component,{model:r}))});const Te=e=>({container:(0,u.css)({display:"flex",flexDirection:"column",gap:e.spacing(2),height:"100%"}),description:(0,u.css)({fontSize:e.typography.h6.fontSize,padding:`${e.spacing(1)} 0`}),loadingContainer:(0,u.css)({padding:e.spacing(2)}),sparklineContainer:(0,u.css)({width:"200px",display:"flex",alignItems:"center",justifyContent:"center"}),sparklineMessage:(0,u.css)({fontSize:e.typography.bodySmall.fontSize,color:e.colors.text.secondary,padding:e.spacing(1)})}),Ie=()=>{const e=(0,d.useStyles2)(Ae),t=(0,d.useTheme2)();return a().createElement("div",{className:e.container},a().createElement(h.A,{count:10,height:40,baseColor:t.colors.background.secondary,highlightColor:t.colors.background.primary}))};function Ae(e){return{container:(0,u.css)({padding:e.spacing(2)})}}var $e=n(9938),Le=n(2468);function Ve(e){var t,n,r,a;let i="";if(!e)return"{}";e.query&&(i+=e.query);const s=[];(null===(t=e.duration)||void 0===t?void 0:t.from.length)&&s.push(`duration >= ${e.duration.from}`),(null===(n=e.duration)||void 0===n?void 0:n.to.length)&&s.push(`duration <= ${e.duration.to}`),s.length&&(i.length&&(i+=" && "),i+=s.join(" && "));const o=null===(r=e.timeRange)||void 0===r?void 0:r.from,l=null===(a=e.timeRange)||void 0===a?void 0:a.to;return`{${i}}, 10${o&&l?`, ${1e9*o}, ${1e9*l}`:""}`}function Be(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Fe(e){for(var t=1;te.name===u),m=[],p=null==d?void 0:d.fields.find(e=>"Value"===e.name),f=null==d?void 0:d.fields.find(e=>"Baseline"===e.name),v=null==d?void 0:d.fields.find(e=>"Selection"===e.name);if(p&&f&&v)for(let e=0;ee=>e.pipe((0,b.map)(e=>(e.forEach(e=>(0,i.reduceField)({field:e.fields[2],reducers:[i.ReducerID.max]})),e.sort((e,t)=>{var n,r,a,i;return((null===(r=t.fields[2].state)||void 0===r||null===(n=r.calcs)||void 0===n?void 0:n.max)||0)-((null===(i=e.fields[2].state)||void 0===i||null===(a=i.calcs)||void 0===a?void 0:a.max)||0)}))))]}),body:new s.gF({templateColumns:l.MV,autoRows:"200px",isLazy:!0,children:[]}),getLayoutChild:He({},Re,n,r)})}const Re=e=>e.name||"No name available";function He(e,t,n,r){return(a,i)=>{const o=i.name?e[i.name]:void 0,l=new s.Zv({data:ze(Fe({},a),{series:[Fe({},i)]})});var c;if(o)return null===(c=o.state.body)||void 0===c||c.setState({$data:l}),o;const u=(0,$e.x)(r).setTitle(t(i)).setData(l),d=n(i);d&&u.setHeaderActions(d);const m=new s.xK({body:u.build()});return i.name&&(e[i.name]=m),m}}class qe extends s.Bs{}var Ge,We,Ue;Ue=({model:e})=>e.state.attribute?a().createElement(d.Button,{variant:"secondary",size:"sm",fill:"solid",onClick:()=>e.state.onClick()},"Inspect"):null,(We="Component")in(Ge=qe)?Object.defineProperty(Ge,We,{value:Ue,enumerable:!0,configurable:!0,writable:!0}):Ge[We]=Ue;var Ye=n(4917);function Ke(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class Xe extends s.Bs{_onActivate(){const e=(0,m.pl)(this);e.changeValueTo(l.y2),this.updateData(),e.subscribeToState((t,n)=>{t.value!==n.value&&this.setBody(e)}),(0,m.h7)(this).subscribeToState(()=>{this.updateData(),this.setBody(e)}),(0,m.YX)(this).subscribeToState((t,n)=>{(0,ce.isEqual)(t.selection,n.selection)||(this.updateData(),this.setBody(e))}),s.jh.getTimeRange(this).subscribeToState(()=>{this.updateData()}),this.setBody(e)}updateData(){const e=(0,m.YX)(this),t=s.jh.getTimeRange(this),n=t.state.value.from.unix(),r=t.state.value.to.unix(),a=(0,m.h7)(this).state.value,i=this.getFilteredAttributes(a);this.setState({$data:new s.Es({$data:new s.dt({datasource:l.Vl,queries:[Qe(n,r,Ve(e.state.selection))]}),transformations:[()=>e=>e.pipe((0,b.map)(e=>{const t=Ze(e);return Object.entries(t).filter(([e,t])=>!i.includes(e)).map(([e,t])=>Je(e,t)).sort((e,t)=>{const n=(0,Ye.p)(e),r=(0,Ye.p)(t);return Math.abs(r.maxDifference)-Math.abs(n.maxDifference)})}))]})})}onReferencedVariableValueChanged(){const e=(0,m.pl)(this);e.changeValueTo(l.y2),this.setBody(e)}onAddToFiltersClick(e){(0,k.EE)(k.NO.analyse_traces,k.ir.analyse_traces.comparison_add_to_filters_clicked,e)}constructor(e){super(function(e){for(var t=1;t"nestedSetParent<0"===e?["rootName","rootServiceName"]:[]),Ke(this,"setBody",e=>{const t=(0,m.zY)(this);this.setState({body:e.hasAllValue()||e.getValue()===l.y2?(0,$e.nF)(e=>new qe({attribute:e.name,onClick:()=>this.onChange(e.name||"")}),t.getMetricFunction()):Me(this,e,t=>[new re.Ms({frame:t,labelKey:e.getValueText(),onClick:this.onAddToFiltersClick})],t.getMetricFunction())})}),Ke(this,"onChange",(e,t)=>{(0,m.pl)(this).changeValueTo(e,void 0,!t),(0,k.EE)(k.NO.analyse_traces,k.ir.analyse_traces.select_attribute_in_comparison_clicked,{value:e})}),this.addActivationHandler(this._onActivate.bind(this))}}function Qe(e,t,n){const r=`${(0,Le.duration)(t-e,"s").asSeconds()}s`;return{refId:"A",query:`{${l.ui}} | compare(${n})`,step:r,queryType:"traceql",tableType:"spans",limit:100,spss:10,filters:[]}}Ke(Xe,"Component",({model:e})=>{const{body:t}=e.useState(),n=(0,m.pl)(e),r=(0,m.zY)(e),{attributes:i}=(0,m.YX)(e).useState(),s=(0,d.useStyles2)(tt);return a().createElement("div",{className:s.container},a().createElement(be,{description:"Attributes are ordered by the difference between the baseline and selection values for each value.",tags:[{label:"Baseline",color:"duration"===r.getMetricFunction()?$e.bT:(0,d.getTheme)().visualization.getColorByName("semi-dark-green")},{label:"Selection",color:"duration"===r.getMetricFunction()?$e._E:(0,d.getTheme)().visualization.getColorByName("semi-dark-red")}]}),a().createElement("div",{className:s.controls},(null==i?void 0:i.length)&&a().createElement("div",{className:s.controlsLeft},a().createElement(Z,{options:(0,m._g)(i),radioAttributes:l.jx,value:n.getValueText(),onChange:e.onChange,showAll:!0,model:e})),t instanceof ne&&a().createElement("div",{className:s.controlsRight},a().createElement(t.Selector,{model:t}))),a().createElement("div",{className:s.content},t&&a().createElement(t.Component,{model:t})))});const Ze=e=>e.reduce((e,t)=>{const n=t.fields.find(e=>"number"===e.type),r=Object.keys((null==n?void 0:n.labels)||{}).find(e=>!e.startsWith("__"));return r&&(e[r]=[...e[r]||[],t]),e},{}),Je=(e,t)=>{const n={name:e,refId:e,fields:[],length:0},r={name:"Value",type:i.FieldType.string,values:[],config:{},labels:{[e]:e}},a={name:"Baseline",type:i.FieldType.number,values:[],config:{}},s={name:"Selection",type:i.FieldType.number,values:[],config:{}},o=t.reduce((t,n)=>{var r;const a=n.fields.find(e=>"number"===e.type),i=null==a||null===(r=a.labels)||void 0===r?void 0:r[e];return i&&(t[i]=[...t[i]||[],a]),t},{}),l=et(t,"baseline",o),c=et(t,"selection",o);return n.length=Object.keys(o).length,Object.entries(o).forEach(([e,t])=>{var n,i;r.values.push(e),a.values.push((null===(n=t.find(e=>{var t;return'"baseline"'===(null===(t=e.labels)||void 0===t?void 0:t.__meta_type)}))||void 0===n?void 0:n.values[0])/l),s.values.push((null===(i=t.find(e=>{var t;return'"selection"'===(null===(t=e.labels)||void 0===t?void 0:t.__meta_type)}))||void 0===i?void 0:i.values[0])/c)}),n.fields=[r,a,s],n};function et(e,t,n){const r=Object.values(n).reduce((e,n)=>{const r=n.find(e=>{var n;return(null===(n=e.labels)||void 0===n?void 0:n.__meta_type)===`"${t}"`});return e+((null==r?void 0:r.values[0])||0)},0);let a=e.reduce((e,n)=>{var r;const a=n.fields.find(e=>"number"===e.type);return(null==a||null===(r=a.labels)||void 0===r?void 0:r.__meta_type)===`"${t}_total"`?a.values[0]:e},1);return a{const{body:t}=e.useState();return t&&a().createElement(t.Component,{model:t})});var at=n(3518);const it=[{displayName:function(e){return"Breakdown"},value:"breakdown",getScene:function(){return new s.vA({body:new xe({})})}},{displayName:ot,value:"structure",getScene:function(e){return new s.vA({body:new U({metric:e})})}},{displayName:function(e){return"Comparison"},value:"comparison",getScene:function(){return new s.vA({body:new rt({})})}},{displayName:function(e){return"Exceptions"},value:"exceptions",getScene:function(){return new s.vA({body:new De({})})}},{displayName:function(e){return"errors"===e?"Errored traces":"duration"===e?"Slow traces":"Traces"},value:"traceList",getScene:function(){return new s.vA({body:new $({})})}}];class st extends s.Bs{}function ot(e){switch(e){case"rate":return"Service structure";case"errors":return"Root cause errors";case"duration":return"Root cause latency"}}function lt(e){return{actions:(0,u.css)({[e.breakpoints.up(e.breakpoints.values.md)]:{position:"absolute",right:0,top:5,zIndex:2}})}}!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(st,"Component",({model:e})=>{var t,n,o,l;const c=(0,d.useStyles2)(lt),[u,p]=(0,r.useState)(0),v=(0,m.YX)(e),g=(0,m.zY)(e),{actionView:h}=v.useState(),{value:b}=g.getMetricVariable().useState(),{allowedActionViews:y}=g.useState(),w=s.jh.getData(e).useState(),S=null===(o=w.data)||void 0===o||null===(n=o.series)||void 0===n||null===(t=n[0])||void 0===t?void 0:t.length,O=it.filter(e=>("exceptions"!==e.value||"errors"===b)&&(!(null==y?void 0:y.length)||y.includes(e.value))),x=(0,m.gG)(e),E=(0,m.h7)(e),j=s.jh.getTimeRange(e),{filters:k}=x.useState(),{value:C}=E.useState(),{value:P}=j.useState();return(0,r.useEffect)(()=>{if("errors"!==b)return void p(0);const t=(0,m.dB)(e);if(!t)return void p(0);p(t.getExceptionsCount());const n=t.subscribeToState((e,t)=>{e.exceptionsCount!==t.exceptionsCount&&p(e.exceptionsCount||0)});return()=>{n.unsubscribe()}},[b,e,h,k,C,P]),(0,r.useEffect)(()=>{var e;if(!v.state.hasSetView)return g.state.embedded&&(null===(e=w.data)||void 0===e?void 0:e.state)===i.LoadingState.Done&&void 0!==S&&S>20?(v.setState({hasSetView:!0}),void v.setActionView("traceList")):void 0},[null===(l=w.data)||void 0===l?void 0:l.state,g.state.embedded,v,S]),(0,at.A)(()=>{1===O.length&&v.setActionView(O[0].value)}),1===O.length?null:a().createElement(d.Box,null,a().createElement("div",{className:c.actions},a().createElement(d.Stack,{gap:1},a().createElement(f,{exploration:g}))),a().createElement(d.TabsBar,null,O.map((e,t)=>a().createElement(d.Tab,{key:t,label:e.displayName(b),active:h===e.value,onChangeTab:()=>v.setActionView(e.value),counter:"traceList"===e.value?S:"exceptions"===e.value?u:void 0}))))});var ct=n(892),ut=n(8855),dt=n(2860);function mt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class pt extends s.Bs{_onActivate(){this.setState({$data:new s.Es({$data:new le.$({maxDataPoints:"duration"===this.state.metric?24:64,datasource:l.Vl,queries:["duration"===this.state.metric?(0,ct.z)():(0,ie.l)({metric:this.state.metric,sample:!0})]}),transformations:"duration"===this.state.metric?[...(0,de.h)()]:[...(0,de.G)((0,m.w$)(this))]}),panel:this.getVizPanel(this.state.metric)})}getVizPanel(e){return new s.G1({direction:"row",children:[new s.vA({body:"duration"===e?this.getDurationVizPanel():this.getRateOrErrorPanel(e)})]})}getRateOrErrorPanel(e){const t=(0,se.z)(e).setHoverHeader(!0).setDisplayMode("transparent");return"rate"===e?t.setCustomFieldConfig("axisLabel","span/s"):"errors"===e&&t.setTitle("Errors rate").setCustomFieldConfig("axisLabel","error/s").setColor({fixedColor:"semi-dark-red",mode:"fixed"}),t.build()}getDurationVizPanel(){return(0,ut.dX)().setTitle("Histogram by duration").setHoverHeader(!0).setDisplayMode("transparent").build()}constructor(e){super(function(e){for(var t=1;t{this._onActivate();const e=s.jh.getData(this);this._subs.add(e.subscribeToState(e=>{var t,n,r;this.setState({isStreaming:(null===(t=e.data)||void 0===t?void 0:t.state)===i.LoadingState.Streaming}),(null===(n=e.data)||void 0===n?void 0:n.state)===i.LoadingState.Done?0===e.data.series.length||0===e.data.series[0].length||(0,m.W6)(e)?this.setState({panel:new s.G1({children:[new s.vA({body:new g.v({imgWidth:110})})]})}):this.setState({panel:this.getVizPanel(this.state.metric)}):(null===(r=e.data)||void 0===r?void 0:r.state)===i.LoadingState.Loading&&this.setState({panel:new s.G1({direction:"column",maxHeight:xt,height:xt,children:[new v.G({component:()=>(0,ae.NO)(1)})]})})}))})}}function ft(e){return{container:(0,u.css)({flex:1,width:"100%",display:"flex",flexDirection:"column",border:`1px solid ${e.colors.border.weak}`,borderRadius:"2px",background:e.colors.background.primary,paddingTop:"8px","section, section:hover":{borderColor:"transparent"},"& .show-on-hover":{display:"none"}}),headerWrapper:(0,u.css)({display:"flex",alignItems:"center",position:"absolute",top:"4px",left:"8px",zIndex:2}),clickable:(0,u.css)({cursor:"pointer",maxHeight:xt,'[class*="loading-state-scene"]':{height:xt,overflow:"hidden"},":hover":{background:e.colors.background.secondary,input:{backgroundColor:"#ffffff",border:"5px solid #3D71D9",cursor:"pointer"}}}),radioButton:(0,u.css)({display:"block"}),indicatorWrapper:(0,u.css)({position:"absolute",top:"4px",right:"8px",zIndex:2})}}function vt(e,t,n,r,a,i,s){try{var o=e[i](s),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(r,a)}function gt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ht(e){for(var t=1;t{const{panel:t,isStreaming:n}=e.useState(),r=(0,d.useStyles2)(ft),i=(0,m.zY)(e),s=()=>{(0,k.EE)(k.NO.common,k.ir.common.metric_changed,{metric:e.state.metric,location:"panel"}),i.onChangeMetricFunction(e.state.metric)};if(t)return a().createElement("div",{className:(0,u.css)([r.container,r.clickable]),onClick:s},a().createElement("div",{className:r.headerWrapper},a().createElement(d.RadioButtonList,{className:r.radioButton,name:`metric-${e.state.metric}`,options:[{title:"",value:"selected"}],onChange:()=>s(),value:"not-selected"})),n&&a().createElement("div",{className:r.indicatorWrapper},a().createElement(dt.M,{isStreaming:!0,iconSize:10})),a().createElement(t.Component,{model:t}))});class yt extends s.Bs{_onActivate(){const e=new URLSearchParams(window.location.search).get("actionView");e&&it.find(t=>t.value===e)&&this.setState({actionView:e}),this.updateBody();const t=(0,m.zY)(this).getMetricVariable();this._subs.add(t.subscribeToState((e,t)=>{if(e.value!==t.value){const t=(0,Ye.F)(e.value);t&&this.setState({selection:t}),this.updateQueryRunner(e.value),this.updateExceptionsScene(e.value),this.updateBody()}})),this.updateExceptionsScene(t.getValue()),this._subs.add(this.subscribeToState((e,n)=>{var r,a;const i=s.jh.getTimeRange(this),o=null===(a=e.selection)||void 0===a||null===(r=a.timeRange)||void 0===r?void 0:r.from;if(o&&o{this.updateAttributes()})),this._subs.add((0,m.gi)(this).subscribeToState(()=>{this.updateQueryRunner(t.getValue())})),this.updateQueryRunner(t.getValue()),this.updateAttributes()}updateBody(){const e=(0,m.zY)(this).getMetricVariable().getValue(),t=it.find(e=>e.value===this.state.actionView);this.setState({body:kt(e,t?[null==t?void 0:t.getScene(e)]:void 0)}),void 0===this.state.actionView&&this.setActionView("breakdown")}updateExceptionsScene(e){if("errors"===e){if(!this.state.exceptionsScene){const e=new De({});this.setState({exceptionsScene:e}),setTimeout(()=>{e.activate()},0)}}else this.state.exceptionsScene&&this.setState({exceptionsScene:void 0})}updateAttributes(){return(e=function*(){var e;const t=yield(0,c.getDataSourceSrv)().get(l.gR,{__sceneObject:{value:this}});if(!t)return;const n={timeRange:s.jh.getTimeRange(this).state.value,filters:[]};null===(e=t.getTagKeys)||void 0===e||e.call(t,n).then(e=>{let t=[];t="data"in e?e.data:e;const n=t.map(e=>e.text);n!==this.state.attributes&&this.setState({attributes:n})})},function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function s(e){vt(i,r,a,s,o,"next",e)}function o(e){vt(i,r,a,s,o,"throw",e)}s(void 0)})}).call(this);var e}getUrlState(){return{actionView:this.state.actionView,selection:this.state.selection?JSON.stringify(this.state.selection):void 0}}updateFromUrl(e){if("string"==typeof e.actionView){if(this.state.actionView!==e.actionView){const t=it.find(t=>t.value===e.actionView);t&&this.setActionView(t.value)}}else null===e.actionView&&this.setActionView("breakdown");if("string"==typeof e.selection){const t=JSON.parse(e.selection);(0,ce.isEqual)(t,this.state.selection)||this.setState({selection:t})}}onUserUpdateSelection(e){this._urlSync.performBrowserHistoryAction(()=>{this.setState({selection:e})})}setActionView(e){const{body:t}=this.state,n=it.find(t=>t.value===e),r=(0,m.zY)(this).getMetricVariable().getValue();if(t.state.children.length>1&&n){let a;a="exceptions"===e&&this.state.exceptionsScene?new s.vA({body:this.state.exceptionsScene}):n.getScene(r),t.setState({children:[...t.state.children.slice(0,2),a]}),(0,k.EE)(k.NO.analyse_traces,k.ir.analyse_traces.action_view_changed,{oldAction:this.state.actionView,newAction:e}),this.setState({actionView:n.value})}}updateQueryRunner(e){var t;const n=this.state.selection;var r;const a=null!==(r=null===(t=(0,m.gi)(this).getValue())||void 0===t?void 0:t.toString())&&void 0!==r?r:"";this.setState({$data:new s.Es({$data:new s.dt({datasource:l.Vl,queries:[Et(e,a,n)],$timeRange:jt(n)}),transformations:[...l.s9,...Ct]})})}constructor(e){var t;super(ht({body:null!==(t=e.body)&&void 0!==t?t:new s.G1({children:[]})},e)),gt(this,"_urlSync",new s.So(this,{keys:["actionView","selection"]})),this.addActivationHandler(this._onActivate.bind(this))}}gt(yt,"Component",({model:e})=>{const{body:t}=e.useState(),n=(0,d.useStyles2)(St);return a().createElement(a().Fragment,null,a().createElement("div",{className:n.title},a().createElement(d.Tooltip,{content:a().createElement(wt,null),placement:"right-start",interactive:!0},a().createElement("span",{className:n.hand},"Select metric type ",a().createElement(d.Icon,{name:"info-circle"})))),a().createElement(t.Component,{model:t}))});const wt=()=>{const e=(0,d.useStyles2)(St);return a().createElement(d.Stack,{direction:"column",gap:1},a().createElement("div",{className:e.tooltip.title},"RED metrics for traces"),a().createElement("span",{className:e.tooltip.subtitle},"Explore rate, errors, and duration (RED) metrics generated from traces by Tempo."),a().createElement("div",{className:e.tooltip.text},a().createElement("div",null,a().createElement("span",{className:e.tooltip.emphasize},"Rate")," - Spans per second that match your filter, useful to find unusual spikes in activity"),a().createElement("div",null,a().createElement("span",{className:e.tooltip.emphasize},"Errors")," -Spans that are failing, overall issues in tracing ecosystem"),a().createElement("div",null,a().createElement("span",{className:e.tooltip.emphasize},"Duration")," - Amount of time those spans take, represented as a heat map (responds time, latency)")),a().createElement("div",{className:e.tooltip.button},a().createElement(d.LinkButton,{icon:"external-link-alt",fill:"solid",size:"sm",target:"_blank",href:"https://grafana.com/docs/grafana-cloud/visualizations/simplified-exploration/traces/concepts/#rate-error-and-duration-metrics",onClick:()=>(0,k.EE)(k.NO.common,k.ir.common.metric_docs_link_clicked)},"Read documentation")))};function St(e){return{title:(0,u.css)({label:"title",display:"flex",gap:e.spacing.x0_5,fontSize:e.typography.bodySmall.fontSize,paddingBottom:e.spacing.x0_5,alignItems:"center"}),hand:(0,u.css)({label:"hand",cursor:"pointer"}),tooltip:{label:"tooltip",title:(0,u.css)({fontSize:"14px",fontWeight:500}),subtitle:(0,u.css)({marginBottom:e.spacing.x1}),text:(0,u.css)({label:"text",color:e.colors.text.secondary,div:{marginBottom:e.spacing.x0_5}}),emphasize:(0,u.css)({label:"emphasize",color:e.colors.text.primary}),button:(0,u.css)({marginBottom:e.spacing.x0_5})}}}const Ot=240,xt=(Ot-8)/2;function Et(e,t,n){const r=""!==t?` | select(${t})`:"";let a="";switch(e){case"errors":a=" && status = error";break;case"duration":if(n){var i,s;const e=[];(null===(i=n.duration)||void 0===i?void 0:i.from.length)&&e.push(`duration >= ${n.duration.from}`),(null===(s=n.duration)||void 0===s?void 0:s.to.length)&&e.push(`duration <= ${n.duration.to}`),e.length&&(a+="&& "+e.join(" && "))}a.length||(a=`&& duration > ${l.xT}`)}return{refId:"A",query:`{${l.ui}${a}}${r}`,queryType:"traceql",tableType:"spans",limit:200,spss:10,filters:[]}}function jt(e){var t,n;const r=1e3*((null==e||null===(t=e.timeRange)||void 0===t?void 0:t.from)||0),a=1e3*((null==e||null===(n=e.timeRange)||void 0===n?void 0:n.to)||0);return r&&a?new s.JZ({from:r.toFixed(0),to:a.toFixed(0),value:{from:(0,i.dateTime)(r),to:(0,i.dateTime)(a),raw:{from:(0,i.dateTime)(r),to:(0,i.dateTime)(a)}}}):void 0}function kt(e,t){const n=new pt("rate"===e?{metric:"errors"}:{metric:"rate"}),r=new pt("duration"===e?{metric:"errors"}:{metric:"duration"});return new s.G1({direction:"column",$behaviors:[new s.Gg.K2({key:"metricCrosshairSync",sync:i.DashboardCursorSync.Crosshair})],children:[new s.G1({direction:"row",ySizing:"content",children:[new s.vA({minHeight:Ot,maxHeight:Ot,width:"60%",body:new o.Mu({})}),new s.G1({direction:"column",minHeight:Ot,maxHeight:Ot,children:[new s.vA({minHeight:xt,maxHeight:xt,height:xt,body:n}),new s.vA({minHeight:xt,maxHeight:xt,height:xt,ySizing:"fill",body:r})]})]}),new s.vA({ySizing:"content",body:new st({})}),...t||[]]})}const Ct=[()=>e=>e.pipe((0,b.map)(e=>e.map(e=>bt(ht({},e),{fields:e.fields.filter(e=>!e.name.startsWith("nestedSet"))})))),{id:"sortBy",options:{fields:{},sort:[{field:"Duration",desc:!0}]}},{id:"organize",options:{indexByName:{"Start time":0,status:1,"Trace Service":2,"Trace Name":3,Duration:4,"Span ID":5,"span.http.method":6,"span.http.request.method":7,"span.http.path":8,"span.http.route":9,"span.http.status_code":10,"span.http.response.status_code":11}}}]},775:(e,t,n)=>{"use strict";n.d(t,{v:()=>u});var r,a,i,s=n(118),o=n(5959),l=n.n(o),c=n(3733);class u extends s.Bs{}i=({model:e})=>{const{message:t,remedyMessage:n,imgWidth:r,padding:a}=e.useState();return l().createElement(c.p,{message:t,remedyMessage:n,imgWidth:r,padding:a})},(a="Component")in(r=u)?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i},806:(e,t,n)=>{"use strict";n.d(t,{D9:()=>m,Ms:()=>u,Qt:()=>d});var r=n(5959),a=n.n(r),i=n(118),s=n(2007),o=n(1051),l=n(3761);function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class u extends i.Bs{constructor(...e){super(...e),c(this,"onClick",()=>{var e;const t=(0,o.gG)(this);var n;const r=null!==(n=null===(e=this.state.frame.fields.find(e=>e.labels))||void 0===e?void 0:e.labels)&&void 0!==n?n:{};if(this.state.labelKey){if(!r[this.state.labelKey])return}else if(1!==Object.keys(r).length)return;var a;const i=null!==(a=this.state.labelKey)&&void 0!==a?a:Object.keys(r)[0],s=(0,o.ee)(this.state.frame,this.state.labelKey);d(t,i,s),this.state.onClick({labelName:i})})}}c(u,"Component",({model:e})=>{var t,n,r,i,l;const c=null!==(l=null===(t=e.state)||void 0===t?void 0:t.labelKey)&&void 0!==l?l:"",u=null===(n=e.state)||void 0===n?void 0:n.frame.fields.filter(e=>"time"!==e.type);var d;const p=null!==(d=null==u||null===(i=u[0])||void 0===i||null===(r=i.labels)||void 0===r?void 0:r[c])&&void 0!==d?d:"";return m((0,o.gG)(e),c,p.replace(/"/g,""))?a().createElement(a().Fragment,null):a().createElement(s.Button,{variant:"primary",size:"sm",fill:"text",onClick:e.onClick,icon:"search-plus"},"Add to filters")});const d=(e,t,n)=>{const r=e.state.filters.filter(e=>e.key===l.iH||e.key!==t);history.pushState(null,""),e.setState({filters:[...r,{key:t,operator:"=",value:n}]})},m=(e,t,n)=>(0,o.gG)(e).state.filters.find(e=>e.key===t&&e.value===n)},892:(e,t,n)=>{"use strict";n.d(t,{z:()=>a});var r=n(1829);function a(){return{refId:"A",query:`{${r.ui}} | histogram_over_time(duration) with(sample=true)`,queryType:"traceql",tableType:"spans",limit:1e3,spss:10,filters:[]}}},1051:(e,t,n)=>{"use strict";n.d(t,{BB:()=>Ke,W6:()=>We,xo:()=>Ye,_g:()=>Te,Is:()=>He,U4:()=>De,_b:()=>Re,u1:()=>Pe,dB:()=>ke,gG:()=>Fe,pl:()=>Ae,Ey:()=>Me,oT:()=>Ee,ee:()=>Ie,F3:()=>Ve,Kf:()=>Le,GK:()=>Ge,H_:()=>Be,Fp:()=>_e,w$:()=>Xe,h7:()=>ze,gi:()=>$e,YX:()=>je,zY:()=>xe,__:()=>Ne,Et:()=>Ue,em:()=>Ce,H:()=>qe});var r=n(7781),a=n(118),i=n(2395),s=n(1829),o=n(271),l=n(6089),c=n(5959),u=n.n(c),d=n(2468),m=n(2007),p=n(2645),f=n(8531),v=n(6338);const g=e=>{const{index:t,type:n,label:r,labelTitle:a,value:i,valueTitle:s,url:o}=e,l=(0,m.useStyles2)(h);return u().createElement("div",{key:t},0===t&&u().createElement("div",{className:l.rowHeader},u().createElement("span",null,a),u().createElement("span",{className:l.valueTitle},s)),u().createElement("div",{className:l.row,key:t,onClick:()=>{(0,v.EE)(v.NO.home,v.ir.home.panel_row_clicked,{type:n,index:t,value:i}),f.locationService.push(o)}},u().createElement("div",{className:"rowLabel"},r),u().createElement("div",{className:l.action},u().createElement("span",{className:l.actionText},i),u().createElement(m.Icon,{className:l.actionIcon,name:"arrow-right",size:"xl"}))))};function h(e){return{rowHeader:(0,l.css)({color:e.colors.text.secondary,display:"flex",justifyContent:"space-between",alignItems:"center",padding:`0 ${e.spacing(2)} ${e.spacing(1)} ${e.spacing(2)}`}),valueTitle:(0,l.css)({margin:"0 45px 0 0"}),row:(0,l.css)({display:"flex",justifyContent:"space-between",alignItems:"center",gap:e.spacing(2),padding:`${e.spacing(.75)} ${e.spacing(2)}`,"&:hover":{backgroundColor:e.isDark?e.colors.background.secondary:e.colors.background.primary,cursor:"pointer",".rowLabel":{textDecoration:"underline"}}}),action:(0,l.css)({display:"flex",alignItems:"center"}),actionText:(0,l.css)({color:"#d5983c",padding:`0 ${e.spacing(1)}`,width:"max-content"}),actionIcon:(0,l.css)({cursor:"pointer",margin:`0 ${e.spacing(.5)} 0 ${e.spacing(1)}`})}}const b=e=>{var t;const{series:n,type:a}=e,i=(0,m.useStyles2)(y),o=e=>{var t;const n=e.fields.find(e=>"time"!==e.name);var r;return null!==(r=null==n||null===(t=n.labels)||void 0===t?void 0:t["resource.service.name"].replace(/"/g,""))&&void 0!==r?r:"Service name not found"},l=e=>{const t={"var-filters":`resource.service.name|=|${o(e)}`,"var-metric":"errors"};return r.urlUtil.renderUrl(s.D5,t)},c=e=>{var t;const n=e.fields.find(e=>"time"!==e.name);var r;return null!==(r=null==n||null===(t=n.values)||void 0===t?void 0:t.reduce((e,t)=>"number"!=typeof e||isNaN(e)?t:e+t,0))&&void 0!==r?r:1};return u().createElement("div",{className:i.container},null===(t=n.sort((e,t)=>c(t)-c(e)).slice(0,10))||void 0===t?void 0:t.map((e,t)=>u().createElement("span",{key:t},u().createElement(g,{type:a,index:t,label:o(e),labelTitle:"Service",value:c(e),valueTitle:"Total errors",url:l(e)}))))};function y(e){return{container:(0,l.css)({padding:`${e.spacing(2)} 0`})}}var w=n(7975);function S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function O(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const x=e=>{const{series:t,type:n}=e,a=(0,m.useStyles2)(E),i=t[0].fields.find(e=>"duration"===e.name);if(i&&i.values){var o,l;const e=null==i||null===(o=i.values.map((e,t)=>t))||void 0===o?void 0:o.sort((e,t)=>(null==i?void 0:i.values[t])-(null==i?void 0:i.values[e])),c=t[0].fields.map(t=>O(function(e){for(var t=1;tt.values[e])})),d=(e,t,n)=>{let r="";return(null==e?void 0:e.values[n])&&(r=e.values[n]),(null==t?void 0:t.values[n])&&(r=0===r.length?t.values[n]:`${r}: ${t.values[n]}`),0===r.length?"Trace service & name not found":r},m=(e,t,n,a)=>{if(!(t&&t.values[a]&&n&&n.values[a]))return console.error("SpanId or traceService not found"),s.bw.Explore;const i={traceId:e,spanId:t.values[a],"var-filters":`resource.service.name|=|${n.values[a]}`,"var-metric":"duration"};return r.urlUtil.renderUrl(s.D5,i)},p=(e,t)=>e&&e.values?(0,w.a3)(e.values[t]/1e3):"Duration not found",f=c.find(e=>"traceIdHidden"===e.name),v=c.find(e=>"spanID"===e.name),h=c.find(e=>"traceName"===e.name),b=c.find(e=>"traceService"===e.name),y=c.find(e=>"duration"===e.name);return u().createElement("div",{className:a.container},null==f||null===(l=f.values)||void 0===l?void 0:l.map((e,t)=>u().createElement("span",{key:t},u().createElement(g,{type:n,index:t,label:d(b,h,t),labelTitle:"Trace",value:p(y,t),valueTitle:"Duration",url:m(e,v,b,t)}))))}return null};function E(e){return{container:(0,l.css)({padding:`${e.spacing(2)} 0`})}}const j=e=>{var t;const{series:n,type:a}=e,i=(0,m.useStyles2)(k),o=e=>{var t;const n=e.fields.find(e=>"time"!==e.name);var r;return null!==(r=null==n||null===(t=n.labels)||void 0===t?void 0:t["resource.service.name"].replace(/"/g,""))&&void 0!==r?r:"Service name not found"},l=e=>{const t={"var-filters":`resource.service.name|=|${o(e)}`,"var-metric":"duration"};return r.urlUtil.renderUrl(s.D5,t)},c=e=>{var t;const n=e.fields.find(e=>"time"!==e.name);var r;return null!==(r=null==n||null===(t=n.values)||void 0===t?void 0:t.reduce((e,t)=>"number"!=typeof e||isNaN(e)?t:e+t,0))&&void 0!==r?r:1};return u().createElement("div",{className:i.container},null===(t=n.sort((e,t)=>c(t)-c(e)).slice(0,10))||void 0===t?void 0:t.map((e,t)=>u().createElement("span",{key:t},u().createElement(g,{type:a,index:t,label:o(e),labelTitle:"Service",value:(0,w.a3)(1e6*c(e)),valueTitle:"p90",url:l(e)}))))};function k(e){return{container:(0,l.css)({padding:`${e.spacing(2)} 0`})}}const C=e=>{const{series:t,type:n,message:r}=e,a=(0,m.useStyles2)(P);if(r)return u().createElement("div",{className:a.container},u().createElement("div",{className:a.message},u().createElement(m.Icon,{className:a.icon,name:"exclamation-circle",size:"xl"}),r));if(t&&t.length>0)switch(n){case"slowest-traces":return u().createElement(x,{series:t,type:n});case"errored-services":return u().createElement(b,{series:t,type:n});case"slowest-services":return u().createElement(j,{series:t,type:n})}return u().createElement("div",{className:a.container},"No series data")};function P(e){return{container:(0,l.css)({padding:`${e.spacing(2)} 0`}),icon:(0,l.css)({margin:`0 ${e.spacing(.5)} 0 ${e.spacing(1)}`}),message:(0,l.css)({display:"flex",gap:e.spacing(1.5),margin:`${e.spacing(2)} auto`,width:"60%"})}}class _ extends a.Bs{}var N,D,T;function I(e){switch(e){case"slowest-services":return"clock-nine";case"slowest-traces":return"crosshair";default:return"exclamation-triangle"}}function A(e){return{container:(0,l.css)({border:`1px solid ${e.isDark?e.colors.border.medium:e.colors.border.weak}`,borderRadius:e.spacing(.5),marginBottom:e.spacing(4),width:"100%"}),title:(0,l.css)({color:e.isDark?e.colors.text.secondary:e.colors.text.primary,backgroundColor:e.isDark?e.colors.background.secondary:e.colors.background.primary,borderTopLeftRadius:e.spacing(.5),borderTopRightRadius:e.spacing(.5),display:"flex",justifyContent:"center",alignItems:"center",fontSize:"1.3rem",padding:`${e.spacing(1.5)} ${e.spacing(2)}`}),titleText:(0,l.css)({marginLeft:e.spacing(1)})}}T=({model:e})=>{const{series:t,title:n,type:r,message:a}=e.useState(),i=(0,m.useStyles2)(A);return u().createElement("div",{className:i.container},u().createElement("div",{className:i.title},u().createElement(m.Icon,{name:I(r),size:"lg"}),u().createElement("span",{className:i.titleText},n)),u().createElement(C,{series:t,type:r,message:a}))},(D="Component")in(N=_)?Object.defineProperty(N,D,{value:T,enumerable:!0,configurable:!0,writable:!0}):N[D]=T;var $=n(3049),L=n(7197);function V(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function B(e){for(var t=1;t{const t=a.jh.getData(this);this._subs.add(t.subscribeToState(t=>{var n,i,s,l;if((null===(n=t.data)||void 0===n?void 0:n.state)===r.LoadingState.Done||(null===(i=t.data)||void 0===i?void 0:i.state)===r.LoadingState.Streaming)if((null===(l=t.data)||void 0===l?void 0:l.state)!==r.LoadingState.Done||0!==t.data.series.length&&0!==t.data.series[0].length){if(t.data.series.length>0){var c;if("slowest-traces"!==e.type||e.renderDurationPanel)this.setState({panel:new a.G1({children:[new _({series:t.data.series,title:e.title,type:e.type})]})});else if((null===(c=t.data)||void 0===c?void 0:c.state)===r.LoadingState.Done){var u,d;let n=(0,L.FC)(null!==(d=null===(u=t.data)||void 0===u?void 0:u.series)&&void 0!==d?d:[]);if(null==n?void 0:n.length){const{minDuration:t}=(0,L.jD)(n);var m;this.setState({panel:new a.G1({children:[new z({query:{query:`{nestedSetParent<0 && duration > ${t} ${null!==(m=e.filter)&&void 0!==m?m:""}}`},title:e.title,type:e.type,renderDurationPanel:!0})]})})}}}}else this.setState({panel:new a.G1({children:[new _({message:_e(e.title.toLowerCase()),title:e.title,type:e.type})]})});else(null===(s=t.data)||void 0===s?void 0:s.state)===r.LoadingState.Error?this.setState({panel:new a.G1({children:[new _({message:Pe(t),title:e.title,type:e.type})]})}):this.setState({panel:new a.G1({direction:"column",maxHeight:o.VV,height:o.VV,children:[new p.G({component:()=>R()})]})})}))})}}function M(){return{container:(0,l.css)({minWidth:"350px",width:"-webkit-fill-available"})}}V(z,"Component",({model:e})=>{const{panel:t}=e.useState(),n=(0,m.useStyles2)(M);if(t)return u().createElement("div",{className:n.container},u().createElement(t.Component,{model:t}))});const R=()=>{const e=(0,m.useStyles2)(H);return u().createElement("div",{className:e.container},u().createElement("div",{className:e.title},u().createElement($.A,{count:1,width:200})),u().createElement("div",{className:e.tracesContainer},[...Array(11)].map((t,n)=>u().createElement("div",{className:e.row,key:n},u().createElement("div",{className:e.rowLeft},u().createElement($.A,{count:1})),u().createElement("div",{className:e.rowRight},u().createElement($.A,{count:1}))))))};function H(e){return{container:(0,l.css)({border:`1px solid ${e.isDark?e.colors.border.medium:e.colors.border.weak}`,borderRadius:e.spacing(.5),marginBottom:e.spacing(4),width:"100%"}),title:(0,l.css)({color:e.colors.text.secondary,backgroundColor:e.colors.background.secondary,fontSize:"1.3rem",padding:`${e.spacing(1.5)} ${e.spacing(2)}`,textAlign:"center"}),tracesContainer:(0,l.css)({padding:`13px ${e.spacing(2)}`}),row:(0,l.css)({display:"flex",justifyContent:"space-between"}),rowLeft:(0,l.css)({margin:"7px 0",width:"150px"}),rowRight:(0,l.css)({width:"50px"})}}const q=()=>u().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"73",height:"72",viewBox:"0 0 73 72",fill:"none"},u().createElement("path",{d:"M65.3 8.09993C65.3 7.49993 64.7 7.19993 64.1 6.89993C52.7 3.89993 40.4 7.79993 32.9 16.7999L29 21.2999L20.9 19.1999C17.6 17.9999 14.3 19.4999 12.8 22.4999L6.49999 33.5999C6.49999 33.5999 6.49999 33.8999 6.19999 33.8999C5.89999 34.7999 6.49999 35.3999 7.39999 35.6999L17.6 37.7999C16.7 40.4999 15.8 43.1999 15.5 45.8999C15.5 46.4999 15.5 46.7999 15.8 47.0999L24.8 55.7999C25.1 56.0999 25.4 56.0999 26 56.0999C28.7 55.7999 31.7 55.1999 34.4 54.2999L36.5 64.1999C36.5 64.7999 37.4 65.3999 38 65.3999C38.3 65.3999 38.6 65.3999 38.6 65.0999L49.7 58.7999C52.4 57.2999 53.6 53.9999 53 50.9999L50.9 42.2999L55.1 38.3999C64.4 31.4999 68.3 19.4999 65.3 8.09993ZM10.1 33.2999L15.2 23.9999C16.1 22.1999 17.9 21.5999 19.7 22.1999L26.6 23.9999L23.6 27.5999C21.8 29.9999 20 32.3999 18.8 35.0999L10.1 33.2999ZM48.5 56.9999L39.2 62.3999L37.4 53.6999C40.1 52.4999 42.5 50.6999 44.9 48.8999L48.8 45.2999L50.6 52.1999C50.6 53.9999 50 56.0999 48.5 56.9999ZM53.3 36.8999L42.8 46.4999C38.3 50.3999 32.6 52.7999 26.6 53.3999L18.8 45.5999C19.7 39.5999 22.1 33.8999 26 29.3999L30.8 23.9999L31.1 23.6999L35.3 18.8999C41.9 11.0999 52.7 7.49993 62.6 9.59993C64.7 19.7999 61.4 30.2999 53.3 36.8999ZM49.7 16.7999C46.4 16.7999 44 19.4999 44 22.4999C44 25.4999 46.7 28.1999 49.7 28.1999C53 28.1999 55.4 25.4999 55.4 22.4999C55.4 19.4999 53 16.7999 49.7 16.7999ZM49.7 25.4999C48.2 25.4999 47 24.2999 47 22.7999C47 21.2999 48.2 20.0999 49.7 20.0999C51.2 20.0999 52.4 21.2999 52.4 22.7999C52.4 24.2999 51.2 25.4999 49.7 25.4999Z",fill:"#24292E",fillOpacity:"0.75"})),G=()=>u().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"73",height:"72",viewBox:"0 0 73 72",fill:"none"},u().createElement("path",{d:"M65.3 8.09993C65.3 7.49993 64.7 7.19993 64.1 6.89993C52.7 3.89993 40.4 7.79993 32.9 16.7999L29 21.2999L20.9 19.1999C17.6 17.9999 14.3 19.4999 12.8 22.4999L6.49999 33.5999C6.49999 33.5999 6.49999 33.8999 6.19999 33.8999C5.89999 34.7999 6.49999 35.3999 7.39999 35.6999L17.6 37.7999C16.7 40.4999 15.8 43.1999 15.5 45.8999C15.5 46.4999 15.5 46.7999 15.8 47.0999L24.8 55.7999C25.1 56.0999 25.4 56.0999 26 56.0999C28.7 55.7999 31.7 55.1999 34.4 54.2999L36.5 64.1999C36.5 64.7999 37.4 65.3999 38 65.3999C38.3 65.3999 38.6 65.3999 38.6 65.0999L49.7 58.7999C52.4 57.2999 53.6 53.9999 53 50.9999L50.9 42.2999L55.1 38.3999C64.4 31.4999 68.3 19.4999 65.3 8.09993ZM10.1 33.2999L15.2 23.9999C16.1 22.1999 17.9 21.5999 19.7 22.1999L26.6 23.9999L23.6 27.5999C21.8 29.9999 20 32.3999 18.8 35.0999L10.1 33.2999ZM48.5 56.9999L39.2 62.3999L37.4 53.6999C40.1 52.4999 42.5 50.6999 44.9 48.8999L48.8 45.2999L50.6 52.1999C50.6 53.9999 50 56.0999 48.5 56.9999ZM53.3 36.8999L42.8 46.4999C38.3 50.3999 32.6 52.7999 26.6 53.3999L18.8 45.5999C19.7 39.5999 22.1 33.8999 26 29.3999L30.8 23.9999L31.1 23.6999L35.3 18.8999C41.9 11.0999 52.7 7.49993 62.6 9.59993C64.7 19.7999 61.4 30.2999 53.3 36.8999ZM49.7 16.7999C46.4 16.7999 44 19.4999 44 22.4999C44 25.4999 46.7 28.1999 49.7 28.1999C53 28.1999 55.4 25.4999 55.4 22.4999C55.4 19.4999 53 16.7999 49.7 16.7999ZM49.7 25.4999C48.2 25.4999 47 24.2999 47 22.7999C47 21.2999 48.2 20.0999 49.7 20.0999C51.2 20.0999 52.4 21.2999 52.4 22.7999C52.4 24.2999 51.2 25.4999 49.7 25.4999Z",fill:"#CCCCDC",fillOpacity:"0.65"}));var W=n(1159);function U(e,t,n,r,a,i,s){try{var o=e[i](s),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(r,a)}function Y(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function s(e){U(i,r,a,s,o,"next",e)}function o(e){U(i,r,a,s,o,"throw",e)}s(void 0)})}}function K(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function X(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const Q=e=>(e.delete(s.$V),e.delete(`var-${s.pf}`),e.delete(`var-${s.xc}`),e),Z=()=>{const e=(0,f.usePluginUserStorage)();return{getBookmarks:()=>te(e),removeBookmark:t=>ae(e,t),bookmarkExists:t=>ie(e,t),toggleBookmark:()=>ne(e)}},J=e=>{if(!e||!e.params)return s.D5;const t=new URLSearchParams(e.params),n=Object.fromEntries(t.entries()),a=t.getAll(`var-${s.Ao}`),i=r.urlUtil.renderUrl(s.D5,X(function(e){for(var t=1;tY(function*(){try{yield e.setItem(s.Sr,JSON.stringify(t))}catch(e){console.error("Failed to save bookmarks to storage:",e)}})(),te=e=>Y(function*(){try{const t=yield e.getItem(s.Sr);return t?JSON.parse(t):[]}catch(e){return console.error("Failed to get bookmarks from storage:",e),[]}})(),ne=e=>Y(function*(){const t={params:Q(new URLSearchParams(window.location.search)).toString()};return(yield ie(e,t))?(yield ae(e,t),!1):(yield re(e,t),!0)})(),re=(e,t)=>Y(function*(){const n=yield te(e);n.push(t),yield ee(e,n)})(),ae=(e,t)=>Y(function*(){const n=(yield te(e)).filter(e=>!se(t,e));yield ee(e,n)})(),ie=(e,t)=>Y(function*(){return(yield te(e)).some(e=>se(t,e))})(),se=(e,t)=>{const n=Q(new URLSearchParams(e.params)),r=Q(new URLSearchParams(t.params)),a=`var-${s.Ao}`,i=Array.from(n.keys()).filter(e=>e!==a),o=Array.from(r.keys()).filter(e=>e!==a);if(i.length!==o.length)return!1;const l=i.every(e=>r.has(e)&&n.get(e)===r.get(e));if(!l)return!1;const c=n.getAll(a),u=r.getAll(a);return c.length===u.length&&c.every(e=>u.includes(e))};var oe=n(3761);const le=({bookmark:e})=>{let{actionView:t,primarySignal:n,metric:r,filters:a}=(e=>{if(!e||!e.params)return{actionView:"",primarySignal:"",filters:"",metric:""};const t=new URLSearchParams(e.params);var n,r,a;return{actionView:null!==(n=t.get(s.V2))&&void 0!==n?n:"",primarySignal:null!==(r=t.get(s.W5))&&void 0!==r?r:"",filters:t.getAll(`var-${s.Ao}`).join(s.x5),metric:null!==(a=t.get(`var-${s.PU}`))&&void 0!==a?a:""}})(e);const i=(0,m.useStyles2)(ce);return a=((e,t)=>{const n=(e=>{const t=(0,oe.$L)(e);if(!t||!t.filter)return"";const n=t.filter;return n.key&&n.operator&&void 0!==n.value?`${n.key}|${n.operator}|${n.value}`:""})(t);let r=e.split(s.x5);return r=r.filter(e=>e!==n),r.join(s.x5)})(a,n),a=a.replace(/\|=\|/g," = "),a=a.replace(s.$d,"").replace(s.zd,"").replace(s.X0,""),u().createElement("div",{title:a},u().createElement("div",null,u().createElement("b",null,Ke(r))," of ",u().createElement("b",null,n.replace("_"," "))," (",t,")"),u().createElement("div",{className:i.filters},a))};function ce(){return{filters:(0,l.css)({textOverflow:"ellipsis",overflow:"hidden",WebkitLineClamp:2,display:"-webkit-box",WebkitBoxOrient:"vertical"})}}function ue(e,t,n,r,a,i,s){try{var o=e[i](s),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(r,a)}function de(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function s(e){ue(i,r,a,s,o,"next",e)}function o(e){ue(i,r,a,s,o,"throw",e)}s(void 0)})}}const me=()=>{const e=(0,m.useStyles2)(pe),{getBookmarks:t,removeBookmark:n}=Z(),[r,a]=(0,c.useState)([]),[i,s]=(0,c.useState)(!0),[o,l]=(0,c.useState)(!1);(0,c.useEffect)(()=>{de(function*(){s(!0);try{const e=yield t();a(e)}catch(e){console.error("Error loading bookmarks:",e),a([])}finally{s(!1)}})()},[]);return i?u().createElement("div",null,u().createElement("div",{className:e.header},u().createElement("h4",null,"Or view bookmarks")),u().createElement("div",{className:e.loading},u().createElement(m.LoadingPlaceholder,{text:"Loading bookmarks..."}))):u().createElement("div",null,u().createElement("div",{className:e.header},u().createElement("h4",null,"Or view bookmarks")),0===r.length?u().createElement("p",{className:e.noBookmarks},"Bookmark your favorite queries to view them here."):u().createElement("div",{className:e.bookmarks},r.map((r,i)=>u().createElement("div",{className:e.bookmark,key:i,onClick:()=>(e=>{(0,v.EE)(v.NO.home,v.ir.home.go_to_bookmark_clicked);const t=J(e);f.locationService.push(t)})(r)},u().createElement("div",{className:e.bookmarkItem},u().createElement(le,{bookmark:r})),u().createElement("div",{className:e.remove},u().createElement(m.Button,{variant:"secondary",fill:"text",icon:"trash-alt",disabled:o,onClick:e=>((e,r)=>de(function*(){r.stopPropagation(),l(!0);try{yield n(e);const r=yield t();a(r)}catch(e){console.error("Error removing bookmark:",e)}finally{l(!1)}})())(r,e)}))))))};function pe(e){return{header:(0,l.css)({textAlign:"center",h4:{margin:0}}),bookmarks:(0,l.css)({display:"flex",flexWrap:"wrap",gap:e.spacing(2),margin:`${e.spacing(4)} 0 ${e.spacing(2)} 0`,justifyContent:"center"}),bookmark:(0,l.css)({display:"flex",flexDirection:"column",justifyContent:"space-between",cursor:"pointer",width:"318px",border:`1px solid ${e.colors.border.medium}`,borderRadius:e.shape.radius.default,"&:hover":{backgroundColor:e.isDark?e.colors.background.secondary:e.colors.background.primary}}),bookmarkItem:(0,l.css)({padding:`${e.spacing(1.5)} ${e.spacing(1.5)} 0 ${e.spacing(1.5)}`,overflow:"hidden"}),filters:(0,l.css)({textOverflow:"ellipsis",overflow:"hidden",WebkitLineClamp:2,display:"-webkit-box",WebkitBoxOrient:"vertical"}),remove:(0,l.css)({display:"flex",justifyContent:"flex-end"}),noBookmarks:(0,l.css)({margin:`${e.spacing(4)} 0 ${e.spacing(2)} 0`,textAlign:"center"}),loading:(0,l.css)({display:"flex",justifyContent:"center",margin:`${e.spacing(4)} 0`})}}class fe extends a.Bs{}function ve(e){return{container:(0,l.css)({display:"flex",gap:e.spacing(7),flexDirection:"column",margin:`0 0 ${e.spacing(4)} 0`,justifyContent:"center"}),header:(0,l.css)({display:"flex",alignItems:"center",backgroundColor:e.isDark?e.colors.background.secondary:e.colors.background.primary,borderRadius:e.spacing(.5),flexWrap:"wrap",justifyContent:"center",padding:e.spacing(3),gap:e.spacing(4)}),headerTitleContainer:(0,l.css)({display:"flex",alignItems:"center"}),title:(0,l.css)({margin:`0 0 0 ${e.spacing(2)}`}),headerActions:(0,l.css)({alignItems:"center",justifyContent:"flex-start",display:"flex",gap:e.spacing(2)}),documentationLink:(0,l.css)({textDecoration:"underline","&:hover":{textDecoration:"underline"}}),subHeader:(0,l.css)({textAlign:"center",h4:{margin:`0 0 -${e.spacing(2)} 0`}}),label:(0,l.css)({fontSize:"12px"}),variablesAndControls:(0,l.css)({alignItems:"center",gap:e.spacing(2),display:"flex",justifyContent:"space-between",width:"100%"}),variables:(0,l.css)({display:"flex",gap:e.spacing(2)}),controls:(0,l.css)({display:"flex",gap:e.spacing(1)})}}function ge(e,t,n,r,a,i,s){try{var o=e[i](s),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(r,a)}function he(e){return(t=function*(){const t=a.jh.interpolate(e,s.gR),n=yield(0,f.getDataSourceSrv)().get(t);if(!(n instanceof f.DataSourceWithBackend))throw console.error(new Error("getTagKeysProvider: invalid datasource!")),new Error("getTagKeysProvider: invalid datasource!");const r=n;if(r&&r.getTagKeys){const e=yield r.getTagKeys();return Array.isArray(e)?{replace:!0,values:function(e){const t=e.filter(e=>{var t;return null===(t=e.text)||void 0===t?void 0:t.includes(s.$d)}),n=e.filter(e=>{var t;return null===(t=e.text)||void 0===t?void 0:t.includes(s.zd)}),r=e.filter(e=>{var t,n,r,a;return!((null===(t=e.text)||void 0===t?void 0:t.includes(s.$d))||(null===(n=e.text)||void 0===n?void 0:n.includes(s.zd))||(null===(r=e.text)||void 0===r?void 0:r.includes(s.X0))||(null===(a=e.text)||void 0===a?void 0:a.includes(s.ZV))||-1!==s.uK.concat(s.ZM).indexOf(e.text))});return[...t,...n,...r]}(e)}:(console.error(new Error("getTagKeysProvider: invalid tagKeys!")),{values:[]})}return console.error(new Error("getTagKeysProvider: missing or invalid datasource!")),{values:[]}},function(){var e=this,n=arguments;return new Promise(function(r,a){var i=t.apply(e,n);function s(e){ge(i,r,a,s,o,"next",e)}function o(e){ge(i,r,a,s,o,"throw",e)}s(void 0)})})();var t}!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(fe,"Component",({model:e})=>{const t=Ee(e),n=(0,W.useNavigate)(),{controls:r}=t.useState(),a=(0,m.useStyles2)(ve),i=(0,m.useTheme2)(),o=Re(t),l=Me(t);return u().createElement("div",{className:a.container},u().createElement("div",{className:a.header},u().createElement("div",{className:a.headerTitleContainer},i.isDark?u().createElement(G,null):u().createElement(q,null),u().createElement("h2",{className:a.title},"Start your traces exploration!")),u().createElement("div",null,u().createElement("p",null,"Drilldown and visualize your trace data without writing a query."),u().createElement("div",{className:a.headerActions},u().createElement(m.Button,{variant:"primary",onClick:()=>{(0,v.EE)(v.NO.home,v.ir.home.explore_traces_clicked),n(s.D5)}},"Let’s start",u().createElement(m.Icon,{name:"arrow-right",size:"lg"})),u().createElement(m.LinkButton,{icon:"external-link-alt",fill:"text",size:"md",target:"_blank",href:"https://grafana.com/docs/grafana-cloud/visualizations/simplified-exploration/traces",className:a.documentationLink,onClick:()=>(0,v.EE)(v.NO.home,v.ir.home.read_documentation_clicked)},"Read documentation")))),u().createElement(me,null),u().createElement("div",{className:a.subHeader},u().createElement("h4",null,"Or quick-start into your tracing data")),u().createElement(m.Stack,{gap:2},u().createElement("div",{className:a.variablesAndControls},u().createElement("div",{className:a.variables},o&&u().createElement(m.Stack,{gap:1,alignItems:"center"},u().createElement("div",{className:a.label},"Data source"),u().createElement(o.Component,{model:o})),l&&u().createElement(m.Stack,{gap:1,alignItems:"center"},u().createElement("div",{className:a.label},"Filter"),u().createElement(l.Component,{model:l}))),u().createElement("div",{className:a.controls},null==r?void 0:r.map(e=>u().createElement(e.Component,{key:e.state.key,model:e}))))))});const be=e=>{if(!e)return"";let t=e.value;return null==t||""===t?"":(Ue.test(t)||["kind"].includes(e.key)||"string"!=typeof t||t.startsWith('"')||t.endsWith('"')||(t=`"${t}"`),`${e.key}${e.operator}${t}`)};function ye(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class we extends a.Bs{_onActivate(){const e=a.jh.getTimeRange(this),t=Me(this);t.setState({getTagKeysProvider:he}),Re(this).subscribeToState(e=>{e.value&&localStorage.setItem(s.cd,e.value.toString())}),Me(this).subscribeToState((t,n)=>{if(t.filters!==n.filters){this.buildPanels(e,t.filters),localStorage.setItem(s.$U,JSON.stringify(t.filters));const r=t.filters.filter(e=>!n.filters.find(t=>t.key===e.key));r.length>0&&(0,v.EE)(v.NO.home,v.ir.home.filter_changed,{key:r[0].key})}}),e.subscribeToState((n,r)=>{n.value.from===r.value.from&&n.value.to===r.value.to||this.buildPanels(e,t.state.filters)}),this.buildPanels(e,t.state.filters)}buildPanels(e,t){const n=e.state.value.from.unix(),r=e.state.value.to.unix(),i=`${(0,d.duration)(r-n,"s").asSeconds()}s`,o=function(e){const t=e.filter(e=>e.key&&e.operator&&e.value).map(e=>be(e)).join(s.x5);return t.length?`&& ${t}`:""}(t);this.setState({body:new a.gF({children:[new a.gF({autoRows:"min-content",columnGap:2,rowGap:2,children:[new a.xK({body:new z({query:{query:`{nestedSetParent < 0 && status = error ${o}} | count_over_time() by (resource.service.name)`,step:i},title:"Errored services",type:"errored-services"})}),new a.xK({body:new z({query:{query:`{nestedSetParent < 0 ${o}} | quantile_over_time(duration, 0.9) by (resource.service.name)`,step:i},title:"Slow services",type:"slowest-services"})}),new a.xK({body:new z({query:{query:`{nestedSetParent<0 ${o}} | histogram_over_time(duration)`},title:"Slow traces",type:"slowest-traces",filter:o})})]})]})})}constructor(e){var t,n,r,i,o;super(function(e){for(var t=1;t{const{body:t}=e.useState(),n=(0,m.useStyles2)(Se);return u().createElement("div",{className:n.container},u().createElement(fe.Component,{model:e}),t&&u().createElement(t.Component,{model:t}))});var Oe=n(6003);function xe(e){return a.jh.getAncestor(e,i.Nr)}function Ee(e){return a.jh.getAncestor(e,we)}function je(e){return a.jh.getAncestor(e,o.jc)}function ke(e){const t=je(e);return null==t?void 0:t.state.exceptionsScene}function Ce(e,t){return new i.Nr({initialDS:e,initialFilters:null!=t?t:[],$timeRange:new a.JZ({from:"now-30m",to:"now"})})}function Pe(e){var t,n,r;return null!==(r=null==e||null===(n=e.data)||void 0===n||null===(t=n.error)||void 0===t?void 0:t.message)&&void 0!==r?r:"There are no Tempo data sources"}function _e(e){return`No data for selected data source and filter. Select another to see ${e}.`}function Ne(e){const t=a.Go.getUrlState(e);return n=t,r.urlUtil.renderUrl(s.D5,n);var n}function De(e){return a.jh.interpolate(e,s.gR)}function Te(e){return e.map(e=>({label:e,value:e}))}function Ie(e,t){var n;const r=null===(n=e.fields.find(e=>"number"===e.type))||void 0===n?void 0:n.labels;if(!r)return"No labels";const a=Object.keys(r).filter(e=>"p"!==e);return 0===a.length?"No labels":r[t||a[0]].replace(/"/g,"")}function Ae(e){const t=a.jh.lookupVariable(s.z,e);if(!(t instanceof a.yP))throw new Error("Group by variable not found");return t}function $e(e){const t=a.jh.lookupVariable(s.gP,e);if(!(t instanceof a.yP))throw new Error("Span list columns variable not found");return t}function Le(e){const t=a.jh.lookupVariable(s.pf,e);if(!(t instanceof a.yP))throw new Error("Latency threshold variable not found");return t}function Ve(e){const t=a.jh.lookupVariable(s.xc,e);if(!(t instanceof a.yP))throw new Error("Partial latency threshold variable not found");return t}function Be(e){const t=a.jh.lookupVariable(s.PU,e);if(!(t instanceof a.yP))throw new Error("Metric variable not found");return t}function Fe(e){const t=a.jh.lookupVariable(s.Ao,e);if(!(t instanceof a.H9))throw new Error("Filters variable not found");return t}function ze(e){const t=a.jh.lookupVariable(s.CE,e);if(!(t instanceof Oe.x))throw new Error("Primary signal variable not found");return t}function Me(e){const t=a.jh.lookupVariable(s.zM,e);if(!(t instanceof a.H9))throw new Error("Home filter variable not found");return t}function Re(e){const t=a.jh.lookupVariable(s.EY,e);if(!(t instanceof a.mI))throw new Error("Datasource variable not found");return t}function He(e){var t;const n=a.jh.getData(e).state.data,r=null==n||null===(t=n.request)||void 0===t?void 0:t.targets[0];return r?r.step:void 0}function qe(e){return"comparison"===e||"traceList"===e}function Ge(e){return Be(e).useState().value}function We(e){var t,n,r;return null!==(r=null==e||null===(n=e.data)||void 0===n||null===(t=n.series[0].fields)||void 0===t?void 0:t.some(e=>e.values.every(e=>void 0===e)))&&void 0!==r&&r}const Ue=/^-?\d+\.?\d*$/,Ye=e=>Ue.test(e)||"string"!=typeof e||e.startsWith('"')||e.endsWith('"')?e:`"${e}"`,Ke=e=>{var t;return(null==e||null===(t=e[0])||void 0===t?void 0:t.toUpperCase())+(null==e?void 0:e.slice(1))||""},Xe=e=>(t,n)=>{e.publishEvent(new s.vR({traceId:t,spanId:n}),!0)}},1738:(e,t,n)=>{var r={"./af":9805,"./af.js":9805,"./ar":4449,"./ar-dz":4468,"./ar-dz.js":4468,"./ar-kw":3480,"./ar-kw.js":3480,"./ar-ly":4197,"./ar-ly.js":4197,"./ar-ma":2180,"./ar-ma.js":2180,"./ar-ps":9343,"./ar-ps.js":9343,"./ar-sa":230,"./ar-sa.js":230,"./ar-tn":2808,"./ar-tn.js":2808,"./ar.js":4449,"./az":5865,"./az.js":5865,"./be":6627,"./be.js":6627,"./bg":901,"./bg.js":901,"./bm":3179,"./bm.js":3179,"./bn":1966,"./bn-bd":969,"./bn-bd.js":969,"./bn.js":1966,"./bo":6317,"./bo.js":6317,"./br":6474,"./br.js":6474,"./bs":5961,"./bs.js":5961,"./ca":7270,"./ca.js":7270,"./cs":1564,"./cs.js":1564,"./cv":3239,"./cv.js":3239,"./cy":2366,"./cy.js":2366,"./da":2453,"./da.js":2453,"./de":6601,"./de-at":5027,"./de-at.js":5027,"./de-ch":8101,"./de-ch.js":8101,"./de.js":6601,"./dv":6080,"./dv.js":6080,"./el":2655,"./el.js":2655,"./en-au":6836,"./en-au.js":6836,"./en-ca":2086,"./en-ca.js":2086,"./en-gb":2103,"./en-gb.js":2103,"./en-ie":5964,"./en-ie.js":5964,"./en-il":4379,"./en-il.js":4379,"./en-in":765,"./en-in.js":765,"./en-nz":1502,"./en-nz.js":1502,"./en-sg":1152,"./en-sg.js":1152,"./eo":50,"./eo.js":50,"./es":3350,"./es-do":9338,"./es-do.js":9338,"./es-mx":1326,"./es-mx.js":1326,"./es-us":9947,"./es-us.js":9947,"./es.js":3350,"./et":8231,"./et.js":8231,"./eu":8512,"./eu.js":8512,"./fa":9083,"./fa.js":9083,"./fi":5059,"./fi.js":5059,"./fil":2607,"./fil.js":2607,"./fo":3369,"./fo.js":3369,"./fr":7390,"./fr-ca":6711,"./fr-ca.js":6711,"./fr-ch":6152,"./fr-ch.js":6152,"./fr.js":7390,"./fy":2419,"./fy.js":2419,"./ga":3002,"./ga.js":3002,"./gd":4914,"./gd.js":4914,"./gl":6557,"./gl.js":6557,"./gom-deva":8944,"./gom-deva.js":8944,"./gom-latn":5387,"./gom-latn.js":5387,"./gu":7462,"./gu.js":7462,"./he":9237,"./he.js":9237,"./hi":9617,"./hi.js":9617,"./hr":6544,"./hr.js":6544,"./hu":341,"./hu.js":341,"./hy-am":1388,"./hy-am.js":1388,"./id":5251,"./id.js":5251,"./is":1146,"./is.js":1146,"./it":7891,"./it-ch":7,"./it-ch.js":7,"./it.js":7891,"./ja":3727,"./ja.js":3727,"./jv":5198,"./jv.js":5198,"./ka":8974,"./ka.js":8974,"./kk":7308,"./kk.js":7308,"./km":7786,"./km.js":7786,"./kn":4807,"./kn.js":4807,"./ko":1584,"./ko.js":1584,"./ku":1906,"./ku-kmr":5305,"./ku-kmr.js":5305,"./ku.js":1906,"./ky":9190,"./ky.js":9190,"./lb":7396,"./lb.js":7396,"./lo":8503,"./lo.js":8503,"./lt":3010,"./lt.js":3010,"./lv":5192,"./lv.js":5192,"./me":1944,"./me.js":1944,"./mi":6492,"./mi.js":6492,"./mk":2934,"./mk.js":2934,"./ml":1463,"./ml.js":1463,"./mn":8377,"./mn.js":8377,"./mr":8733,"./mr.js":8733,"./ms":8030,"./ms-my":9445,"./ms-my.js":9445,"./ms.js":8030,"./mt":5887,"./mt.js":5887,"./my":7228,"./my.js":7228,"./nb":8294,"./nb.js":8294,"./ne":9559,"./ne.js":9559,"./nl":600,"./nl-be":8796,"./nl-be.js":8796,"./nl.js":600,"./nn":9570,"./nn.js":9570,"./oc-lnc":5662,"./oc-lnc.js":5662,"./pa-in":7101,"./pa-in.js":7101,"./pl":6118,"./pl.js":6118,"./pt":9198,"./pt-br":7203,"./pt-br.js":7203,"./pt.js":9198,"./ro":5565,"./ro.js":5565,"./ru":3315,"./ru.js":3315,"./sd":8473,"./sd.js":8473,"./se":1258,"./se.js":1258,"./si":8798,"./si.js":8798,"./sk":6404,"./sk.js":6404,"./sl":7057,"./sl.js":7057,"./sq":5718,"./sq.js":5718,"./sr":5363,"./sr-cyrl":478,"./sr-cyrl.js":478,"./sr.js":5363,"./ss":7260,"./ss.js":7260,"./sv":2231,"./sv.js":2231,"./sw":7104,"./sw.js":7104,"./ta":7493,"./ta.js":7493,"./te":7705,"./te.js":7705,"./tet":4457,"./tet.js":4457,"./tg":2727,"./tg.js":2727,"./th":2206,"./th.js":2206,"./tk":3419,"./tk.js":3419,"./tl-ph":7243,"./tl-ph.js":7243,"./tlh":16,"./tlh.js":16,"./tr":7020,"./tr.js":7020,"./tzl":8026,"./tzl.js":8026,"./tzm":8537,"./tzm-latn":7899,"./tzm-latn.js":7899,"./tzm.js":8537,"./ug-cn":818,"./ug-cn.js":818,"./uk":8478,"./uk.js":8478,"./ur":7893,"./ur.js":7893,"./uz":9133,"./uz-latn":311,"./uz-latn.js":311,"./uz.js":9133,"./vi":2179,"./vi.js":2179,"./x-pseudo":2455,"./x-pseudo.js":2455,"./yo":3310,"./yo.js":3310,"./zh-cn":7244,"./zh-cn.js":7244,"./zh-hk":76,"./zh-hk.js":76,"./zh-mo":2305,"./zh-mo.js":2305,"./zh-tw":8588,"./zh-tw.js":8588};function a(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=i,e.exports=a,a.id=1738},1793:(e,t,n)=>{"use strict";n.d(t,{L:()=>l});var r=n(118);const a=n.p+"1382cadfeb81ccdaa67d.svg";function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e){for(var t=1;t{this._subs.add(this.subscribeToState(()=>{this.getQueries(),this.getContext()}))}),i(this,"getQueries",()=>{const e=r.jh.getData(this),t=r.jh.findObject(e,c);if(c(t)){const e=t.state.queries.map(e=>o(s({},e),{query:this.state.query}));JSON.stringify(e)!==JSON.stringify(this.state.queries)&&this.setState({queries:e})}}),i(this,"getContext",()=>{const{queries:e,dsUid:t,labelValue:n,type:i="traceMetrics"}=this.state,o=r.jh.getTimeRange(this);if(!o||!e||!t)return;const l={origin:"Explore Traces",type:i,queries:e,timeRange:s({},o.state.value),datasource:{uid:t},url:window.location.href,id:`${JSON.stringify(e)}`,title:`${n}`,logoPath:a};JSON.stringify(l)!==JSON.stringify(this.state.context)&&this.setState({context:l})}),this.addActivationHandler(this._onActivate.bind(this))}}function c(e){return e instanceof r.dt}},2395:(e,t,n)=>{"use strict";n.d(t,{Nr:()=>ie,oL:()=>oe});var r=n(6089),a=n(5959),i=n.n(a),s=n(7781),o=n(118),l=n(8531),c=n(2007),u=n(1829),d=n(1051),m=n(775),p=n(2645),f=n(3049);function v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class g extends o.Bs{getVizPanel(){const e=o.d0.traces().setHoverHeader(!0);return this.state.spanId&&e.setOption("focusedSpanId",this.state.spanId),e}constructor(e){super(function(e){for(var t=1;t{const e=o.jh.getData(this);this._subs.add(e.subscribeToState(e=>{var t,n;(null===(t=e.data)||void 0===t?void 0:t.state)===s.LoadingState.Done?this.setState({panel:this.getVizPanel().build()}):(null===(n=e.data)||void 0===n?void 0:n.state)===s.LoadingState.Loading&&this.setState({panel:new p.G({component:h})})}))})}}v(g,"Component",({model:e})=>{const{panel:t}=e.useState(),n=(0,c.useStyles2)(b);if(t)return i().createElement("div",{className:n.panelContainer},i().createElement(t.Component,{model:t}))});const h=()=>{const e=(0,c.useStyles2)(b);return i().createElement("div",{className:e.container},i().createElement("div",{className:e.header},i().createElement(f.A,{count:1,width:60}),i().createElement(f.A,{count:1,width:60})),i().createElement(f.A,{count:2,width:"80%"}),i().createElement("div",{className:e.map},i().createElement(f.A,{count:1}),i().createElement(f.A,{count:1,height:70})),i().createElement("div",{className:e.span},i().createElement("span",{className:e.service1},i().createElement(f.A,{count:1})),i().createElement("span",{className:e.bar1},i().createElement(f.A,{count:1}))),i().createElement("div",{className:e.span},i().createElement("span",{className:e.service2},i().createElement(f.A,{count:1})),i().createElement("span",{className:e.bar2},i().createElement(f.A,{count:1}))),i().createElement("div",{className:e.span},i().createElement("span",{className:e.service3},i().createElement(f.A,{count:1})),i().createElement("span",{className:e.bar3},i().createElement(f.A,{count:1}))),i().createElement("div",{className:e.span},i().createElement("span",{className:e.service4},i().createElement(f.A,{count:1})),i().createElement("span",{className:e.bar4},i().createElement(f.A,{count:1}))),i().createElement("div",{className:e.span},i().createElement("span",{className:e.service5},i().createElement(f.A,{count:1})),i().createElement("span",{className:e.bar5},i().createElement(f.A,{count:1}))),i().createElement("div",{className:e.span},i().createElement("span",{className:e.service6},i().createElement(f.A,{count:1})),i().createElement("span",{className:e.bar6},i().createElement(f.A,{count:1}))))};function b(e){return{panelContainer:(0,r.css)({display:"flex",height:"100%",'& [data-testid="data-testid panel content"] > div':{overflow:"auto"},"& .show-on-hover":{display:"none"}}),container:(0,r.css)({height:"calc(100% - 32px)",width:"calc(100% - 32px)",position:"absolute",backgroundColor:e.colors.background.primary,border:`1px solid ${e.colors.border.weak}`,padding:"5px"}),header:(0,r.css)({marginBottom:"20px",display:"flex",justifyContent:"space-between"}),map:(0,r.css)({marginTop:"20px",marginBottom:"20px"}),span:(0,r.css)({display:"flex"}),service1:(0,r.css)({width:"25%"}),bar1:(0,r.css)({marginLeft:"5%",width:"70%"}),service2:(0,r.css)({width:"25%"}),bar2:(0,r.css)({marginLeft:"10%",width:"15%"}),service3:(0,r.css)({width:"20%",marginLeft:"5%"}),bar3:(0,r.css)({marginLeft:"10%",width:"65%"}),service4:(0,r.css)({width:"20%",marginLeft:"5%"}),bar4:(0,r.css)({marginLeft:"15%",width:"60%"}),service5:(0,r.css)({width:"15%",marginLeft:"10%"}),bar5:(0,r.css)({marginLeft:"20%",width:"35%"}),service6:(0,r.css)({width:"15%",marginLeft:"10%"}),bar6:(0,r.css)({marginLeft:"30%",width:"15%"})}}var y=n(6338);function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class S extends o.Bs{_onActivate(){this.updateBody();(0,d.zY)(this).subscribeToState((e,t)=>{e.traceId===t.traceId&&e.spanId===t.spanId||(this.updateBody(),(0,y.EE)(y.NO.analyse_traces,y.ir.analyse_traces.open_trace,{traceId:e.traceId,spanId:e.spanId}))})}updateBody(){const e=(0,d.zY)(this);e.state.traceId?this.setState({body:new g({traceId:e.state.traceId,spanId:e.state.spanId})}):this.setState({body:new m.v({message:"No trace selected"})})}constructor(e){super(function(e){for(var t=1;t{const{body:t}=e.useState();return t&&i().createElement(t.Component,{model:t})});var O=n(2245),x=n(6003),E=n(3761);class j extends o.Bs{_onActivate(){this.runIssueDetectionQuery();const e=(0,d._b)(this);this._subs.add(e.subscribeToState((e,t)=>{e.value!==t.value&&(this.resetIssues(),this.runIssueDetectionQuery())}))}runIssueDetectionQuery(){const e=(0,d._b)(this),t=(0,s.dateTime)(),n=(0,s.dateTime)(t).subtract(1,"minute"),r=new o.JZ({from:n.toISOString(),to:t.toISOString()}),a=new o.dt({maxDataPoints:1,datasource:{uid:String(e.state.value)},$timeRange:r,queries:[{refId:"issueDetectorQuery",query:"{} | rate()",queryType:"traceql",tableType:"spans",limit:1,spss:1,filters:[]}]});this._subs.add(a.subscribeToState(e=>{var t;if((null===(t=e.data)||void 0===t?void 0:t.state)===s.LoadingState.Error){var n,r,a;((null===(a=e.data)||void 0===a||null===(r=a.errors)||void 0===r||null===(n=r[0])||void 0===n?void 0:n.message)||"").includes("localblocks processor not found")&&this.setState({hasIssue:!0})}})),a.activate()}resetIssues(){this.setState({hasIssue:!1})}constructor(){super({hasIssue:!1}),this.addActivationHandler(this._onActivate.bind(this))}}const k=({detector:e})=>{const{hasIssue:t}=e.useState();return t?i().createElement(c.Alert,{severity:"warning",title:"TraceQL metrics not configured"},i().createElement("p",null,'We found an error running a TraceQL metrics query: "localblocks processor not found". This typically means the "local-blocks" processor is not configured in Tempo, which is required for Grafana Traces Drilldown to work.',i().createElement(c.LinkButton,{icon:"external-link-alt",fill:"text",size:"sm",target:"_blank",href:"https://grafana.com/docs/tempo/latest/operations/traceql-metrics"},"Read documentation"))):null};var C=n(1793),P=n(4524),_=n(271);function N({serviceName:e,model:t}){const{isLoading:n,component:r}=(0,l.usePluginComponent)("grafana-asserts-app/entity-assertions-widget/v1"),[s,c]=(0,a.useState)();return(0,a.useEffect)(()=>{const e=o.jh.getTimeRange(t);c(e.state.value);const n=e.subscribeToState(e=>{c(e.value)});return()=>{n.unsubscribe()}},[t]),!n&&r&&s?i().createElement(r,{size:"md",source:"Traces Drilldown",query:{start:s.from.valueOf(),end:s.to.valueOf(),entityName:e,entityType:"Service"},returnToPrevious:!0}):null}var D=n(5755),T=n(1893),I=n(4568),A=n(1508),$=n(7186),L=n(9814);n(1546);function V(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function B(e){for(var t=1;t{t(R(e.clientX))},[]),r=(0,a.useCallback)(e=>{const n=e.touches[0];t(R(n.clientX))},[]),i=(0,a.useCallback)(e=>{document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",i)},[n]),s=(0,a.useCallback)(e=>{document.removeEventListener("touchmove",r),document.removeEventListener("touchend",s)},[r]);function o(e){e.stopPropagation(),e.preventDefault(),document.addEventListener("mousemove",n),document.addEventListener("mouseup",i)}function l(e){e.stopPropagation(),e.preventDefault(),document.addEventListener("touchmove",r),document.addEventListener("touchend",s)}return[e,o,l]}(),f=(0,c.useStyles2)(H),v=(0,c.useStyles2)(q,l),g=(0,c.useStyles2)(c.getDragStyles),h=a.useRef(null),{dialogProps:b,titleProps:y}=(0,D.s)({},h),{overlayProps:w}=(0,I.e)({isDismissable:!1,isOpen:!0,onClose:t},h);(0,a.useEffect)(()=>{if(document.body)return document.body.classList.add("body-drawer-open"),()=>{document.body.classList.remove("body-drawer-open")}},[]);const S=a.createElement("div",{className:f.content},e),O=null!=d?d:z[l].width,x=z[l].minWidth;return a.createElement(A.A,{open:!0,onClose:t,placement:"right",getContainer:"#trace-exploration",className:f.drawerContent,rootClassName:f.drawer,classNames:{wrapper:v},styles:{wrapper:{width:O,minWidth:x}},width:"",motion:{motionAppear:!0,motionName:f.drawerMotion},maskClassName:f.mask,maskClosable:n,maskMotion:{motionAppear:!0,motionName:f.maskMotion}},a.createElement(T.n1,{restoreFocus:!0,contain:!0,autoFocus:!0},a.createElement("div",F(B({"aria-label":"string"==typeof s?$.Tp.components.Drawer.General.title(s):$.Tp.components.Drawer.General.title("no title"),className:f.container},w,b),{ref:h}),a.createElement("div",{className:(0,r.cx)(g.dragHandleVertical,f.resizer),onMouseDown:m,onTouchStart:p}),a.createElement("div",{className:(0,r.cx)(f.header,Boolean(u)&&f.headerWithTabs)},a.createElement("div",{className:f.actions},a.createElement(c.IconButton,{name:"times",variant:"secondary",onClick:t,"data-testid":$.Tp.components.Drawer.General.close,tooltip:(0,L.t)("grafana-ui.drawer.close","Close")})),"string"==typeof s?a.createElement("div",{className:f.titleWrapper},a.createElement(c.Text,B({element:"h3"},y),s),o&&a.createElement("div",{className:f.subtitle,"data-testid":$.Tp.components.Drawer.General.subtitle},o)):s,u&&a.createElement("div",{className:f.tabsWrapper},u)),i?a.createElement(c.ScrollContainer,{showScrollIndicators:!0},S):S)))}function R(e){let t=document.body.offsetWidth-(e-document.body.offsetLeft);return`${Math.min(t/document.body.clientWidth*100,98).toFixed(2)}vw`}const H=e=>{var t,n;return{container:(0,r.css)({display:"flex",flexDirection:"column",height:"100%",flex:"1 1 0",minHeight:"100%",position:"relative"}),drawer:(0,r.css)({top:0,position:"absolute !important",".rc-drawer-content-wrapper":{boxShadow:e.shadows.z3}}),drawerContent:(0,r.css)({backgroundColor:`${e.colors.background.primary} !important`,display:"flex",overflow:"unset !important",flexDirection:"column"}),drawerMotion:(0,r.css)({"&-appear":{transform:"translateX(100%)",transition:"none !important","&-active":{transition:`${e.transitions.create("transform")} !important`,transform:"translateX(0)"}}}),mask:(0,r.css)({backgroundColor:"transparent !important",position:"absolute !important","&:before":{backgroundColor:`${e.components.overlay.background} !important`,bottom:0,content:'""',left:0,position:"absolute",right:0,top:0}}),maskMotion:(0,r.css)({"&-appear":{opacity:0,"&-active":{opacity:1,transition:e.transitions.create("opacity")}}}),header:(0,r.css)({label:"drawer-header",flexGrow:0,padding:e.spacing(2,2,3),borderBottom:`1px solid ${e.colors.border.weak}`}),headerWithTabs:(0,r.css)({borderBottom:"none"}),actions:(0,r.css)({position:"absolute",right:e.spacing(1),top:e.spacing(1)}),titleWrapper:(0,r.css)({label:"drawer-title",overflowWrap:"break-word"}),subtitle:(0,r.css)({label:"drawer-subtitle",color:e.colors.text.secondary,paddingTop:e.spacing(1)}),content:(0,r.css)({padding:e.spacing(null!==(n=null===(t=e.components.drawer)||void 0===t?void 0:t.padding)&&void 0!==n?n:2),height:"100%",flexGrow:1,minHeight:0}),tabsWrapper:(0,r.css)({label:"drawer-tabs",paddingLeft:e.spacing(2),margin:e.spacing(1,-1,-3,-3)}),resizer:(0,r.css)({top:0,left:e.spacing(-1),bottom:0,position:"absolute",zIndex:e.zIndex.modal})}};function q(e,t){return(0,r.css)({label:`drawer-content-wrapper-${t}`,overflow:"unset !important",[e.breakpoints.down("md")]:{width:`calc(100% - ${e.spacing(2)}) !important`,minWidth:"0 !important"}})}const G=({children:e,title:t,isOpen:n,onClose:r,embedded:a=!1,forceNoDrawer:s=!1,investigationButton:o})=>{const l=(0,c.useStyles2)(W);return n?!s&&!a?i().createElement(M,{size:"lg",title:t,onClose:r},e):i().createElement("div",{className:l.container},i().createElement("div",{className:l.drawerHeader},i().createElement(c.Button,{variant:"primary",fill:"text",size:"md",icon:"arrow-left",onClick:r},"Back to all traces"),a&&o),e):null},W=e=>({container:(0,r.css)({height:"100%",width:"100%",background:e.colors.background.primary,padding:e.spacing(2),display:"flex",flexDirection:"column",position:"absolute",top:0,left:0,zIndex:3}),drawerHeader:(0,r.css)({display:"flex",justifyContent:"space-between",alignItems:"center",paddingBottom:e.spacing(2),h4:{margin:0}})});function U(e){const t=e.filter(e=>e.key&&e.operator&&e.value).map(e=>function(e){let t=e.value;!["span.messaging.destination.partition.id","span.network.protocol.version"].includes(e.key)&&(Y(t)||["status","kind","span:status","span:kind","duration","span:duration","trace:duration","event:timeSinceStart"].includes(e.key)||["true","false"].includes(t)||(n=t,"string"==typeof n&&n.length>=2&&Y(n.slice(1,-1))&&(n.startsWith('"')&&n.endsWith('"')||n.startsWith("'")&&n.endsWith("'"))))||"string"==typeof t&&(t=t.replace(/["\\]/g,e=>`\\${e}`),t=`"${t}"`);var n;return`${e.key}${e.operator}${t}`}(e)).join("&&");return t.length?t:"true"}function Y(e){return null!=e&&""!==e&&!isNaN(Number(e.toString().trim()))}function K(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function X(e){for(var t=1;tQ(X({},t),{readOnly:e.embedded,origin:e.embedderName})),allowCustomValue:!0,expressionBuilder:U}),K(this,"initialFilters",void 0),K(this,"embedderName",void 0),K(this,"embedded",void 0),this.initialFilters=e.initialFilters,this.embedderName=e.embedderName,this.embedded=e.embedded,this.subscribeToState(e=>{if(e.filters&&this.embedded){let t=!1;const n=e.filters.map(e=>{var n;return(null===(n=this.initialFilters)||void 0===n?void 0:n.find(t=>t.key===e.key&&t.operator===e.operator&&t.value===e.value))&&!e.readOnly&&e.origin!==this.embedderName?(t=!0,Q(X({},e),{readOnly:!0,origin:this.embedderName})):e});t&&this.setState({filters:n})}})}}function J(e,t,n,r,a,i,s){try{var o=e[i](s),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(r,a)}function ee(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function te(e){for(var t=1;t{this.setupInvestigationButton(e.payload.traceId),this.setState({traceId:e.payload.traceId,spanId:e.payload.spanId})})),this.state.traceId&&this.setupInvestigationButton(this.state.traceId);o.jh.lookupVariable(u.EY,this).subscribeToState(e=>{e.value&&localStorage.setItem(u.cd,e.value.toString())}),this.state.issueDetector&&(this.state.issueDetector.isActive||this.state.issueDetector.activate())}getUrlState(){return{traceId:this.state.traceId,spanId:this.state.spanId}}updateFromUrl(e){const t={};(e.traceId||e.spanId)&&(t.traceId=e.traceId?e.traceId:void 0,t.spanId=e.spanId?e.spanId:void 0),this.setState(t)}getMetricVariable(){const e=o.jh.lookupVariable(u.PU,this);if(!(e instanceof o.yP))throw new Error("Metric variable not found");var t;e.getValue()||e.changeValueTo(null!==(t=this.state.initialMetric)&&void 0!==t?t:"rate");return e}getMetricFunction(){return this.getMetricVariable().getValue()}closeDrawer(){this.setState({traceId:void 0,spanId:void 0})}setupInvestigationButton(e){const t=(0,d.zY)(this),n=(0,d.U4)(t),r=new o.dt({datasource:{uid:n},queries:[{refId:"A",query:e,queryType:"traceql"}]}),a=new C.L({query:e,type:"trace",dsUid:n,$data:r});a.activate(),this.setState({addToInvestigationButton:a}),this._subs.add(a.subscribeToState(()=>{this.updateInvestigationLink()})),r.activate(),this._subs.add(r.subscribeToState(e=>{var t,n,r;if((null===(t=e.data)||void 0===t?void 0:t.state)===s.LoadingState.Done&&(null===(r=e.data)||void 0===r||null===(n=r.series)||void 0===n?void 0:n.length)>0){var i,o;const t=null===(o=e.data.series[0])||void 0===o||null===(i=o.fields)||void 0===i?void 0:i.find(e=>"serviceName"===e.name);t&&t.values[0]&&a.setState(ne(te({},a.state),{labelValue:`${t.values[0]}`}))}})),a.setState(ne(te({},a.state),{labelValue:e}))}updateInvestigationLink(){return(e=function*(){const{addToInvestigationButton:e}=this.state;if(!e)return;const t=yield(0,P.Fh)(e);t&&this.setState({investigationLink:t})},function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function s(e){J(i,r,a,s,o,"next",e)}function o(e){J(i,r,a,s,o,"throw",e)}s(void 0)})}).call(this);var e}constructor(e){var t,n,r;super(te({$timeRange:null!==(t=e.$timeRange)&&void 0!==t?t:new o.JZ({}),$variables:null!==(n=e.$variables)&&void 0!==n?n:ue(e),controls:null!==(r=e.controls)&&void 0!==r?r:[new o.KE({}),new o.WM({})],body:new se({}),drawerScene:new S({}),issueDetector:new j},e)),ee(this,"_urlSync",new o.So(this,{keys:["traceId","spanId"]})),ee(this,"onChangeMetricFunction",e=>{const t=this.getMetricVariable();e&&t.getValue()!==e&&t.changeValueTo(e,void 0,!0)}),this.addActivationHandler(this._onActivate.bind(this))}}ee(ie,"Component",({model:e})=>{const{body:t}=e.useState(),n=(0,c.useStyles2)(de);return i().createElement("div",{className:n.bodyContainer}," ",t&&i().createElement(t.Component,{model:t})," ")});class se extends o.Bs{}ee(se,"Component",({model:e})=>{const t=(0,d.zY)(e),{controls:n,topScene:r,drawerScene:a,traceId:s,issueDetector:o,investigationLink:l,addToInvestigationButton:u,embedded:m}=t.useState(),{hasIssue:p}=(null==o?void 0:o.useState())||{hasIssue:!1},f=(0,c.useStyles2)(de);return i().createElement("div",{className:f.container,id:"trace-exploration"},p&&o&&i().createElement(k,{detector:o}),m?i().createElement(le,{model:e}):i().createElement(ce,{controls:n,model:e}),i().createElement("div",{className:f.body},r&&i().createElement(r.Component,{model:r})),i().createElement(G,{isOpen:!!a&&!!s,onClose:()=>t.closeDrawer(),title:`View trace ${s}`,embedded:m,forceNoDrawer:m,investigationButton:u&&l&&i().createElement(c.Button,{variant:"secondary",size:"sm",icon:"plus-square",onClick:e=>{(null==l?void 0:l.onClick)&&l.onClick(e),(0,y.EE)(y.NO.analyse_traces,y.ir.analyse_traces.add_to_investigation_trace_view_clicked),setTimeout(()=>t.closeDrawer(),100)}},P.R_)},a&&i().createElement(a.Component,{model:a})))});const oe=e=>{const[t,n]=i().useState(),r=(0,d.zY)(e),s=(0,d.gG)(r),o=e=>{var t;const n=e.find(e=>"resource.service.name"===e.key);return"="===(null==n?void 0:n.operator)||"=~"===(null==n?void 0:n.operator)?null==n||null===(t=n.value)||void 0===t?void 0:t.replace(/"/g,""):void 0};return(0,a.useEffect)(()=>{n(o(s.state.filters));const e=s.subscribeToState(e=>{n(o(e.filters))});return()=>{e.unsubscribe()}},[s]),t},le=({model:e})=>{var t;const n=(0,l.useReturnToPrevious)(),r=(0,c.useStyles2)(de,!0),s=(0,d.zY)(e),{returnToPreviousSource:u}=s.useState(),m=(0,d.gG)(s),p=(0,d.h7)(s),f=s.state.controls.find(e=>e instanceof o.KE),v=null===(t=s.state.$timeRange)||void 0===t?void 0:t.useState(),g=m.useState(),h=s.getMetricVariable().useState(),[b,w]=i().useState(()=>(0,d.__)(s));return null==p||p.changeValueTo(E.Xn[1].value),(0,a.useEffect)(()=>{w((0,d.__)(s))},[v,g,h,s]),i().createElement("div",{className:r.headerContainer},i().createElement(c.Stack,{gap:1,alignItems:"center",wrap:"wrap",justifyContent:"space-between"},i().createElement(p.Component,{model:p}),m&&i().createElement("div",null,i().createElement(m.Component,{model:m})),i().createElement(c.Stack,{gap:1,alignItems:"center"},i().createElement(c.LinkButton,{href:b,variant:"secondary",icon:"arrow-right",onClick:()=>{n(u||"previous"),(0,y.EE)(y.NO.common,y.ir.common.go_to_full_app_clicked)}},"Traces Drilldown"),f&&i().createElement(f.Component,{model:f}))))},ce=({controls:e,model:t})=>{const n=(0,c.useStyles2)(de),[r,a]=i().useState(!1),s=oe(t),m=(0,d.zY)(t),p=o.jh.lookupVariable(u.EY,m),f=(0,d.gG)(m),v=(0,d.h7)(m);function g(){const e=(0,c.useStyles2)(de);return i().createElement("div",{className:e.menuHeader},i().createElement("h5",null,"Grafana Traces Drilldown v","1.1.4"),i().createElement("div",{className:e.menuHeaderSubtitle},"Last update: ",ae))}const h=i().createElement(c.Menu,{header:i().createElement(g,null)},i().createElement("div",{className:n.menu},l.config.feedbackLinksEnabled&&i().createElement(c.Menu.Item,{label:"Give feedback",ariaLabel:"Give feedback",icon:"comment-alt-message",url:"https://grafana.qualtrics.com/jfe/form/SV_9LUZ21zl3x4vUcS",target:"_blank",onClick:()=>(0,y.EE)(y.NO.common,y.ir.common.global_docs_link_clicked)}),i().createElement(c.Menu.Item,{label:"Documentation",ariaLabel:"Documentation",icon:"external-link-alt",url:"https://grafana.com/docs/grafana/next/explore/simplified-exploration/traces/",target:"_blank",onClick:()=>(0,y.EE)(y.NO.common,y.ir.common.feedback_link_clicked)})));return i().createElement("div",{className:n.headerContainer},i().createElement(c.Stack,{gap:1,justifyContent:"space-between",wrap:"wrap"},i().createElement(c.Stack,{gap:1,alignItems:"center",wrap:"wrap"},p&&i().createElement(c.Stack,{gap:0,alignItems:"center"},i().createElement("div",{className:n.datasourceLabel},"Data source"),i().createElement(p.Component,{model:p}))),i().createElement("div",{className:n.controls},i().createElement(N,{serviceName:s||"",model:t}),i().createElement(c.Dropdown,{overlay:h,onVisibleChange:()=>a(!r)},i().createElement(c.Button,{variant:"secondary",icon:"info-circle"},"Need help",i().createElement(c.Icon,{className:n.helpIcon,name:r?"angle-up":"angle-down",size:"lg"}))),e.map(e=>i().createElement(e.Component,{key:e.state.key,model:e})))),i().createElement(c.Stack,{gap:1,alignItems:"center",wrap:"wrap"},i().createElement(c.Stack,{gap:0,alignItems:"center"},i().createElement("div",{className:n.datasourceLabel},"Filters"),v&&i().createElement(v.Component,{model:v})),f&&i().createElement("div",null,i().createElement(f.Component,{model:f}))))};function ue(e){return new o.Pj({variables:[new o.mI({name:u.EY,label:"Data source",value:e.initialDS,pluginId:"tempo",isReadOnly:e.embedded}),new x.x({name:u.CE,isReadOnly:e.embedded}),new Z({initialFilters:e.initialFilters,embedderName:e.embedderName,embedded:e.embedded}),new o.yP({name:u.PU,hide:O.zL.hideVariable}),new o.yP({name:u.z,defaultToAll:!1,value:e.initialGroupBy}),new o.yP({name:u.gP,defaultToAll:!1}),new o.yP({name:u.pf,defaultToAll:!1,hide:O.zL.hideVariable}),new o.yP({name:u.xc,defaultToAll:!1,hide:O.zL.hideVariable})]})}function de(e,t){return{bodyContainer:(0,r.css)({label:"bodyContainer",flexGrow:1,display:"flex",minHeight:"100%",flexDirection:"column"}),container:(0,r.css)({label:"container",flexGrow:1,display:"flex",gap:e.spacing(1),minHeight:"100%",flexDirection:"column",padding:`0 ${e.spacing(2)} ${e.spacing(2)} ${e.spacing(2)}`,overflow:"auto",maxHeight:"100%",position:"relative"}),drawerHeader:(0,r.css)({display:"flex",justifyContent:"space-between",alignItems:"center",borderBottom:`1px solid ${e.colors.border.weak}`,paddingBottom:e.spacing(2),marginBottom:e.spacing(2),h3:{margin:0}}),drawerHeaderButtons:(0,r.css)({display:"flex",justifyContent:"flex-end",gap:e.spacing(1.5)}),body:(0,r.css)({label:"body",flexGrow:1,display:"flex",flexDirection:"column",gap:e.spacing(1)}),headerContainer:(0,r.css)({label:"headerContainer",backgroundColor:t?e.colors.background.primary:e.colors.background.canvas,display:"flex",flexDirection:"column",position:"sticky",top:0,zIndex:3,padding:`${e.spacing(1.5)} 0`,gap:e.spacing(1)}),datasourceLabel:(0,r.css)({label:"datasourceLabel",fontSize:"12px",padding:`0 ${e.spacing(1)}`,height:"32px",display:"flex",alignItems:"center",justifyContent:"flex-start",fontWeight:e.typography.fontWeightMedium,position:"relative",right:-1,width:"90px"}),controls:(0,r.css)({label:"controls",display:"flex",gap:e.spacing(1),zIndex:3,flexWrap:"wrap"}),menu:(0,r.css)({label:"menu","svg, span":{color:e.colors.text.link}}),menuHeader:r.css` - padding: ${e.spacing(.5,1)}; - white-space: nowrap; - `,menuHeaderSubtitle:r.css` - color: ${e.colors.text.secondary}; - font-size: ${e.typography.bodySmall.fontSize}; - `,tooltip:(0,r.css)({label:"tooltip",fontSize:"14px",lineHeight:"22px",width:"180px",textAlign:"center"}),helpIcon:(0,r.css)({label:"helpIcon",marginLeft:e.spacing(1)}),filters:(0,r.css)({label:"filters",marginTop:e.spacing(1),display:"flex",gap:e.spacing(1)})}}},2645:(e,t,n)=>{"use strict";n.d(t,{G:()=>p});var r,a,i,s=n(6089),o=n(118),l=n(2007),c=n(5959),u=n.n(c),d=n(3049),m=n(9504);class p extends o.Bs{}i=({model:e})=>{const t=(0,l.useTheme2)(),n=(0,l.useStyles2)(v),{component:r}=e.useState();return u().createElement("div",{className:n.container,"data-testid":m.b.loadingState},u().createElement(d.z,{baseColor:t.colors.emphasize(t.colors.background.secondary),highlightColor:t.colors.emphasize(t.colors.background.secondary,.1),borderRadius:t.shape.radius.default},r()))},(a="Component")in(r=p)?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i;const f=(0,s.keyframes)({"0%":{opacity:0},"100%":{opacity:1}});function v(){return{container:(0,s.css)({label:"loading-state-scene",animationName:f,animationDelay:"100ms",animationTimingFunction:"ease-in",animationDuration:"100ms",animationFillMode:"backwards"})}}},2860:(e,t,n)=>{"use strict";n.d(t,{M:()=>o});var r=n(5959),a=n.n(r),i=n(2007),s=n(6089);const o=({isStreaming:e,iconSize:t=14})=>{const n=(0,i.useStyles2)(l,t);return e?a().createElement(i.Tooltip,{content:"Streaming"},a().createElement(i.Icon,{name:"circle-mono",size:"md",className:n.streamingIndicator})):null},l=(e,t)=>({streamingIndicator:(0,s.css)({width:`${t}px`,height:`${t}px`,backgroundColor:e.colors.success.text,fill:e.colors.success.text,borderRadius:"50%",display:"inline-block"})})},3247:(e,t,n)=>{"use strict";n.d(t,{G:()=>i,h:()=>s});var r=n(1269),a=n(7781);const i=e=>[{topic:a.DataTopic.Annotations,operator:()=>t=>t.pipe((0,r.map)(t=>t.map(t=>{if("exemplar"===t.name){const n=t.fields.find(e=>"traceId"===e.name);n&&(n.config.links=[{title:"View trace",url:"#${__value.raw}",onClick:t=>{var n,r,a;t.e.stopPropagation();const i=null===(a=t.e.target)||void 0===a||null===(r=a.parentElement)||void 0===r||null===(n=r.parentElement)||void 0===n?void 0:n.href;if(!i||-1===i.indexOf("#"))return;const s=i.split("#")[1];s&&""!==s&&(null==e||e(s))}}])}return t})))}],s=()=>[{topic:a.DataTopic.Annotations,operator:()=>e=>e.pipe((0,r.map)(e=>e.filter(e=>"exemplar"!==e.name)))}]},3733:(e,t,n)=>{"use strict";n.d(t,{p:()=>g});var r=n(5959),a=n.n(r),i=n(2007),s=n(6089),o=n(1792);const l=n.p+"944c737f589d02ecf603.svg",c=n.p+"e79edcfbe2068fae2364.svg";var u=n(3241);const d=(e=50)=>{const[t,n]=(0,r.useState)({x:null,y:null});return(0,r.useEffect)(()=>{const t=(0,u.throttle)(e=>{n({x:e.clientX,y:e.clientY})},e);return window.addEventListener("mousemove",t),()=>{window.removeEventListener("mousemove",t)}},[e]),t},m=({width:e="auto",height:t,show404:n=!1})=>{const r=(0,i.useTheme2)(),{x:s,y:u}=d(),m=(0,i.useStyles2)(p,s,u,n);return a().createElement(o.A,{src:r.isDark?l:c,className:m.svg,height:t,width:e})};m.displayName="GrotNotFound";const p=(e,t,n,r)=>{const{innerWidth:a,innerHeight:i}=window,o=n&&n/i,l=t&&t/a,c=null!==o?f(o,-20,5):0,u=null!==l?f(l,-5,5):0;return{svg:(0,s.css)({"#grot-404-arm, #grot-404-magnifier":{transform:`rotate(${c}deg) translateX(${u}%)`,transformOrigin:"center",transition:"transform 50ms linear"},"#grot-404-text":{display:r?"block":"none"}})}},f=(e,t,n)=>e*(n-t)+t;var v=n(9504);const g=({message:e,remedyMessage:t,imgWidth:n,padding:r})=>{const s=(0,i.useStyles2)(h,r);return a().createElement("div",{className:s.container,"data-testid":v.b.emptyState},a().createElement(i.Stack,{direction:"column",alignItems:"center",gap:3},a().createElement(m,{width:null!=n?n:300}),"string"==typeof e&&a().createElement(i.Text,{textAlignment:"center",variant:"h5"},e),"string"!=typeof e&&e,t&&a().createElement("div",{className:s.remedy},a().createElement(i.Stack,{gap:.5,alignItems:"center"},a().createElement(i.Icon,{name:"info-circle"}),a().createElement(i.Text,{textAlignment:"center",variant:"body"},t)))))};function h(e,t){return{container:(0,s.css)({width:"100%",display:"flex",justifyContent:"space-evenly",flexDirection:"column",padding:t||0}),remedy:(0,s.css)({marginBottom:e.spacing(4)})}}g.displayName="EmptyState"},3761:(e,t,n)=>{"use strict";n.d(t,{$L:()=>i,Xn:()=>a,iH:()=>r});const r="span.db.system.name",a=[{label:"Root spans",value:"nestedSetParent<0",filter:{key:"nestedSetParent",operator:"<",value:"0"},description:"Focus your analysis on the root span of each trace"},{label:"All spans",value:"true",filter:{key:"",operator:"",value:!0},description:"View and analyse raw span data. This option may result in long query times."},{label:"Server spans",value:"kind=server",filter:{key:"kind",operator:"=",value:"server"},description:"Explore server-specific segments of traces"},{label:"Consumer spans",value:"kind=consumer",filter:{key:"kind",operator:"=",value:"consumer"},description:"Analyze interactions initiated by consumer services"},{label:"Database calls",value:`${r}!=""`,filter:{key:r,operator:"!=",value:'""'},description:"Evaluate the performance issues in database interactions"}],i=e=>a.find(t=>t.value===e)},4524:(e,t,n)=>{"use strict";n.d(t,{Fh:()=>x,GD:()=>w,R_:()=>g});var r=n(7781),a=n(118),i=n(5959),s=n.n(i),o=n(1793),l=n(8531),c=n(6338),u=n(1051),d=n(1269);function m(e,t,n,r,a,i,s){try{var o=e[i](s),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(r,a)}function p(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function s(e){m(i,r,a,s,o,"next",e)}function o(e){m(i,r,a,s,o,"throw",e)}s(void 0)})}}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function v(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const g="Add to investigation",h="grafana-exploretraces-app/investigation/v1",b="investigations_divider",y="Investigations";class w extends a.Bs{addItem(e){this.state.body&&this.state.body.addItem(e)}setItems(e){this.state.body&&this.state.body.setItems(e)}constructor(e){super(e),this.addActivationHandler(()=>{const e=[{text:"Navigation",type:"group"},{text:"Explore",iconClassName:"compass",href:S(this),onClick:()=>O()}];this.setState({body:new a.Lw({items:e})});const t=(0,u.zY)(this),n=(0,u.U4)(t),r=new o.L({query:this.state.query,dsUid:n});r.activate(),this.setState({addToInvestigationButton:r}),this._subs.add(null==r?void 0:r.subscribeToState(()=>{var e;e=this,p(function*(){const t=e.state.addToInvestigationButton;if(t){var n;const l=yield x(t);var r;const u=null!==(r=null===(n=e.state.body)||void 0===n?void 0:n.state.items)&&void 0!==r?r:[],d=u.find(e=>e.text===g);var a,i,s,o;l&&(d?d&&(null===(a=e.state.body)||void 0===a||a.setItems(u.filter(e=>!1===[b,y,g].includes(e.text)))):(null===(i=e.state.body)||void 0===i||i.addItem({text:b,type:"divider"}),null===(s=e.state.body)||void 0===s||s.addItem({text:y,type:"group"}),null===(o=e.state.body)||void 0===o||o.addItem({text:g,iconClassName:"plus-square",onClick:e=>{l.onClick&&l.onClick(e),(0,c.EE)(c.NO.analyse_traces,c.ir.analyse_traces.add_to_investigation_clicked)}})))}})()})),r.setState(v(function(e){for(var t=1;t{const{body:t}=e.useState();return t?s().createElement(t.Component,{model:t}):s().createElement(s().Fragment,null)});const S=e=>{const t=(0,u.zY)(e),n=(0,u.U4)(t),i=a.jh.getTimeRange(e).state.value,s=(0,u.Is)(e),o=JSON.stringify({"traces-explore":{range:(0,r.toURLRange)(i.raw),queries:[{refId:"A",datasource:n,query:e.state.query,step:s}]}});var c;const d=null!==(c=l.config.appSubUrl)&&void 0!==c?c:"";return r.urlUtil.renderUrl(`${d}/explore`,{panes:o,schemaVersion:1})},O=()=>{(0,c.EE)(c.NO.analyse_traces,c.ir.analyse_traces.open_in_explore_clicked)},x=e=>p(function*(){const t=e.state.context;if(void 0!==l.getPluginLinkExtensions){return(0,l.getPluginLinkExtensions)({extensionPointId:h,context:t}).extensions[0]}if(void 0!==l.getObservablePluginLinks){return(yield(0,d.firstValueFrom)((0,l.getObservablePluginLinks)({extensionPointId:h,context:t})))[0]}})()},4917:(e,t,n)=>{"use strict";n.d(t,{F:()=>a,p:()=>r});const r=e=>{var t;const n=e.fields.find(e=>"Baseline"===e.name),r=e.fields.find(e=>"Selection"===e.name);let a=0,i=0;for(let e=0;e<((null==n||null===(t=n.values)||void 0===t?void 0:t.length)||0);e++){const t=((null==r?void 0:r.values[e])||0)-((null==n?void 0:n.values[e])||0);Math.abs(t)>Math.abs(a||0)&&(a=t,i=e)}return{maxDifference:a,maxDifferenceIndex:i}},a=e=>{if("duration"!==e)return{query:"status = error",type:"auto"}}},6003:(e,t,n)=>{"use strict";n.d(t,{x:()=>g});var r=n(5959),a=n.n(r),i=n(118),s=n(3761),o=n(2007),l=n(6089),c=n(5225),u=n(6338);function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const p=e=>{const t=(0,o.useStyles2)(h);return a().createElement(c.c.Menu,m(function(e){for(var t=1;t{const e=(0,o.useStyles2)(h);return a().createElement("div",{className:e.heading},a().createElement(o.Text,{weight:"bold",variant:"bodySmall",color:"secondary"},"Primary signal"))};class g extends i.yP{}d(g,"Component",({model:e})=>{const t=(0,o.useStyles2)(h),{value:n,isReadOnly:i}=e.useState();(0,r.useEffect)(()=>{n||e.changeValueTo(i?s.Xn[1].value:s.Xn[0].value)});const l=s.Xn.slice(0,2),c=s.Xn.find(e=>e.value===n);c&&!l.some(e=>e.filter.key===c.filter.key)&&l.push(c);const d=s.Xn.filter(e=>!l.some(t=>t.value===e.value)),m=t=>{(0,u.EE)(u.NO.analyse_traces,u.ir.analyse_traces.primary_signal_changed,{primary_signal:t}),e.changeValueTo(t,void 0,!0)};return i?a().createElement(a().Fragment,null):a().createElement(a().Fragment,null,a().createElement(o.RadioButtonGroup,{options:l,value:n,onChange:m,disabled:i,className:t.buttonGroup}),a().createElement(o.Select,{options:[{label:"Primary signal",options:d}],value:"",placeholder:"",isSearchable:!1,isClearable:!1,width:4,onChange:e=>m(e.value),className:t.select,components:{IndicatorSeparator:()=>null,SingleValue:()=>null,Menu:p,DropdownIndicator:f,GroupHeading:v}}))});const h=e=>({select:l.css` - [class$='input-suffix'] { - position: absolute; - z-index: 2; - } - - :focus-within { - outline: none; - box-shadow: none; - } - - > div { - padding: 0; - } - - input { - opacity: 0 !important; - } - - border-radius: 0 2px 2px 0; - border-left: none; - `,buttonGroup:l.css` - border-radius: 2px 0 0 2px; - `,customMenu:l.css` - width: 230px; - - [class$='grafana-select-option-grafana-select-option-focused'] { - background: transparent; - - ::before { - display: none; - } - } - `,heading:(0,l.css)({padding:e.spacing(1,1,.75,.75),borderLeft:"2px solid transparent",borderBottom:`1px solid ${e.colors.border.weak}`})})},6338:(e,t,n)=>{"use strict";n.d(t,{EE:()=>i,NO:()=>s,ir:()=>o});var r=n(8531),a=n(2533);const i=(e,t,n)=>{(0,r.reportInteraction)(((e,t)=>`${a.id.replace(/-/g,"_")}_${e}_${t}`)(e,t),n)},s={analyse_traces:"analyse_traces",home:"home",common:"common"},o={[s.analyse_traces]:{action_view_changed:"action_view_changed",breakdown_group_by_changed:"breakdown_group_by_changed",breakdown_add_to_filters_clicked:"breakdown_add_to_filters_clicked",comparison_add_to_filters_clicked:"comparison_add_to_filters_clicked",select_attribute_in_comparison_clicked:"select_attribute_in_comparison_clicked",layout_type_changed:"layout_type_changed",start_investigation:"start_investigation",stop_investigation:"stop_investigation",open_trace:"open_trace",open_in_explore_clicked:"open_in_explore_clicked",add_to_investigation_clicked:"add_to_investigation_clicked",add_to_investigation_trace_view_clicked:"add_to_investigation_trace_view_clicked",span_list_columns_changed:"span_list_columns_changed",toggle_bookmark_clicked:"toggle_bookmark_clicked",primary_signal_changed:"primary_signal_changed",exception_message_clicked:"exception_message_clicked"},[s.home]:{homepage_initialized:"homepage_initialized",panel_row_clicked:"panel_row_clicked",explore_traces_clicked:"explore_traces_clicked",read_documentation_clicked:"read_documentation_clicked",filter_changed:"filter_changed",go_to_bookmark_clicked:"go_to_bookmark_clicked"},[s.common]:{metric_changed:"metric_changed",new_filter_added_manually:"new_filter_added_manually",app_initialized:"app_initialized",global_docs_link_clicked:"global_docs_link_clicked",metric_docs_link_clicked:"metric_docs_link_clicked",feedback_link_clicked:"feedback_link_clicked",go_to_full_app_clicked:"go_to_full_app_clicked"}}},6374:(e,t,n)=>{"use strict";n.d(t,{$:()=>l});var r=n(118),a=n(7975);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e){for(var t=1;to(s({},t),{step:e}))});r.jh.getTimeRange(this).subscribeToState((e,t)=>{if(e.value.from!==t.value.from||e.value.to!==t.value.to){const e=(0,a.oM)(this,this.state.maxDataPoints);this.setState({queries:this.state.queries.map(t=>o(s({},t),{step:e}))})}})}constructor(e){super(e),this.addActivationHandler(this._onActivateStep.bind(this))}}},6997:(e,t,n)=>{"use strict";n.d(t,{z:()=>i});var r=n(118),a=n(2007);const i=(e,t)=>{const n="errors"===e||!1,i=r.d0.timeseries().setOption("legend",{showLegend:!1}).setCustomFieldConfig("drawStyle",a.DrawStyle.Bars).setCustomFieldConfig("stacking",{mode:a.StackingMode.Normal}).setCustomFieldConfig("fillOpacity",75).setCustomFieldConfig("lineWidth",0).setCustomFieldConfig("pointSize",0).setCustomFieldConfig("axisLabel","Rate").setOverrides(e=>{e.matchFieldsWithNameByRegex(".*").overrideColor({mode:"fixed",fixedColor:n?"semi-dark-red":"green"})}).setOption("tooltip",{mode:a.TooltipDisplayMode.Multi});return void 0!==t&&i.setCustomFieldConfig("axisWidth",t),i}},7197:(e,t,n)=>{"use strict";n.d(t,{Mu:()=>A,jD:()=>L,FC:()=>$});var r=n(5959),a=n.n(r),i=n(118),s=n(7781),o=n(1829),l=n(775),c=n(2645),u=n(8327),d=n(6997),m=n(9840),p=n(6374),f=n(6089),v=n(2007),g=n(2860),h=n(1051),b=n(8855),y=n(9938),w=n(892),S=n(3241),O=n(6338);function x(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class E extends i.Bs{constructor({selection:e}){super({selection:e}),x(this,"startInvestigation",()=>{const e=(0,h.YX)(this);e.setState({selection:this.state.selection}),(0,h.H)(e.state.actionView)||e.setActionView("comparison"),(0,O.EE)(O.NO.analyse_traces,O.ir.analyse_traces.start_investigation,{selection:this.state.selection,metric:(0,h.GK)(this)})})}}function j(e){return{wrapper:(0,f.css)({display:"flex",gap:"16px",alignItems:"center"}),placeholder:(0,f.css)({color:e.colors.text.secondary,fontSize:e.typography.bodySmall.fontSize,display:"flex",gap:e.spacing.x0_5})}}x(E,"Component",({model:e})=>{const{selection:t}=(0,h.YX)(e).useState(),n=(0,v.useStyles2)(j),r="auto"===(null==t?void 0:t.type),i=r?"Slowest traces are selected, navigate to the Comparison or Slow Traces tab for more details.":void 0;return a().createElement("div",{className:n.wrapper},a().createElement(v.Button,{variant:"secondary",size:"sm",fill:"solid",disabled:r,icon:"bolt",onClick:e.startInvestigation,tooltip:i},r?"Slowest traces selected":"Select slowest traces"))});var k=n(3247),C=n(8531);function P({serviceName:e,model:t}){const{isLoading:n,component:r}=(0,C.usePluginComponent)("grafana-asserts-app/insights-timeline-widget/v1"),s=(0,v.useStyles2)(_),o=i.jh.getTimeRange(t).useState(),l=(0,h.H_)(t).state.value;let c=[];"errors"===l?c=["critical","warning"]:"rate"===l&&(c=["info"]);let u=[];return"duration"===l&&(u=["latency"]),!n&&r&&o&&e?a().createElement(r,{serviceName:e,start:o.from.valueOf(),end:o.to.valueOf(),filterBySeverity:c,filterBySummaryKeywords:u,label:a().createElement("div",{className:s.label},"Insights")}):null}function _(e){return{label:(0,f.css)({fontSize:"12px",color:e.colors.text.secondary,marginLeft:"35px",marginTop:"-3px"})}}var N=n(2395);function D(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function T(e){for(var t=1;t{this._onActivate();const e=i.jh.getData(this),t=(0,h.YX)(this),n=i.jh.getTimeRange(this);this._subs.add(e.subscribeToState(r=>{var a,d,m;if(this.setState({isStreaming:(null===(a=r.data)||void 0===a?void 0:a.state)===s.LoadingState.Streaming}),(null===(d=r.data)||void 0===d?void 0:d.state)===s.LoadingState.Done)if(0===r.data.series.length||0===r.data.series[0].length||(0,h.W6)(r))this.setState({panel:new i.G1({children:[new i.vA({body:new l.v({message:o.PL,imgWidth:150})})]})});else{let a=[];if(this.isDuration()){var p,f;if(a=$((null===(p=e.state.data)||void 0===p?void 0:p.series)||[]),t.state.selection&&(null===(f=r.data)||void 0===f?void 0:f.state)===s.LoadingState.Done){var v,g;const n=this.buildSelectionAnnotation(t.state);n&&!(null===(g=e.state.data)||void 0===g||null===(v=g.annotations)||void 0===v?void 0:v.length)&&e.setState({data:I(T({},e.state.data),{annotations:n})})}if(null==a?void 0:a.length){var y;const{minDuration:e,minBucket:r}=L(a),i={type:"auto"};(0,h.Kf)(this).changeValueTo(e),(0,h.F3)(this).changeValueTo((0,b.xx)(r-1,a,.3)),i.duration={from:e,to:""},i.raw={x:{from:1e3*n.state.value.from.unix(),to:1e3*n.state.value.to.unix()},y:{from:r-.5,to:a.length-.5}},this.setState({actions:[new E({selection:i})]}),(null===(y=t.state.selection)||void 0===y?void 0:y.duration)&&"auto"!==t.state.selection.type||t.setState({selection:i})}}this.setState({yBuckets:a,panel:this.getVizPanel()})}else(null===(m=r.data)||void 0===m?void 0:m.state)===s.LoadingState.Loading&&this.setState({panel:new i.G1({direction:"column",children:[new c.G({component:()=>(0,u.NO)(1)})]})})})),this._subs.add(t.subscribeToState((t,n)=>{var r;if((null===(r=e.state.data)||void 0===r?void 0:r.state)===s.LoadingState.Done&&(!(0,S.isEqual)(t.selection,n.selection)||t.actionView!==n.actionView)&&this.isDuration()){const n=this.buildSelectionAnnotation(t);e.setState({data:I(T({},e.state.data),{annotations:n})})}}))})}}D(A,"Component",({model:e})=>{const{panel:t,actions:n,isStreaming:r}=e.useState(),{value:i}=(0,h.H_)(e).useState(),s=(0,v.useStyles2)(V),o=(0,N.oL)(e);if(!t)return;const l="duration"===i?"Click and drag to compare selection with baseline.":"";return a().createElement("div",{className:s.container},a().createElement("div",{className:s.headerContainer},a().createElement("div",{className:s.titleContainer},a().createElement("div",{className:s.titleRadioWrapper},a().createElement(v.RadioButtonList,{name:`metric-${i}`,options:[{title:"",value:"selected"}],value:"selected"}),a().createElement("span",null,(()=>{switch(i){case"errors":return"Errors rate";case"rate":return"Span rate";case"duration":return"Histogram by duration";default:return""}})())),l&&a().createElement("div",{className:s.subtitle},l)),a().createElement("div",{className:s.actions},r&&a().createElement(g.M,{isStreaming:!0,iconSize:10}),null==n?void 0:n.map(e=>a().createElement(e.Component,{model:e,key:e.state.key})))),a().createElement(t.Component,{model:t}),a().createElement(P,{serviceName:o||"",model:e}))});const $=e=>e.map(e=>parseFloat(e.fields[1].name)).sort((e,t)=>e-t),L=e=>{const t=Math.floor(e.length/4);let n=e.length-t-1;return n<0&&(n=0),{minDuration:(0,b.xx)(n-1,e),minBucket:n}};function V(e){return{container:(0,f.css)({width:"100%",display:"flex",flexDirection:"column",border:`1px solid ${e.colors.border.weak}`,borderRadius:"2px",background:e.colors.background.primary,".show-on-hover":{display:"none"},"section, section:hover":{borderColor:"transparent"},"& .u-select":{border:"1px solid #ffffff75"}}),headerContainer:(0,f.css)({width:"100%",display:"flex",flexDirection:"row",padding:"8px",gap:"8px",justifyContent:"space-between",alignItems:"flex-start",fontWeight:e.typography.fontWeightBold}),titleContainer:(0,f.css)({display:"flex",flexDirection:"column",gap:"4px"}),titleRadioWrapper:(0,f.css)({display:"flex",alignItems:"center"}),actions:(0,f.css)({display:"flex",gap:"8px",alignItems:"center"}),subtitle:(0,f.css)({display:"flex",color:e.colors.text.secondary,fontSize:"12px",fontWeight:400,"& svg":{margin:"0 2px"}})}}},7975:(e,t,n)=>{"use strict";n.d(t,{KS:()=>m,a3:()=>d,oM:()=>p});var r=n(3241),a=n(118),i=n(2689);const s=1e3,o=1e6,l=6e7,c=36e8,u=(Math.log10(s),[{unit:"d",microseconds:864e8,ofPrevious:24},{unit:"h",microseconds:c,ofPrevious:60},{unit:"m",microseconds:l,ofPrevious:60},{unit:"s",microseconds:o,ofPrevious:1e3},{unit:"ms",microseconds:s,ofPrevious:1e3},{unit:"μs",microseconds:1,ofPrevious:1e3}]),d=e=>{const[t,n]=(0,r.dropWhile)(u,({microseconds:t},n)=>ne);if(1e3===t.ofPrevious)return`${(0,r.round)(e/t.microseconds,2)}${t.unit}`;let a=Math.floor(e/t.microseconds),i=e/n.microseconds%t.ofPrevious;const s=Math.round(i);s===t.ofPrevious?(a+=1,i=0):i=s;const o=`${a}${t.unit}`;if(0===i)return o;return`${o} ${`${i}${n.unit}`}`},m=(e,t=50)=>Math.floor(e/t)||1,p=(e,t)=>{const n=a.jh.getTimeRange(e),r=n.state.value.from.unix(),s=n.state.value.to.unix(),o=(0,i.duration)(s-r,"s");return`${m(o.asSeconds(),t)}s`}},8327:(e,t,n)=>{"use strict";n.d(t,{hE:()=>_,NO:()=>D});var r,a,i,s=n(5959),o=n.n(s),l=n(7781),c=n(118),u=n(775),d=n(6089),m=n(2007),p=n(3049),f=n(2645),v=n(9504);class g extends c.Bs{}i=({model:e})=>{const{message:t}=e.useState();return o().createElement(m.Alert,{title:"Query error",severity:"error","data-testid":v.b.errorState},t)},(a="Component")in(r=g)?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i;var h=n(3241);const b=e=>{const t=(0,m.useStyles2)(y),{searchQuery:n,onSearchQueryChange:r}=e;return o().createElement(m.Field,{className:t.searchField},o().createElement(m.Input,{placeholder:"Search",prefix:o().createElement(m.Icon,{name:"search"}),value:n,onChange:r,id:"searchFieldInput"}))};function y(e){return{searchField:(0,d.css)({marginBottom:e.spacing(1)})}}var w=n(1051),S=n(1829);function O(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x(e){for(var t=1;tE(x({},e),{values:e.values}))})}function k(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function C(e){for(var t=1;t0?this.performRepeat(e):this.state.body.setState({children:[new c.vA({body:new u.v({message:"No data for search term",padding:"32px"})})]})}groupSeriesBy(e,t){const n=e.series.reduce((e,n)=>{var r,a;const i=null===(a=n.fields.find(e=>e.type===l.FieldType.number))||void 0===a||null===(r=a.labels)||void 0===r?void 0:r[t];return i?(e[i]||(e[i]=[]),e[i].push(n),e):e},{}),r=[];for(const e in n){const t=n[e].sort((e,t)=>{var n;return(null===(n=e.name)||void 0===n?void 0:n.localeCompare(t.name))||0}),a=j(t[0]);t.slice(1,t.length).forEach(e=>a.fields.push(e.fields[1])),r.push((0,l.sortDataFrame)(a,0))}return r}performRepeat(e){const t=[];let n=e.series;this.state.groupBy&&(n=this.groupSeriesBy(e,(0,w.pl)(this).getValueText()));for(let r=0;re.type===l.FieldType.number).reduce((e,t)=>e+t.values.reduce((e,t)=>e+(t||0),0)||0,0))continue;const a=this.state.getLayoutChild(e,n[r],r);t.push(a)}this.state.body.setState({children:t})}constructor(e){super(e),k(this,"onSearchQueryChange",e=>{this.setState({searchQuery:e.currentTarget.value})}),k(this,"onSearchQueryChangeDebounced",(0,h.debounce)(e=>{var t;const n=c.jh.getData(this),r=P(C({},n.state.data),{series:null===(t=n.state.data)||void 0===t?void 0:t.series.filter(I(e))});this.renderFilteredData(r)},250)),this.addActivationHandler(()=>{const e=c.jh.getData(this);this._subs.add(e.subscribeToState(e=>{var t,n,r,a,i;if((null===(t=e.data)||void 0===t?void 0:t.state)===l.LoadingState.Done||(null===(n=e.data)||void 0===n?void 0:n.state)===l.LoadingState.Streaming){if(0===e.data.series.length&&(null===(a=e.data)||void 0===a?void 0:a.state)!==l.LoadingState.Streaming)this.state.body.setState({children:[new c.vA({body:new u.v({message:S.PL,remedyMessage:S.a5,padding:"32px"})})]});else if((null===(i=e.data)||void 0===i?void 0:i.state)===l.LoadingState.Done){var s;const t=P(C({},e.data),{series:null===(s=e.data)||void 0===s?void 0:s.series.filter(I(this.state.searchQuery))});this.renderFilteredData(t),this.publishEvent(new S.sv({series:e.data.series}),!0)}}else if((null===(r=e.data)||void 0===r?void 0:r.state)===l.LoadingState.Error){var o,d,m;this.state.body.setState({children:[new c.gF({children:[new g({message:null!==(m=null===(d=e.data.errors)||void 0===d||null===(o=d[0])||void 0===o?void 0:o.message)&&void 0!==m?m:"An error occurred in the query"})]})]})}else this.state.body.setState({children:[new c.gF({children:[new f.G({component:()=>D(8)})]})]})})),this.subscribeToState((e,t)=>{var n;e.searchQuery!==t.searchQuery&&this.onSearchQueryChangeDebounced(null!==(n=e.searchQuery)&&void 0!==n?n:"")}),e.state.data&&this.performRepeat(e.state.data)})}}function N(){return{container:(0,d.css)({display:"flex",flexDirection:"column",flexGrow:1})}}k(_,"Component",({model:e})=>{const{body:t,searchQuery:n}=e.useState(),r=(0,m.useStyles2)(N);return o().createElement("div",{className:r.container},o().createElement(b,{searchQuery:null!=n?n:"",onSearchQueryChange:e.onSearchQueryChange}),o().createElement(t.Component,{model:t}))});const D=e=>{const t=(0,m.useStyles2)(T);return o().createElement("div",{className:t.container},[...Array(e)].map((e,n)=>o().createElement("div",{className:t.itemContainer,key:n},o().createElement("div",{className:t.header},o().createElement("div",{className:t.title},o().createElement(p.A,{count:1})),o().createElement("div",{className:t.action},o().createElement(p.A,{count:1}))),o().createElement("div",{className:t.yAxis},[...Array(2)].map((e,n)=>o().createElement("div",{className:t.yAxisItem,key:n},o().createElement(p.A,{count:1})))),o().createElement("div",{className:t.xAxis},[...Array(2)].map((e,n)=>o().createElement("div",{className:t.xAxisItem,key:n},o().createElement(p.A,{count:1})))))))};function T(e){return{container:(0,d.css)({display:"grid",gridTemplateColumns:S.MV,gridAutoRows:"200px",rowGap:e.spacing(1),columnGap:e.spacing(1)}),itemContainer:(0,d.css)({backgroundColor:e.colors.background.primary,border:`1px solid ${e.colors.background.secondary}`,padding:"5px"}),header:(0,d.css)({display:"flex",justifyContent:"space-between"}),title:(0,d.css)({width:"100px"}),action:(0,d.css)({width:"60px"}),yAxis:(0,d.css)({display:"flex",flexDirection:"column",justifyContent:"space-around",marginTop:"35px"}),yAxisItem:(0,d.css)({width:"60px",height:"55px"}),xAxis:(0,d.css)({display:"flex",justifyContent:"space-evenly"}),xAxisItem:(0,d.css)({width:"55px"})}}const I=e=>t=>{const n=null==e?void 0:e.trim();if(!n)return!0;const r=new RegExp(n,"i");return t.fields.some(e=>!!e.labels&&Object.values(e.labels).find(e=>r.test(e)))}},8855:(e,t,n)=>{"use strict";n.d(t,{QA:()=>s,dX:()=>o,xx:()=>l});var r=n(1051),a=n(6338),i=n(118);function s(e,t){const n=(0,r.YX)(e),s=o().setHoverHeader(!0).setOption("selectionMode","xy").build();return s.setState({extendPanelContext:(e,i)=>{i.onSelectRange=e=>{var i,s,o,c;if(0===e.length)return void n.setState({selection:void 0});const u=e[0],d={type:"manual",raw:u};if(d.timeRange={from:Math.round(((null===(i=u.x)||void 0===i?void 0:i.from)||0)/1e3),to:Math.round(((null===(s=u.x)||void 0===s?void 0:s.to)||0)/1e3)},d.timeRange.from===d.timeRange.to)return;const m=l(((null===(o=e[0].y)||void 0===o?void 0:o.from)||0)-1,t),p=l((null===(c=e[0].y)||void 0===c?void 0:c.to)||0,t);d.duration={from:m,to:p},n.onUserUpdateSelection(d),(0,r.H)(n.state.actionView)||n.setActionView("comparison"),(0,a.EE)(a.NO.analyse_traces,a.ir.analyse_traces.start_investigation,{selection:d,metric:"duration"})}}}),new i.G1({direction:"row",children:[new i.vA({body:s})]})}const o=()=>i.d0.heatmap().setOption("legend",{show:!1}).setOption("yAxis",{unit:"s",axisLabel:"duration"}).setOption("color",{scheme:"Blues",steps:16}).setOption("rowsFrame",{value:"Spans"});function l(e,t,n){if(!t)return"";if(e<0)return"0";const r=t[Math.floor(e)]*(n||1);return!r||isNaN(r)?"":r>=1?`${r.toFixed(0)}s`:`${(1e3*r).toFixed(0)}ms`}},9504:(e,t,n)=>{"use strict";n.d(t,{b:()=>r});const r={emptyState:"data-testid empty-state",errorState:"data-testid error-state",loadingState:"data-testid loading-state"}},9840:(e,t,n)=>{"use strict";n.d(t,{l:()=>i,n:()=>a});var r=n(1829);function a({metric:e,groupByKey:t,extraFilters:n,sample:a=!1}){let i=`${r.ui}`;"errors"===e&&(i+=" && status=error"),n&&(i+=` && ${n}`),t&&t!==r.y2&&(i+=` && ${t} != nil`);let s="rate()";switch(e){case"errors":s="rate()";break;case"duration":s="quantile_over_time(duration, 0.9)"}let o=[];t&&t!==r.y2&&o.push(t);return`{${i}} | ${s} ${o.length?`by(${o.join(", ")})`:""}${a?" with(sample=true)":""}`}function i(e){return{refId:"A",query:a(e),queryType:"traceql",tableType:"spans",limit:100,spss:10,filters:[]}}},9938:(e,t,n)=>{"use strict";n.d(t,{bT:()=>S,_E:()=>O,nF:()=>x,x:()=>k});var r=n(118),a=n(8327),i=n(2007),s=n(1625),o=n(6089),l=n(5959),c=n.n(l),u=n(1051),d=n(806),m=n(4917);function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(e){for(var t=1;t{if(e.frame!==t.frame){const{frame:t}=e;this.setState(f({},(0,m.p)(t)))}}))}getAttribute(){return this.state.frame.name}getValue(){const e=this.state.frame.fields.find(e=>"Value"===e.name);return null==e?void 0:e.values[this.state.maxDifferenceIndex||0]}onAddToFilters(){const e=(0,u.gG)(this),t=this.getAttribute();t&&(0,d.Qt)(e,t,this.getValue())}constructor(e){super(f({},e)),this.addActivationHandler(()=>this._onActivate())}}function g(e){return{container:(0,o.css)({display:"flex",flexDirection:"column",flexGrow:1,height:"100%"}),differenceContainer:(0,o.css)({display:"flex",flexDirection:"column",flexGrow:1,border:`1px solid ${e.colors.secondary.border}`,background:e.colors.background.primary,padding:"8px",marginBottom:e.spacing(2),fontSize:"12px",height:"116px"}),differenceValue:(0,o.css)({fontSize:"36px",fontWeight:"bold",textAlign:"center"}),value:(0,o.css)({textAlign:"center",color:e.colors.secondary.text,textWrap:"nowrap",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),title:(0,o.css)({fontWeight:500})}}p(v,"Component",({model:e})=>{const{maxDifference:t,maxDifferenceIndex:n,panel:r}=e.useState(),a=(0,i.useStyles2)(g),s=e.getValue();var o;const l=null!==(o=e.state.frame.name)&&void 0!==o?o:"",m=(0,d.D9)((0,u.gG)(e),l,s.replace(/"/g,""));return c().createElement("div",{className:a.container},c().createElement(r.Component,{model:r}),c().createElement("div",{className:a.differenceContainer},void 0!==t&&void 0!==n&&c().createElement(c().Fragment,null,c().createElement(i.Stack,{gap:1,justifyContent:"space-between",alignItems:"center"},c().createElement("div",{className:a.title},"Highest difference"),!m&&c().createElement(i.Button,{size:"sm",variant:"primary",icon:"search-plus",fill:"text",onClick:()=>e.onAddToFilters()},"Add to filters")),c().createElement("div",{className:a.differenceValue},(100*Math.abs(t)).toFixed(0===t?0:2),"%"),c().createElement("div",{className:a.value},s))))});var h=n(1829);function b(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(e){for(var t=1;te.name||"No name available";function j(e,t,n,a){return(i,s)=>{const o=s.name?e[s.name]:void 0,l=new r.Zv({data:w(y({},i),{series:[y({},s)]})});if(o){const e=o.state.body;return e.setState({frame:s}),e.state.panel.setState({$data:l}),o}const c=k(a).setTitle(t(s)).setData(l),u=n(s);u&&c.setHeaderActions(u);const d=new r.xK({body:new v({frame:s,panel:c.build()})});return s.name&&(e[s.name]=d),d}}function k(e){return r.d0.barchart().setOption("legend",{showLegend:!1}).setOption("tooltip",{mode:s.$N.Multi}).setMax(1).setOverrides(t=>{t.matchFieldsWithName("Value").overrideCustomFieldConfig("axisPlacement",i.AxisPlacement.Hidden),t.matchFieldsWithName("Baseline").overrideColor({mode:"fixed",fixedColor:"duration"===e?S:"semi-dark-green"}).overrideUnit("percentunit"),t.matchFieldsWithName("Selection").overrideColor({mode:"fixed",fixedColor:"duration"===e?O:"semi-dark-red"}).overrideUnit("percentunit")})}}}]); -//# sourceMappingURL=211.js.map?_cache=521089bb432d9ae7374f \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/211.js.map b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/211.js.map deleted file mode 100644 index 2007f09..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/211.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"211.js?_cache=521089bb432d9ae7374f","mappings":"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","sources":["webpack://grafana-exploretraces-app/./components/Explore/actions/ShareExplorationAction.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Spans/SpanListColumnsSelector.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Spans/SpanListScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Spans/SpansScene.tsx","webpack://grafana-exploretraces-app/./utils/trace-merge/utils.ts","webpack://grafana-exploretraces-app/./utils/trace-merge/tree-node.ts","webpack://grafana-exploretraces-app/./utils/trace-merge/merge.ts","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Structure/StructureScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/GroupBySelector.tsx","webpack://grafana-exploretraces-app/./components/Explore/LayoutSwitcher.tsx","webpack://grafana-exploretraces-app/./components/Explore/panels/linesPanel.ts","webpack://grafana-exploretraces-app/./components/Explore/behaviors/syncYaxis.tsx","webpack://grafana-exploretraces-app/./components/Explore/layouts/attributeBreakdown.ts","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Breakdown/AttributesDescription.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Breakdown/AttributesBreakdownScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Breakdown/BreakdownScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Exceptions/ExceptionUtils.ts","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Exceptions/ExceptionsScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/queries/exceptions.ts","webpack://grafana-exploretraces-app/./components/Explore/queries/comparisonQuery.ts","webpack://grafana-exploretraces-app/./components/Explore/layouts/attributeComparison.ts","webpack://grafana-exploretraces-app/./components/Explore/actions/InspectAttributeAction.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Comparison/AttributesComparisonScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Comparison/ComparisonScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/TabsBarScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/MiniREDPanel.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/TracesByServiceScene.tsx","webpack://grafana-exploretraces-app/./components/states/EmptyState/EmptyStateScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/actions/AddToFiltersAction.tsx","webpack://grafana-exploretraces-app/./components/Explore/queries/histogram.ts","webpack://grafana-exploretraces-app/./components/Home/AttributePanelRow.tsx","webpack://grafana-exploretraces-app/./components/Home/ErroredServicesRows.tsx","webpack://grafana-exploretraces-app/./components/Home/SlowestTracesRows.tsx","webpack://grafana-exploretraces-app/./components/Home/SlowestServicesRows.tsx","webpack://grafana-exploretraces-app/./components/Home/AttributePanelRows.tsx","webpack://grafana-exploretraces-app/./components/Home/AttributePanelScene.tsx","webpack://grafana-exploretraces-app/./components/Home/AttributePanel.tsx","webpack://grafana-exploretraces-app/./utils/rockets.tsx","webpack://grafana-exploretraces-app/./pages/Home/bookmarks/utils.ts","webpack://grafana-exploretraces-app/./pages/Home/bookmarks/BookmarkItem.tsx","webpack://grafana-exploretraces-app/./pages/Home/bookmarks/Bookmarks.tsx","webpack://grafana-exploretraces-app/./components/Home/HeaderScene.tsx","webpack://grafana-exploretraces-app/./pages/Home/utils.ts","webpack://grafana-exploretraces-app/./pages/Home/Home.tsx","webpack://grafana-exploretraces-app/./utils/utils.ts","webpack://grafana-exploretraces-app/../node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://grafana-exploretraces-app/./components/Explore/actions/AddToInvestigationButton.tsx","webpack://grafana-exploretraces-app/./components/Explore/panels/TraceViewPanelScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/TraceDrawerScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TraceQLIssueDetector.tsx","webpack://grafana-exploretraces-app/./addedComponents/EntityAssertionsWidget/EntityAssertionsWidget.tsx","webpack://grafana-exploretraces-app/./pages/Explore/Drawer.tsx","webpack://grafana-exploretraces-app/./pages/Explore/SmartDrawer.tsx","webpack://grafana-exploretraces-app/./utils/filters-renderer.ts","webpack://grafana-exploretraces-app/./pages/Explore/AttributeFiltersVariable.tsx","webpack://grafana-exploretraces-app/./pages/Explore/TraceExploration.tsx","webpack://grafana-exploretraces-app/./components/states/LoadingState/LoadingStateScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/StreamingIndicator.tsx","webpack://grafana-exploretraces-app/./utils/exemplars.ts","webpack://grafana-exploretraces-app/./components/states/EmptyState/useMousePosition.ts","webpack://grafana-exploretraces-app/./components/states/EmptyState/GrotNotFound.tsx","webpack://grafana-exploretraces-app/./components/states/EmptyState/EmptyState.tsx","webpack://grafana-exploretraces-app/./pages/Explore/primary-signals.ts","webpack://grafana-exploretraces-app/./components/Explore/panels/PanelMenu.tsx","webpack://grafana-exploretraces-app/./utils/comparison.ts","webpack://grafana-exploretraces-app/./pages/Explore/PrimarySignalVariable.tsx","webpack://grafana-exploretraces-app/./utils/analytics.ts","webpack://grafana-exploretraces-app/./components/Explore/queries/StepQueryRunner.ts","webpack://grafana-exploretraces-app/./components/Explore/panels/barsPanel.ts","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/DurationComparisonControl.tsx","webpack://grafana-exploretraces-app/./addedComponents/InsightsTimelineWidget/InsightsTimelineWidget.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/REDPanel.tsx","webpack://grafana-exploretraces-app/./utils/dates.ts","webpack://grafana-exploretraces-app/./components/states/ErrorState/ErrorStateScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/Search.tsx","webpack://grafana-exploretraces-app/./utils/frames.ts","webpack://grafana-exploretraces-app/./components/Explore/ByFrameRepeater.tsx","webpack://grafana-exploretraces-app/./components/Explore/panels/histogram.ts","webpack://grafana-exploretraces-app/./utils/testIds.ts","webpack://grafana-exploretraces-app/./components/Explore/queries/generateMetricsQuery.ts","webpack://grafana-exploretraces-app/./components/Explore/layouts/HighestDifferencePanel.tsx","webpack://grafana-exploretraces-app/./components/Explore/layouts/allComparison.ts"],"sourcesContent":["import React, { useState } from 'react';\nimport { useLocation } from 'react-use';\n\nimport { ToolbarButton } from '@grafana/ui';\n\nimport { TraceExploration } from '../../../pages/Explore';\nimport { getUrlForExploration } from '../../../utils/utils';\n\ninterface ShareExplorationActionState {\n exploration: TraceExploration;\n}\n\nexport const ShareExplorationAction = ({ exploration }: ShareExplorationActionState) => {\n const { origin } = useLocation();\n const [tooltip, setTooltip] = useState('Copy url');\n\n const onShare = () => {\n if (navigator.clipboard) {\n navigator.clipboard.writeText(origin + getUrlForExploration(exploration));\n setTooltip('Copied!');\n setTimeout(() => {\n setTooltip('Copy url');\n }, 2000);\n }\n };\n\n return ;\n};\n","import React, { useMemo } from 'react';\n\nimport { SelectableValue } from '@grafana/data';\nimport { Icon, Select, Field, useStyles2 } from '@grafana/ui';\nimport { VariableValue } from '@grafana/scenes';\nimport { css } from '@emotion/css';\n\nconst RECOMMENDED_ATTRIBUTES = [\n 'span.http.method', \n 'span.http.request.method', \n 'span.http.route', \n 'span.http.path', \n 'span.http.status_code', \n 'span.http.response.status_code'\n]; \n\ntype Props = {\n options: Array>;\n onChange: (columns: string[]) => void;\n value?: VariableValue;\n};\n\nconst labelOrder = ['Recommended', 'Resource', 'Span', 'Other'];\n\nexport function SpanListColumnsSelector({ options, value, onChange }: Props) {\n const styles = useStyles2(getStyles);\n\n const opt = useMemo(\n () =>\n Object.values(\n options.reduce((acc, curr) => {\n if (curr.label) {\n const label = curr.label.slice(curr.label.indexOf('.') + 1);\n\n // use text until first dot as key\n if (RECOMMENDED_ATTRIBUTES.includes(curr.label)) {\n const group = acc['recommended'] ?? { label: 'Recommended', options: [] };\n group.options.push({ ...curr, label });\n acc['recommended'] = group;\n } else if (curr.label.startsWith('resource.')) {\n const group = acc['resource'] ?? { label: 'Resource', options: [] };\n group.options.push({ ...curr, label });\n acc['resource'] = group;\n } else {\n if (curr.label.startsWith('span.')) {\n const group = acc['span'] ?? { label: 'Span', options: [] };\n group.options.push({ ...curr, label });\n acc['span'] = group;\n } else {\n const group = acc['other'] ?? { label: 'Other', options: [] };\n group.options.push(curr);\n acc['other'] = group;\n }\n }\n }\n return acc;\n }, {})\n ).sort((a, b) => labelOrder.indexOf(a.label) - labelOrder.indexOf(b.label)),\n [options]\n );\n\n return (\n
\n \n onChange(x.map((x: SelectableValue) => x.value).join(','))}\n isMulti={true}\n isClearable\n virtualized\n prefix={}\n />\n \n
\n );\n}\n\nconst getStyles = () => {\n return {\n container: css({\n display: 'flex',\n minWidth: '300px',\n\n '& > div': {\n width: '100%',\n },\n }),\n };\n};\n","import React from 'react';\n\nimport {\n PanelBuilders,\n SceneComponentProps,\n SceneDataTransformer,\n SceneFlexItem,\n SceneFlexLayout,\n sceneGraph,\n SceneObjectBase,\n SceneObjectState,\n} from '@grafana/scenes';\nimport { DataFrame, GrafanaTheme2, LoadingState, PanelData, toURLRange, urlUtil, toOption } from '@grafana/data';\nimport { config } from '@grafana/runtime';\nimport { LoadingStateScene } from 'components/states/LoadingState/LoadingStateScene';\nimport { EmptyStateScene } from 'components/states/EmptyState/EmptyStateScene';\nimport { css } from '@emotion/css';\nimport Skeleton from 'react-loading-skeleton';\nimport { Icon, Link, TableCellDisplayMode, TableCustomCellOptions, useStyles2, useTheme2 } from '@grafana/ui';\nimport { map, Observable } from 'rxjs';\nimport {\n getDataSource,\n getSpanListColumnsVariable,\n getTraceByServiceScene,\n getTraceExplorationScene,\n} from '../../../../../utils/utils';\nimport {\n EMPTY_STATE_ERROR_MESSAGE,\n EMPTY_STATE_ERROR_REMEDY_MESSAGE,\n EventTraceOpened,\n} from '../../../../../utils/shared';\nimport { SpanListColumnsSelector } from './SpanListColumnsSelector';\nimport { reportAppInteraction, USER_EVENTS_PAGES, USER_EVENTS_ACTIONS } from 'utils/analytics';\n\nexport interface SpanListSceneState extends SceneObjectState {\n panel?: SceneFlexLayout;\n dataState: 'empty' | 'loading' | 'done';\n}\n\nexport class SpanListScene extends SceneObjectBase {\n constructor(state: Partial) {\n super({\n dataState: 'empty',\n ...state,\n });\n\n this.addActivationHandler(() => {\n this.setState({\n $data: new SceneDataTransformer({\n transformations: this.setupTransformations(),\n }),\n });\n const sceneData = sceneGraph.getData(this);\n\n this.updatePanel(sceneData.state.data);\n this._subs.add(\n sceneData.subscribeToState((data) => {\n this.updatePanel(data.data);\n })\n );\n });\n }\n\n private setupTransformations() {\n return [\n () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n return data.map((df) => {\n const fields = df.fields;\n const nameField = fields.find((f) => f.name === 'traceName');\n\n const options: TableCustomCellOptions = {\n type: TableCellDisplayMode.Custom,\n cellComponent: (props) => {\n const data = props.frame;\n const traceIdField = data?.fields.find((f) => f.name === 'traceIdHidden');\n const spanIdField = data?.fields.find((f) => f.name === 'spanID');\n const traceId = traceIdField?.values[props.rowIndex];\n const spanId = spanIdField?.values[props.rowIndex];\n\n if (!traceId) {\n return props.value as string;\n }\n\n const name = props.value ? (props.value as string) : '';\n return (\n
\n {\n this.publishEvent(new EventTraceOpened({ traceId, spanId }), true);\n }}\n >\n {name}\n
\n \n \n \n \n );\n },\n };\n if (nameField?.config?.custom) {\n nameField.config.custom.cellOptions = options;\n }\n return {\n ...df,\n fields,\n };\n });\n })\n );\n },\n ];\n }\n\n private getLinkToExplore = (traceId: string, spanId: string) => {\n const traceExplorationScene = getTraceExplorationScene(this);\n const datasource = getDataSource(traceExplorationScene);\n\n const timeRange = sceneGraph.getTimeRange(this).state.value;\n const exploreState = JSON.stringify({\n ['explore-traces']: {\n range: toURLRange(timeRange.raw),\n queries: [{ refId: 'traceId', queryType: 'traceql', query: traceId, datasource }],\n panelsState: {\n trace: {\n spanId,\n },\n },\n datasource,\n },\n });\n const subUrl = config.appSubUrl ?? '';\n return urlUtil.renderUrl(`${subUrl}/explore`, { panes: exploreState, schemaVersion: 1 });\n };\n\n private updatePanel(data?: PanelData) {\n if (\n data?.state === LoadingState.Loading ||\n data?.state === LoadingState.NotStarted ||\n !data?.state ||\n (data?.state === LoadingState.Streaming && !data.series?.[0]?.length)\n ) {\n if (this.state.dataState === 'loading') {\n return;\n }\n this.setState({\n dataState: 'loading',\n panel: new SceneFlexLayout({\n direction: 'row',\n children: [\n new LoadingStateScene({\n component: SkeletonComponent,\n }),\n ],\n }),\n });\n return;\n }\n if (data?.state === LoadingState.Done || data?.state === LoadingState.Streaming) {\n if (data.series.length === 0 || data.series[0].length === 0) {\n if (this.state.dataState === 'empty' && this.state.panel) {\n return;\n }\n this.setState({\n dataState: 'empty',\n panel: new SceneFlexLayout({\n children: [\n new SceneFlexItem({\n body: new EmptyStateScene({\n message: EMPTY_STATE_ERROR_MESSAGE,\n remedyMessage: EMPTY_STATE_ERROR_REMEDY_MESSAGE,\n padding: '32px',\n }),\n }),\n ],\n }),\n });\n } else if (this.state.dataState !== 'done') {\n this.setState({\n dataState: 'done',\n panel: new SceneFlexLayout({\n direction: 'row',\n children: [\n new SceneFlexItem({\n body: PanelBuilders.table()\n .setHoverHeader(true)\n .setOverrides((builder) => {\n return builder\n .matchFieldsWithName('spanID')\n .overrideCustomFieldConfig('hidden', true)\n .matchFieldsWithName('traceService')\n .overrideCustomFieldConfig('width', 350)\n .matchFieldsWithName('traceName')\n .overrideCustomFieldConfig('width', 350);\n })\n .build(),\n }),\n ],\n }),\n });\n }\n }\n }\n\n public onChange = (columns: string[]) => {\n const variable = getSpanListColumnsVariable(this);\n if (variable.getValue() !== columns) {\n variable.changeValueTo(columns);\n\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.span_list_columns_changed,\n {\n columns,\n }\n );\n }\n };\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { panel } = model.useState();\n const styles = getStyles(useTheme2());\n const variable = getSpanListColumnsVariable(model);\n const { attributes } = getTraceByServiceScene(model).useState();\n\n if (!panel) {\n return;\n }\n\n return (\n
\n
\n
View a list of spans for the current set of filters.
\n toOption(x)) ?? []}\n value={variable.getValue()}\n onChange={model.onChange}\n />\n
\n \n
\n );\n };\n}\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n container: css({\n display: 'contents',\n\n '[role=\"cell\"] > div': {\n display: 'flex',\n width: '100%',\n },\n\n '.cell-link-wrapper': {\n display: 'flex',\n gap: '4px',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n\n a: {\n padding: 4,\n fontSize: 0,\n\n ':hover': {\n background: theme.colors.background.secondary,\n },\n },\n },\n\n '.cell-link': {\n color: theme.colors.text.link,\n cursor: 'pointer',\n maxWidth: '300px',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n\n ':hover': {\n textDecoration: 'underline',\n },\n },\n }),\n description: css({\n fontSize: theme.typography.h6.fontSize,\n padding: `${theme.spacing(1)} 0 ${theme.spacing(2)} 0`,\n }),\n header: css({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n gap: '10px',\n }),\n };\n};\n\nconst SkeletonComponent = () => {\n const styles = useStyles2(getSkeletonStyles);\n\n return (\n
\n
\n \n
\n {[...Array(3)].map((_, i) => (\n
\n {[...Array(6)].map((_, j) => (\n \n \n \n ))}\n
\n ))}\n
\n );\n};\n\nfunction getSkeletonStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n height: '100%',\n width: '100%',\n position: 'absolute',\n backgroundColor: theme.colors.background.primary,\n border: `1px solid ${theme.colors.border.weak}`,\n padding: '5px',\n }),\n title: css({\n marginBottom: '20px',\n }),\n row: css({\n marginBottom: '5px',\n display: 'flex',\n justifyContent: 'space-around',\n }),\n rowItem: css({\n width: '14%',\n }),\n };\n}\n","import React from 'react';\n\nimport { SceneComponentProps, SceneFlexItem, SceneObject, SceneObjectBase, SceneObjectState } from '@grafana/scenes';\nimport { SpanListScene } from 'components/Explore/TracesByService/Tabs/Spans/SpanListScene';\nimport { getMetricVariable, getTraceByServiceScene } from 'utils/utils';\n\nexport interface SpansSceneState extends SceneObjectState {\n body?: SceneObject;\n}\n\nexport class SpansScene extends SceneObjectBase {\n constructor(state: Partial) {\n super({ ...state });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n this._subs.add(\n getTraceByServiceScene(this).state.$data?.subscribeToState(() => {\n this.updateBody();\n })\n );\n\n this._subs.add(\n getTraceByServiceScene(this).subscribeToState((newState, prevState) => {\n if (newState.$data?.state.key !== prevState.$data?.state.key) {\n this.updateBody();\n }\n })\n );\n\n this._subs.add(\n getMetricVariable(this).subscribeToState((newState, prevState) => {\n if (newState.value !== prevState.value) {\n this.updateBody();\n }\n })\n );\n\n this.updateBody();\n }\n\n private updateBody() {\n this.setState({ body: new SpanListScene({}) });\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n return body && ;\n };\n}\n\nexport function buildSpansScene() {\n return new SceneFlexItem({\n body: new SpansScene({}),\n });\n}\n","import { Span } from '../../types';\n\nexport function nestedSetLeft(span: Span): number {\n if (span.attributes) {\n for (const a of span.attributes) {\n if (a.key === 'nestedSetLeft') {\n return parseInt(a.value.intValue || a.value.Value?.int_value || '0', 10);\n }\n }\n }\n\n throw new Error('nestedSetLeft not found!');\n}\n\nexport function nestedSetRight(span: Span): number {\n if (span.attributes) {\n for (const a of span.attributes) {\n if (a.key === 'nestedSetRight') {\n return parseInt(a.value.intValue || a.value.Value?.int_value || '0', 10);\n }\n }\n }\n\n throw new Error('nestedSetRight not found!');\n}\n","import { Span } from '../../types';\nimport { nestedSetLeft, nestedSetRight } from './utils';\n\nexport class TreeNode {\n name: string;\n serviceName: string;\n operationName: string;\n spans: Span[];\n left: number;\n right: number;\n children: TreeNode[];\n parent: TreeNode | null;\n traceID: string;\n\n constructor({\n name,\n serviceName,\n operationName,\n spans,\n left,\n right,\n traceID,\n }: {\n name: string;\n serviceName: string;\n operationName: string;\n spans: Span[];\n left: number;\n right: number;\n traceID: string;\n }) {\n this.name = name;\n this.serviceName = serviceName;\n this.operationName = operationName;\n this.spans = spans;\n this.left = left;\n this.right = right;\n this.children = [];\n this.parent = null;\n this.traceID = traceID;\n }\n\n addSpan(span: Span) {\n // expand our left/right based on this span\n this.left = Math.min(nestedSetLeft(span), this.left);\n this.right = Math.max(nestedSetRight(span), this.right);\n this.spans.push(span);\n }\n\n addChild(node: TreeNode) {\n node.parent = this;\n this.children.push(node);\n }\n\n isChild(span: Span): boolean {\n return nestedSetLeft(span) > this.left && nestedSetRight(span) < this.right;\n }\n\n findMatchingChild(span: Span): TreeNode | null {\n const name = nodeName(span);\n\n for (const child of this.children) {\n if (child.name === name) {\n return child;\n }\n }\n\n return null;\n }\n}\n\nexport function createNode(s: Span): TreeNode {\n const serviceNameAttr = s.attributes?.find((a) => a.key === 'service.name');\n return new TreeNode({\n left: nestedSetLeft(s),\n right: nestedSetRight(s),\n name: nodeName(s),\n serviceName: serviceNameAttr?.value.stringValue ?? serviceNameAttr?.value?.Value?.string_value ?? '',\n operationName: s.name ?? '',\n spans: [s],\n traceID: s.traceId ?? '',\n });\n}\n\nfunction nodeName(s: Span): string {\n let svcName = '';\n for (const a of s.attributes || []) {\n if (a.key === 'service.name' && a.value.stringValue) {\n svcName = a.value.stringValue;\n }\n }\n\n return `${svcName}:${s.name}`;\n}\n","import { TraceSearchMetadata } from '../../types';\nimport { createNode, TreeNode } from './tree-node';\nimport { nestedSetLeft } from './utils';\n\nexport function mergeTraces(traces: TraceSearchMetadata[]): TreeNode {\n const tree = new TreeNode({\n name: 'root',\n serviceName: '',\n operationName: '',\n left: Number.MIN_SAFE_INTEGER,\n right: Number.MAX_SAFE_INTEGER,\n spans: [],\n traceID: '',\n });\n\n if (traces && traces.length > 0) {\n for (const trace of traces) {\n if (trace.spanSets?.length !== 1) {\n throw new Error('there should be only 1 spanset!');\n }\n\n const traceStartTime = parseInt(trace.startTimeUnixNano || '0', 10);\n\n const ss = trace.spanSets[0];\n // sort by nestedSetLeft\n ss.spans.sort((s1, s2) => nestedSetLeft(s1) - nestedSetLeft(s2));\n\n // reset curNode to root each loop to re-overlay the next trace\n let curNode: TreeNode = tree;\n // left/right is only valid w/i a trace, so reset it each loop\n resetLeftRight(tree);\n for (const span of ss.spans) {\n // force traceID to be the same for all spans in a trace\n span.traceId = trace.traceID;\n span.startTimeUnixNano = `${parseInt(span.startTimeUnixNano, 10) - traceStartTime}`;\n\n // walk up the tree until we find a node that is a parent of this span\n while (curNode.parent !== null) {\n if (curNode.isChild(span)) {\n break;\n }\n curNode = curNode.parent;\n }\n\n // is there an already existing child that matches the span?\n const child = curNode.findMatchingChild(span);\n if (child) {\n child.addSpan(span);\n // to the next span!\n curNode = child;\n continue;\n }\n\n // if not, create a new child node and make it the cur node\n const newNode = createNode(span);\n newNode.traceID = trace.traceID;\n curNode.addChild(newNode);\n curNode = newNode;\n }\n }\n }\n\n return tree;\n}\n\nexport function dumpTree(t: TreeNode, depth: number): string {\n let result = '';\n const space = ' '.repeat(depth * 2);\n\n result += `${space}${t.name} ${t.spans.length}\\n`;\n\n for (const c of t.children) {\n result += dumpTree(c, depth + 1);\n }\n return result;\n}\n\nfunction resetLeftRight(t: TreeNode) {\n t.left = Number.MAX_SAFE_INTEGER;\n t.right = Number.MIN_SAFE_INTEGER;\n\n for (const c of t.children) {\n resetLeftRight(c);\n }\n}\n","import React from 'react';\n\nimport {\n PanelBuilders,\n SceneComponentProps,\n SceneDataNode,\n SceneDataTransformer,\n SceneFlexItem,\n SceneFlexLayout,\n sceneGraph,\n SceneObjectBase,\n SceneObjectState,\n SceneQueryRunner,\n} from '@grafana/scenes';\nimport {\n EMPTY_STATE_ERROR_MESSAGE,\n explorationDS,\n filterStreamingProgressTransformations,\n MetricFunction,\n VAR_FILTERS_EXPR,\n VAR_LATENCY_PARTIAL_THRESHOLD_EXPR,\n VAR_LATENCY_THRESHOLD_EXPR,\n} from '../../../../../utils/shared';\nimport { TraceSearchMetadata } from '../../../../../types';\nimport { mergeTraces } from '../../../../../utils/trace-merge/merge';\nimport { createDataFrame, Field, FieldType, GrafanaTheme2, LinkModel, LoadingState } from '@grafana/data';\nimport { TreeNode } from '../../../../../utils/trace-merge/tree-node';\nimport { Icon, LinkButton, Stack, Text, useTheme2 } from '@grafana/ui';\nimport Skeleton from 'react-loading-skeleton';\nimport { EmptyState } from '../../../../states/EmptyState/EmptyState';\nimport { css } from '@emotion/css';\nimport { getOpenTrace, getTraceExplorationScene } from 'utils/utils';\nimport { structureDisplayName } from '../TabsBarScene';\n\nexport interface ServicesTabSceneState extends SceneObjectState {\n panel?: SceneFlexLayout;\n loading?: boolean;\n tree?: TreeNode;\n metric?: MetricFunction;\n}\n\nconst ROOT_SPAN_ID = '0000000000000000';\n\nexport class StructureTabScene extends SceneObjectBase {\n constructor(state: Partial) {\n super({\n $data: new SceneDataTransformer({\n $data: new SceneQueryRunner({\n datasource: explorationDS,\n queries: [buildQuery(state.metric as MetricFunction)],\n }),\n transformations: filterStreamingProgressTransformations,\n }),\n loading: true,\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n public _onActivate() {\n this._subs.add(\n this.state.$data?.subscribeToState((state) => {\n if (state.data?.state === LoadingState.Loading || state.data?.state === LoadingState.Streaming) {\n this.setState({ loading: true });\n return;\n }\n\n if (state.data?.state === LoadingState.Done && state.data?.series.length) {\n const frame = state.data?.series[0].fields[0].values[0];\n if (frame) {\n const response = JSON.parse(frame) as TraceSearchMetadata[];\n const tree = mergeTraces(response);\n tree.children.sort((a, b) => countSpans(b) - countSpans(a));\n\n this.setState({\n loading: false,\n tree,\n panel: new SceneFlexLayout({\n height: '100%',\n wrap: 'wrap',\n children: this.getPanels(tree),\n }),\n });\n }\n }\n })\n );\n }\n\n private getPanels(tree: TreeNode) {\n return tree.children.map((child) => {\n return new SceneFlexItem({\n height: 150,\n width: '100%',\n minHeight: '400px',\n body: this.getPanel(child),\n });\n });\n }\n\n private getPanel(tree: TreeNode) {\n const timeRange = sceneGraph.getTimeRange(this);\n const from = timeRange.state.value.from;\n const to = timeRange.state.value.to;\n\n const openTrace = getOpenTrace(this);\n\n return PanelBuilders.traces()\n .setTitle(`Structure for ${tree.serviceName} [${countSpans(tree)} spans used]`)\n .setOption('createFocusSpanLink' as any, (traceId: string, spanId: string): LinkModel => {\n return {\n title: 'Open trace',\n href: '#',\n onClick: () => openTrace(traceId, spanId),\n origin: {} as Field,\n target: '_self',\n };\n })\n .setData(\n new SceneDataNode({\n data: {\n state: LoadingState.Done,\n timeRange: {\n from,\n to,\n raw: { from, to },\n },\n series: [\n {\n ...this.buildData(tree),\n },\n ],\n },\n })\n )\n .build();\n }\n\n private buildData(tree: TreeNode) {\n const trace = this.getTrace(tree, ROOT_SPAN_ID);\n const traceName = trace[0].serviceName + ':' + trace[0].operationName;\n\n return createDataFrame({\n name: `Trace ${traceName}`,\n refId: `trace_${traceName}`,\n fields: [\n {\n name: 'references',\n type: FieldType.other,\n values: trace.map((x) => x.references),\n },\n {\n name: 'traceID',\n type: FieldType.string,\n values: trace.map((x) => x.traceID),\n },\n {\n name: 'spanID',\n type: FieldType.string,\n values: trace.map((x) => x.spanID),\n },\n {\n name: 'parentSpanID',\n type: FieldType.string,\n values: trace.map((x) => x.parentSpanId),\n },\n {\n name: 'serviceName',\n type: FieldType.string,\n values: trace.map((x) => x.serviceName),\n },\n {\n name: 'operationName',\n type: FieldType.string,\n values: trace.map((x) => x.operationName),\n },\n {\n name: 'duration',\n type: FieldType.number,\n values: trace.map((x) => x.duration),\n },\n {\n name: 'startTime',\n type: FieldType.number,\n values: trace.map((x) => x.startTime),\n },\n {\n name: 'statusCode',\n type: FieldType.number,\n values: trace.map((x) => x.statusCode),\n },\n ],\n });\n }\n\n private getTrace(node: TreeNode, spanID: string) {\n const erroredSpans = node.spans.reduce(\n (acc, c) => (c.attributes?.find((a) => a.key === 'status')?.value.stringValue === 'error' ? acc + 1 : acc),\n 0\n );\n\n // start time needs to be different from zero otherwise for the root, otherwise the Trace View won't render it\n let startTime = 0.0001;\n if (spanID !== ROOT_SPAN_ID) {\n startTime =\n node.spans.reduce((acc, c) => acc + parseInt(c.startTimeUnixNano, 10), 0) / node.spans.length / 1000000;\n }\n\n const values = [\n {\n // Add last 5 spans of the list as external references\n // refType = 'EXTERNAL' doesn't mean anything, it's just to be different from CHILD_OF and FOLLOW_FROM\n references: node.spans.slice(-5).map((x) => ({\n refType: 'EXTERNAL',\n traceID: x.traceId,\n spanID: x.spanID,\n })),\n traceID: node.traceID,\n spanID: node.spans[0].spanID,\n parentSpanId: spanID,\n serviceName: node.serviceName,\n operationName: node.operationName,\n statusCode: erroredSpans > 0 ? 2 /*error*/ : 0 /*unset*/,\n duration: node.spans.reduce((acc, c) => acc + parseInt(c.durationNanos, 10), 0) / node.spans.length / 1000000,\n startTime,\n },\n ];\n\n for (const child of node.children) {\n values.push(...this.getTrace(child, node.spans[0].spanID));\n }\n return values;\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { tree, loading, panel, $data } = model.useState();\n const styles = getStyles(useTheme2());\n const theme = useTheme2();\n\n const exploration = getTraceExplorationScene(model);\n const { value } = exploration.getMetricVariable().useState();\n\n const metric = value as MetricFunction;\n\n let isLoading = loading || !tree?.children.length;\n if ($data?.state.data?.state === LoadingState.Done) {\n isLoading = false;\n }\n\n let description;\n let emptyMsg = '';\n switch (metric) {\n case 'rate':\n description = (\n <>\n
Analyse the service structure of the traces that match the current filters.
\n
Each panel represents an aggregate view compiled using spans from multiple traces.
\n \n );\n emptyMsg = 'server';\n break;\n case 'errors':\n description = (\n <>\n
Analyse the errors structure of the traces that match the current filters.
\n
Each panel represents an aggregate view compiled using spans from multiple traces.
\n \n );\n emptyMsg = 'error';\n break;\n case 'duration':\n description = (\n <>\n
Analyse the structure of slow spans from the traces that match the current filters.
\n
Each panel represents an aggregate view compiled using spans from multiple traces.
\n \n );\n emptyMsg = 'slow';\n break;\n }\n\n const tabName = structureDisplayName(metric);\n\n const noDataMessage = (\n <>\n \n {EMPTY_STATE_ERROR_MESSAGE}\n \n \n
\n The structure tab shows {emptyMsg} spans beneath what you are currently investigating. Currently, there are\n no descendant {emptyMsg} spans beneath the spans you are investigating.\n
\n
\n \n \n \n The structure tab works best with full traces.\n \n \n\n
\n Read more about\n
\n \n {`${tabName.toLowerCase()}`}\n \n
\n
\n \n );\n\n return (\n \n
{description}
\n {isLoading && (\n \n \n \n )}\n\n {!isLoading && tree && tree.children.length > 0 && (\n
{panel && }
\n )}\n\n {$data?.state.data?.state === LoadingState.Done && !tree?.children.length && (\n \n )}\n
\n );\n };\n}\n\nfunction buildQuery(metric: MetricFunction) {\n let metricQuery;\n let selectionQuery = '';\n switch (metric) {\n case 'errors':\n metricQuery = 'status = error';\n selectionQuery = 'status = error';\n break;\n case 'duration':\n metricQuery = `duration > ${VAR_LATENCY_PARTIAL_THRESHOLD_EXPR}`;\n selectionQuery = `duration > ${VAR_LATENCY_THRESHOLD_EXPR}`;\n break;\n default:\n metricQuery = 'kind = server';\n break;\n }\n\n return {\n refId: 'A',\n query: `{${VAR_FILTERS_EXPR} ${\n selectionQuery.length ? `&& ${selectionQuery}` : ''\n }} &>> { ${metricQuery} } | select(status, resource.service.name, name, nestedSetParent, nestedSetLeft, nestedSetRight)`,\n queryType: 'traceql',\n tableType: 'raw',\n limit: 200,\n spss: 20,\n filters: [],\n };\n}\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n description: css({\n fontSize: theme.typography.h6.fontSize,\n padding: `${theme.spacing(1)} 0`,\n }),\n traceViewList: css({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing.x1,\n // Hide the minimap and header components\n 'div[class*=\"panel-content\"] > div': {\n overflow: 'auto',\n '> :not([class*=\"TraceTimelineViewer\"])': {\n display: 'none',\n },\n },\n // Hide the Span and Resource accordions from span details\n 'div[data-testid=\"span-detail-component\"] > :nth-child(4) > :nth-child(1)': {\n display: 'none',\n },\n\n // Hide span details row\n '.span-detail-row': {\n display: 'none',\n },\n\n // Remove cursor pointer as span details is hidden\n 'div[data-testid=\"TimelineRowCell\"]': {\n 'button[role=\"switch\"]': {\n cursor: 'text',\n },\n },\n 'div[data-testid=\"span-view\"]': {\n cursor: 'text !important',\n },\n }),\n longText: css({\n maxWidth: '800px',\n margin: '0 auto',\n }),\n action: css({\n marginLeft: theme.spacing(1),\n }),\n actionContainer: css({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }),\n };\n};\n\nfunction countSpans(tree: TreeNode) {\n let count = tree.spans.length;\n for (const child of tree.children) {\n count += countSpans(child);\n }\n return count;\n}\n\nexport function buildStructureScene(metric: MetricFunction) {\n return new SceneFlexItem({\n body: new StructureTabScene({ metric }),\n });\n}\n","import { css } from '@emotion/css';\nimport { useResizeObserver } from '@react-aria/utils';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\n\nimport { GrafanaTheme2, SelectableValue } from '@grafana/data';\nimport { Select, RadioButtonGroup, useStyles2, useTheme2, measureText, Field, InputActionMeta } from '@grafana/ui';\nimport { ALL, ignoredAttributes, maxOptions, MetricFunction, RESOURCE_ATTR, SPAN_ATTR } from 'utils/shared';\nimport { AttributesBreakdownScene } from './TracesByService/Tabs/Breakdown/AttributesBreakdownScene';\nimport { AttributesComparisonScene } from './TracesByService/Tabs/Comparison/AttributesComparisonScene';\nimport { getFiltersVariable, getMetricVariable, getTraceExplorationScene } from 'utils/utils';\n\ntype Props = {\n options: Array>;\n radioAttributes: string[];\n value?: string;\n onChange: (label: string, ignore?: boolean) => void;\n showAll?: boolean;\n model: AttributesBreakdownScene | AttributesComparisonScene;\n};\n\nconst additionalWidthPerItem = 40;\nconst widthOfOtherAttributes = 180;\n\nexport function GroupBySelector({ options, radioAttributes, value, onChange, showAll = false, model }: Props) {\n const styles = useStyles2(getStyles);\n const theme = useTheme2();\n const { fontSize } = theme.typography;\n\n const [selectQuery, setSelectQuery] = useState('');\n const [allowAutoUpdate, setAllowAutoUpdate] = useState(true);\n\n const [availableWidth, setAvailableWidth] = useState(0);\n const controlsContainer = useRef(null);\n\n const { initialGroupBy } = getTraceExplorationScene(model).useState();\n const { filters } = getFiltersVariable(model).useState();\n const { value: metric } = getMetricVariable(model).useState();\n const metricValue = metric as MetricFunction;\n\n useResizeObserver({\n ref: controlsContainer,\n onResize: () => {\n const element = controlsContainer.current;\n if (element) {\n setAvailableWidth(element.clientWidth);\n }\n },\n });\n\n const radioOptions = useMemo(() => {\n let radioOptionsWidth = 0;\n return radioAttributes\n .filter((op) => {\n // remove radio options that are in the dropdown\n let checks = !!options.find((o) => o.value === op);\n\n // remove radio options that are in the filters\n if (filters.find((f) => f.key === op && (f.operator === '=' || f.operator === '!='))) {\n return false;\n }\n\n // if filters (primary signal) has 'Full Traces' selected, then don't add rootName or rootServiceName to options\n // as you would overwrite it in the query if it's selected\n if (filters.find((f) => f.key === 'nestedSetParent')) {\n checks = checks && op !== 'rootName' && op !== 'rootServiceName';\n }\n\n // if rate or error rate metric is selected, then don't add status to options\n // as you would overwrite it in the query if it's selected\n if (metricValue === 'rate' || metricValue === 'errors') {\n checks = checks && op !== 'status';\n }\n\n return checks;\n })\n .map((attribute) => ({\n label: attribute.replace(SPAN_ATTR, '').replace(RESOURCE_ATTR, ''),\n text: attribute,\n value: attribute,\n }))\n .filter((option) => {\n const text = option.label || option.text || '';\n const textWidth = measureText(text, fontSize).width;\n if (radioOptionsWidth + textWidth + additionalWidthPerItem + widthOfOtherAttributes < availableWidth) {\n radioOptionsWidth += textWidth + additionalWidthPerItem;\n return true;\n } else {\n return false;\n }\n });\n }, [radioAttributes, options, filters, metricValue, fontSize, availableWidth]);\n\n const otherAttrOptions = useMemo(() => {\n const ops = options.filter((op) => !radioOptions.find((ro) => ro.value === op.value?.toString()));\n return filteredOptions(ops, selectQuery);\n }, [selectQuery, options, radioOptions]);\n\n const getModifiedSelectOptions = (options: Array>) => {\n return options\n .filter((op) => !ignoredAttributes.includes(op.value?.toString()!))\n .map((op) => ({ label: op.label?.replace(SPAN_ATTR, '').replace(RESOURCE_ATTR, ''), value: op.value }));\n };\n\n const defaultValue = initialGroupBy ?? radioOptions[0]?.value ?? otherAttrOptions[0]?.value;\n\n // Set default value as first value in options\n useEffect(() => {\n if (defaultValue && !showAll && allowAutoUpdate) {\n onChange(defaultValue, true);\n setAllowAutoUpdate(false);\n }\n }, [value, defaultValue, showAll, onChange, allowAutoUpdate]);\n\n useEffect(() => {\n if (radioAttributes.length > 0) {\n setAllowAutoUpdate(true);\n }\n }, [radioAttributes]);\n\n useEffect(() => {\n if (filters.some((f) => f.key === value)) {\n setAllowAutoUpdate(true);\n }\n }, [filters, value]);\n\n const showAllOption = showAll ? [{ label: ALL, value: ALL }] : [];\n const defaultOnChangeValue = showAll ? ALL : '';\n\n return (\n \n
\n {radioOptions.length > 0 && (\n \n )}\n x.value === value) ? value : null} // remove value from select when radio button clicked\n placeholder={'Other attributes'}\n options={getModifiedSelectOptions(otherAttrOptions)}\n onChange={(selected) => {\n const newSelected = selected?.value ?? defaultOnChangeValue;\n onChange(newSelected);\n }}\n className={styles.select}\n isClearable\n onInputChange={(value: string, { action }: InputActionMeta) => {\n if (action === 'input-change') {\n setSelectQuery(value);\n }\n }}\n onCloseMenu={() => setSelectQuery('')}\n virtualized\n />\n
\n
\n );\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n select: css({\n maxWidth: theme.spacing(22),\n }),\n container: css({\n display: 'flex',\n gap: theme.spacing(1),\n }),\n };\n}\n\nexport const filteredOptions = (options: Array>, query: string) => {\n if (options.length === 0) {\n return [];\n }\n\n if (query.length === 0) {\n return options.slice(0, maxOptions);\n }\n\n const queryLowerCase = query.toLowerCase();\n return options\n .filter((tag) => {\n if (tag.value && tag.value.length > 0) {\n return tag.value.toLowerCase().includes(queryLowerCase);\n }\n return false;\n })\n .slice(0, maxOptions);\n};\n","import React from 'react';\n\nimport { SelectableValue } from '@grafana/data';\nimport { SceneComponentProps, SceneObject, SceneObjectBase, SceneObjectState } from '@grafana/scenes';\nimport { Field, RadioButtonGroup } from '@grafana/ui';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../utils/analytics';\n\nexport interface LayoutSwitcherState extends SceneObjectState {\n active: LayoutType;\n layouts: SceneObject[];\n options: Array>;\n}\n\nexport type LayoutType = 'single' | 'grid' | 'rows';\n\nexport class LayoutSwitcher extends SceneObjectBase {\n public Selector({ model }: { model: LayoutSwitcher }) {\n const { active, options } = model.useState();\n\n return (\n \n \n \n );\n }\n\n public onLayoutChange = (active: LayoutType) => {\n this.setState({ active });\n reportAppInteraction(USER_EVENTS_PAGES.analyse_traces, USER_EVENTS_ACTIONS.analyse_traces.layout_type_changed, {\n layout: active,\n });\n };\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { layouts, options, active } = model.useState();\n\n const index = options.findIndex((o) => o.value === active);\n if (index === -1) {\n return null;\n }\n\n const layout = layouts[index];\n\n return ;\n };\n}\n","import { PanelBuilders } from '@grafana/scenes';\nimport { TooltipDisplayMode } from '@grafana/ui';\n\nexport const linesPanelConfig = () => {\n return PanelBuilders.timeseries()\n .setOption('legend', { showLegend: false })\n .setOption('tooltip', { mode: TooltipDisplayMode.Multi })\n .setCustomFieldConfig('fillOpacity', 15);\n};\n","import { sceneGraph, SceneObject, SceneObjectState, VizPanel } from '@grafana/scenes';\nimport { cloneDeep, merge } from 'lodash';\nimport { EventTimeseriesDataReceived } from '../../../utils/shared';\n\nexport function syncYAxis() {\n return (vizPanel: SceneObject) => {\n const maxima = new Map();\n\n const eventSub = vizPanel.subscribeToEvent(EventTimeseriesDataReceived, (event) => {\n const series = event.payload.series;\n\n series?.forEach((s) => {\n s.fields.slice(1).forEach((f) => {\n maxima.set(s.refId as string, Math.max(...f.values.filter((v) => v)));\n })\n });\n\n updateTimeseriesAxis(vizPanel, Math.max(...maxima.values()));\n });\n\n return () => {\n eventSub.unsubscribe();\n };\n };\n}\n\nfunction updateTimeseriesAxis(vizPanel: SceneObject, max: number) {\n // findAllObjects searches down the full scene graph\n const timeseries = sceneGraph.findAllObjects(vizPanel, (o) => o instanceof VizPanel) as VizPanel[];\n\n for (const t of timeseries) {\n t.clearFieldConfigCache(); // required\n\n t.setState({\n fieldConfig: merge(cloneDeep(t.state.fieldConfig), { defaults: { max } }),\n });\n }\n}\n","import {\n CustomVariable,\n SceneCSSGridItem,\n SceneCSSGridLayout,\n SceneDataNode,\n SceneDataTransformer,\n SceneFlexItem,\n SceneFlexLayout,\n sceneGraph,\n SceneObject,\n VizPanelState,\n} from '@grafana/scenes';\nimport { LayoutSwitcher } from '../LayoutSwitcher';\nimport { explorationDS, GRID_TEMPLATE_COLUMNS, MetricFunction } from '../../../utils/shared';\nimport { ByFrameRepeater } from '../ByFrameRepeater';\nimport { formatLabelValue, getLabelValue, getOpenTrace, getTraceExplorationScene } from '../../../utils/utils';\nimport { map, Observable } from 'rxjs';\nimport { DataFrame, PanelData, reduceField, ReducerID } from '@grafana/data';\nimport { generateMetricsQuery, getMetricsTempoQuery } from '../queries/generateMetricsQuery';\nimport { barsPanelConfig } from '../panels/barsPanel';\nimport { linesPanelConfig } from '../panels/linesPanel';\nimport { StepQueryRunner } from '../queries/StepQueryRunner';\nimport { syncYAxis } from '../behaviors/syncYaxis';\nimport { exemplarsTransformations } from '../../../utils/exemplars';\nimport { PanelMenu } from '../panels/PanelMenu';\n\nexport function buildNormalLayout(\n scene: SceneObject,\n variable: CustomVariable,\n actionsFn: (df: DataFrame) => VizPanelState['headerActions']\n) {\n const traceExploration = getTraceExplorationScene(scene);\n const metric = traceExploration.getMetricVariable().getValue() as MetricFunction;\n const query = getMetricsTempoQuery({ metric, groupByKey: variable.getValueText() });\n const panels: Record = {};\n\n return new LayoutSwitcher({\n $behaviors: [syncYAxis()],\n $data: new SceneDataTransformer({\n $data: new StepQueryRunner({\n maxDataPoints: 64,\n datasource: explorationDS,\n queries: [query],\n }),\n transformations: [\n ...exemplarsTransformations(getOpenTrace(scene)),\n () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n data.forEach((a) => reduceField({ field: a.fields[1], reducers: [ReducerID.max] }));\n return data.sort((a, b) => {\n return (b.fields[1].state?.calcs?.max || 0) - (a.fields[1].state?.calcs?.max || 0);\n });\n })\n );\n },\n ],\n }),\n options: [\n { value: 'single', label: 'Single' },\n { value: 'grid', label: 'Grid' },\n { value: 'rows', label: 'Rows' },\n ],\n active: 'grid',\n layouts: [\n new SceneFlexLayout({\n direction: 'column',\n children: [\n new SceneFlexItem({\n minHeight: 300,\n body: (metric === 'duration' ? linesPanelConfig().setUnit('s') : linesPanelConfig()).build(),\n }),\n ],\n }),\n new ByFrameRepeater({\n body: new SceneCSSGridLayout({\n templateColumns: GRID_TEMPLATE_COLUMNS,\n autoRows: '200px',\n isLazy: true,\n children: [],\n }),\n groupBy: true,\n getLayoutChild: getLayoutChild(panels, getLabelValue, variable, metric, actionsFn),\n }),\n new ByFrameRepeater({\n body: new SceneCSSGridLayout({\n templateColumns: '1fr',\n autoRows: '200px',\n isLazy: true,\n children: [],\n }),\n groupBy: true,\n getLayoutChild: getLayoutChild(panels, getLabelValue, variable, metric, actionsFn),\n }),\n ],\n });\n}\n\nexport function getLayoutChild(\n panels: Record,\n getTitle: (df: DataFrame, labelName: string) => string,\n variable: CustomVariable,\n metric: MetricFunction,\n actionsFn: (df: DataFrame) => VizPanelState['headerActions']\n) {\n return (data: PanelData, frame: DataFrame) => {\n const existingGridItem = frame.name ? panels[frame.name] : undefined;\n\n const dataNode = new SceneDataNode({\n data: {\n ...data,\n annotations: data.annotations?.filter((a) => a.refId === frame.refId),\n series: [\n {\n ...frame,\n fields: frame.fields.sort((a, b) => a.labels?.status?.localeCompare(b.labels?.status || '') || 0),\n },\n ],\n },\n });\n\n if (existingGridItem) {\n existingGridItem.state.body?.setState({ $data: dataNode });\n return existingGridItem;\n }\n\n const query = sceneGraph.interpolate(\n variable,\n generateMetricsQuery({\n metric,\n extraFilters: `${variable.getValueText()}=${formatLabelValue(getLabelValue(frame))}`,\n })\n );\n\n const panel = (metric === 'duration' ? linesPanelConfig().setUnit('s') : barsPanelConfig(metric))\n .setTitle(getTitle(frame, variable.getValueText()))\n .setMenu(new PanelMenu({ query, labelValue: getLabelValue(frame) }))\n .setData(dataNode);\n\n const actions = actionsFn(frame);\n if (actions) {\n panel.setHeaderActions(actions);\n }\n\n const gridItem = new SceneCSSGridItem({\n body: panel.build(),\n });\n if (frame.name) {\n panels[frame.name] = gridItem;\n }\n\n return gridItem;\n };\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useTheme2 } from '@grafana/ui';\n\ntype Tag = {\n label: string;\n color: string;\n};\n\ntype Props = {\n description: string;\n tags: Tag[];\n};\n\nexport function AttributesDescription({ description, tags }: Props) {\n const theme = useTheme2();\n const styles = getStyles(theme);\n\n return (\n
\n
{description}
\n {tags.length > 0 &&\n tags.map((tag) => (\n
\n
\n
{tag.label}
\n
\n ))}\n
\n );\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n infoFlex: css({\n display: 'flex',\n gap: theme.spacing(2),\n alignItems: 'center',\n padding: `${theme.spacing(1)} 0 ${theme.spacing(2)} 0`,\n }),\n tagsFlex: css({\n display: 'flex',\n gap: theme.spacing(1),\n alignItems: 'center',\n }),\n tag: css({\n display: 'inline-block',\n width: theme.spacing(2),\n height: theme.spacing(0.5),\n borderRadius: theme.spacing(0.5),\n }),\n };\n}\n","import { css } from '@emotion/css';\nimport React, { useEffect, useState } from 'react';\n\nimport { DataFrame, GrafanaTheme2 } from '@grafana/data';\nimport {\n CustomVariable,\n SceneComponentProps,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n VariableDependencyConfig,\n} from '@grafana/scenes';\nimport { Field, RadioButtonGroup, useStyles2 } from '@grafana/ui';\n\nimport { GroupBySelector } from '../../../GroupBySelector';\nimport {\n MetricFunction,\n RESOURCE,\n RESOURCE_ATTR,\n SPAN,\n SPAN_ATTR,\n VAR_FILTERS,\n VAR_METRIC,\n radioAttributesResource,\n radioAttributesSpan,\n} from '../../../../../utils/shared';\n\nimport { LayoutSwitcher } from '../../../LayoutSwitcher';\nimport { AddToFiltersAction } from '../../../actions/AddToFiltersAction';\nimport { buildNormalLayout } from '../../../layouts/attributeBreakdown';\nimport {\n getAttributesAsOptions,\n getGroupByVariable,\n getTraceByServiceScene,\n getTraceExplorationScene,\n} from 'utils/utils';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../../../../utils/analytics';\nimport { AttributesDescription } from './AttributesDescription';\n\nexport interface AttributesBreakdownSceneState extends SceneObjectState {\n body?: SceneObject;\n}\n\nexport class AttributesBreakdownScene extends SceneObjectBase {\n protected _variableDependency = new VariableDependencyConfig(this, {\n variableNames: [VAR_FILTERS, VAR_METRIC],\n onReferencedVariableValueChanged: this.onReferencedVariableValueChanged.bind(this),\n });\n\n constructor(state: Partial) {\n super({\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n const variable = getGroupByVariable(this);\n\n variable.subscribeToState(() => {\n this.setBody(variable);\n });\n\n getTraceByServiceScene(this).subscribeToState(() => {\n this.setBody(variable);\n });\n\n this.setBody(variable);\n }\n\n private onReferencedVariableValueChanged() {\n const variable = getGroupByVariable(this);\n variable.changeValueTo(radioAttributesResource[0]);\n this.setBody(variable);\n }\n\n private onAddToFiltersClick(payload: any) {\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.breakdown_add_to_filters_clicked,\n payload\n );\n }\n\n private setBody = (variable: CustomVariable) => {\n this.setState({\n body: buildNormalLayout(this, variable, (frame: DataFrame) => [\n new AddToFiltersAction({ frame, labelKey: variable.getValueText(), onClick: this.onAddToFiltersClick }),\n ]),\n });\n };\n\n public onChange = (value: string, ignore?: boolean) => {\n const variable = getGroupByVariable(this);\n if (variable.getValueText() !== value) {\n variable.changeValueTo(value, undefined, !ignore);\n\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.breakdown_group_by_changed,\n {\n groupBy: value,\n }\n );\n }\n };\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { value: groupByValue } = getGroupByVariable(model).useState();\n const groupBy = groupByValue as string;\n const defaultScope = groupBy.includes(SPAN_ATTR) || radioAttributesSpan.includes(groupBy) ? SPAN : RESOURCE;\n const [scope, setScope] = useState(defaultScope);\n const { body } = model.useState();\n const styles = useStyles2(getStyles);\n\n const { attributes } = getTraceByServiceScene(model).useState();\n const filterType = scope === RESOURCE ? RESOURCE_ATTR : SPAN_ATTR;\n let filteredAttributes = attributes?.filter((attr) => attr.includes(filterType));\n if (scope === SPAN) {\n filteredAttributes = filteredAttributes?.concat(radioAttributesSpan);\n }\n\n const exploration = getTraceExplorationScene(model);\n const { value: metric } = exploration.getMetricVariable().useState();\n const getDescription = (metric: MetricFunction) => {\n switch (metric) {\n case 'rate':\n return 'Attributes are ordered by their rate of requests per second.';\n case 'errors':\n return 'Attributes are ordered by their rate of errors per second.';\n case 'duration':\n return 'Attributes are ordered by their average duration.';\n default:\n throw new Error('Metric not supported');\n }\n };\n const description = getDescription(metric as MetricFunction);\n\n useEffect(() => {\n if (scope !== defaultScope) {\n setScope(defaultScope);\n }\n }, [groupBy]);\n\n return (\n
\n \n\n
\n {filteredAttributes?.length && (\n
\n
\n \n \n \n
\n\n
\n \n
\n
\n )}\n {body instanceof LayoutSwitcher && (\n
\n \n
\n )}\n
\n
{body && }
\n
\n );\n };\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n flexGrow: 1,\n display: 'flex',\n minHeight: '100%',\n flexDirection: 'column',\n }),\n content: css({\n flexGrow: 1,\n display: 'flex',\n paddingTop: theme.spacing(0),\n }),\n controls: css({\n flexGrow: 0,\n display: 'flex',\n alignItems: 'top',\n gap: theme.spacing(2),\n }),\n controlsRight: css({\n flexGrow: 0,\n display: 'flex',\n justifyContent: 'flex-end',\n }),\n scope: css({\n marginRight: theme.spacing(2),\n }),\n groupBy: css({\n width: '100%',\n }),\n controlsLeft: css({\n display: 'flex',\n justifyContent: 'flex-left',\n justifyItems: 'left',\n width: '100%',\n flexDirection: 'row',\n }),\n };\n}\n","import React from 'react';\n\nimport {\n SceneComponentProps,\n SceneFlexItem,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n VariableDependencyConfig,\n} from '@grafana/scenes';\nimport { AttributesBreakdownScene } from './AttributesBreakdownScene';\nimport { VAR_METRIC } from '../../../../../utils/shared';\n\ninterface BreakdownSceneState extends SceneObjectState {\n body?: SceneObject;\n}\n\nexport class BreakdownScene extends SceneObjectBase {\n protected _variableDependency = new VariableDependencyConfig(this, {\n variableNames: [VAR_METRIC],\n });\n\n constructor(state: Partial) {\n super({ ...state });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n this.updateBody();\n }\n\n private updateBody() {\n this.setState({ body: new AttributesBreakdownScene({}) });\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n return body && ;\n };\n}\n\nexport function buildBreakdownScene() {\n return new SceneFlexItem({\n body: new BreakdownScene({}),\n });\n}\n","import { Field } from \"@grafana/data\";\nimport { calculateBucketSize } from \"utils/dates\";\n\nexport function aggregateExceptions(messageField: Field, typeField?: Field, timeField?: Field, serviceField?: Field) {\n const occurrences = new Map();\n const types = new Map();\n const lastSeenTimes = new Map();\n const services = new Map();\n const timeSeries = new Map>();\n \n // Collect timestamps for each message\n const messageTimestamps = new Map();\n \n for (let i = 0; i < messageField.values.length; i++) {\n const message = messageField.values[i];\n const type = typeField?.values[i];\n const timestamp = timeField?.values[i];\n const service = serviceField?.values[i];\n \n if (message) {\n const normalizedMessage = normalizeExceptionMessage(message);\n occurrences.set(normalizedMessage, (occurrences.get(normalizedMessage) || 0) + 1);\n \n if (!types.has(normalizedMessage) && type) {\n types.set(normalizedMessage, type);\n }\n\n if (!services.has(normalizedMessage) && service) {\n services.set(normalizedMessage, service);\n }\n\n if (timestamp) {\n const timestampMs = typeof timestamp === 'string' ? parseFloat(timestamp) : timestamp;\n if (!messageTimestamps.has(normalizedMessage)) {\n messageTimestamps.set(normalizedMessage, []);\n }\n messageTimestamps.get(normalizedMessage)!.push(timestampMs);\n \n const currentLastSeen = lastSeenTimes.get(normalizedMessage) || 0;\n if (timestampMs > currentLastSeen) {\n lastSeenTimes.set(normalizedMessage, timestampMs);\n }\n }\n }\n }\n\n // Create time series data for each message\n for (const [message, timestamps] of messageTimestamps.entries()) {\n const timeSeriesData = createTimeSeries(timestamps);\n timeSeries.set(message, timeSeriesData);\n }\n\n const sortedEntries = Array.from(occurrences.entries()).sort((a, b) => b[1] - a[1]);\n\n return {\n messages: sortedEntries.map(([message]) => message),\n types: sortedEntries.map(([message]) => types.get(message) || ''),\n occurrences: sortedEntries.map(([, count]) => count),\n services: sortedEntries.map(([message]) => services.get(message) || ''),\n timeSeries: sortedEntries.map(([message]) => timeSeries.get(message) || []),\n lastSeenTimes: sortedEntries.map(([message]) => {\n const lastSeenMs = lastSeenTimes.get(message);\n \n if (!lastSeenMs) {\n return '';\n }\n \n const now = Date.now();\n const diffMs = now - lastSeenMs;\n \n if (diffMs < 60000) { // Less than 1 minute\n return 'Just now';\n } else if (diffMs < 3600000) { // Less than 1 hour\n const minutes = Math.floor(diffMs / 60000);\n return `${minutes}m ago`;\n } else if (diffMs < 86400000) { // Less than 1 day\n const hours = Math.floor(diffMs / 3600000);\n return `${hours}h ago`;\n } else { // More than 1 day\n const days = Math.floor(diffMs / 86400000);\n return `${days}d ago`;\n }\n }),\n };\n}\n\nexport function createTimeSeries(timestamps: number[]): Array<{time: number, count: number}> {\n if (!timestamps.length) {return [];}\n \n timestamps.sort((a, b) => a - b);\n \n const timeRangeMs = timestamps[timestamps.length - 1] - timestamps[0];\n const timeRangeSeconds = timeRangeMs / 1000;\n const bucketSizeSeconds = calculateBucketSize(timeRangeSeconds, 50);\n const bucketSizeMs = bucketSizeSeconds * 1000; // Convert back to milliseconds\n const buckets = new Map();\n \n for (const timestamp of timestamps) {\n const bucketKey = Math.floor(timestamp / bucketSizeMs) * bucketSizeMs;\n buckets.set(bucketKey, (buckets.get(bucketKey) || 0) + 1);\n }\n \n // Convert to array and sort by time\n return Array.from(buckets.entries())\n .map(([time, count]) => ({ time, count }))\n .sort((a, b) => a.time - b.time);\n}\n\nexport function normalizeExceptionMessage(message: string): string {\n if (!message) { return '' }\n return message.replace(/\\s+/g, ' ').trim();\n}\n","import React from 'react';\n\nimport {\n PanelBuilders,\n SceneComponentProps,\n SceneDataTransformer,\n SceneFlexItem,\n SceneFlexLayout,\n SceneObjectBase,\n SceneObjectState,\n SceneQueryRunner,\n} from '@grafana/scenes';\nimport { DataFrame, GrafanaTheme2, LoadingState, PanelData, FieldType, DataLink } from '@grafana/data';\nimport { GraphDrawStyle, VisibilityMode, TableCellHeight } from '@grafana/schema';\nimport { LoadingStateScene } from 'components/states/LoadingState/LoadingStateScene';\nimport { EmptyStateScene } from 'components/states/EmptyState/EmptyStateScene';\nimport { css } from '@emotion/css';\nimport Skeleton from 'react-loading-skeleton';\nimport { useStyles2, useTheme2, TableCellDisplayMode, TableCustomCellOptions, Sparkline } from '@grafana/ui';\nimport { map, Observable } from 'rxjs';\nimport {\n EMPTY_STATE_ERROR_MESSAGE,\n EMPTY_STATE_ERROR_REMEDY_MESSAGE,\n explorationDS,\n filterStreamingProgressTransformations,\n} from '../../../../../utils/shared';\nimport { getTraceByServiceScene, getFiltersVariable } from '../../../../../utils/utils';\nimport { buildExceptionsQuery } from 'components/Explore/queries/exceptions';\nimport { aggregateExceptions } from './ExceptionUtils';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from 'utils/analytics';\n\nexport interface ExceptionsSceneState extends SceneObjectState {\n panel?: SceneFlexLayout;\n dataState: 'empty' | 'loading' | 'done';\n exceptionsCount?: number;\n}\n\nexport class ExceptionsScene extends SceneObjectBase {\n constructor(state: Partial) {\n super({\n $data: new SceneDataTransformer({\n $data: new SceneQueryRunner({\n datasource: explorationDS,\n queries: [buildExceptionsQuery()],\n }),\n transformations: [], // Will be set after construction\n }),\n dataState: 'empty',\n ...state,\n });\n\n const dataTransformer = this.state.$data as SceneDataTransformer;\n dataTransformer.setState({\n transformations: [...filterStreamingProgressTransformations, this.createTransformation()],\n });\n\n this.addActivationHandler(() => {\n const dataTransformer = this.state.$data as SceneDataTransformer;\n\n this._subs.add(\n dataTransformer.subscribeToState((newState, prevState) => {\n if (newState.data !== prevState.data) {\n this.updatePanel(newState.data);\n }\n })\n );\n });\n }\n\n private updatePanel(data?: PanelData) {\n if (\n data?.state === LoadingState.Loading ||\n data?.state === LoadingState.NotStarted ||\n !data?.state ||\n (data?.state === LoadingState.Streaming && !data.series?.[0]?.length)\n ) {\n this.setState({\n dataState: 'loading',\n panel: new SceneFlexLayout({\n direction: 'row',\n children: [\n new LoadingStateScene({\n component: SkeletonComponent,\n }),\n ],\n }),\n });\n } else if (\n (data?.state === LoadingState.Done || data?.state === LoadingState.Streaming) &&\n (data.series.length === 0 || !data.series?.[0]?.length)\n ) {\n this.setState({\n dataState: 'empty',\n exceptionsCount: 0,\n panel: new SceneFlexLayout({\n children: [\n new SceneFlexItem({\n body: new EmptyStateScene({\n message: EMPTY_STATE_ERROR_MESSAGE,\n remedyMessage: EMPTY_STATE_ERROR_REMEDY_MESSAGE,\n padding: '32px',\n }),\n }),\n ],\n }),\n });\n } else if (\n (data?.state === LoadingState.Done || data?.state === LoadingState.Streaming) &&\n data.series.length > 0\n ) {\n const exceptionsCount = this.calculateExceptionsCount(data);\n\n this.setState({\n dataState: 'done',\n exceptionsCount,\n panel: new SceneFlexLayout({\n children: [\n new SceneFlexItem({\n body: PanelBuilders.table()\n .setOption('cellHeight', TableCellHeight.Lg)\n .setHoverHeader(true)\n .setOverrides((builder) => {\n return builder\n .matchFieldsWithName('Service')\n .overrideCustomFieldConfig('width', 200)\n .matchFieldsWithName('Occurrences')\n .overrideCustomFieldConfig('width', 120)\n .matchFieldsWithName('Time Series')\n .overrideCustomFieldConfig('width', 220)\n .matchFieldsWithName('Last Seen')\n .overrideCustomFieldConfig('width', 120);\n })\n .build(),\n }),\n ],\n }),\n });\n }\n }\n\n private createTransformation() {\n return () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n return data.map((df: DataFrame) => {\n const messageField = df.fields.find((f) => f.name === 'exception.message');\n const typeField = df.fields.find((f) => f.name === 'exception.type');\n const serviceField = df.fields.find((f) => f.name === 'service.name');\n const timeField = df.fields.find((f) => f.name === 'time');\n const noData = !messageField || !messageField.values.length;\n\n let messages: string[] = [];\n let types: string[] = [];\n let occurrences: number[] = [];\n let lastSeenTimes: string[] = [];\n let services: string[] = [];\n let timeSeries: Array> = [];\n\n if (!noData) {\n const aggregated = aggregateExceptions(messageField, typeField, timeField, serviceField);\n messages = aggregated.messages;\n types = aggregated.types;\n occurrences = aggregated.occurrences;\n lastSeenTimes = aggregated.lastSeenTimes;\n services = aggregated.services;\n timeSeries = aggregated.timeSeries;\n }\n\n const options: TableCustomCellOptions = {\n type: TableCellDisplayMode.Custom,\n cellComponent: (props) => {\n const seriesData = props.value as Array<{ time: number; count: number }>;\n return this.renderSparklineCell(seriesData);\n },\n };\n\n return {\n ...df,\n length: messages.length,\n fields: [\n {\n name: 'Message',\n type: FieldType.string,\n values: messages,\n config: {\n links: messages.length > 0 ? [this.createDataLink()] : [],\n },\n },\n {\n name: 'Type',\n type: FieldType.string,\n values: types,\n config: {},\n },\n {\n name: 'Trace Service',\n type: FieldType.string,\n values: services,\n config: {},\n },\n {\n name: 'Occurrences',\n type: FieldType.number,\n values: occurrences,\n config: {},\n },\n {\n name: 'Frequency',\n type: FieldType.other,\n values: timeSeries,\n config: {\n custom: {\n cellOptions: options,\n },\n },\n },\n {\n name: 'Last Seen',\n type: FieldType.string,\n values: lastSeenTimes,\n config: {},\n },\n ],\n };\n });\n })\n );\n };\n }\n\n private renderSparklineCell = (seriesData: Array<{ time: number; count: number }>) => {\n const styles = useStyles2(getStyles);\n\n const SparklineCell = () => {\n const theme = useTheme2();\n\n if (!seriesData || !seriesData.length) {\n return
No data
;\n }\n\n const countValues = seriesData.map((point) => point.count);\n const timeValues = seriesData.map((point) => point.time);\n\n const validCountValues = countValues.filter((v) => isFinite(v) && !isNaN(v));\n const validTimeValues = timeValues.filter((v) => isFinite(v) && !isNaN(v));\n if (validCountValues.length < 2 || validTimeValues.length < 2) {\n return
Not enough data
;\n }\n\n const minCount = Math.min(...validCountValues);\n const maxCount = Math.max(...validCountValues);\n const minTime = Math.min(...validTimeValues);\n const maxTime = Math.max(...validTimeValues);\n\n // Ensure valid ranges\n const countDelta = maxCount - minCount;\n const timeDelta = maxTime - minTime;\n\n // Handle edge cases where all values are the same\n const safeCountDelta = countDelta === 0 ? 1 : countDelta;\n const safeTimeDelta = timeDelta === 0 ? 1 : timeDelta;\n\n const sparklineData = {\n y: {\n name: 'count',\n type: FieldType.number,\n values: validCountValues,\n config: {},\n state: {\n range: {\n min: minCount,\n max: maxCount,\n delta: safeCountDelta,\n },\n },\n },\n x: {\n name: 'time',\n type: FieldType.time,\n values: validTimeValues,\n config: {},\n state: {\n range: {\n min: minTime,\n max: maxTime,\n delta: safeTimeDelta,\n },\n },\n },\n };\n\n return (\n
\n \n
\n );\n };\n\n return ;\n };\n\n private createDataLink(): DataLink {\n return {\n title: 'View traces for this exception',\n url: '',\n onClick: (event: any) => {\n const rowIndex = event.origin?.rowIndex;\n if (rowIndex !== undefined) {\n const message = event.origin?.field?.values?.[rowIndex];\n if (message) {\n reportAppInteraction(USER_EVENTS_PAGES.analyse_traces, USER_EVENTS_ACTIONS.analyse_traces.exception_message_clicked);\n this.navigateToTracesWithFilter(message);\n }\n }\n },\n };\n }\n\n private navigateToTracesWithFilter = (exceptionMessage: string) => {\n const filtersVariable = getFiltersVariable(this);\n if (!filtersVariable) {\n return;\n }\n\n const traceByServiceScene = getTraceByServiceScene(this);\n traceByServiceScene?.setActionView('traceList');\n\n const currentFilters = filtersVariable.state.filters || [];\n const escapedMessage = this.escapeFilterValue(exceptionMessage);\n\n const existingFilterIndex = currentFilters.findIndex((filter) => filter.key === 'event.exception.message');\n\n const newFilter = {\n key: 'event.exception.message',\n operator: '=',\n value: escapedMessage,\n };\n\n const newFilters =\n existingFilterIndex >= 0\n ? currentFilters.map((f, i) => (i === existingFilterIndex ? newFilter : f))\n : [...currentFilters, newFilter];\n\n filtersVariable.setState({ filters: newFilters });\n };\n\n private escapeFilterValue(value: string): string {\n return value\n .replace(/[\\n\\r\\t]/g, ' ')\n .replace(/\\s+/g, ' ')\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\"')\n .trim();\n }\n\n private calculateExceptionsCount(data?: PanelData): number {\n if (!data?.series?.[0]) {\n return 0;\n }\n\n const occurrencesField = data.series[0].fields.find((field) => field.name === 'Occurrences');\n if (!occurrencesField?.values) {\n return 0;\n }\n\n return occurrencesField.values.reduce((total: number, value: number) => total + (value || 0), 0);\n }\n\n public getExceptionsCount(): number {\n return this.state.exceptionsCount || 0;\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const styles = useStyles2(getStyles);\n const theme = useTheme2();\n const { panel, dataState } = model.useState();\n\n return (\n
\n
\n View exception details from errored traces for the current set of filters.\n
\n {dataState === 'loading' && (\n
\n \n
\n )}\n {panel && }\n
\n );\n };\n}\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n container: css({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n height: '100%',\n }),\n description: css({\n fontSize: theme.typography.h6.fontSize,\n padding: `${theme.spacing(1)} 0`,\n }),\n loadingContainer: css({\n padding: theme.spacing(2),\n }),\n sparklineContainer: css({\n width: '200px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }),\n sparklineMessage: css({\n fontSize: theme.typography.bodySmall.fontSize,\n color: theme.colors.text.secondary,\n padding: theme.spacing(1),\n }),\n };\n};\n\nconst SkeletonComponent = () => {\n const styles = useStyles2(getSkeletonStyles);\n const theme = useTheme2();\n\n return (\n
\n \n
\n );\n};\n\nfunction getSkeletonStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n padding: theme.spacing(2),\n }),\n };\n}\n\nexport function buildExceptionsScene() {\n return new SceneFlexItem({\n body: new ExceptionsScene({}),\n });\n}\n","import { VAR_FILTERS_EXPR } from 'utils/shared';\n\nexport function buildExceptionsQuery() {\n return {\n refId: 'A',\n query: `{${VAR_FILTERS_EXPR} && status = error} | select(resource.service.name, event.exception.message,event.exception.stacktrace,event.exception.type) with(most_recent=true)`,\n queryType: 'traceql',\n tableType: 'spans',\n limit: 400,\n spss: 10,\n filters: [],\n };\n}\n","import { ComparisonSelection } from '../../../utils/shared';\n\nexport function comparisonQuery(selection?: ComparisonSelection) {\n let selector = '';\n\n if (!selection) {\n return '{}';\n }\n\n if (selection.query) {\n selector += selection.query;\n }\n\n const duration = [];\n if (selection.duration?.from.length) {\n duration.push(`duration >= ${selection.duration.from}`);\n }\n if (selection.duration?.to.length) {\n duration.push(`duration <= ${selection.duration.to}`);\n }\n if (duration.length) {\n if (selector.length) {\n selector += ' && ';\n }\n selector += duration.join(' && ');\n }\n\n const fromTimerange = selection.timeRange?.from;\n const toTimerange = selection.timeRange?.to;\n return `{${selector}}, 10${\n fromTimerange && toTimerange ? `, ${fromTimerange * 1000000000}, ${toTimerange * 1000000000}` : ``\n }`;\n}\n","import {\n CustomVariable,\n SceneCSSGridItem,\n SceneCSSGridLayout,\n SceneDataNode,\n SceneDataTransformer,\n sceneGraph,\n SceneObject,\n VizPanelState,\n} from '@grafana/scenes';\nimport { ByFrameRepeater } from '../ByFrameRepeater';\nimport { map, Observable } from 'rxjs';\nimport { DataFrame, FieldType, LoadingState, PanelData, reduceField, ReducerID } from '@grafana/data';\nimport { getPanelConfig } from './allComparison';\nimport { GRID_TEMPLATE_COLUMNS, MetricFunction } from '../../../utils/shared';\n\nexport function buildAttributeComparison(\n scene: SceneObject,\n variable: CustomVariable,\n actionsFn: (df: DataFrame) => VizPanelState['headerActions'],\n metric: MetricFunction\n) {\n const timeRange = sceneGraph.getTimeRange(scene);\n const data = sceneGraph.getData(scene);\n const attribute = variable.getValueText();\n const attributeSeries = data.state.data?.series.find((d) => d.name === attribute);\n const splitFrames: DataFrame[] = [];\n const nameField = attributeSeries?.fields.find((f) => f.name === 'Value');\n const baselineField = attributeSeries?.fields.find((f) => f.name === 'Baseline');\n const selectionField = attributeSeries?.fields.find((f) => f.name === 'Selection');\n\n const panels: Record = {};\n\n if (nameField && baselineField && selectionField) {\n for (let i = 0; i < nameField.values.length; i++) {\n if (!nameField.values[i] || (!baselineField.values[i] && !selectionField.values[i])) {\n continue;\n }\n\n splitFrames.push({\n name: nameField.values[i].replace(/\"/g, ''),\n length: 1,\n fields: [\n {\n name: 'Value',\n type: FieldType.string,\n values: ['Baseline', 'Comparison'],\n config: {},\n },\n {\n ...baselineField,\n values: [baselineField.values[i]],\n labels: {\n [attribute]: nameField.values[i],\n },\n config: {\n displayName: 'Baseline',\n },\n },\n {\n ...selectionField,\n values: [selectionField.values[i]],\n },\n ],\n });\n }\n }\n\n return new ByFrameRepeater({\n $data: new SceneDataTransformer({\n $data: new SceneDataNode({\n data: {\n timeRange: timeRange.state.value,\n state: LoadingState.Done,\n series: splitFrames,\n },\n }),\n transformations: [\n () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n data.forEach((a) => reduceField({ field: a.fields[2], reducers: [ReducerID.max] }));\n return data.sort((a, b) => {\n return (b.fields[2].state?.calcs?.max || 0) - (a.fields[2].state?.calcs?.max || 0);\n });\n })\n );\n },\n ],\n }),\n body: new SceneCSSGridLayout({\n templateColumns: GRID_TEMPLATE_COLUMNS,\n autoRows: '200px',\n isLazy: true,\n children: [],\n }),\n getLayoutChild: getLayoutChild(panels, getLabel, actionsFn, metric),\n });\n}\n\nconst getLabel = (df: DataFrame) => {\n return df.name || 'No name available';\n};\n\nfunction getLayoutChild(\n panels: Record,\n getTitle: (df: DataFrame) => string,\n actionsFn: (df: DataFrame) => VizPanelState['headerActions'],\n metric: MetricFunction\n) {\n return (data: PanelData, frame: DataFrame) => {\n const existingGridItem = frame.name ? panels[frame.name] : undefined;\n\n const dataNode = new SceneDataNode({\n data: {\n ...data,\n series: [\n {\n ...frame,\n },\n ],\n },\n });\n\n if (existingGridItem) {\n existingGridItem.state.body?.setState({ $data: dataNode });\n return existingGridItem;\n }\n\n const panel = getPanelConfig(metric).setTitle(getTitle(frame)).setData(dataNode);\n\n const actions = actionsFn(frame);\n if (actions) {\n panel.setHeaderActions(actions);\n }\n\n const gridItem = new SceneCSSGridItem({\n body: panel.build(),\n });\n if (frame.name) {\n panels[frame.name] = gridItem;\n }\n\n return gridItem;\n };\n}\n","import React from 'react';\n\nimport {\n SceneObjectState,\n SceneObjectBase,\n SceneComponentProps,\n} from '@grafana/scenes';\nimport { Button } from '@grafana/ui';\n\ninterface InspectAttributeActionState extends SceneObjectState {\n attribute?: string;\n onClick: () => void;\n}\n\nexport class InspectAttributeAction extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n if (!model.state.attribute) {\n return null;\n }\n\n return (\n \n );\n };\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { DataFrame, FieldType, GrafanaTheme2, Field } from '@grafana/data';\nimport {\n CustomVariable,\n SceneComponentProps,\n SceneDataTransformer,\n sceneGraph,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n SceneQueryRunner,\n VariableDependencyConfig,\n VariableValue,\n} from '@grafana/scenes';\nimport { getTheme, useStyles2 } from '@grafana/ui';\n\nimport { GroupBySelector } from '../../../GroupBySelector';\nimport { VAR_FILTERS, VAR_PRIMARY_SIGNAL, explorationDS, VAR_FILTERS_EXPR, ALL, radioAttributesSpan } from '../../../../../utils/shared';\n\nimport { LayoutSwitcher } from '../../../LayoutSwitcher';\nimport { AddToFiltersAction } from '../../../actions/AddToFiltersAction';\nimport { map, Observable } from 'rxjs';\nimport { BaselineColor, buildAllComparisonLayout, SelectionColor } from '../../../layouts/allComparison';\n// eslint-disable-next-line no-restricted-imports\nimport { duration } from 'moment';\nimport { comparisonQuery } from '../../../queries/comparisonQuery';\nimport { buildAttributeComparison } from '../../../layouts/attributeComparison';\nimport {\n getAttributesAsOptions,\n getGroupByVariable,\n getPrimarySignalVariable,\n getTraceByServiceScene,\n getTraceExplorationScene,\n} from 'utils/utils';\nimport { InspectAttributeAction } from 'components/Explore/actions/InspectAttributeAction';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../../../../utils/analytics';\nimport { computeHighestDifference } from '../../../../../utils/comparison';\nimport { AttributesDescription } from '../Breakdown/AttributesDescription';\nimport { isEqual } from 'lodash';\n\nexport interface AttributesComparisonSceneState extends SceneObjectState {\n body?: SceneObject;\n}\n\nexport class AttributesComparisonScene extends SceneObjectBase {\n protected _variableDependency = new VariableDependencyConfig(this, {\n variableNames: [VAR_FILTERS, VAR_PRIMARY_SIGNAL],\n onReferencedVariableValueChanged: this.onReferencedVariableValueChanged.bind(this),\n });\n\n constructor(state: Partial) {\n super({\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n const variable = getGroupByVariable(this);\n\n variable.changeValueTo(ALL);\n\n this.updateData();\n\n variable.subscribeToState((newState, prevState) => {\n if (newState.value !== prevState.value) {\n this.setBody(variable);\n }\n });\n\n getPrimarySignalVariable(this).subscribeToState(() => {\n this.updateData();\n this.setBody(variable);\n });\n\n getTraceByServiceScene(this).subscribeToState((newState, prevState) => {\n if (!isEqual(newState.selection, prevState.selection)) {\n this.updateData();\n this.setBody(variable);\n }\n });\n\n sceneGraph.getTimeRange(this).subscribeToState(() => {\n this.updateData();\n });\n\n this.setBody(variable);\n }\n\n private getFilteredAttributes = (primarySignal: VariableValue): string[] => {\n return primarySignal === 'nestedSetParent<0' ? ['rootName', 'rootServiceName'] : [];\n };\n\n private updateData() {\n const byServiceScene = getTraceByServiceScene(this);\n const sceneTimeRange = sceneGraph.getTimeRange(this);\n const from = sceneTimeRange.state.value.from.unix();\n const to = sceneTimeRange.state.value.to.unix();\n const primarySignal = getPrimarySignalVariable(this).state.value;\n const filteredAttributes = this.getFilteredAttributes(primarySignal);\n\n this.setState({\n $data: new SceneDataTransformer({\n $data: new SceneQueryRunner({\n datasource: explorationDS,\n queries: [buildQuery(from, to, comparisonQuery(byServiceScene.state.selection))],\n }),\n transformations: [\n () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n const groupedFrames = groupFrameListByAttribute(data);\n return Object.entries(groupedFrames)\n .filter(([attribute, _]) => !filteredAttributes.includes(attribute))\n .map(([attribute, frames]) => frameGroupToDataframe(attribute, frames))\n .sort((a, b) => {\n const aCompare = computeHighestDifference(a);\n const bCompare = computeHighestDifference(b);\n return Math.abs(bCompare.maxDifference) - Math.abs(aCompare.maxDifference);\n });\n })\n );\n },\n ],\n }),\n });\n }\n\n private onReferencedVariableValueChanged() {\n const variable = getGroupByVariable(this);\n variable.changeValueTo(ALL);\n this.setBody(variable);\n }\n\n private onAddToFiltersClick(payload: any) {\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.comparison_add_to_filters_clicked,\n payload\n );\n }\n\n private setBody = (variable: CustomVariable) => {\n const traceExploration = getTraceExplorationScene(this);\n this.setState({\n body:\n variable.hasAllValue() || variable.getValue() === ALL\n ? buildAllComparisonLayout(\n (frame) =>\n new InspectAttributeAction({\n attribute: frame.name,\n onClick: () => this.onChange(frame.name || ''),\n }),\n traceExploration.getMetricFunction()\n )\n : buildAttributeComparison(\n this,\n variable,\n (frame: DataFrame) => [\n new AddToFiltersAction({\n frame,\n labelKey: variable.getValueText(),\n onClick: this.onAddToFiltersClick,\n }),\n ],\n traceExploration.getMetricFunction()\n ),\n });\n };\n\n public onChange = (value: string, ignore?: boolean) => {\n const variable = getGroupByVariable(this);\n variable.changeValueTo(value, undefined, !ignore);\n\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.select_attribute_in_comparison_clicked,\n { value }\n );\n };\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n const variable = getGroupByVariable(model);\n const traceExploration = getTraceExplorationScene(model);\n const { attributes } = getTraceByServiceScene(model).useState();\n const styles = useStyles2(getStyles);\n\n return (\n
\n \n\n
\n {attributes?.length && (\n
\n \n
\n )}\n {body instanceof LayoutSwitcher && (\n
\n \n
\n )}\n
\n
{body && }
\n
\n );\n };\n}\n\nexport function buildQuery(from: number, to: number, compareQuery: string) {\n const dur = duration(to - from, 's');\n const durString = `${dur.asSeconds()}s`;\n return {\n refId: 'A',\n query: `{${VAR_FILTERS_EXPR}} | compare(${compareQuery})`,\n step: durString,\n queryType: 'traceql',\n tableType: 'spans',\n limit: 100,\n spss: 10,\n filters: [],\n };\n}\n\nconst groupFrameListByAttribute = (frames: DataFrame[]) => {\n return frames.reduce((acc: Record, series) => {\n const numberField = series.fields.find((field) => field.type === 'number');\n const nonInternalKey = Object.keys(numberField?.labels || {}).find((key) => !key.startsWith('__'));\n if (nonInternalKey) {\n acc[nonInternalKey] = [...(acc[nonInternalKey] || []), series];\n }\n return acc;\n }, {});\n};\n\nconst frameGroupToDataframe = (attribute: string, frames: DataFrame[]): DataFrame => {\n const newFrame: DataFrame = {\n name: attribute,\n refId: attribute,\n fields: [],\n length: 0,\n };\n\n const valueNameField: Field = {\n name: 'Value',\n type: FieldType.string,\n values: [],\n config: {},\n labels: { [attribute]: attribute },\n };\n const baselineField: Field = {\n name: 'Baseline',\n type: FieldType.number,\n values: [],\n config: {},\n };\n const selectionField: Field = {\n name: 'Selection',\n type: FieldType.number,\n values: [],\n config: {},\n };\n\n const values = frames.reduce((acc: Record, frame) => {\n const numberField = frame.fields.find((field) => field.type === 'number');\n const val = numberField?.labels?.[attribute];\n if (val) {\n acc[val] = [...(acc[val] || []), numberField];\n }\n return acc;\n }, {});\n\n const baselineTotal = getTotalForMetaType(frames, 'baseline', values);\n const selectionTotal = getTotalForMetaType(frames, 'selection', values);\n\n newFrame.length = Object.keys(values).length;\n\n Object.entries(values).forEach(([value, fields]) => {\n valueNameField.values.push(value);\n baselineField.values.push(\n fields.find((field) => field.labels?.['__meta_type'] === '\"baseline\"')?.values[0] / baselineTotal\n );\n selectionField.values.push(\n fields.find((field) => field.labels?.['__meta_type'] === '\"selection\"')?.values[0] / selectionTotal\n );\n });\n newFrame.fields = [valueNameField, baselineField, selectionField];\n return newFrame;\n};\n\nfunction getTotalForMetaType(frames: DataFrame[], metaType: string, values: Record) {\n // calculate total from values so that we are properly normalizing the field values when dividing by the total\n const calculatedTotal = Object.values(values).reduce((total, fields) => {\n const field = fields.find((field) => field.labels?.['__meta_type'] === `\"${metaType}\"`);\n return total + (field?.values[0] || 0);\n }, 0);\n\n let total = frames.reduce((currentValue, frame) => {\n const field = frame.fields.find((f) => f.type === 'number');\n if (field?.labels?.['__meta_type'] === `\"${metaType}_total\"`) {\n return field.values[0];\n }\n return currentValue;\n }, 1);\n\n // if the baseline_total or selection_total field is found, but the total value is less than the calculated total\n // we need to return the calculated total otherwise the values will be skewed\n // e.g. calculatedTotal = 100, total = 80\n // if we return the total, the field values will be normalized via 80/100 = 1.25 (incorrect)\n // if we return the calculated total, the field values will be normalized via 100/100 = 1 (correct)\n if (total < calculatedTotal) {\n return calculatedTotal === 0 ? 1 : calculatedTotal; // fallback to 1 to avoid division by zero\n }\n\n // 1 if the baseline_total or selection_total field is not found\n // 0 if the baseline_total or selection_total field is found, but the total value is 0\n if (total === 1 || total === 0) {\n return calculatedTotal === 0 ? 1 : calculatedTotal;\n }\n\n return total;\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n flexGrow: 1,\n display: 'flex',\n minHeight: '100%',\n flexDirection: 'column',\n }),\n content: css({\n flexGrow: 1,\n display: 'flex',\n paddingTop: theme.spacing(0),\n }),\n controls: css({\n flexGrow: 0,\n display: 'flex',\n alignItems: 'top',\n gap: theme.spacing(2),\n }),\n controlsRight: css({\n flexGrow: 0,\n display: 'flex',\n justifyContent: 'flex-end',\n }),\n controlsLeft: css({\n display: 'flex',\n justifyContent: 'flex-left',\n justifyItems: 'left',\n width: '100%',\n flexDirection: 'column',\n }),\n };\n}\n","import React from 'react';\n\nimport {\n SceneComponentProps,\n SceneFlexItem,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n VariableDependencyConfig,\n} from '@grafana/scenes';\nimport { AttributesComparisonScene } from './AttributesComparisonScene';\nimport { MetricFunction, VAR_METRIC } from '../../../../../utils/shared';\nimport { getMetricVariable, getTraceByServiceScene } from '../../../../../utils/utils';\nimport { getDefaultSelectionForMetric } from '../../../../../utils/comparison';\n\ninterface ComparisonSceneState extends SceneObjectState {\n body?: SceneObject;\n}\n\nexport class ComparisonScene extends SceneObjectBase {\n protected _variableDependency = new VariableDependencyConfig(this, {\n variableNames: [VAR_METRIC],\n });\n\n constructor(state: Partial) {\n super({ ...state });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n const metricVar = getMetricVariable(this);\n const metric = metricVar.getValue() as MetricFunction;\n\n const tracesByService = getTraceByServiceScene(this);\n if (!tracesByService.state.selection) {\n const selection = getDefaultSelectionForMetric(metric);\n if (selection) {\n tracesByService.setState({ selection });\n }\n }\n\n this.updateBody();\n }\n\n private updateBody() {\n this.setState({ body: new AttributesComparisonScene({}) });\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n return body && ;\n };\n}\n\nexport function buildComparisonScene() {\n return new SceneFlexItem({\n body: new ComparisonScene({}),\n });\n}\n","import { css } from '@emotion/css';\nimport { SceneObjectBase, SceneComponentProps, SceneObject, sceneGraph, SceneObjectState } from '@grafana/scenes';\nimport { GrafanaTheme2, LoadingState } from '@grafana/data';\nimport { useStyles2, Box, Stack, TabsBar, Tab } from '@grafana/ui';\nimport React, { useEffect, useState } from 'react';\nimport {\n getTraceExplorationScene,\n getTraceByServiceScene,\n getExceptionsScene,\n getFiltersVariable,\n getPrimarySignalVariable,\n} from 'utils/utils';\nimport { ShareExplorationAction } from '../../actions/ShareExplorationAction';\nimport { buildSpansScene } from './Spans/SpansScene';\nimport { buildStructureScene } from './Structure/StructureScene';\nimport { buildBreakdownScene } from './Breakdown/BreakdownScene';\nimport { buildExceptionsScene } from './Exceptions/ExceptionsScene';\nimport { MetricFunction } from 'utils/shared';\nimport { buildComparisonScene } from './Comparison/ComparisonScene';\nimport { useMount } from 'react-use';\nimport { ActionViewType } from 'exposedComponents/types';\n\ninterface ActionViewDefinition {\n displayName: (metric: MetricFunction) => string;\n value: ActionViewType;\n getScene: (metric: MetricFunction) => SceneObject;\n}\n\nexport const actionViewsDefinitions: ActionViewDefinition[] = [\n { displayName: breakdownDisplayName, value: 'breakdown', getScene: buildBreakdownScene },\n { displayName: structureDisplayName, value: 'structure', getScene: buildStructureScene },\n { displayName: comparisonDisplayName, value: 'comparison', getScene: buildComparisonScene },\n { displayName: exceptionsDisplayName, value: 'exceptions', getScene: buildExceptionsScene },\n {\n displayName: tracesDisplayName,\n value: 'traceList',\n getScene: buildSpansScene,\n },\n];\n\nexport interface TabsBarSceneState extends SceneObjectState {}\n\nexport class TabsBarScene extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n const styles = useStyles2(getStyles);\n const [exceptionsCount, setExceptionsCount] = useState(0);\n\n const metricScene = getTraceByServiceScene(model);\n const exploration = getTraceExplorationScene(model);\n\n const { actionView } = metricScene.useState();\n const { value: metric } = exploration.getMetricVariable().useState();\n const { allowedActionViews } = exploration.useState();\n const dataState = sceneGraph.getData(model).useState();\n const tracesCount = dataState.data?.series?.[0]?.length;\n\n const enabledViews = actionViewsDefinitions.filter((view) => {\n if (view.value === 'exceptions' && metric !== 'errors') {\n return false;\n }\n // If allowedActionViews is defined and has items, use it for filtering\n // Otherwise, include all views (except exceptions when metric is not errors, handled above)\n return !allowedActionViews?.length || allowedActionViews.includes(view.value);\n });\n\n // Get state variables that affect exceptions data\n const filtersVariable = getFiltersVariable(model);\n const primarySignalVariable = getPrimarySignalVariable(model);\n const timeRange = sceneGraph.getTimeRange(model);\n const { filters } = filtersVariable.useState();\n const { value: primarySignal } = primarySignalVariable.useState();\n const { value: timeRangeValue } = timeRange.useState();\n\n useEffect(() => {\n if (metric !== 'errors') {\n setExceptionsCount(0);\n return;\n }\n\n const exceptionsScene = getExceptionsScene(model);\n if (!exceptionsScene) {\n setExceptionsCount(0);\n return;\n }\n\n setExceptionsCount(exceptionsScene.getExceptionsCount());\n const subscription = exceptionsScene.subscribeToState((newState, prevState) => {\n if (newState.exceptionsCount !== prevState.exceptionsCount) {\n setExceptionsCount(newState.exceptionsCount || 0);\n }\n });\n\n return () => {\n subscription.unsubscribe();\n };\n }, [metric, model, actionView, filters, primarySignal, timeRangeValue]);\n\n useEffect(() => {\n if (metricScene.state.hasSetView) {\n return;\n }\n\n // Set the view to traceList if the data is loaded and the traces count is greater than 20\n if (\n exploration.state.embedded &&\n dataState.data?.state === LoadingState.Done &&\n tracesCount !== undefined &&\n tracesCount > 20\n ) {\n metricScene.setState({ hasSetView: true });\n metricScene.setActionView('traceList');\n return;\n }\n }, [dataState.data?.state, exploration.state.embedded, metricScene, tracesCount]);\n\n useMount(() => {\n if (enabledViews.length === 1) {\n metricScene.setActionView(enabledViews[0].value);\n }\n });\n\n if (enabledViews.length === 1) {\n return null;\n }\n\n return (\n \n
\n \n \n \n
\n\n \n {enabledViews.map((tab, index) => {\n return (\n metricScene.setActionView(tab.value)}\n counter={\n tab.value === 'traceList' ? tracesCount : tab.value === 'exceptions' ? exceptionsCount : undefined\n }\n />\n );\n })}\n \n
\n );\n };\n}\n\nfunction breakdownDisplayName(_: MetricFunction) {\n return 'Breakdown';\n}\n\nfunction comparisonDisplayName(_: MetricFunction) {\n return 'Comparison';\n}\n\nexport function structureDisplayName(metric: MetricFunction) {\n switch (metric) {\n case 'rate':\n return 'Service structure';\n case 'errors':\n return 'Root cause errors';\n case 'duration':\n return 'Root cause latency';\n }\n}\n\nfunction tracesDisplayName(metric: MetricFunction) {\n return metric === 'errors' ? 'Errored traces' : metric === 'duration' ? 'Slow traces' : 'Traces';\n}\n\nfunction exceptionsDisplayName(_: MetricFunction) {\n return 'Exceptions';\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n actions: css({\n [theme.breakpoints.up(theme.breakpoints.values.md)]: {\n position: 'absolute',\n right: 0,\n top: 5,\n zIndex: 2,\n },\n }),\n };\n}\n","import React from 'react';\n\nimport {\n SceneComponentProps,\n SceneDataTransformer,\n SceneFlexItem,\n SceneFlexLayout,\n sceneGraph,\n SceneObjectBase,\n SceneObjectState,\n} from '@grafana/scenes';\nimport { GrafanaTheme2, LoadingState } from '@grafana/data';\nimport { explorationDS, MetricFunction } from 'utils/shared';\nimport { EmptyStateScene } from 'components/states/EmptyState/EmptyStateScene';\nimport { LoadingStateScene } from 'components/states/LoadingState/LoadingStateScene';\nimport { SkeletonComponent } from '../ByFrameRepeater';\nimport { barsPanelConfig } from '../panels/barsPanel';\nimport { getMetricsTempoQuery } from '../queries/generateMetricsQuery';\nimport { StepQueryRunner } from '../queries/StepQueryRunner';\nimport { RadioButtonList, useStyles2 } from '@grafana/ui';\nimport { css } from '@emotion/css';\nimport { fieldHasEmptyValues, getOpenTrace, getTraceExplorationScene } from '../../../utils/utils';\nimport { MINI_PANEL_HEIGHT } from './TracesByServiceScene';\nimport { buildHistogramQuery } from '../queries/histogram';\nimport { histogramPanelConfig } from '../panels/histogram';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from 'utils/analytics';\nimport { exemplarsTransformations, removeExemplarsTransformation } from '../../../utils/exemplars';\nimport { StreamingIndicator } from '../StreamingIndicator';\n\nexport interface MiniREDPanelState extends SceneObjectState {\n panel?: SceneFlexLayout;\n metric: MetricFunction;\n isStreaming?: boolean;\n}\n\nexport class MiniREDPanel extends SceneObjectBase {\n constructor(state: MiniREDPanelState) {\n super({\n isStreaming: false,\n ...state,\n });\n\n this.addActivationHandler(() => {\n this._onActivate();\n const data = sceneGraph.getData(this);\n\n this._subs.add(\n data.subscribeToState((data) => {\n this.setState({ isStreaming: data.data?.state === LoadingState.Streaming });\n\n if (data.data?.state === LoadingState.Done) {\n if (data.data.series.length === 0 || data.data.series[0].length === 0 || fieldHasEmptyValues(data)) {\n this.setState({\n panel: new SceneFlexLayout({\n children: [\n new SceneFlexItem({\n body: new EmptyStateScene({\n imgWidth: 110,\n }),\n }),\n ],\n }),\n });\n } else {\n this.setState({\n panel: this.getVizPanel(this.state.metric),\n });\n }\n } else if (data.data?.state === LoadingState.Loading) {\n this.setState({\n panel: new SceneFlexLayout({\n direction: 'column',\n maxHeight: MINI_PANEL_HEIGHT,\n height: MINI_PANEL_HEIGHT,\n children: [\n new LoadingStateScene({\n component: () => SkeletonComponent(1),\n }),\n ],\n }),\n });\n }\n })\n );\n });\n }\n\n private _onActivate() {\n this.setState({\n $data: new SceneDataTransformer({\n $data: new StepQueryRunner({\n maxDataPoints: this.state.metric === 'duration' ? 24 : 64,\n datasource: explorationDS,\n queries: [this.state.metric === 'duration' ? buildHistogramQuery() : getMetricsTempoQuery({ metric: this.state.metric, sample: true })],\n }),\n transformations:\n this.state.metric === 'duration'\n ? [...removeExemplarsTransformation()]\n : [...exemplarsTransformations(getOpenTrace(this))],\n }),\n panel: this.getVizPanel(this.state.metric),\n });\n }\n\n private getVizPanel(metric: MetricFunction) {\n return new SceneFlexLayout({\n direction: 'row',\n children: [\n new SceneFlexItem({\n body: metric === 'duration' ? this.getDurationVizPanel() : this.getRateOrErrorPanel(metric),\n }),\n ],\n });\n }\n\n private getRateOrErrorPanel(metric: MetricFunction) {\n const panel = barsPanelConfig(metric).setHoverHeader(true).setDisplayMode('transparent');\n if (metric === 'rate') {\n panel.setCustomFieldConfig('axisLabel', 'span/s');\n } else if (metric === 'errors') {\n panel.setTitle('Errors rate').setCustomFieldConfig('axisLabel', 'error/s').setColor({\n fixedColor: 'semi-dark-red',\n mode: 'fixed',\n });\n }\n\n return panel.build();\n }\n\n private getDurationVizPanel() {\n return histogramPanelConfig()\n .setTitle('Histogram by duration')\n .setHoverHeader(true)\n .setDisplayMode('transparent')\n .build();\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { panel, isStreaming } = model.useState();\n const styles = useStyles2(getStyles);\n const traceExploration = getTraceExplorationScene(model);\n\n const selectMetric = () => {\n reportAppInteraction(USER_EVENTS_PAGES.common, USER_EVENTS_ACTIONS.common.metric_changed, {\n metric: model.state.metric,\n location: 'panel',\n });\n traceExploration.onChangeMetricFunction(model.state.metric);\n };\n\n if (!panel) {\n return;\n }\n\n return (\n
\n
\n selectMetric()}\n value={'not-selected'}\n />\n
\n {isStreaming && (\n
\n \n
\n )}\n \n
\n );\n };\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n flex: 1,\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n border: `1px solid ${theme.colors.border.weak}`,\n borderRadius: '2px',\n background: theme.colors.background.primary,\n paddingTop: '8px',\n\n 'section, section:hover': {\n borderColor: 'transparent',\n },\n\n '& .show-on-hover': {\n display: 'none',\n },\n }),\n headerWrapper: css({\n display: 'flex',\n alignItems: 'center',\n position: 'absolute',\n top: '4px',\n left: '8px',\n zIndex: 2,\n }),\n clickable: css({\n cursor: 'pointer',\n maxHeight: MINI_PANEL_HEIGHT,\n\n ['[class*=\"loading-state-scene\"]']: {\n height: MINI_PANEL_HEIGHT,\n overflow: 'hidden',\n },\n\n ':hover': {\n background: theme.colors.background.secondary,\n input: {\n backgroundColor: '#ffffff',\n border: '5px solid #3D71D9',\n cursor: 'pointer',\n },\n },\n }),\n radioButton: css({\n display: 'block',\n }),\n indicatorWrapper: css({\n position: 'absolute',\n top: '4px',\n right: '8px',\n zIndex: 2,\n }),\n };\n}\n","import React from 'react';\n\nimport {\n DashboardCursorSync,\n GrafanaTheme2,\n MetricFindValue,\n dateTime,\n DataFrame,\n GetTagResponse,\n} from '@grafana/data';\nimport {\n behaviors,\n SceneComponentProps,\n SceneDataTransformer,\n SceneFlexItem,\n SceneFlexLayout,\n sceneGraph,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n SceneObjectUrlSyncConfig,\n SceneObjectUrlValues,\n SceneQueryRunner,\n SceneTimeRange,\n} from '@grafana/scenes';\n\nimport { REDPanel } from './REDPanel';\nimport {\n MakeOptional,\n explorationDS,\n VAR_FILTERS_EXPR,\n VAR_DATASOURCE_EXPR,\n MetricFunction,\n ComparisonSelection,\n ALL,\n VAR_LATENCY_THRESHOLD_EXPR,\n filterStreamingProgressTransformations,\n} from '../../../utils/shared';\nimport { getDataSourceSrv } from '@grafana/runtime';\nimport { TabsBarScene, actionViewsDefinitions } from './Tabs/TabsBarScene';\nimport { isEqual } from 'lodash';\nimport {\n getDatasourceVariable,\n getGroupByVariable,\n getSpanListColumnsVariable,\n getTraceExplorationScene,\n} from 'utils/utils';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../../utils/analytics';\nimport { MiniREDPanel } from './MiniREDPanel';\nimport { Icon, LinkButton, Stack, Tooltip, useStyles2 } from '@grafana/ui';\nimport { css } from '@emotion/css';\nimport { getDefaultSelectionForMetric } from '../../../utils/comparison';\nimport { map, Observable } from 'rxjs';\nimport { ActionViewType } from 'exposedComponents/types';\nimport { ExceptionsScene } from './Tabs/Exceptions/ExceptionsScene';\n\nexport interface TraceSceneState extends SceneObjectState {\n body: SceneFlexLayout;\n actionView?: ActionViewType;\n\n attributes?: string[];\n selection?: ComparisonSelection;\n hasSetView?: boolean;\n exceptionsScene?: ExceptionsScene;\n}\n\nexport class TracesByServiceScene extends SceneObjectBase {\n protected _urlSync = new SceneObjectUrlSyncConfig(this, { keys: ['actionView', 'selection'] });\n\n public constructor(state: MakeOptional) {\n super({\n body: state.body ?? new SceneFlexLayout({ children: [] }),\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n // Get the initial actionView from URL if it exists i.e. coming from a bookmark\n const params = new URLSearchParams(window.location.search);\n const urlActionView = params.get('actionView');\n if (urlActionView && actionViewsDefinitions.find((v) => v.value === urlActionView)) {\n this.setState({ actionView: urlActionView as ActionViewType });\n }\n\n this.updateBody();\n\n const exploration = getTraceExplorationScene(this);\n const metricVariable = exploration.getMetricVariable();\n this._subs.add(\n metricVariable.subscribeToState((newState, prevState) => {\n if (newState.value !== prevState.value) {\n const selection = getDefaultSelectionForMetric(newState.value as MetricFunction);\n if (selection) {\n this.setState({ selection });\n }\n this.updateQueryRunner(newState.value as MetricFunction);\n this.updateExceptionsScene(newState.value as MetricFunction);\n this.updateBody();\n }\n })\n );\n\n // Initialize exceptions scene for the current metric\n this.updateExceptionsScene(metricVariable.getValue() as MetricFunction);\n\n this._subs.add(\n this.subscribeToState((newState, prevState) => {\n const timeRange = sceneGraph.getTimeRange(this);\n const selectionFrom = newState.selection?.timeRange?.from;\n // clear selection if it's out of time range\n if (selectionFrom && selectionFrom < timeRange.state.value.from.unix()) {\n this.setState({ selection: undefined });\n }\n\n // Set group by to All when starting a comparison\n if (!isEqual(newState.selection, prevState.selection)) {\n const groupByVar = getGroupByVariable(this);\n groupByVar.changeValueTo(ALL);\n this.updateQueryRunner(metricVariable.getValue() as MetricFunction);\n }\n })\n );\n\n this._subs.add(\n getDatasourceVariable(this).subscribeToState(() => {\n this.updateAttributes();\n })\n );\n\n this._subs.add(\n getSpanListColumnsVariable(this).subscribeToState(() => {\n this.updateQueryRunner(metricVariable.getValue() as MetricFunction);\n })\n );\n\n this.updateQueryRunner(metricVariable.getValue() as MetricFunction);\n this.updateAttributes();\n }\n\n updateBody() {\n const traceExploration = getTraceExplorationScene(this);\n const metric = traceExploration.getMetricVariable().getValue();\n const actionViewDef = actionViewsDefinitions.find((v) => v.value === this.state.actionView);\n\n this.setState({\n body: buildGraphScene(\n metric as MetricFunction,\n actionViewDef ? [actionViewDef?.getScene(metric as MetricFunction)] : undefined\n ),\n });\n\n if (this.state.actionView === undefined) {\n this.setActionView('breakdown');\n }\n }\n\n private updateExceptionsScene(metric: MetricFunction) {\n if (metric === 'errors') {\n if (!this.state.exceptionsScene) {\n const exceptionsScene = new ExceptionsScene({});\n this.setState({\n exceptionsScene\n });\n \n // Activate the scene after it's been set in state to ensure it starts fetching data\n setTimeout(() => {\n exceptionsScene.activate();\n }, 0);\n }\n } else {\n // Remove exceptions scene if metric is not errors\n if (this.state.exceptionsScene) {\n this.setState({\n exceptionsScene: undefined\n });\n }\n }\n }\n\n private async updateAttributes() {\n const ds = await getDataSourceSrv().get(VAR_DATASOURCE_EXPR, { __sceneObject: { value: this } });\n\n if (!ds) {\n return;\n }\n\n const timeRange = sceneGraph.getTimeRange(this);\n const options = {\n timeRange: timeRange.state.value,\n filters: []\n };\n\n ds.getTagKeys?.(options).then((tagKeys: GetTagResponse | MetricFindValue[]) => {\n let keys: MetricFindValue[] = [];\n if ('data' in tagKeys) {\n keys = (tagKeys as GetTagResponse).data;\n } else {\n keys = tagKeys;\n }\n const attributes = keys.map((l) => l.text);\n if (attributes !== this.state.attributes) {\n this.setState({ attributes });\n }\n });\n }\n\n getUrlState() {\n return {\n actionView: this.state.actionView,\n selection: this.state.selection ? JSON.stringify(this.state.selection) : undefined,\n };\n }\n\n updateFromUrl(values: SceneObjectUrlValues) {\n if (typeof values.actionView === 'string') {\n if (this.state.actionView !== values.actionView) {\n const actionViewDef = actionViewsDefinitions.find((v) => v.value === values.actionView);\n if (actionViewDef) {\n this.setActionView(actionViewDef.value);\n }\n }\n } else if (values.actionView === null) {\n this.setActionView('breakdown');\n }\n\n if (typeof values.selection === 'string') {\n const newSelection = JSON.parse(values.selection);\n if (!isEqual(newSelection, this.state.selection)) {\n this.setState({ selection: newSelection });\n }\n }\n }\n\n onUserUpdateSelection(newSelection: ComparisonSelection) {\n this._urlSync.performBrowserHistoryAction(() => {\n this.setState({ selection: newSelection });\n });\n }\n\n public setActionView(actionView?: ActionViewType) {\n const { body } = this.state;\n const actionViewDef = actionViewsDefinitions.find((v) => v.value === actionView);\n const traceExploration = getTraceExplorationScene(this);\n const metric = traceExploration.getMetricVariable().getValue();\n\n if (body.state.children.length > 1) {\n if (actionViewDef) {\n let scene: SceneObject;\n if (actionView === 'exceptions' && this.state.exceptionsScene) {\n // Use the persistent exceptions scene to maintain data subscription\n scene = new SceneFlexItem({\n body: this.state.exceptionsScene,\n });\n } else {\n scene = actionViewDef.getScene(metric as MetricFunction);\n }\n \n body.setState({\n children: [...body.state.children.slice(0, 2), scene],\n });\n reportAppInteraction(USER_EVENTS_PAGES.analyse_traces, USER_EVENTS_ACTIONS.analyse_traces.action_view_changed, {\n oldAction: this.state.actionView,\n newAction: actionView,\n });\n this.setState({ actionView: actionViewDef.value });\n }\n }\n }\n\n private updateQueryRunner(metric: MetricFunction) {\n const selection = this.state.selection;\n const columns = getSpanListColumnsVariable(this).getValue()?.toString() ?? '';\n\n this.setState({\n $data: new SceneDataTransformer({\n $data: new SceneQueryRunner({\n datasource: explorationDS,\n queries: [buildQuery(metric, columns, selection)],\n $timeRange: timeRangeFromSelection(selection),\n }),\n transformations: [...filterStreamingProgressTransformations, ...spanListTransformations],\n }),\n });\n }\n\n static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n const styles = useStyles2(getStyles);\n\n return (\n <>\n
\n } placement={'right-start'} interactive>\n \n Select metric type \n \n \n
\n \n \n );\n };\n}\n\nconst MetricTypeTooltip = () => {\n const styles = useStyles2(getStyles);\n\n return (\n \n
RED metrics for traces
\n \n Explore rate, errors, and duration (RED) metrics generated from traces by Tempo.\n \n
\n
\n Rate - Spans per second that match your filter, useful to\n find unusual spikes in activity\n
\n
\n Errors -Spans that are failing, overall issues in tracing\n ecosystem\n
\n
\n Duration - Amount of time those spans take, represented as a\n heat map (responds time, latency)\n
\n
\n\n
\n \n reportAppInteraction(USER_EVENTS_PAGES.common, USER_EVENTS_ACTIONS.common.metric_docs_link_clicked)\n }\n >\n Read documentation\n \n
\n
\n );\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n title: css({\n label: 'title',\n display: 'flex',\n gap: theme.spacing.x0_5,\n fontSize: theme.typography.bodySmall.fontSize,\n paddingBottom: theme.spacing.x0_5,\n alignItems: 'center',\n }),\n hand: css({\n label: 'hand',\n cursor: 'pointer',\n }),\n tooltip: {\n label: 'tooltip',\n title: css({\n fontSize: '14px',\n fontWeight: 500,\n }),\n subtitle: css({\n marginBottom: theme.spacing.x1,\n }),\n text: css({\n label: 'text',\n color: theme.colors.text.secondary,\n\n div: {\n marginBottom: theme.spacing.x0_5,\n },\n }),\n emphasize: css({\n label: 'emphasize',\n color: theme.colors.text.primary,\n }),\n button: css({\n marginBottom: theme.spacing.x0_5,\n }),\n },\n };\n}\n\nconst MAIN_PANEL_HEIGHT = 240;\nexport const MINI_PANEL_HEIGHT = (MAIN_PANEL_HEIGHT - 8) / 2;\n\nexport function buildQuery(type: MetricFunction, columns: string, selection?: ComparisonSelection) {\n const selectQuery = columns !== '' ? ` | select(${columns})` : '';\n let typeQuery = '';\n switch (type) {\n case 'errors':\n typeQuery = ' && status = error';\n break;\n case 'duration':\n if (selection) {\n const duration = [];\n if (selection.duration?.from.length) {\n duration.push(`duration >= ${selection.duration.from}`);\n }\n if (selection.duration?.to.length) {\n duration.push(`duration <= ${selection.duration.to}`);\n }\n if (duration.length) {\n typeQuery += '&& ' + duration.join(' && ');\n }\n }\n if (!typeQuery.length) {\n typeQuery = `&& duration > ${VAR_LATENCY_THRESHOLD_EXPR}`;\n }\n break;\n }\n return {\n refId: 'A',\n query: `{${VAR_FILTERS_EXPR}${typeQuery}}${selectQuery}`,\n queryType: 'traceql',\n tableType: 'spans',\n limit: 200,\n spss: 10,\n filters: [],\n };\n}\n\nfunction timeRangeFromSelection(selection?: ComparisonSelection) {\n const fromTimerange = (selection?.timeRange?.from || 0) * 1000;\n const toTimerange = (selection?.timeRange?.to || 0) * 1000;\n return fromTimerange && toTimerange\n ? new SceneTimeRange({\n from: fromTimerange.toFixed(0),\n to: toTimerange.toFixed(0),\n value: {\n from: dateTime(fromTimerange),\n to: dateTime(toTimerange),\n raw: { from: dateTime(fromTimerange), to: dateTime(toTimerange) },\n },\n })\n : undefined;\n}\n\nfunction buildGraphScene(metric: MetricFunction, children?: SceneObject[]) {\n const secondaryPanel =\n metric === 'rate'\n ? new MiniREDPanel({ metric: 'errors' })\n : new MiniREDPanel({\n metric: 'rate',\n });\n\n const tertiaryPanel =\n metric === 'duration'\n ? new MiniREDPanel({\n metric: 'errors',\n })\n : new MiniREDPanel({ metric: 'duration' });\n\n return new SceneFlexLayout({\n direction: 'column',\n $behaviors: [\n new behaviors.CursorSync({\n key: 'metricCrosshairSync',\n sync: DashboardCursorSync.Crosshair,\n }),\n ],\n children: [\n new SceneFlexLayout({\n direction: 'row',\n ySizing: 'content',\n children: [\n new SceneFlexItem({\n minHeight: MAIN_PANEL_HEIGHT,\n maxHeight: MAIN_PANEL_HEIGHT,\n width: '60%',\n body: new REDPanel({}),\n }),\n new SceneFlexLayout({\n direction: 'column',\n minHeight: MAIN_PANEL_HEIGHT,\n maxHeight: MAIN_PANEL_HEIGHT,\n children: [\n new SceneFlexItem({\n minHeight: MINI_PANEL_HEIGHT,\n maxHeight: MINI_PANEL_HEIGHT,\n height: MINI_PANEL_HEIGHT,\n\n body: secondaryPanel,\n }),\n new SceneFlexItem({\n minHeight: MINI_PANEL_HEIGHT,\n maxHeight: MINI_PANEL_HEIGHT,\n height: MINI_PANEL_HEIGHT,\n\n ySizing: 'fill',\n\n body: tertiaryPanel,\n }),\n ],\n }),\n ],\n }),\n new SceneFlexItem({\n ySizing: 'content',\n body: new TabsBarScene({}),\n }),\n ...(children || []),\n ],\n });\n}\n\nconst spanListTransformations = [\n () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n return data.map((df) => ({\n ...df,\n fields: df.fields.filter((f) => !f.name.startsWith('nestedSet')),\n }));\n })\n );\n },\n {\n id: 'sortBy',\n options: {\n fields: {},\n sort: [\n {\n field: 'Duration',\n desc: true,\n },\n ],\n },\n },\n {\n id: 'organize',\n options: {\n indexByName: {\n 'Start time': 0,\n status: 1,\n 'Trace Service': 2,\n 'Trace Name': 3,\n Duration: 4,\n 'Span ID': 5,\n 'span.http.method': 6,\n 'span.http.request.method': 7,\n 'span.http.path': 8,\n 'span.http.route': 9,\n 'span.http.status_code': 10,\n 'span.http.response.status_code': 11,\n },\n },\n },\n];\n","import { SceneObjectState, SceneObjectBase, SceneComponentProps } from '@grafana/scenes';\nimport React from 'react';\nimport { EmptyState } from './EmptyState';\n\ninterface EmptyStateSceneState extends SceneObjectState {\n message?: string;\n remedyMessage?: string;\n imgWidth?: number;\n padding?: string;\n}\n\nexport class EmptyStateScene extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n const { message, remedyMessage, imgWidth, padding } = model.useState();\n return ;\n };\n}\n","import React from 'react';\n\nimport { DataFrame } from '@grafana/data';\nimport { SceneObjectState, SceneObjectBase, SceneComponentProps, AdHocFiltersVariable } from '@grafana/scenes';\nimport { Button } from '@grafana/ui';\nimport { getFiltersVariable, getLabelValue } from '../../../utils/utils';\nimport { DATABASE_CALLS_KEY } from 'pages/Explore/primary-signals';\n\nexport interface AddToFiltersActionState extends SceneObjectState {\n frame: DataFrame;\n onClick: (payload: any) => void;\n labelKey?: string;\n}\n\nexport class AddToFiltersAction extends SceneObjectBase {\n public onClick = () => {\n const variable = getFiltersVariable(this);\n\n const labels = this.state.frame.fields.find((f) => f.labels)?.labels ?? {};\n if (this.state.labelKey) {\n if (!labels[this.state.labelKey]) {\n return;\n }\n } else {\n if (Object.keys(labels).length !== 1) {\n return;\n }\n }\n\n const labelName = this.state.labelKey ?? Object.keys(labels)[0];\n const value = getLabelValue(this.state.frame, this.state.labelKey);\n\n addToFilters(variable, labelName, value);\n\n this.state.onClick({ labelName });\n };\n\n public static Component = ({ model }: SceneComponentProps) => {\n const key = model.state?.labelKey ?? '';\n const field = model.state?.frame.fields.filter((x) => x.type !== 'time');\n const value = field?.[0]?.labels?.[key] ?? '';\n const filterExists = filterExistsForKey(getFiltersVariable(model), key, value.replace(/\"/g, ''));\n\n if (!filterExists) {\n return (\n \n );\n }\n return <>;\n };\n}\n\nexport const addToFilters = (variable: AdHocFiltersVariable, label: string, value: string) => {\n // ensure we set the new filter with latest value\n // and remove any existing filter for the same key\n // and also keep span.db.system.name as it is a primary filter\n const filtersWithoutNew = variable.state.filters.filter((f) => f.key === DATABASE_CALLS_KEY || f.key !== label);\n\n // TODO: Replace it with new API introduced in https://github.com/grafana/scenes/issues/1103\n // At the moment AdHocFiltersVariable doesn't support pushing new history entry on change\n history.pushState(null, '');\n\n variable.setState({\n filters: [\n ...filtersWithoutNew,\n {\n key: label,\n operator: '=',\n value: value,\n },\n ],\n });\n};\n\nexport const filterExistsForKey = (model: AdHocFiltersVariable, key: string, value: string) => {\n const variable = getFiltersVariable(model);\n return variable.state.filters.find((f) => f.key === key && f.value === value);\n};\n","import { VAR_FILTERS_EXPR } from '../../../utils/shared';\n\nexport function buildHistogramQuery() {\n return {\n refId: 'A',\n query: `{${VAR_FILTERS_EXPR}} | histogram_over_time(duration) with(sample=true)`,\n queryType: 'traceql',\n tableType: 'spans',\n limit: 1000,\n spss: 10,\n filters: [],\n };\n}\n","import { css } from '@emotion/css';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { locationService } from '@grafana/runtime';\nimport { Icon, useStyles2 } from '@grafana/ui';\nimport React from 'react';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from 'utils/analytics';\nimport { HomepagePanelType } from './AttributePanel';\n\ntype Props = {\n index: number;\n type: HomepagePanelType;\n label: string;\n labelTitle: string;\n value: string;\n valueTitle: string;\n url: string;\n};\n\nexport const AttributePanelRow = (props: Props) => {\n const { index, type, label, labelTitle, value, valueTitle, url } = props;\n const styles = useStyles2(getStyles);\n\n return (\n
\n {index === 0 && (\n
\n {labelTitle}\n {valueTitle}\n
\n )}\n\n {\n reportAppInteraction(USER_EVENTS_PAGES.home, USER_EVENTS_ACTIONS.home.panel_row_clicked, {\n type,\n index,\n value,\n });\n locationService.push(url);\n }}\n >\n
{label}
\n\n
\n {value}\n \n
\n
\n
\n );\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n rowHeader: css({\n color: theme.colors.text.secondary,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: `0 ${theme.spacing(2)} ${theme.spacing(1)} ${theme.spacing(2)}`,\n }),\n valueTitle: css({\n margin: '0 45px 0 0',\n }),\n row: css({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n gap: theme.spacing(2),\n padding: `${theme.spacing(0.75)} ${theme.spacing(2)}`,\n\n '&:hover': {\n backgroundColor: theme.isDark ? theme.colors.background.secondary : theme.colors.background.primary,\n cursor: 'pointer',\n '.rowLabel': {\n textDecoration: 'underline',\n },\n },\n }),\n action: css({\n display: 'flex',\n alignItems: 'center',\n }),\n actionText: css({\n color: '#d5983c',\n padding: `0 ${theme.spacing(1)}`,\n width: 'max-content',\n }),\n actionIcon: css({\n cursor: 'pointer',\n margin: `0 ${theme.spacing(0.5)} 0 ${theme.spacing(1)}`,\n }),\n };\n}\n","import { css } from '@emotion/css';\nimport { DataFrame, GrafanaTheme2, urlUtil } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\nimport React from 'react';\nimport { EXPLORATIONS_ROUTE } from 'utils/shared';\nimport { AttributePanelRow } from './AttributePanelRow';\nimport { HomepagePanelType } from './AttributePanel';\n\ntype Props = {\n series: DataFrame[];\n type: HomepagePanelType;\n};\n\nexport const ErroredServicesRows = (props: Props) => {\n const { series, type } = props;\n const styles = useStyles2(getStyles);\n\n const getLabel = (df: DataFrame) => {\n const valuesField = df.fields.find((f) => f.name !== 'time');\n return valuesField?.labels?.['resource.service.name'].replace(/\"/g, '') ?? 'Service name not found';\n };\n\n const getUrl = (df: DataFrame) => {\n const serviceName = getLabel(df);\n const params = {\n 'var-filters': `resource.service.name|=|${serviceName}`,\n 'var-metric': 'errors',\n };\n return urlUtil.renderUrl(EXPLORATIONS_ROUTE, params);\n };\n\n const getTotalErrs = (df: DataFrame) => {\n const valuesField = df.fields.find((f) => f.name !== 'time');\n return (\n valuesField?.values?.reduce((x, acc) => {\n if (typeof x === 'number' && !isNaN(x)) {\n return x + acc;\n }\n return acc;\n }, 0) ?? 1\n );\n };\n\n return (\n
\n {series\n .sort((a, b) => getTotalErrs(b) - getTotalErrs(a))\n .slice(0, 10)\n ?.map((df, index) => (\n \n \n \n ))}\n
\n );\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n padding: `${theme.spacing(2)} 0`,\n }),\n };\n}\n","import { css } from '@emotion/css';\nimport { DataFrame, Field, GrafanaTheme2, urlUtil } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\nimport React from 'react';\nimport { EXPLORATIONS_ROUTE, ROUTES } from 'utils/shared';\nimport { AttributePanelRow } from './AttributePanelRow';\nimport { HomepagePanelType } from './AttributePanel';\nimport { formatDuration } from '../../utils/dates';\n\ntype Props = {\n series: DataFrame[];\n type: HomepagePanelType;\n};\n\nexport const SlowestTracesRows = (props: Props) => {\n const { series, type } = props;\n const styles = useStyles2(getStyles);\n\n const durField = series[0].fields.find((f) => f.name === 'duration');\n if (durField && durField.values) {\n const sortedByDuration = durField?.values\n .map((_, i) => i)\n ?.sort((a, b) => durField?.values[b] - durField?.values[a]);\n const sortedFields = series[0].fields.map((f) => {\n return {\n ...f,\n values: sortedByDuration?.map((i) => f.values[i]),\n };\n });\n\n const getLabel = (traceServiceField: Field | undefined, traceNameField: Field | undefined, index: number) => {\n let label = '';\n if (traceServiceField?.values[index]) {\n label = traceServiceField.values[index];\n }\n if (traceNameField?.values[index]) {\n label = label.length === 0 ? traceNameField.values[index] : `${label}: ${traceNameField.values[index]}`;\n }\n return label.length === 0 ? 'Trace service & name not found' : label;\n };\n\n const getUrl = (\n traceId: string,\n spanIdField: Field | undefined,\n traceServiceField: Field | undefined,\n index: number\n ) => {\n if (!spanIdField || !spanIdField.values[index] || !traceServiceField || !traceServiceField.values[index]) {\n console.error('SpanId or traceService not found');\n return ROUTES.Explore;\n }\n\n const params = {\n traceId,\n spanId: spanIdField.values[index],\n 'var-filters': `resource.service.name|=|${traceServiceField.values[index]}`,\n 'var-metric': 'duration',\n };\n\n return urlUtil.renderUrl(EXPLORATIONS_ROUTE, params);\n };\n\n const getDuration = (durationField: Field | undefined, index: number) => {\n if (!durationField || !durationField.values) {\n return 'Duration not found';\n }\n\n return formatDuration(durationField.values[index] / 1000);\n };\n\n const traceIdField = sortedFields.find((f) => f.name === 'traceIdHidden');\n const spanIdField = sortedFields.find((f) => f.name === 'spanID');\n const traceNameField = sortedFields.find((f) => f.name === 'traceName');\n const traceServiceField = sortedFields.find((f) => f.name === 'traceService');\n const durationField = sortedFields.find((f) => f.name === 'duration');\n\n return (\n
\n {traceIdField?.values?.map((traceId, index) => (\n \n \n \n ))}\n
\n );\n }\n return null;\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n padding: `${theme.spacing(2)} 0`,\n }),\n };\n}\n","import { css } from '@emotion/css';\nimport { DataFrame, GrafanaTheme2, urlUtil } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\nimport React from 'react';\nimport { EXPLORATIONS_ROUTE } from 'utils/shared';\nimport { AttributePanelRow } from './AttributePanelRow';\nimport { HomepagePanelType } from './AttributePanel';\nimport { formatDuration } from '../../utils/dates';\n\ntype Props = {\n series: DataFrame[];\n type: HomepagePanelType;\n};\n\nexport const SlowestServicesRows = (props: Props) => {\n const { series, type } = props;\n const styles = useStyles2(getStyles);\n\n const getLabel = (df: DataFrame) => {\n const valuesField = df.fields.find((f) => f.name !== 'time');\n return valuesField?.labels?.['resource.service.name'].replace(/\"/g, '') ?? 'Service name not found';\n };\n\n const getUrl = (df: DataFrame) => {\n const serviceName = getLabel(df);\n const params = {\n 'var-filters': `resource.service.name|=|${serviceName}`,\n 'var-metric': 'duration',\n };\n return urlUtil.renderUrl(EXPLORATIONS_ROUTE, params);\n };\n\n const getDuration = (df: DataFrame) => {\n const valuesField = df.fields.find((f) => f.name !== 'time');\n return (\n valuesField?.values?.reduce((x, acc) => {\n if (typeof x === 'number' && !isNaN(x)) {\n return x + acc;\n }\n return acc;\n }, 0) ?? 1\n );\n };\n\n return (\n
\n {series\n .sort((a, b) => getDuration(b) - getDuration(a))\n .slice(0, 10)\n ?.map((df, index) => (\n \n \n \n ))}\n
\n );\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n padding: `${theme.spacing(2)} 0`,\n }),\n };\n}\n","import { css } from '@emotion/css';\nimport { DataFrame, GrafanaTheme2 } from '@grafana/data';\nimport { Icon, useStyles2 } from '@grafana/ui';\nimport React from 'react';\nimport { HomepagePanelType } from './AttributePanel';\nimport { ErroredServicesRows } from './ErroredServicesRows';\nimport { SlowestTracesRows } from './SlowestTracesRows';\nimport { SlowestServicesRows } from './SlowestServicesRows';\n\ntype Props = {\n series?: DataFrame[];\n type: HomepagePanelType;\n message?: string;\n};\n\nexport const AttributePanelRows = (props: Props) => {\n const { series, type, message } = props;\n const styles = useStyles2(getStyles);\n\n if (message) {\n return (\n
\n
\n \n {message}\n
\n
\n );\n }\n\n if (series && series.length > 0) {\n switch (type) {\n case 'slowest-traces':\n return ;\n case 'errored-services':\n return ;\n case 'slowest-services':\n return ;\n }\n }\n return
No series data
;\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n padding: `${theme.spacing(2)} 0`,\n }),\n icon: css({\n margin: `0 ${theme.spacing(0.5)} 0 ${theme.spacing(1)}`,\n }),\n message: css({\n display: 'flex',\n gap: theme.spacing(1.5),\n margin: `${theme.spacing(2)} auto`,\n width: '60%',\n }),\n };\n}\n","import { css } from '@emotion/css';\nimport { DataFrame, GrafanaTheme2 } from '@grafana/data';\nimport { SceneObjectState, SceneObjectBase, SceneComponentProps } from '@grafana/scenes';\nimport { Icon, useStyles2 } from '@grafana/ui';\nimport React from 'react';\nimport { AttributePanelRows } from './AttributePanelRows';\nimport { HomepagePanelType } from './AttributePanel';\n\ninterface AttributePanelSceneState extends SceneObjectState {\n series?: DataFrame[];\n title: string;\n type: HomepagePanelType;\n message?: string;\n}\n\nexport class AttributePanelScene extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n const { series, title, type, message } = model.useState();\n const styles = useStyles2(getStyles);\n\n return (\n
\n
\n \n {title}\n
\n \n
\n );\n };\n}\n\nfunction getIcon(type: HomepagePanelType) {\n switch (type) {\n case 'slowest-services':\n return 'clock-nine';\n case 'slowest-traces':\n return 'crosshair';\n case 'errored-services':\n return 'exclamation-triangle';\n default:\n return 'exclamation-triangle';\n }\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n border: `1px solid ${theme.isDark ? theme.colors.border.medium : theme.colors.border.weak}`,\n borderRadius: theme.spacing(0.5),\n marginBottom: theme.spacing(4),\n width: '100%',\n }),\n title: css({\n color: theme.isDark ? theme.colors.text.secondary : theme.colors.text.primary,\n backgroundColor: theme.isDark ? theme.colors.background.secondary : theme.colors.background.primary,\n borderTopLeftRadius: theme.spacing(0.5),\n borderTopRightRadius: theme.spacing(0.5),\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n fontSize: '1.3rem',\n padding: `${theme.spacing(1.5)} ${theme.spacing(2)}`,\n }),\n titleText: css({\n marginLeft: theme.spacing(1),\n }),\n };\n}\n","import React from 'react';\n\nimport {\n SceneComponentProps,\n SceneFlexLayout,\n sceneGraph,\n SceneObjectBase,\n SceneObjectState,\n SceneQueryRunner,\n} from '@grafana/scenes';\nimport { GrafanaTheme2, LoadingState } from '@grafana/data';\nimport { explorationDS } from 'utils/shared';\nimport { LoadingStateScene } from 'components/states/LoadingState/LoadingStateScene';\nimport { useStyles2 } from '@grafana/ui';\nimport { css } from '@emotion/css';\nimport { MINI_PANEL_HEIGHT } from 'components/Explore/TracesByService/TracesByServiceScene';\nimport { AttributePanelScene } from './AttributePanelScene';\nimport Skeleton from 'react-loading-skeleton';\nimport { getErrorMessage, getNoDataMessage } from 'utils/utils';\nimport { getMinimumsForDuration, getYBuckets } from 'components/Explore/TracesByService/REDPanel';\n\nexport type HomepagePanelType = 'errored-services' | 'slowest-services' | 'slowest-traces';\n\nexport interface AttributePanelState extends SceneObjectState {\n panel?: SceneFlexLayout;\n query: {\n query: string;\n step?: string;\n };\n title: string;\n type: HomepagePanelType;\n renderDurationPanel?: boolean;\n filter?: string;\n}\n\nexport class AttributePanel extends SceneObjectBase {\n constructor(state: AttributePanelState) {\n super({\n $data: new SceneQueryRunner({\n datasource: explorationDS,\n queries: [{ refId: 'A', queryType: 'traceql', tableType: 'spans', limit: 10, ...state.query, exemplars: 0 }],\n }),\n ...state,\n });\n\n this.addActivationHandler(() => {\n const data = sceneGraph.getData(this);\n\n this._subs.add(\n data.subscribeToState((data) => {\n if (data.data?.state === LoadingState.Done || data.data?.state === LoadingState.Streaming) {\n if (\n data.data?.state === LoadingState.Done &&\n (data.data.series.length === 0 || data.data.series[0].length === 0)\n ) {\n this.setState({\n panel: new SceneFlexLayout({\n children: [\n new AttributePanelScene({\n message: getNoDataMessage(state.title.toLowerCase()),\n title: state.title,\n type: state.type,\n }),\n ],\n }),\n });\n } else if (data.data.series.length > 0) {\n if (state.type !== 'slowest-traces' || state.renderDurationPanel) {\n this.setState({\n panel: new SceneFlexLayout({\n children: [\n new AttributePanelScene({\n series: data.data.series,\n title: state.title,\n type: state.type,\n }),\n ],\n }),\n });\n } else if (data.data?.state === LoadingState.Done) {\n let yBuckets = getYBuckets(data.data?.series ?? []);\n if (yBuckets?.length) {\n const { minDuration } = getMinimumsForDuration(yBuckets);\n\n this.setState({\n panel: new SceneFlexLayout({\n children: [\n new AttributePanel({\n query: {\n query: `{nestedSetParent<0 && duration > ${minDuration} ${state.filter ?? ''}}`,\n },\n title: state.title,\n type: state.type,\n renderDurationPanel: true,\n }),\n ],\n }),\n });\n }\n }\n }\n } else if (data.data?.state === LoadingState.Error) {\n this.setState({\n panel: new SceneFlexLayout({\n children: [\n new AttributePanelScene({\n message: getErrorMessage(data),\n title: state.title,\n type: state.type,\n }),\n ],\n }),\n });\n } else {\n this.setState({\n panel: new SceneFlexLayout({\n direction: 'column',\n maxHeight: MINI_PANEL_HEIGHT,\n height: MINI_PANEL_HEIGHT,\n children: [\n new LoadingStateScene({\n component: () => SkeletonComponent(),\n }),\n ],\n }),\n });\n }\n })\n );\n });\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { panel } = model.useState();\n const styles = useStyles2(getStyles);\n\n if (!panel) {\n return;\n }\n\n return (\n
\n \n
\n );\n };\n}\n\nfunction getStyles() {\n return {\n container: css({\n minWidth: '350px',\n width: '-webkit-fill-available',\n }),\n };\n}\n\nexport const SkeletonComponent = () => {\n const styles = useStyles2(getSkeletonStyles);\n\n return (\n
\n
\n \n
\n
\n {[...Array(11)].map((_, i) => (\n
\n
\n \n
\n
\n \n
\n
\n ))}\n
\n
\n );\n};\n\nfunction getSkeletonStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n border: `1px solid ${theme.isDark ? theme.colors.border.medium : theme.colors.border.weak}`,\n borderRadius: theme.spacing(0.5),\n marginBottom: theme.spacing(4),\n width: '100%',\n }),\n title: css({\n color: theme.colors.text.secondary,\n backgroundColor: theme.colors.background.secondary,\n fontSize: '1.3rem',\n padding: `${theme.spacing(1.5)} ${theme.spacing(2)}`,\n textAlign: 'center',\n }),\n tracesContainer: css({\n padding: `13px ${theme.spacing(2)}`,\n }),\n row: css({\n display: 'flex',\n justifyContent: 'space-between',\n }),\n rowLeft: css({\n margin: '7px 0',\n width: '150px',\n }),\n rowRight: css({\n width: '50px',\n }),\n };\n}\n","import React from \"react\";\n\nexport const LightModeRocket = () => (\n \n \n \n);\n\nexport const DarkModeRocket = () => (\n \n \n \n);\n","import { ACTION_VIEW, PRIMARY_SIGNAL, VAR_FILTERS, FILTER_SEPARATOR, BOOKMARKS_LS_KEY, EXPLORATIONS_ROUTE, VAR_LATENCY_PARTIAL_THRESHOLD, VAR_LATENCY_THRESHOLD, SELECTION, VAR_METRIC } from \"utils/shared\";\nimport { Bookmark } from \"./Bookmarks\";\nimport { urlUtil } from \"@grafana/data\";\nimport { locationService, usePluginUserStorage } from '@grafana/runtime';\nimport { USER_EVENTS_ACTIONS, USER_EVENTS_PAGES, reportAppInteraction } from \"utils/analytics\";\n\ntype PluginStorage = ReturnType;\n\nconst cleanupParams = (params: URLSearchParams) => {\n // Remove selection, latency threshold, and latency partial threshold because\n // selection keeps changing as time moves on, so it's not a good match for bookmarking\n params.delete(SELECTION);\n params.delete(`var-${VAR_LATENCY_THRESHOLD}`);\n params.delete(`var-${VAR_LATENCY_PARTIAL_THRESHOLD}`);\n return params;\n}\n\nexport const useBookmarksStorage = () => {\n const storage = usePluginUserStorage();\n \n return {\n getBookmarks: () => getBookmarks(storage),\n removeBookmark: (bookmark: Bookmark) => removeBookmark(storage, bookmark),\n bookmarkExists: (bookmark: Bookmark) => bookmarkExists(storage, bookmark),\n toggleBookmark: () => toggleBookmark(storage),\n };\n};\n\nexport const getBookmarkParams = (bookmark: Bookmark) => {\n if (!bookmark || !bookmark.params) {\n return { actionView: '', primarySignal: '', filters: '', metric: '' };\n }\n \n const params = new URLSearchParams(bookmark.params);\n const actionView = params.get(ACTION_VIEW) ?? '';\n const primarySignal = params.get(PRIMARY_SIGNAL) ?? '';\n const filters = params.getAll(`var-${VAR_FILTERS}`).join(FILTER_SEPARATOR);\n const metric = params.get(`var-${VAR_METRIC}`) ?? '';\n return { actionView, primarySignal, filters, metric };\n}\n\nexport const getBookmarkFromURL = (): Bookmark => {\n const params = cleanupParams(new URLSearchParams(window.location.search));\n return { params: params.toString() };\n}\n\nexport const getBookmarkForUrl = (bookmark: Bookmark): string => {\n if (!bookmark || !bookmark.params) {\n return EXPLORATIONS_ROUTE;\n }\n \n const params = new URLSearchParams(bookmark.params);\n const urlQueryMap = Object.fromEntries(params.entries());\n \n const filters = params.getAll(`var-${VAR_FILTERS}`); \n \n const url = urlUtil.renderUrl(EXPLORATIONS_ROUTE, {\n ...urlQueryMap,\n [`var-${VAR_FILTERS}`]: filters // Filters need to be added as separate params in the url as there are multiple filters with the same key\n });\n \n return url;\n}\n\nconst setBookmarks = async (storage: PluginStorage, bookmarks: Bookmark[]): Promise => {\n try {\n await storage.setItem(BOOKMARKS_LS_KEY, JSON.stringify(bookmarks));\n } catch (e) {\n console.error(\"Failed to save bookmarks to storage:\", e);\n }\n};\n\nexport const getBookmarks = async (storage: PluginStorage): Promise => {\n try {\n const value = await storage.getItem(BOOKMARKS_LS_KEY);\n if (value) {\n return JSON.parse(value);\n }\n return [];\n } catch (e) {\n console.error(\"Failed to get bookmarks from storage:\", e);\n return [];\n }\n};\n\nexport const toggleBookmark = async (storage: PluginStorage): Promise => {\n const bookmark = getBookmarkFromURL();\n const exists = await bookmarkExists(storage, bookmark);\n \n if (exists) {\n await removeBookmark(storage, bookmark);\n return false;\n } else {\n await addBookmark(storage, bookmark);\n return true;\n }\n};\n\nconst addBookmark = async (storage: PluginStorage, bookmark: Bookmark): Promise => {\n const bookmarks = await getBookmarks(storage);\n bookmarks.push(bookmark);\n await setBookmarks(storage, bookmarks);\n};\n\nexport const removeBookmark = async (storage: PluginStorage, bookmark: Bookmark): Promise => {\n const storedBookmarks = await getBookmarks(storage);\n const filteredBookmarks = storedBookmarks.filter((storedBookmark) => !areBookmarksEqual(bookmark, storedBookmark));\n await setBookmarks(storage, filteredBookmarks);\n};\n\nexport const bookmarkExists = async (storage: PluginStorage, bookmark: Bookmark): Promise => {\n const bookmarks = await getBookmarks(storage);\n return bookmarks.some((b) => areBookmarksEqual(bookmark, b));\n};\n\nexport const areBookmarksEqual = (bookmark: Bookmark, storedBookmark: Bookmark) => {\n const bookmarkParams = cleanupParams(new URLSearchParams(bookmark.params));\n const storedBookmarkParams = cleanupParams(new URLSearchParams(storedBookmark.params));\n\n const filterKey = `var-${VAR_FILTERS}`;\n const bookmarkKeys = Array.from(bookmarkParams.keys()).filter(k => k !== filterKey);\n const storedKeys = Array.from(storedBookmarkParams.keys()).filter(k => k !== filterKey);\n\n // If they have different number of keys (excluding filters), they can't be equal\n if (bookmarkKeys.length !== storedKeys.length) {\n return false;\n }\n \n // Check if every key in bookmarkParams exists in storedBookmarkParams with the same value\n const allKeysMatch = bookmarkKeys.every(key => \n storedBookmarkParams.has(key) && bookmarkParams.get(key) === storedBookmarkParams.get(key)\n ); \n if (!allKeysMatch) {\n return false;\n }\n \n // Compare filters (which can have multiple values with the same key)\n const bookmarkFilters = bookmarkParams.getAll(filterKey);\n const storedFilters = storedBookmarkParams.getAll(filterKey); \n if (bookmarkFilters.length !== storedFilters.length) {\n return false;\n }\n \n // Check if every filter in bookmarkFilters exists in storedFilters\n // This handles cases where order might be different\n return bookmarkFilters.every(filter => storedFilters.includes(filter));\n}\n\nexport const goToBookmark = (bookmark: Bookmark) => {\n reportAppInteraction(USER_EVENTS_PAGES.home, USER_EVENTS_ACTIONS.home.go_to_bookmark_clicked);\n const url = getBookmarkForUrl(bookmark);\n locationService.push(url);\n}\n","import { EVENT_ATTR, FILTER_SEPARATOR, RESOURCE_ATTR, SPAN_ATTR } from \"utils/shared\";\nimport React from \"react\";\nimport { capitalizeFirstChar } from \"utils/utils\";\nimport { css } from \"@emotion/css\";\nimport { useStyles2 } from \"@grafana/ui\";\nimport { Bookmark } from \"./Bookmarks\";\nimport { getBookmarkParams } from \"./utils\";\nimport { getSignalForKey } from \"pages/Explore/primary-signals\";\n\nexport const BookmarkItem = ({ bookmark }: { bookmark: Bookmark }) => {\n let { actionView, primarySignal, metric, filters } = getBookmarkParams(bookmark);\n const styles = useStyles2(getStyles);\n\n const getPrimarySignalFilter = (primarySignal: string): string => {\n const signalData = getSignalForKey(primarySignal);\n if (!signalData || !signalData.filter) {\n return '';\n }\n const filter = signalData.filter;\n\n if (filter.key && filter.operator && filter.value !== undefined) {\n return `${filter.key}|${filter.operator}|${filter.value}`;\n }\n return '';\n }\n \n // Don't render the primary signal filter as the primary signal already represents this information\n const getFiltersWithoutPrimarySignal = (filters: string, primarySignal: string): string => {\n const primarySignalFilter = getPrimarySignalFilter(primarySignal);\n let filtersArray = filters.split(FILTER_SEPARATOR);\n filtersArray = filtersArray.filter(f => f !== primarySignalFilter);\n return filtersArray.join(FILTER_SEPARATOR);\n }\n\n filters = getFiltersWithoutPrimarySignal(filters, primarySignal);\n filters = filters.replace(/\\|=\\|/g, ' = ');\n filters = filters.replace(RESOURCE_ATTR, '').replace(SPAN_ATTR, '').replace(EVENT_ATTR, '');\n\n return (\n
\n
\n {capitalizeFirstChar(metric)} of {primarySignal.replace('_', ' ')} ({actionView})\n
\n
\n {filters}\n
\n
\n );\n}\n\nfunction getStyles() {\n return {\n filters: css({\n textOverflow: 'ellipsis', \n overflow: 'hidden',\n WebkitLineClamp: 2, \n display: '-webkit-box', \n WebkitBoxOrient: 'vertical'\n }),\n }\n}\n","import { css } from \"@emotion/css\";\nimport { GrafanaTheme2 } from \"@grafana/data\";\nimport { Button, useStyles2, LoadingPlaceholder } from \"@grafana/ui\";\nimport React, { useEffect, useState } from \"react\";\nimport { BookmarkItem } from \"./BookmarkItem\";\nimport { useBookmarksStorage, goToBookmark } from \"./utils\";\n\nexport type Bookmark = {\n params: string;\n}\n\nexport const Bookmarks = () => {\n const styles = useStyles2(getStyles);\n const { getBookmarks, removeBookmark } = useBookmarksStorage();\n const [bookmarks, setBookmarks] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n const [isRemoving, setIsRemoving] = useState(false);\n\n useEffect(() => {\n const fetchBookmarks = async () => {\n setIsLoading(true);\n try {\n const loadedBookmarks = await getBookmarks();\n setBookmarks(loadedBookmarks);\n } catch (error) {\n console.error('Error loading bookmarks:', error);\n setBookmarks([]);\n } finally {\n setIsLoading(false);\n }\n };\n \n fetchBookmarks();\n }, []);\n\n const removeBookmarkClicked = async (bookmark: Bookmark, event: React.MouseEvent) => {\n event.stopPropagation();\n setIsRemoving(true);\n \n try {\n await removeBookmark(bookmark);\n const updatedBookmarks = await getBookmarks();\n setBookmarks(updatedBookmarks);\n } catch (error) {\n console.error('Error removing bookmark:', error);\n } finally {\n setIsRemoving(false);\n }\n };\n\n if (isLoading) {\n return (\n
\n
\n

Or view bookmarks

\n
\n
\n \n
\n
\n );\n }\n\n return (\n
\n
\n

Or view bookmarks

\n
\n {bookmarks.length === 0 ? (\n

Bookmark your favorite queries to view them here.

\n ) : (\n
\n {bookmarks.map((bookmark: Bookmark, i: number) => (\n
goToBookmark(bookmark)}\n >\n
\n \n
\n
\n
\n
\n ))}\n
\n )}\n
\n );\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n header: css({\n textAlign: 'center',\n 'h4': {\n margin: 0,\n }\n }),\n bookmarks: css({\n display: 'flex',\n flexWrap: 'wrap',\n gap: theme.spacing(2),\n margin: `${theme.spacing(4)} 0 ${theme.spacing(2)} 0`,\n justifyContent: 'center',\n }),\n bookmark: css({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n cursor: 'pointer',\n width: '318px',\n border: `1px solid ${theme.colors.border.medium}`,\n borderRadius: theme.shape.radius.default,\n\n '&:hover': {\n backgroundColor: theme.isDark ? theme.colors.background.secondary : theme.colors.background.primary,\n }\n }),\n bookmarkItem: css({\n padding: `${theme.spacing(1.5)} ${theme.spacing(1.5)} 0 ${theme.spacing(1.5)}`,\n overflow: 'hidden'\n }),\n filters: css({\n textOverflow: 'ellipsis', \n overflow: 'hidden',\n WebkitLineClamp: 2, \n display: '-webkit-box', \n WebkitBoxOrient: 'vertical'\n }),\n remove: css({\n display: 'flex',\n justifyContent: 'flex-end',\n }),\n noBookmarks: css({\n margin: `${theme.spacing(4)} 0 ${theme.spacing(2)} 0`,\n textAlign: 'center',\n }),\n loading: css({\n display: 'flex',\n justifyContent: 'center',\n margin: `${theme.spacing(4)} 0`,\n }),\n }\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport {\n SceneComponentProps,\n SceneObjectBase,\n} from '@grafana/scenes';\nimport { Button, Icon, LinkButton, Stack, useStyles2, useTheme2 } from '@grafana/ui';\n\nimport {\n EXPLORATIONS_ROUTE,\n} from '../../utils/shared';\nimport { getDatasourceVariable, getHomeFilterVariable, getHomeScene } from '../../utils/utils';\nimport { DarkModeRocket, LightModeRocket } from '../../utils/rockets';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from 'utils/analytics';\nimport { Home } from 'pages/Home/Home';\nimport { useNavigate } from 'react-router-dom';\nimport { Bookmarks } from 'pages/Home/bookmarks/Bookmarks';\n\nexport class HeaderScene extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n const home = getHomeScene(model);\n const navigate = useNavigate();\n const { controls } = home.useState();\n const styles = useStyles2(getStyles);\n const theme = useTheme2();\n\n const dsVariable = getDatasourceVariable(home);\n const filterVariable = getHomeFilterVariable(home);\n\n return (\n
\n
\n
\n {theme.isDark ? : }\n

Start your traces exploration!

\n
\n
\n

Drilldown and visualize your trace data without writing a query.

\n
\n \n reportAppInteraction(USER_EVENTS_PAGES.home, USER_EVENTS_ACTIONS.home.read_documentation_clicked)}\n >\n Read documentation\n \n
\n
\n
\n\n \n\n
\n

Or quick-start into your tracing data

\n
\n\n \n
\n
\n {dsVariable && (\n \n
Data source
\n \n
\n )}\n {filterVariable && (\n \n
Filter
\n \n
\n )}\n
\n\n
\n {controls?.map((control) => (\n \n ))}\n
\n
\n
\n
\n );\n };\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n display: 'flex',\n gap: theme.spacing(7),\n flexDirection: 'column',\n margin: `0 0 ${theme.spacing(4)} 0`,\n justifyContent: 'center',\n }),\n header: css({\n display: 'flex',\n alignItems: 'center',\n backgroundColor: theme.isDark ? theme.colors.background.secondary : theme.colors.background.primary,\n borderRadius: theme.spacing(0.5),\n flexWrap: 'wrap',\n justifyContent: 'center',\n padding: theme.spacing(3),\n gap: theme.spacing(4),\n }),\n headerTitleContainer: css({\n display: 'flex',\n alignItems: 'center',\n }),\n title: css({\n margin: `0 0 0 ${theme.spacing(2)}`,\n }),\n\n headerActions: css({\n alignItems: 'center',\n justifyContent: 'flex-start',\n display: 'flex',\n gap: theme.spacing(2),\n }),\n documentationLink: css({\n textDecoration: 'underline',\n '&:hover': {\n textDecoration: 'underline',\n },\n }),\n\n subHeader: css({\n textAlign: 'center',\n 'h4': {\n margin: `0 0 -${theme.spacing(2)} 0`,\n }\n }),\n\n label: css({\n fontSize: '12px',\n }),\n variablesAndControls: css({\n alignItems: 'center',\n gap: theme.spacing(2),\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n }),\n variables: css({\n display: 'flex',\n gap: theme.spacing(2),\n }),\n controls: css({\n display: 'flex',\n gap: theme.spacing(1),\n }),\n };\n}\n","import { AdHocVariableFilter, MetricFindValue } from \"@grafana/data\";\nimport { getDataSourceSrv, DataSourceWithBackend } from \"@grafana/runtime\";\nimport { AdHocFiltersVariable, sceneGraph } from \"@grafana/scenes\";\nimport { EVENT_ATTR, EVENT_INTRINSIC, FILTER_SEPARATOR, ignoredAttributes, ignoredAttributesHomeFilter, RESOURCE_ATTR, SPAN_ATTR, VAR_DATASOURCE_EXPR } from \"utils/shared\";\nimport { isNumber } from \"utils/utils\";\n\nexport async function getTagKeysProvider(variable: AdHocFiltersVariable): Promise<{replace?: boolean, values: MetricFindValue[]}> {\n const dsVar = sceneGraph.interpolate(variable, VAR_DATASOURCE_EXPR);\n const datasource_ = await getDataSourceSrv().get(dsVar);\n if (!(datasource_ instanceof DataSourceWithBackend)) {\n console.error(new Error('getTagKeysProvider: invalid datasource!'));\n throw new Error('getTagKeysProvider: invalid datasource!');\n }\n \n const datasource = datasource_ as DataSourceWithBackend;\n if (datasource && datasource.getTagKeys) {\n const tagKeys = await datasource.getTagKeys();\n\n if (Array.isArray(tagKeys)) {\n const filteredKeys = filterKeys(tagKeys);\n return { replace: true, values: filteredKeys };\n } else {\n console.error(new Error('getTagKeysProvider: invalid tagKeys!'));\n return { values: [] };\n }\n } else {\n console.error(new Error('getTagKeysProvider: missing or invalid datasource!'));\n return { values: [] };\n }\n}\n\nexport function filterKeys(keys: MetricFindValue[]): MetricFindValue[] {\n const resourceAttributes = keys.filter((k) => k.text?.includes(RESOURCE_ATTR));\n const spanAttributes = keys.filter((k) => k.text?.includes(SPAN_ATTR));\n const otherAttributes = keys.filter((k) => {\n return !k.text?.includes(RESOURCE_ATTR) && !k.text?.includes(SPAN_ATTR)\n && !k.text?.includes(EVENT_ATTR) && !k.text?.includes(EVENT_INTRINSIC)\n && ignoredAttributes.concat(ignoredAttributesHomeFilter).indexOf(k.text!) === -1;\n })\n return [...resourceAttributes, ...spanAttributes, ...otherAttributes];\n}\n\nexport function renderTraceQLLabelFilters(filters: AdHocVariableFilter[]) {\n const expr = filters\n .filter((f) => f.key && f.operator && f.value)\n .map((filter) => renderFilter(filter))\n .join(FILTER_SEPARATOR);\n return expr.length ? `&& ${expr}` : '';\n}\n\nconst renderFilter = (filter: AdHocVariableFilter) => {\n if (!filter) {\n return '';\n } \n \n let val = filter.value;\n if (val === undefined || val === null || val === '') {\n return '';\n }\n\n if (!isNumber.test(val) && !['kind'].includes(filter.key)) {\n if (typeof val === 'string' && !val.startsWith('\"') && !val.endsWith('\"')) {\n val = `\"${val}\"`;\n }\n }\n\n return `${filter.key}${filter.operator}${val}`;\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\n// eslint-disable-next-line no-restricted-imports\nimport { duration } from 'moment';\n\nimport { AdHocVariableFilter, GrafanaTheme2 } from '@grafana/data';\nimport {\n AdHocFiltersVariable,\n DataSourceVariable,\n SceneComponentProps,\n SceneCSSGridItem,\n SceneCSSGridLayout,\n sceneGraph,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n SceneRefreshPicker,\n SceneTimePicker,\n SceneTimeRange,\n SceneTimeRangeLike,\n SceneVariableSet,\n} from '@grafana/scenes';\nimport { useStyles2 } from '@grafana/ui';\n\nimport {\n DATASOURCE_LS_KEY,\n explorationDS,\n HOMEPAGE_FILTERS_LS_KEY,\n VAR_DATASOURCE,\n VAR_HOME_FILTER,\n} from '../../utils/shared';\nimport { AttributePanel } from 'components/Home/AttributePanel';\nimport { HeaderScene } from 'components/Home/HeaderScene';\nimport { getDatasourceVariable, getHomeFilterVariable } from 'utils/utils';\nimport { reportAppInteraction, USER_EVENTS_PAGES, USER_EVENTS_ACTIONS } from 'utils/analytics';\nimport { getTagKeysProvider, renderTraceQLLabelFilters } from './utils';\n\nexport interface HomeState extends SceneObjectState {\n controls?: SceneObject[];\n initialDS?: string;\n initialFilters: AdHocVariableFilter[];\n body?: SceneCSSGridLayout;\n}\n\nexport class Home extends SceneObjectBase {\n public constructor(state: HomeState) {\n super({\n $timeRange: state.$timeRange ?? new SceneTimeRange({}),\n $variables: state.$variables ?? getVariableSet(state.initialFilters, state.initialDS),\n controls: state.controls ?? [new SceneTimePicker({}), new SceneRefreshPicker({})],\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n const sceneTimeRange = sceneGraph.getTimeRange(this);\n const filterVariable = getHomeFilterVariable(this);\n filterVariable.setState({\n getTagKeysProvider: getTagKeysProvider,\n });\n\n getDatasourceVariable(this).subscribeToState((newState) => {\n if (newState.value) {\n localStorage.setItem(DATASOURCE_LS_KEY, newState.value.toString());\n }\n });\n\n getHomeFilterVariable(this).subscribeToState((newState, prevState) => {\n if (newState.filters !== prevState.filters) {\n this.buildPanels(sceneTimeRange, newState.filters);\n\n // save the filters to local storage\n localStorage.setItem(HOMEPAGE_FILTERS_LS_KEY, JSON.stringify(newState.filters));\n\n const newFilters = newState.filters.filter((f) => !prevState.filters.find((pf) => pf.key === f.key));\n if (newFilters.length > 0) {\n reportAppInteraction(USER_EVENTS_PAGES.home, USER_EVENTS_ACTIONS.home.filter_changed, {\n key: newFilters[0].key,\n });\n }\n }\n });\n\n sceneTimeRange.subscribeToState((newState, prevState) => {\n if (newState.value.from !== prevState.value.from || newState.value.to !== prevState.value.to) {\n this.buildPanels(sceneTimeRange, filterVariable.state.filters);\n }\n });\n this.buildPanels(sceneTimeRange, filterVariable.state.filters);\n }\n\n buildPanels(sceneTimeRange: SceneTimeRangeLike, filters: AdHocVariableFilter[]) {\n const from = sceneTimeRange.state.value.from.unix();\n const to = sceneTimeRange.state.value.to.unix();\n const dur = duration(to - from, 's');\n const durString = `${dur.asSeconds()}s`;\n const renderedFilters = renderTraceQLLabelFilters(filters);\n\n this.setState({\n body: new SceneCSSGridLayout({\n children: [\n new SceneCSSGridLayout({\n autoRows: 'min-content',\n columnGap: 2,\n rowGap: 2,\n children: [\n new SceneCSSGridItem({\n body: new AttributePanel({\n query: {\n query: `{nestedSetParent < 0 && status = error ${renderedFilters}} | count_over_time() by (resource.service.name)`,\n step: durString,\n },\n title: 'Errored services',\n type: 'errored-services',\n }),\n }),\n new SceneCSSGridItem({\n body: new AttributePanel({\n query: {\n query: `{nestedSetParent < 0 ${renderedFilters}} | quantile_over_time(duration, 0.9) by (resource.service.name)`,\n step: durString,\n },\n title: 'Slow services',\n type: 'slowest-services',\n }),\n }),\n new SceneCSSGridItem({\n body: new AttributePanel({\n query: {\n query: `{nestedSetParent<0 ${renderedFilters}} | histogram_over_time(duration)`,\n },\n title: 'Slow traces',\n type: 'slowest-traces',\n filter: renderedFilters,\n }),\n }),\n ],\n }),\n ],\n }),\n });\n }\n\n static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n const styles = useStyles2(getStyles);\n\n return (\n
\n \n {body && }\n
\n );\n };\n}\n\nfunction getVariableSet(initialFilters: AdHocVariableFilter[], initialDS?: string) {\n return new SceneVariableSet({\n variables: [\n new DataSourceVariable({\n name: VAR_DATASOURCE,\n label: 'Data source',\n value: initialDS,\n pluginId: 'tempo',\n }),\n new AdHocFiltersVariable({\n name: VAR_HOME_FILTER,\n datasource: explorationDS,\n layout: 'combobox',\n filters: initialFilters,\n allowCustomValue: true,\n }),\n ],\n });\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n margin: `${theme.spacing(4)} auto`,\n width: '75%',\n\n '@media (max-width: 900px)': {\n width: '95%',\n },\n }),\n };\n}\n","import { AdHocVariableFilter, DataFrame, urlUtil } from '@grafana/data';\nimport {\n AdHocFiltersVariable,\n CustomVariable,\n DataSourceVariable,\n SceneDataQuery,\n SceneDataState,\n sceneGraph,\n SceneObject,\n SceneObjectUrlValues,\n SceneTimeRange,\n sceneUtils,\n} from '@grafana/scenes';\n\nimport { TraceExploration } from '../pages/Explore';\nimport {\n EventTraceOpened,\n EXPLORATIONS_ROUTE,\n VAR_DATASOURCE,\n VAR_DATASOURCE_EXPR,\n VAR_FILTERS,\n VAR_GROUPBY,\n VAR_HOME_FILTER,\n VAR_LATENCY_PARTIAL_THRESHOLD,\n VAR_LATENCY_THRESHOLD,\n VAR_METRIC,\n VAR_PRIMARY_SIGNAL,\n VAR_SPAN_LIST_COLUMNS,\n} from './shared';\nimport { TracesByServiceScene } from 'components/Explore/TracesByService/TracesByServiceScene';\nimport { Home } from 'pages/Home/Home';\nimport { PrimarySignalVariable } from 'pages/Explore/PrimarySignalVariable';\nimport { ActionViewType } from 'exposedComponents/types';\nimport { ExceptionsScene } from 'components/Explore/TracesByService/Tabs/Exceptions/ExceptionsScene';\n\nexport function getTraceExplorationScene(model: SceneObject): TraceExploration {\n return sceneGraph.getAncestor(model, TraceExploration);\n}\n\nexport function getHomeScene(model: SceneObject): Home {\n return sceneGraph.getAncestor(model, Home);\n}\n\nexport function getTraceByServiceScene(model: SceneObject): TracesByServiceScene {\n return sceneGraph.getAncestor(model, TracesByServiceScene);\n}\n\nexport function getExceptionsScene(model: SceneObject): ExceptionsScene | undefined {\n const tracesByServiceScene = getTraceByServiceScene(model);\n return tracesByServiceScene?.state.exceptionsScene;\n}\n\nexport function newTracesExploration(initialDS?: string, initialFilters?: AdHocVariableFilter[]): TraceExploration {\n return new TraceExploration({\n initialDS,\n initialFilters: initialFilters ?? [],\n $timeRange: new SceneTimeRange({ from: 'now-30m', to: 'now' }),\n });\n}\n\nexport function newHome(initialFilters: AdHocVariableFilter[], initialDS?: string): Home {\n return new Home({\n initialDS,\n initialFilters,\n $timeRange: new SceneTimeRange({ from: 'now-30m', to: 'now' }),\n });\n}\n\nexport function getErrorMessage(data: SceneDataState) {\n return data?.data?.error?.message ?? 'There are no Tempo data sources';\n}\n\nexport function getNoDataMessage(context: string) {\n return `No data for selected data source and filter. Select another to see ${context}.`;\n}\n\nexport function getUrlForExploration(exploration: TraceExploration) {\n const params = sceneUtils.getUrlState(exploration);\n return getUrlForValues(params);\n}\n\nexport function getUrlForValues(values: SceneObjectUrlValues) {\n return urlUtil.renderUrl(EXPLORATIONS_ROUTE, values);\n}\n\nexport function getDataSource(exploration: TraceExploration) {\n return sceneGraph.interpolate(exploration, VAR_DATASOURCE_EXPR);\n}\n\nexport const getFilterSignature = (filter: AdHocVariableFilter) => {\n return `${filter.key}${filter.operator}${filter.value}`;\n};\n\nexport function getAttributesAsOptions(attributes: string[]) {\n return attributes.map((attribute) => ({ label: attribute, value: attribute }));\n}\n\nexport function getLabelKey(frame: DataFrame) {\n const labels = frame.fields.find((f) => f.type === 'number')?.labels;\n\n if (!labels) {\n return 'No labels';\n }\n\n const keys = Object.keys(labels);\n if (keys.length === 0) {\n return 'No labels';\n }\n\n return keys[0].replace(/\"/g, '');\n}\n\nexport function getLabelValue(frame: DataFrame, labelName?: string) {\n const labels = frame.fields.find((f) => f.type === 'number')?.labels;\n\n if (!labels) {\n return 'No labels';\n }\n\n const keys = Object.keys(labels).filter((k) => k !== 'p'); // remove the percentile label\n if (keys.length === 0) {\n return 'No labels';\n }\n\n return labels[labelName || keys[0]].replace(/\"/g, '');\n}\n\nexport function getGroupByVariable(scene: SceneObject): CustomVariable {\n const variable = sceneGraph.lookupVariable(VAR_GROUPBY, scene);\n if (!(variable instanceof CustomVariable)) {\n throw new Error('Group by variable not found');\n }\n return variable;\n}\n\nexport function getSpanListColumnsVariable(scene: SceneObject): CustomVariable {\n const variable = sceneGraph.lookupVariable(VAR_SPAN_LIST_COLUMNS, scene);\n if (!(variable instanceof CustomVariable)) {\n throw new Error('Span list columns variable not found');\n }\n return variable;\n}\n\nexport function getLatencyThresholdVariable(scene: SceneObject): CustomVariable {\n const variable = sceneGraph.lookupVariable(VAR_LATENCY_THRESHOLD, scene);\n if (!(variable instanceof CustomVariable)) {\n throw new Error('Latency threshold variable not found');\n }\n return variable;\n}\n\nexport function getLatencyPartialThresholdVariable(scene: SceneObject): CustomVariable {\n const variable = sceneGraph.lookupVariable(VAR_LATENCY_PARTIAL_THRESHOLD, scene);\n if (!(variable instanceof CustomVariable)) {\n throw new Error('Partial latency threshold variable not found');\n }\n return variable;\n}\n\nexport function getMetricVariable(scene: SceneObject): CustomVariable {\n const variable = sceneGraph.lookupVariable(VAR_METRIC, scene);\n if (!(variable instanceof CustomVariable)) {\n throw new Error('Metric variable not found');\n }\n return variable;\n}\n\nexport function getFiltersVariable(scene: SceneObject): AdHocFiltersVariable {\n const variable = sceneGraph.lookupVariable(VAR_FILTERS, scene);\n if (!(variable instanceof AdHocFiltersVariable)) {\n throw new Error('Filters variable not found');\n }\n return variable;\n}\n\nexport function getPrimarySignalVariable(scene: SceneObject): PrimarySignalVariable {\n const variable = sceneGraph.lookupVariable(VAR_PRIMARY_SIGNAL, scene);\n if (!(variable instanceof PrimarySignalVariable)) {\n throw new Error('Primary signal variable not found');\n }\n return variable;\n}\n\nexport function getHomeFilterVariable(scene: SceneObject): AdHocFiltersVariable {\n const variable = sceneGraph.lookupVariable(VAR_HOME_FILTER, scene);\n if (!(variable instanceof AdHocFiltersVariable)) {\n throw new Error('Home filter variable not found');\n }\n return variable;\n}\n\nexport function getDatasourceVariable(scene: SceneObject): DataSourceVariable {\n const variable = sceneGraph.lookupVariable(VAR_DATASOURCE, scene);\n if (!(variable instanceof DataSourceVariable)) {\n throw new Error('Datasource variable not found');\n }\n return variable;\n}\n\nexport function getCurrentStep(scene: SceneObject): number | undefined {\n const data = sceneGraph.getData(scene).state.data;\n const targetQuery = data?.request?.targets[0];\n return targetQuery ? (targetQuery as SceneDataQuery).step : undefined;\n}\n\nexport function shouldShowSelection(tab?: ActionViewType): boolean {\n return tab === 'comparison' || tab === 'traceList';\n}\n\nexport function getMetricValue(scene: SceneObject) {\n return getMetricVariable(scene).useState().value;\n}\n\nexport function fieldHasEmptyValues(data: SceneDataState) {\n return data?.data?.series[0].fields?.some((v) => v.values.every((e) => e === undefined)) ?? false;\n}\n\nexport const isNumber = /^-?\\d+\\.?\\d*$/;\n\nexport const formatLabelValue = (value: string) => {\n if (!isNumber.test(value) && typeof value === 'string' && !value.startsWith('\"') && !value.endsWith('\"')) {\n return `\"${value}\"`;\n }\n return value;\n};\n\nexport const capitalizeFirstChar = (str: string) => str?.[0]?.toUpperCase() + str?.slice(1) || '';\n\nexport const getOpenTrace = (scene: SceneObject) => {\n return (traceId: string, spanId?: string) => {\n scene.publishEvent(new EventTraceOpened({ traceId, spanId }), true);\n };\n};\n","var map = {\n\t\"./af\": 9805,\n\t\"./af.js\": 9805,\n\t\"./ar\": 4449,\n\t\"./ar-dz\": 4468,\n\t\"./ar-dz.js\": 4468,\n\t\"./ar-kw\": 3480,\n\t\"./ar-kw.js\": 3480,\n\t\"./ar-ly\": 4197,\n\t\"./ar-ly.js\": 4197,\n\t\"./ar-ma\": 2180,\n\t\"./ar-ma.js\": 2180,\n\t\"./ar-ps\": 9343,\n\t\"./ar-ps.js\": 9343,\n\t\"./ar-sa\": 230,\n\t\"./ar-sa.js\": 230,\n\t\"./ar-tn\": 2808,\n\t\"./ar-tn.js\": 2808,\n\t\"./ar.js\": 4449,\n\t\"./az\": 5865,\n\t\"./az.js\": 5865,\n\t\"./be\": 6627,\n\t\"./be.js\": 6627,\n\t\"./bg\": 901,\n\t\"./bg.js\": 901,\n\t\"./bm\": 3179,\n\t\"./bm.js\": 3179,\n\t\"./bn\": 1966,\n\t\"./bn-bd\": 969,\n\t\"./bn-bd.js\": 969,\n\t\"./bn.js\": 1966,\n\t\"./bo\": 6317,\n\t\"./bo.js\": 6317,\n\t\"./br\": 6474,\n\t\"./br.js\": 6474,\n\t\"./bs\": 5961,\n\t\"./bs.js\": 5961,\n\t\"./ca\": 7270,\n\t\"./ca.js\": 7270,\n\t\"./cs\": 1564,\n\t\"./cs.js\": 1564,\n\t\"./cv\": 3239,\n\t\"./cv.js\": 3239,\n\t\"./cy\": 2366,\n\t\"./cy.js\": 2366,\n\t\"./da\": 2453,\n\t\"./da.js\": 2453,\n\t\"./de\": 6601,\n\t\"./de-at\": 5027,\n\t\"./de-at.js\": 5027,\n\t\"./de-ch\": 8101,\n\t\"./de-ch.js\": 8101,\n\t\"./de.js\": 6601,\n\t\"./dv\": 6080,\n\t\"./dv.js\": 6080,\n\t\"./el\": 2655,\n\t\"./el.js\": 2655,\n\t\"./en-au\": 6836,\n\t\"./en-au.js\": 6836,\n\t\"./en-ca\": 2086,\n\t\"./en-ca.js\": 2086,\n\t\"./en-gb\": 2103,\n\t\"./en-gb.js\": 2103,\n\t\"./en-ie\": 5964,\n\t\"./en-ie.js\": 5964,\n\t\"./en-il\": 4379,\n\t\"./en-il.js\": 4379,\n\t\"./en-in\": 765,\n\t\"./en-in.js\": 765,\n\t\"./en-nz\": 1502,\n\t\"./en-nz.js\": 1502,\n\t\"./en-sg\": 1152,\n\t\"./en-sg.js\": 1152,\n\t\"./eo\": 50,\n\t\"./eo.js\": 50,\n\t\"./es\": 3350,\n\t\"./es-do\": 9338,\n\t\"./es-do.js\": 9338,\n\t\"./es-mx\": 1326,\n\t\"./es-mx.js\": 1326,\n\t\"./es-us\": 9947,\n\t\"./es-us.js\": 9947,\n\t\"./es.js\": 3350,\n\t\"./et\": 8231,\n\t\"./et.js\": 8231,\n\t\"./eu\": 8512,\n\t\"./eu.js\": 8512,\n\t\"./fa\": 9083,\n\t\"./fa.js\": 9083,\n\t\"./fi\": 5059,\n\t\"./fi.js\": 5059,\n\t\"./fil\": 2607,\n\t\"./fil.js\": 2607,\n\t\"./fo\": 3369,\n\t\"./fo.js\": 3369,\n\t\"./fr\": 7390,\n\t\"./fr-ca\": 6711,\n\t\"./fr-ca.js\": 6711,\n\t\"./fr-ch\": 6152,\n\t\"./fr-ch.js\": 6152,\n\t\"./fr.js\": 7390,\n\t\"./fy\": 2419,\n\t\"./fy.js\": 2419,\n\t\"./ga\": 3002,\n\t\"./ga.js\": 3002,\n\t\"./gd\": 4914,\n\t\"./gd.js\": 4914,\n\t\"./gl\": 6557,\n\t\"./gl.js\": 6557,\n\t\"./gom-deva\": 8944,\n\t\"./gom-deva.js\": 8944,\n\t\"./gom-latn\": 5387,\n\t\"./gom-latn.js\": 5387,\n\t\"./gu\": 7462,\n\t\"./gu.js\": 7462,\n\t\"./he\": 9237,\n\t\"./he.js\": 9237,\n\t\"./hi\": 9617,\n\t\"./hi.js\": 9617,\n\t\"./hr\": 6544,\n\t\"./hr.js\": 6544,\n\t\"./hu\": 341,\n\t\"./hu.js\": 341,\n\t\"./hy-am\": 1388,\n\t\"./hy-am.js\": 1388,\n\t\"./id\": 5251,\n\t\"./id.js\": 5251,\n\t\"./is\": 1146,\n\t\"./is.js\": 1146,\n\t\"./it\": 7891,\n\t\"./it-ch\": 7,\n\t\"./it-ch.js\": 7,\n\t\"./it.js\": 7891,\n\t\"./ja\": 3727,\n\t\"./ja.js\": 3727,\n\t\"./jv\": 5198,\n\t\"./jv.js\": 5198,\n\t\"./ka\": 8974,\n\t\"./ka.js\": 8974,\n\t\"./kk\": 7308,\n\t\"./kk.js\": 7308,\n\t\"./km\": 7786,\n\t\"./km.js\": 7786,\n\t\"./kn\": 4807,\n\t\"./kn.js\": 4807,\n\t\"./ko\": 1584,\n\t\"./ko.js\": 1584,\n\t\"./ku\": 1906,\n\t\"./ku-kmr\": 5305,\n\t\"./ku-kmr.js\": 5305,\n\t\"./ku.js\": 1906,\n\t\"./ky\": 9190,\n\t\"./ky.js\": 9190,\n\t\"./lb\": 7396,\n\t\"./lb.js\": 7396,\n\t\"./lo\": 8503,\n\t\"./lo.js\": 8503,\n\t\"./lt\": 3010,\n\t\"./lt.js\": 3010,\n\t\"./lv\": 5192,\n\t\"./lv.js\": 5192,\n\t\"./me\": 1944,\n\t\"./me.js\": 1944,\n\t\"./mi\": 6492,\n\t\"./mi.js\": 6492,\n\t\"./mk\": 2934,\n\t\"./mk.js\": 2934,\n\t\"./ml\": 1463,\n\t\"./ml.js\": 1463,\n\t\"./mn\": 8377,\n\t\"./mn.js\": 8377,\n\t\"./mr\": 8733,\n\t\"./mr.js\": 8733,\n\t\"./ms\": 8030,\n\t\"./ms-my\": 9445,\n\t\"./ms-my.js\": 9445,\n\t\"./ms.js\": 8030,\n\t\"./mt\": 5887,\n\t\"./mt.js\": 5887,\n\t\"./my\": 7228,\n\t\"./my.js\": 7228,\n\t\"./nb\": 8294,\n\t\"./nb.js\": 8294,\n\t\"./ne\": 9559,\n\t\"./ne.js\": 9559,\n\t\"./nl\": 600,\n\t\"./nl-be\": 8796,\n\t\"./nl-be.js\": 8796,\n\t\"./nl.js\": 600,\n\t\"./nn\": 9570,\n\t\"./nn.js\": 9570,\n\t\"./oc-lnc\": 5662,\n\t\"./oc-lnc.js\": 5662,\n\t\"./pa-in\": 7101,\n\t\"./pa-in.js\": 7101,\n\t\"./pl\": 6118,\n\t\"./pl.js\": 6118,\n\t\"./pt\": 9198,\n\t\"./pt-br\": 7203,\n\t\"./pt-br.js\": 7203,\n\t\"./pt.js\": 9198,\n\t\"./ro\": 5565,\n\t\"./ro.js\": 5565,\n\t\"./ru\": 3315,\n\t\"./ru.js\": 3315,\n\t\"./sd\": 8473,\n\t\"./sd.js\": 8473,\n\t\"./se\": 1258,\n\t\"./se.js\": 1258,\n\t\"./si\": 8798,\n\t\"./si.js\": 8798,\n\t\"./sk\": 6404,\n\t\"./sk.js\": 6404,\n\t\"./sl\": 7057,\n\t\"./sl.js\": 7057,\n\t\"./sq\": 5718,\n\t\"./sq.js\": 5718,\n\t\"./sr\": 5363,\n\t\"./sr-cyrl\": 478,\n\t\"./sr-cyrl.js\": 478,\n\t\"./sr.js\": 5363,\n\t\"./ss\": 7260,\n\t\"./ss.js\": 7260,\n\t\"./sv\": 2231,\n\t\"./sv.js\": 2231,\n\t\"./sw\": 7104,\n\t\"./sw.js\": 7104,\n\t\"./ta\": 7493,\n\t\"./ta.js\": 7493,\n\t\"./te\": 7705,\n\t\"./te.js\": 7705,\n\t\"./tet\": 4457,\n\t\"./tet.js\": 4457,\n\t\"./tg\": 2727,\n\t\"./tg.js\": 2727,\n\t\"./th\": 2206,\n\t\"./th.js\": 2206,\n\t\"./tk\": 3419,\n\t\"./tk.js\": 3419,\n\t\"./tl-ph\": 7243,\n\t\"./tl-ph.js\": 7243,\n\t\"./tlh\": 16,\n\t\"./tlh.js\": 16,\n\t\"./tr\": 7020,\n\t\"./tr.js\": 7020,\n\t\"./tzl\": 8026,\n\t\"./tzl.js\": 8026,\n\t\"./tzm\": 8537,\n\t\"./tzm-latn\": 7899,\n\t\"./tzm-latn.js\": 7899,\n\t\"./tzm.js\": 8537,\n\t\"./ug-cn\": 818,\n\t\"./ug-cn.js\": 818,\n\t\"./uk\": 8478,\n\t\"./uk.js\": 8478,\n\t\"./ur\": 7893,\n\t\"./ur.js\": 7893,\n\t\"./uz\": 9133,\n\t\"./uz-latn\": 311,\n\t\"./uz-latn.js\": 311,\n\t\"./uz.js\": 9133,\n\t\"./vi\": 2179,\n\t\"./vi.js\": 2179,\n\t\"./x-pseudo\": 2455,\n\t\"./x-pseudo.js\": 2455,\n\t\"./yo\": 3310,\n\t\"./yo.js\": 3310,\n\t\"./zh-cn\": 7244,\n\t\"./zh-cn.js\": 7244,\n\t\"./zh-hk\": 76,\n\t\"./zh-hk.js\": 76,\n\t\"./zh-mo\": 2305,\n\t\"./zh-mo.js\": 2305,\n\t\"./zh-tw\": 8588,\n\t\"./zh-tw.js\": 8588\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1738;","import { TimeRange } from '@grafana/data';\nimport { sceneGraph, SceneObject, SceneObjectBase, SceneObjectState, SceneQueryRunner } from '@grafana/scenes';\nimport { DataQuery, DataSourceRef } from '@grafana/schema';\n\nimport Logo from '../../../../src/img/logo.svg';\n\nexport interface AddToInvestigationButtonState extends SceneObjectState {\n dsUid?: string;\n query?: string;\n labelValue?: string;\n type?: string;\n context?: ExtensionContext;\n queries: DataQuery[];\n}\n\ninterface ExtensionContext {\n timeRange: TimeRange;\n queries: DataQuery[];\n datasource: DataSourceRef;\n origin: string;\n url: string;\n type: string;\n title: string;\n id: string;\n logoPath: string;\n}\n\nexport class AddToInvestigationButton extends SceneObjectBase {\n constructor(state: Omit) {\n super({ ...state, queries: [] });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate = () => {\n this._subs.add(\n this.subscribeToState(() => {\n this.getQueries();\n this.getContext();\n })\n );\n };\n\n private readonly getQueries = () => {\n const data = sceneGraph.getData(this);\n const queryRunner = sceneGraph.findObject(data, isQueryRunner);\n\n if (isQueryRunner(queryRunner)) {\n const queries = queryRunner.state.queries.map((q) => ({\n ...q,\n query: this.state.query,\n }));\n\n if (JSON.stringify(queries) !== JSON.stringify(this.state.queries)) {\n this.setState({ queries });\n }\n }\n };\n\n private readonly getContext = () => {\n const { queries, dsUid, labelValue, type = 'traceMetrics' } = this.state;\n const timeRange = sceneGraph.getTimeRange(this);\n\n if (!timeRange || !queries || !dsUid) {\n return;\n }\n const ctx = {\n origin: 'Explore Traces',\n type,\n queries,\n timeRange: { ...timeRange.state.value },\n datasource: { uid: dsUid },\n url: window.location.href,\n id: `${JSON.stringify(queries)}`,\n title: `${labelValue}`,\n logoPath: Logo,\n };\n if (JSON.stringify(ctx) !== JSON.stringify(this.state.context)) {\n this.setState({ context: ctx });\n }\n };\n}\n\nfunction isQueryRunner(o: SceneObject | null): o is SceneQueryRunner {\n return o instanceof SceneQueryRunner;\n}\n","import React from 'react';\n\nimport {\n SceneObjectState,\n SceneObjectBase,\n SceneComponentProps,\n PanelBuilders,\n SceneQueryRunner,\n sceneGraph,\n SceneObject,\n} from '@grafana/scenes';\nimport { LoadingState, GrafanaTheme2 } from '@grafana/data';\nimport { explorationDS } from 'utils/shared';\nimport { LoadingStateScene } from 'components/states/LoadingState/LoadingStateScene';\nimport { css } from '@emotion/css';\nimport Skeleton from 'react-loading-skeleton';\nimport { useStyles2 } from '@grafana/ui';\n\nexport interface TracePanelState extends SceneObjectState {\n panel?: SceneObject;\n traceId: string;\n spanId?: string;\n}\n\nexport class TraceViewPanelScene extends SceneObjectBase {\n constructor(state: TracePanelState) {\n super({\n $data: new SceneQueryRunner({\n datasource: explorationDS,\n queries: [{ refId: 'A', query: state.traceId, queryType: 'traceql' }],\n }),\n ...state,\n });\n\n this.addActivationHandler(() => {\n const data = sceneGraph.getData(this);\n\n this._subs.add(\n data.subscribeToState((data) => {\n if (data.data?.state === LoadingState.Done) {\n this.setState({\n panel: this.getVizPanel().build(),\n });\n } else if (data.data?.state === LoadingState.Loading) {\n this.setState({\n panel: new LoadingStateScene({\n component: SkeletonComponent,\n }),\n });\n }\n })\n );\n });\n }\n\n private getVizPanel() {\n const panel = PanelBuilders.traces().setHoverHeader(true);\n if (this.state.spanId) {\n panel.setOption('focusedSpanId' as any, this.state.spanId as any);\n }\n return panel;\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { panel } = model.useState();\n const styles = useStyles2(getStyles);\n\n if (!panel) {\n return;\n }\n\n return (\n
\n \n
\n );\n };\n}\n\nconst SkeletonComponent = () => {\n const styles = useStyles2(getStyles);\n\n return (\n
\n
\n \n \n
\n \n
\n \n \n
\n\n
\n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n );\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n panelContainer: css({\n display: 'flex',\n height: '100%',\n\n '& [data-testid=\"data-testid panel content\"] > div': {\n overflow: 'auto',\n },\n\n '& .show-on-hover': {\n display: 'none',\n },\n }),\n container: css({\n height: 'calc(100% - 32px)',\n width: 'calc(100% - 32px)',\n position: 'absolute',\n backgroundColor: theme.colors.background.primary,\n border: `1px solid ${theme.colors.border.weak}`,\n padding: '5px',\n }),\n header: css({\n marginBottom: '20px',\n display: 'flex',\n justifyContent: 'space-between',\n }),\n map: css({\n marginTop: '20px',\n marginBottom: '20px',\n }),\n span: css({\n display: 'flex',\n }),\n service1: css({\n width: '25%',\n }),\n bar1: css({\n marginLeft: '5%',\n width: '70%',\n }),\n service2: css({\n width: '25%',\n }),\n bar2: css({\n marginLeft: '10%',\n width: '15%',\n }),\n service3: css({\n width: '20%',\n marginLeft: '5%',\n }),\n bar3: css({\n marginLeft: '10%',\n width: '65%',\n }),\n service4: css({\n width: '20%',\n marginLeft: '5%',\n }),\n bar4: css({\n marginLeft: '15%',\n width: '60%',\n }),\n service5: css({\n width: '15%',\n marginLeft: '10%',\n }),\n bar5: css({\n marginLeft: '20%',\n width: '35%',\n }),\n service6: css({\n width: '15%',\n marginLeft: '10%',\n }),\n bar6: css({\n marginLeft: '30%',\n width: '15%',\n }),\n };\n}\n","import React from 'react';\n\nimport { SceneObjectState, SceneObjectBase, SceneComponentProps, SceneObject } from '@grafana/scenes';\nimport { EmptyStateScene } from 'components/states/EmptyState/EmptyStateScene';\nimport { TraceViewPanelScene } from '../panels/TraceViewPanelScene';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../../utils/analytics';\nimport { getTraceExplorationScene } from '../../../utils/utils';\n\nexport interface DetailsSceneState extends SceneObjectState {\n body?: SceneObject;\n}\n\nexport class TraceDrawerScene extends SceneObjectBase {\n constructor(state: Partial) {\n super({\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n this.updateBody();\n\n const traceExploration = getTraceExplorationScene(this);\n\n traceExploration.subscribeToState((newState, prevState) => {\n if (newState.traceId !== prevState.traceId || newState.spanId !== prevState.spanId) {\n this.updateBody();\n reportAppInteraction(USER_EVENTS_PAGES.analyse_traces, USER_EVENTS_ACTIONS.analyse_traces.open_trace, {\n traceId: newState.traceId,\n spanId: newState.spanId,\n });\n }\n });\n }\n\n private updateBody() {\n const traceExploration = getTraceExplorationScene(this);\n\n if (traceExploration.state.traceId) {\n this.setState({\n body: new TraceViewPanelScene({\n traceId: traceExploration.state.traceId,\n spanId: traceExploration.state.spanId,\n }),\n });\n } else {\n this.setState({\n body: new EmptyStateScene({\n message: 'No trace selected',\n }),\n });\n }\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState(); \n return body && ;\n };\n}\n","import { LoadingState, dateTime } from '@grafana/data';\nimport {\n SceneObjectBase,\n SceneObjectState,\n SceneTimeRange,\n SceneQueryRunner,\n} from '@grafana/scenes';\nimport { getDatasourceVariable } from '../../utils/utils';\nimport { Alert, LinkButton } from '@grafana/ui';\nimport React from 'react';\n\nexport interface TraceQLIssueDetectorState extends SceneObjectState {\n hasIssue: boolean;\n}\n\nexport class TraceQLIssueDetector extends SceneObjectBase {\n constructor() {\n super({\n hasIssue: false,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() { \n this.runIssueDetectionQuery();\n\n const datasourceVar = getDatasourceVariable(this);\n this._subs.add(\n datasourceVar.subscribeToState((newState, prevState) => {\n if (newState.value !== prevState.value) {\n this.resetIssues();\n this.runIssueDetectionQuery();\n }\n })\n );\n }\n\n private runIssueDetectionQuery() {\n const datasourceVar = getDatasourceVariable(this);\n \n // Create a minimal time range to reduce resource usage\n const now = dateTime();\n const from = dateTime(now).subtract(1, 'minute');\n const minimalTimeRange = new SceneTimeRange({\n from: from.toISOString(),\n to: now.toISOString(),\n });\n \n const issueDetector = new SceneQueryRunner({\n maxDataPoints: 1,\n datasource: { uid: String(datasourceVar.state.value) },\n $timeRange: minimalTimeRange,\n queries: [{\n refId: 'issueDetectorQuery',\n query: '{} | rate()',\n queryType: 'traceql',\n tableType: 'spans',\n limit: 1,\n spss: 1,\n filters: [],\n }],\n });\n \n this._subs.add(\n issueDetector.subscribeToState((state) => {\n if (state.data?.state === LoadingState.Error) {\n const message = state.data?.errors?.[0]?.message || '';\n // This is the error message when the datasource is not configured for TraceQL metrics\n // https://grafana.com/docs/tempo/latest/operations/traceql-metrics/#activate-and-configure-the-local-blocks-processor\n if (message.includes('localblocks processor not found')) {\n this.setState({ hasIssue: true });\n }\n }\n })\n );\n \n issueDetector.activate();\n }\n\n public resetIssues() {\n this.setState({\n hasIssue: false,\n });\n }\n} \n\nconst TraceQLWarningTitle = 'TraceQL metrics not configured';\nconst TraceQLWarningMessage = 'We found an error running a TraceQL metrics query: \"localblocks processor not found\". This typically means the \"local-blocks\" processor is not configured in Tempo, which is required for Grafana Traces Drilldown to work.';\n\nexport const TraceQLConfigWarning: React.FC<{ detector: TraceQLIssueDetector }> = ({ detector }) => {\n const { hasIssue } = detector.useState();\n\n if (!hasIssue) {\n return null;\n }\n\n return (\n \n

\n {TraceQLWarningMessage}\n \n Read documentation\n \n

\n \n );\n};\n","import React, { ReactElement, useEffect, useState } from 'react';\n\nimport { TimeRange } from '@grafana/data';\nimport { ComponentSize } from '@grafana/ui';\nimport { usePluginComponent } from '@grafana/runtime';\nimport { sceneGraph, SceneObject } from '@grafana/scenes';\n\ninterface EntityAssertionsWidgetProps {\n query: {\n entityName?: string;\n entityType?: string;\n start: number;\n end: number;\n };\n size: ComponentSize;\n source?: string;\n returnToPrevious?: boolean;\n}\n\nexport type EntityAssertionsWidgetExternal = (props: EntityAssertionsWidgetProps) => ReactElement | null;\n\ninterface Props {\n serviceName: string;\n model: SceneObject;\n}\n\nexport function EntityAssertionsWidget({ serviceName, model }: Props) {\n const { isLoading, component: EntityAssertionsWidgetExternal } = usePluginComponent(\n 'grafana-asserts-app/entity-assertions-widget/v1'\n );\n const [timeRange, setTimeRange] = useState();\n\n useEffect(() => {\n const sceneTimeRange = sceneGraph.getTimeRange(model);\n setTimeRange(sceneTimeRange.state.value);\n\n const sub = sceneTimeRange.subscribeToState((state) => {\n setTimeRange(state.value);\n });\n\n return () => {\n sub.unsubscribe();\n };\n }, [model]);\n\n if (isLoading || !EntityAssertionsWidgetExternal || !timeRange) {\n return null;\n }\n\n return (\n \n );\n}\n","import { css, cx } from '@emotion/css';\nimport { useDialog } from '@react-aria/dialog';\nimport { FocusScope } from '@react-aria/focus';\nimport { useOverlay } from '@react-aria/overlays';\nimport RcDrawer from 'rc-drawer';\nimport { ReactNode, useCallback, useEffect, useState } from 'react';\nimport * as React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { t } from '@grafana/i18n';\n\nimport 'rc-drawer/assets/index.css';\nimport { useStyles2, getDragStyles, IconButton, ScrollContainer, Text } from '@grafana/ui';\n\nexport interface Props {\n children: ReactNode;\n /** Title shown at the top of the drawer */\n title?: ReactNode;\n /** Subtitle shown below the title */\n subtitle?: ReactNode;\n /** Should the Drawer be closable by clicking on the mask, defaults to true */\n closeOnMaskClick?: boolean;\n /**\n * Specifies the width and min-width.\n * sm = width 25% & min-width 384px\n * md = width 50% & min-width 568px\n * lg = width 75% & min-width 744px\n **/\n size?: 'sm' | 'md' | 'lg';\n /** Tabs */\n tabs?: React.ReactNode;\n /**\n * Whether the content should be wrapped in a ScrollContainer\n * Only change this if you intend to manage scroll behaviour yourself\n * (e.g. having a split pane with independent scrolling)\n **/\n scrollableContent?: boolean;\n /** Callback for closing the drawer */\n onClose: () => void;\n}\n\nconst drawerSizes = {\n sm: { width: '25%', minWidth: 384 },\n md: { width: '50%', minWidth: 568 },\n lg: { width: '75%', minWidth: 744 },\n};\n\nexport function Drawer({\n children,\n onClose,\n closeOnMaskClick = true,\n scrollableContent = true,\n title,\n subtitle,\n size = 'md',\n tabs,\n}: Props) {\n const [drawerWidth, onMouseDown, onTouchStart] = useResizebleDrawer();\n\n const styles = useStyles2(getStyles);\n const wrapperStyles = useStyles2(getWrapperStyles, size);\n const dragStyles = useStyles2(getDragStyles);\n\n const overlayRef = React.useRef(null);\n const { dialogProps, titleProps } = useDialog({}, overlayRef);\n const { overlayProps } = useOverlay(\n {\n isDismissable: false,\n isOpen: true,\n onClose,\n },\n overlayRef\n );\n\n // Adds body class while open so the toolbar nav can hide some actions while drawer is open\n useBodyClassWhileOpen();\n\n const content =
{children}
;\n const overrideWidth = drawerWidth ?? drawerSizes[size].width;\n const minWidth = drawerSizes[size].minWidth;\n\n return (\n \n \n \n \n
\n
\n \n
\n {typeof title === 'string' ? (\n
\n \n {title}\n \n {subtitle && (\n
\n {subtitle}\n
\n )}\n
\n ) : (\n title\n )}\n {tabs &&
{tabs}
}\n
\n {!scrollableContent ? content : {content}}\n \n
\n \n );\n}\n\nfunction useResizebleDrawer(): [\n string | undefined,\n React.EventHandler,\n React.EventHandler,\n] {\n const [drawerWidth, setDrawerWidth] = useState(undefined);\n\n const onMouseMove = useCallback((e: MouseEvent) => {\n setDrawerWidth(getCustomDrawerWidth(e.clientX));\n }, []);\n\n const onTouchMove = useCallback((e: TouchEvent) => {\n const touch = e.touches[0];\n setDrawerWidth(getCustomDrawerWidth(touch.clientX));\n }, []);\n\n const onMouseUp = useCallback(\n (e: MouseEvent) => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n },\n [onMouseMove]\n );\n\n const onTouchEnd = useCallback(\n (e: TouchEvent) => {\n document.removeEventListener('touchmove', onTouchMove);\n document.removeEventListener('touchend', onTouchEnd);\n },\n [onTouchMove]\n );\n\n function onMouseDown(e: React.MouseEvent) {\n e.stopPropagation();\n e.preventDefault();\n // we will only add listeners when needed, and remove them afterward\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n }\n\n function onTouchStart(e: React.TouchEvent) {\n e.stopPropagation();\n e.preventDefault();\n // we will only add listeners when needed, and remove them afterward\n document.addEventListener('touchmove', onTouchMove);\n document.addEventListener('touchend', onTouchEnd);\n }\n\n return [drawerWidth, onMouseDown, onTouchStart];\n}\n\nfunction getCustomDrawerWidth(clientX: number) {\n let offsetRight = document.body.offsetWidth - (clientX - document.body.offsetLeft);\n let widthPercent = Math.min((offsetRight / document.body.clientWidth) * 100, 98).toFixed(2);\n return `${widthPercent}vw`;\n}\n\nfunction useBodyClassWhileOpen() {\n useEffect(() => {\n if (!document.body) {\n return;\n }\n\n document.body.classList.add('body-drawer-open');\n\n return () => {\n document.body.classList.remove('body-drawer-open');\n };\n }, []);\n}\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n container: css({\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n flex: '1 1 0',\n minHeight: '100%',\n position: 'relative',\n }),\n drawer: css({\n top: 0,\n position: 'absolute !important' as 'absolute',\n\n '.rc-drawer-content-wrapper': {\n boxShadow: theme.shadows.z3,\n },\n }),\n drawerContent: css({\n backgroundColor: `${theme.colors.background.primary} !important`,\n display: 'flex',\n overflow: 'unset !important',\n flexDirection: 'column',\n }),\n drawerMotion: css({\n '&-appear': {\n transform: 'translateX(100%)',\n transition: 'none !important',\n\n '&-active': {\n transition: `${theme.transitions.create('transform')} !important`,\n transform: 'translateX(0)',\n },\n },\n }),\n // we want the mask itself to span the whole page including the top bar\n // this ensures trying to click something in the top bar will close the drawer correctly\n // but we don't want the backdrop styling to apply over the top bar as it looks weird\n // instead have a child pseudo element to apply the backdrop styling below the top bar\n mask: css({\n // The !important here is to override the default .rc-drawer-mask styles\n backgroundColor: 'transparent !important',\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n position: 'absolute !important' as 'absolute',\n\n '&:before': {\n backgroundColor: `${theme.components.overlay.background} !important`,\n bottom: 0,\n content: '\"\"',\n left: 0,\n position: 'absolute',\n right: 0,\n top: 0,\n },\n }),\n maskMotion: css({\n '&-appear': {\n opacity: 0,\n\n '&-active': {\n opacity: 1,\n transition: theme.transitions.create('opacity'),\n },\n },\n }),\n header: css({\n label: 'drawer-header',\n flexGrow: 0,\n padding: theme.spacing(2, 2, 3),\n borderBottom: `1px solid ${theme.colors.border.weak}`,\n }),\n headerWithTabs: css({\n borderBottom: 'none',\n }),\n actions: css({\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n }),\n titleWrapper: css({\n label: 'drawer-title',\n overflowWrap: 'break-word',\n }),\n subtitle: css({\n label: 'drawer-subtitle',\n color: theme.colors.text.secondary,\n paddingTop: theme.spacing(1),\n }),\n content: css({\n padding: theme.spacing(theme.components.drawer?.padding ?? 2),\n height: '100%',\n flexGrow: 1,\n minHeight: 0,\n }),\n tabsWrapper: css({\n label: 'drawer-tabs',\n paddingLeft: theme.spacing(2),\n margin: theme.spacing(1, -1, -3, -3),\n }),\n resizer: css({\n top: 0,\n left: theme.spacing(-1),\n bottom: 0,\n position: 'absolute',\n zIndex: theme.zIndex.modal,\n }),\n };\n};\n\nfunction getWrapperStyles(theme: GrafanaTheme2, size: 'sm' | 'md' | 'lg') {\n return css({\n label: `drawer-content-wrapper-${size}`,\n overflow: 'unset !important',\n\n [theme.breakpoints.down('md')]: {\n width: `calc(100% - ${theme.spacing(2)}) !important`,\n minWidth: '0 !important',\n },\n });\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { Button, useStyles2 } from '@grafana/ui';\nimport { Drawer } from './Drawer';\n\ninterface SmartDrawerProps {\n children: React.ReactNode;\n title?: string;\n isOpen: boolean;\n onClose: () => void;\n embedded?: boolean;\n forceNoDrawer?: boolean;\n investigationButton?: React.ReactNode;\n}\n\nexport const SmartDrawer = ({\n children,\n title,\n isOpen,\n onClose,\n embedded = false,\n forceNoDrawer = false,\n investigationButton,\n}: SmartDrawerProps) => {\n const styles = useStyles2(getStyles);\n\n const shouldUseDrawer = !forceNoDrawer && !embedded;\n\n if (!isOpen) {\n return null;\n }\n\n if (shouldUseDrawer) {\n return (\n \n {children}\n \n );\n }\n\n return (\n
\n
\n \n {embedded && investigationButton}\n
\n {children}\n
\n );\n};\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n container: css({\n height: '100%',\n width: '100%',\n background: theme.colors.background.primary,\n padding: theme.spacing(2),\n display: 'flex',\n flexDirection: 'column',\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: 3,\n }),\n drawerHeader: css({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingBottom: theme.spacing(2),\n\n h4: {\n margin: 0,\n },\n }),\n});\n","import { AdHocVariableFilter } from '@grafana/data';\n\nexport function renderTraceQLLabelFilters(filters: AdHocVariableFilter[]) {\n const expr = filters\n .filter((f) => f.key && f.operator && f.value)\n .map((filter) => renderFilter(filter))\n .join('&&');\n // Return 'true' if there are no filters to help with cases where we want to concatenate additional filters in the expression\n // and avoid invalid queries like '{ && key=value }'\n return expr.length ? expr : 'true';\n}\n\nfunction renderFilter(filter: AdHocVariableFilter) {\n let val = filter.value;\n if (\n ['span.messaging.destination.partition.id', 'span.network.protocol.version'].includes(filter.key) ||\n (!isNumber(val) &&\n ![\n 'status',\n 'kind',\n 'span:status',\n 'span:kind',\n 'duration',\n 'span:duration',\n 'trace:duration',\n 'event:timeSinceStart',\n ].includes(filter.key) &&\n !['true', 'false'].includes(val)) &&\n !isQuotedNumericString(val)\n ) {\n if (typeof val === 'string') {\n // Escape \" and \\ to \\\" and \\\\ respectively\n val = val.replace(/[\"\\\\]/g, (s) => `\\\\${s}`);\n val = `\"${val}\"`;\n }\n }\n\n return `${filter.key}${filter.operator}${val}`;\n}\n\nfunction isNumber(value?: string | number): boolean {\n return value != null && value !== '' && !isNaN(Number(value.toString().trim()));\n}\n\nfunction isQuotedNumericString(value: string): boolean {\n return typeof value === 'string' && value.length >= 2 && isNumber(value.slice(1, -1)) && ((value.startsWith('\"') && value.endsWith('\"')) || (value.startsWith(\"'\") && value.endsWith(\"'\")));\n}\n","import { AdHocFiltersVariable } from '@grafana/scenes';\nimport { AdHocVariableFilter, VariableHide } from '@grafana/data';\nimport { VAR_FILTERS, explorationDS } from 'utils/shared';\nimport { renderTraceQLLabelFilters } from 'utils/filters-renderer';\n\nexport interface AttributeFiltersVariableProps {\n initialFilters?: AdHocVariableFilter[];\n embedderName?: string;\n embedded?: boolean;\n}\n\nexport class AttributeFiltersVariable extends AdHocFiltersVariable {\n private initialFilters?: AdHocVariableFilter[];\n private embedderName?: string;\n private embedded?: boolean;\n\n constructor(props: Partial) {\n super({\n addFilterButtonText: 'Add filter',\n name: VAR_FILTERS,\n datasource: explorationDS,\n hide: VariableHide.hideLabel,\n layout: 'combobox',\n filters: (props.initialFilters ?? []).map((f) => ({\n ...f,\n readOnly: props.embedded,\n origin: props.embedderName,\n })),\n allowCustomValue: true,\n expressionBuilder: renderTraceQLLabelFilters,\n });\n\n this.initialFilters = props.initialFilters;\n this.embedderName = props.embedderName;\n this.embedded = props.embedded;\n\n // Subscribe to state changes to update readOnly and origin for matching filters\n this.subscribeToState((newState) => {\n if (newState.filters && this.embedded) {\n let hasChanges = false;\n const updatedFilters = newState.filters.map((filter) => {\n // Check if this filter matches any of the initial filters\n const matchingInitialFilter = this.initialFilters?.find(\n (initialFilter) =>\n initialFilter.key === filter.key &&\n initialFilter.operator === filter.operator &&\n initialFilter.value === filter.value\n );\n\n if (matchingInitialFilter && !filter.readOnly && filter.origin !== this.embedderName) {\n hasChanges = true;\n return {\n ...filter,\n readOnly: true,\n origin: this.embedderName,\n };\n }\n\n return filter;\n });\n\n // Only update if there are actual changes\n if (hasChanges) {\n this.setState({ filters: updatedFilters });\n }\n }\n });\n }\n}\n","import { css } from '@emotion/css';\nimport React, { useEffect } from 'react';\n\nimport { GrafanaTheme2, LoadingState, PluginExtensionLink, AdHocVariableFilter } from '@grafana/data';\nimport {\n CustomVariable,\n DataSourceVariable,\n SceneComponentProps,\n sceneGraph,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n SceneObjectUrlSyncConfig,\n SceneObjectUrlValues,\n SceneQueryRunner,\n SceneRefreshPicker,\n SceneTimePicker,\n SceneTimeRange,\n SceneVariableSet,\n} from '@grafana/scenes';\nimport { config, useReturnToPrevious } from '@grafana/runtime';\nimport { Button, Dropdown, Icon, Menu, Stack, useStyles2, LinkButton } from '@grafana/ui';\n\nimport {\n DATASOURCE_LS_KEY,\n EventTraceOpened,\n MetricFunction,\n VAR_DATASOURCE,\n VAR_GROUPBY,\n VAR_LATENCY_PARTIAL_THRESHOLD,\n VAR_LATENCY_THRESHOLD,\n VAR_METRIC,\n VAR_PRIMARY_SIGNAL,\n VAR_SPAN_LIST_COLUMNS,\n} from '../../utils/shared';\nimport {\n getTraceExplorationScene,\n getFiltersVariable,\n getPrimarySignalVariable,\n getDataSource,\n getUrlForExploration,\n} from '../../utils/utils';\nimport { TraceDrawerScene } from '../../components/Explore/TracesByService/TraceDrawerScene';\nimport { VariableHide } from '@grafana/schema';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from 'utils/analytics';\nimport { PrimarySignalVariable } from './PrimarySignalVariable';\nimport { primarySignalOptions } from './primary-signals';\nimport { TraceQLIssueDetector, TraceQLConfigWarning } from '../../components/Explore/TraceQLIssueDetector';\nimport { AddToInvestigationButton } from 'components/Explore/actions/AddToInvestigationButton';\nimport { ADD_TO_INVESTIGATION_MENU_TEXT, getInvestigationLink } from 'components/Explore/panels/PanelMenu';\nimport { TracesByServiceScene } from 'components/Explore/TracesByService/TracesByServiceScene';\nimport { SharedExplorationState } from 'exposedComponents/types';\nimport { EntityAssertionsWidget } from '../../addedComponents/EntityAssertionsWidget/EntityAssertionsWidget';\nimport { SmartDrawer } from './SmartDrawer';\nimport { AttributeFiltersVariable } from './AttributeFiltersVariable';\n\nexport interface TraceExplorationState extends SharedExplorationState, SceneObjectState {\n topScene?: SceneObject;\n controls: SceneObject[];\n\n body: SceneObject;\n\n drawerScene?: TraceDrawerScene;\n\n // details scene\n traceId?: string;\n spanId?: string;\n\n issueDetector?: TraceQLIssueDetector;\n\n investigationLink?: PluginExtensionLink;\n addToInvestigationButton?: AddToInvestigationButton;\n}\n\nconst version = process.env.VERSION;\nconst buildTime = process.env.BUILD_TIME;\nconst commitSha = process.env.COMMIT_SHA;\nconst compositeVersion = `${buildTime?.split('T')[0]} (${commitSha})`;\n\nexport class TraceExploration extends SceneObjectBase {\n protected _urlSync = new SceneObjectUrlSyncConfig(this, { keys: ['traceId', 'spanId'] });\n\n public constructor(state: Partial) {\n super({\n $timeRange: state.$timeRange ?? new SceneTimeRange({}),\n $variables: state.$variables ?? getVariableSet(state as TraceExplorationState),\n controls: state.controls ?? [new SceneTimePicker({}), new SceneRefreshPicker({})],\n body: new TraceExplorationScene({}),\n drawerScene: new TraceDrawerScene({}),\n issueDetector: new TraceQLIssueDetector(),\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n public _onActivate() {\n if (!this.state.topScene) {\n this.setState({ topScene: getTopScene() });\n }\n\n this._subs.add(\n this.subscribeToEvent(EventTraceOpened, (event) => {\n this.setupInvestigationButton(event.payload.traceId);\n this.setState({ traceId: event.payload.traceId, spanId: event.payload.spanId });\n })\n );\n\n if (this.state.traceId) {\n this.setupInvestigationButton(this.state.traceId);\n }\n\n const datasourceVar = sceneGraph.lookupVariable(VAR_DATASOURCE, this) as DataSourceVariable;\n datasourceVar.subscribeToState((newState) => {\n if (newState.value) {\n localStorage.setItem(DATASOURCE_LS_KEY, newState.value.toString());\n }\n });\n\n if (this.state.issueDetector) {\n if (!this.state.issueDetector.isActive) {\n this.state.issueDetector.activate();\n }\n }\n }\n\n getUrlState() {\n return { traceId: this.state.traceId, spanId: this.state.spanId };\n }\n\n updateFromUrl(values: SceneObjectUrlValues) {\n const stateUpdate: Partial = {};\n\n if (values.traceId || values.spanId) {\n stateUpdate.traceId = values.traceId ? (values.traceId as string) : undefined;\n stateUpdate.spanId = values.spanId ? (values.spanId as string) : undefined;\n }\n\n this.setState(stateUpdate);\n }\n\n public getMetricVariable() {\n const variable = sceneGraph.lookupVariable(VAR_METRIC, this);\n if (!(variable instanceof CustomVariable)) {\n throw new Error('Metric variable not found');\n }\n\n if (!variable.getValue()) {\n variable.changeValueTo(this.state.initialMetric ?? 'rate');\n }\n\n return variable;\n }\n\n public onChangeMetricFunction = (metric: string) => {\n const variable = this.getMetricVariable();\n if (!metric || variable.getValue() === metric) {\n return;\n }\n\n variable.changeValueTo(metric, undefined, true);\n };\n\n public getMetricFunction() {\n return this.getMetricVariable().getValue() as MetricFunction;\n }\n\n public closeDrawer() {\n this.setState({ traceId: undefined, spanId: undefined });\n }\n\n private setupInvestigationButton(traceId: string) {\n const traceExploration = getTraceExplorationScene(this);\n const dsUid = getDataSource(traceExploration);\n\n const queryRunner = new SceneQueryRunner({\n datasource: { uid: dsUid },\n queries: [\n {\n refId: 'A',\n query: traceId,\n queryType: 'traceql',\n },\n ],\n });\n\n const addToInvestigationButton = new AddToInvestigationButton({\n query: traceId,\n type: 'trace',\n dsUid,\n $data: queryRunner,\n });\n\n addToInvestigationButton.activate();\n this.setState({ addToInvestigationButton });\n this._subs.add(\n addToInvestigationButton.subscribeToState(() => {\n this.updateInvestigationLink();\n })\n );\n\n queryRunner.activate();\n\n this._subs.add(\n queryRunner.subscribeToState((state) => {\n if (state.data?.state === LoadingState.Done && state.data?.series?.length > 0) {\n const serviceNameField = state.data.series[0]?.fields?.find((f) => f.name === 'serviceName');\n\n if (serviceNameField && serviceNameField.values[0]) {\n addToInvestigationButton.setState({\n ...addToInvestigationButton.state,\n labelValue: `${serviceNameField.values[0]}`,\n });\n }\n }\n })\n );\n\n addToInvestigationButton.setState({\n ...addToInvestigationButton.state,\n labelValue: traceId,\n });\n }\n\n private async updateInvestigationLink() {\n const { addToInvestigationButton } = this.state;\n if (!addToInvestigationButton) {\n return;\n }\n\n const link = await getInvestigationLink(addToInvestigationButton);\n if (link) {\n this.setState({ investigationLink: link });\n }\n }\n\n static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n const styles = useStyles2(getStyles);\n\n return
{body && }
;\n };\n}\n\nexport class TraceExplorationScene extends SceneObjectBase {\n static Component = ({ model }: SceneComponentProps) => {\n const traceExploration = getTraceExplorationScene(model);\n const {\n controls,\n topScene,\n drawerScene,\n traceId,\n issueDetector,\n investigationLink,\n addToInvestigationButton,\n embedded,\n } = traceExploration.useState();\n const { hasIssue } = issueDetector?.useState() || {\n hasIssue: false,\n };\n const styles = useStyles2(getStyles);\n\n const addToInvestigationClicked = (e: React.MouseEvent) => {\n if (investigationLink?.onClick) {\n investigationLink.onClick(e);\n }\n\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.add_to_investigation_trace_view_clicked\n );\n\n setTimeout(() => traceExploration.closeDrawer(), 100);\n };\n\n return (\n
\n {hasIssue && issueDetector && }\n {embedded ? : }\n
{topScene && }
\n traceExploration.closeDrawer()}\n title={`View trace ${traceId}`}\n embedded={embedded}\n forceNoDrawer={embedded}\n investigationButton={\n addToInvestigationButton &&\n investigationLink && (\n \n )\n }\n >\n {drawerScene && }\n \n
\n );\n };\n}\n\nexport const useServiceName = (model: SceneObject) => {\n const [serviceName, setServiceName] = React.useState();\n const traceExploration = getTraceExplorationScene(model);\n const filtersVariable = getFiltersVariable(traceExploration);\n\n const getServiceNameFromFilters = (filters: AdHocVariableFilter[]) => {\n const serviceNameFilter = filters.find((f) => f.key === 'resource.service.name');\n return serviceNameFilter?.operator === '=' || serviceNameFilter?.operator === '=~'\n ? serviceNameFilter?.value?.replace(/\"/g, '')\n : undefined;\n };\n\n useEffect(() => {\n setServiceName(getServiceNameFromFilters(filtersVariable.state.filters));\n\n const sub = filtersVariable.subscribeToState((newState) => {\n setServiceName(getServiceNameFromFilters(newState.filters));\n });\n\n return () => {\n sub.unsubscribe();\n };\n }, [filtersVariable]);\n\n return serviceName;\n};\n\nconst EmbeddedHeader = ({ model }: SceneComponentProps) => {\n const setReturnToPrevious = useReturnToPrevious();\n const styles = useStyles2(getStyles, true);\n const traceExploration = getTraceExplorationScene(model);\n const { returnToPreviousSource } = traceExploration.useState();\n const filtersVariable = getFiltersVariable(traceExploration);\n const primarySignalVariable = getPrimarySignalVariable(traceExploration);\n const timeRangeControl = traceExploration.state.controls.find((control) => control instanceof SceneTimePicker);\n\n const timeRangeState = traceExploration.state.$timeRange?.useState();\n const filtersVariableState = filtersVariable.useState();\n const metricVariableState = traceExploration.getMetricVariable().useState();\n const [explorationUrl, setExplorationUrl] = React.useState(() => getUrlForExploration(traceExploration));\n \n // Force the primary signal to be 'All Spans'\n primarySignalVariable?.changeValueTo(primarySignalOptions[1].value!);\n\n useEffect(() => {\n setExplorationUrl(getUrlForExploration(traceExploration));\n }, [timeRangeState, filtersVariableState, metricVariableState, traceExploration]);\n\n return (\n
\n \n \n {filtersVariable && (\n
\n \n
\n )}\n \n {\n setReturnToPrevious(returnToPreviousSource || 'previous');\n reportAppInteraction(USER_EVENTS_PAGES.common, USER_EVENTS_ACTIONS.common.go_to_full_app_clicked);\n }}\n >\n Traces Drilldown\n \n {timeRangeControl && }\n \n
\n
\n );\n};\n\ninterface TraceExplorationHeaderProps {\n controls: SceneObject[];\n model: SceneObject;\n}\n\nconst TraceExplorationHeader = ({ controls, model }: TraceExplorationHeaderProps) => {\n const styles = useStyles2(getStyles);\n const [menuVisible, setMenuVisible] = React.useState(false);\n const serviceName = useServiceName(model);\n const traceExploration = getTraceExplorationScene(model);\n\n const dsVariable = sceneGraph.lookupVariable(VAR_DATASOURCE, traceExploration);\n const filtersVariable = getFiltersVariable(traceExploration);\n const primarySignalVariable = getPrimarySignalVariable(traceExploration);\n\n function VersionHeader() {\n const styles = useStyles2(getStyles);\n\n return (\n
\n
Grafana Traces Drilldown v{version}
\n
Last update: {compositeVersion}
\n
\n );\n }\n\n const menu = (\n }>\n
\n {config.feedbackLinksEnabled && (\n \n reportAppInteraction(USER_EVENTS_PAGES.common, USER_EVENTS_ACTIONS.common.global_docs_link_clicked)\n }\n />\n )}\n \n reportAppInteraction(USER_EVENTS_PAGES.common, USER_EVENTS_ACTIONS.common.feedback_link_clicked)\n }\n />\n
\n
\n );\n\n return (\n
\n \n \n {dsVariable && (\n \n
Data source
\n \n
\n )}\n
\n
\n \n setMenuVisible(!menuVisible)}>\n \n \n {controls.map((control) => (\n \n ))}\n
\n
\n \n \n
Filters
\n {primarySignalVariable && }\n
\n {filtersVariable && (\n
\n \n
\n )}\n
\n
\n );\n};\n\nfunction getTopScene() {\n return new TracesByServiceScene({});\n}\n\nfunction getVariableSet(state: TraceExplorationState) {\n return new SceneVariableSet({\n variables: [\n new DataSourceVariable({\n name: VAR_DATASOURCE,\n label: 'Data source',\n value: state.initialDS,\n pluginId: 'tempo',\n isReadOnly: state.embedded,\n }),\n new PrimarySignalVariable({\n name: VAR_PRIMARY_SIGNAL,\n isReadOnly: state.embedded,\n }),\n new AttributeFiltersVariable({\n initialFilters: state.initialFilters,\n embedderName: state.embedderName,\n embedded: state.embedded,\n }),\n new CustomVariable({\n name: VAR_METRIC,\n hide: VariableHide.hideVariable,\n }),\n new CustomVariable({\n name: VAR_GROUPBY,\n defaultToAll: false,\n value: state.initialGroupBy,\n }),\n new CustomVariable({\n name: VAR_SPAN_LIST_COLUMNS,\n defaultToAll: false,\n }),\n new CustomVariable({\n name: VAR_LATENCY_THRESHOLD,\n defaultToAll: false,\n hide: VariableHide.hideVariable,\n }),\n new CustomVariable({\n name: VAR_LATENCY_PARTIAL_THRESHOLD,\n defaultToAll: false,\n hide: VariableHide.hideVariable,\n }),\n ],\n });\n}\n\nfunction getStyles(theme: GrafanaTheme2, embedded?: boolean) {\n return {\n bodyContainer: css({\n label: 'bodyContainer',\n flexGrow: 1,\n display: 'flex',\n minHeight: '100%',\n flexDirection: 'column',\n }),\n container: css({\n label: 'container',\n flexGrow: 1,\n display: 'flex',\n gap: theme.spacing(1),\n minHeight: '100%',\n flexDirection: 'column',\n padding: `0 ${theme.spacing(2)} ${theme.spacing(2)} ${theme.spacing(2)}`,\n overflow: 'auto' /* Needed for sticky positioning */,\n maxHeight: '100%' /* Needed for sticky positioning */,\n position: 'relative', // Needed for the drawer to be positioned correctly\n }),\n drawerHeader: css({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n borderBottom: `1px solid ${theme.colors.border.weak}`,\n paddingBottom: theme.spacing(2),\n marginBottom: theme.spacing(2),\n\n h3: {\n margin: 0,\n },\n }),\n drawerHeaderButtons: css({\n display: 'flex',\n justifyContent: 'flex-end',\n gap: theme.spacing(1.5),\n }),\n body: css({\n label: 'body',\n flexGrow: 1,\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n }),\n headerContainer: css({\n label: 'headerContainer',\n backgroundColor: embedded ? theme.colors.background.primary : theme.colors.background.canvas,\n display: 'flex',\n flexDirection: 'column',\n position: 'sticky',\n top: 0,\n zIndex: 3,\n padding: `${theme.spacing(1.5)} 0`,\n gap: theme.spacing(1),\n }),\n datasourceLabel: css({\n label: 'datasourceLabel',\n fontSize: '12px',\n padding: `0 ${theme.spacing(1)}`,\n height: '32px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n fontWeight: theme.typography.fontWeightMedium,\n position: 'relative',\n right: -1,\n width: '90px',\n }),\n controls: css({\n label: 'controls',\n display: 'flex',\n gap: theme.spacing(1),\n zIndex: 3,\n flexWrap: 'wrap',\n }),\n menu: css({\n label: 'menu',\n 'svg, span': {\n color: theme.colors.text.link,\n },\n }),\n menuHeader: css`\n padding: ${theme.spacing(0.5, 1)};\n white-space: nowrap;\n `,\n menuHeaderSubtitle: css`\n color: ${theme.colors.text.secondary};\n font-size: ${theme.typography.bodySmall.fontSize};\n `,\n tooltip: css({\n label: 'tooltip',\n fontSize: '14px',\n lineHeight: '22px',\n width: '180px',\n textAlign: 'center',\n }),\n helpIcon: css({\n label: 'helpIcon',\n marginLeft: theme.spacing(1),\n }),\n filters: css({\n label: 'filters',\n marginTop: theme.spacing(1),\n display: 'flex',\n gap: theme.spacing(1),\n }),\n };\n}\n","import { css, keyframes } from '@emotion/css';\nimport { SceneObjectState, SceneObjectBase, SceneComponentProps } from '@grafana/scenes';\nimport { useStyles2, useTheme2 } from '@grafana/ui';\nimport React from 'react';\nimport { SkeletonTheme } from 'react-loading-skeleton';\nimport { testIds } from 'utils/testIds';\n\ninterface LoadingStateSceneState extends SceneObjectState {\n component: () => React.JSX.Element;\n}\n\nexport class LoadingStateScene extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n const theme = useTheme2();\n const styles = useStyles2(getStyles);\n const { component } = model.useState();\n\n return (\n
\n \n {component()}\n \n
\n );\n };\n}\n\nconst fadeIn = keyframes({\n '0%': {\n opacity: 0,\n },\n '100%': {\n opacity: 1,\n },\n});\n\nfunction getStyles() {\n return {\n container: css({\n label: 'loading-state-scene',\n // animation prevents flickering when loading\n animationName: fadeIn,\n animationDelay: '100ms',\n animationTimingFunction: 'ease-in',\n animationDuration: '100ms',\n animationFillMode: 'backwards',\n }),\n };\n}\n","import React from 'react';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { Icon, Tooltip, useStyles2 } from '@grafana/ui';\nimport { css } from '@emotion/css';\n\ninterface StreamingIndicatorProps {\n isStreaming: boolean;\n iconSize?: number;\n}\n\nexport const StreamingIndicator = ({ \n isStreaming, \n iconSize = 14,\n}: StreamingIndicatorProps) => {\n const styles = useStyles2(getStyles, iconSize);\n\n if (!isStreaming) {\n return null;\n }\n\n return (\n \n \n \n );\n};\n\nconst getStyles = (theme: GrafanaTheme2, iconSize: number) => {\n return {\n streamingIndicator: css({\n width: `${iconSize}px`,\n height: `${iconSize}px`,\n backgroundColor: theme.colors.success.text,\n fill: theme.colors.success.text,\n borderRadius: '50%',\n display: 'inline-block',\n }),\n };\n}; \n","import { map, Observable } from 'rxjs';\nimport { DataFrame, DataTopic, Field } from '@grafana/data';\nimport { CustomTransformerDefinition } from '@grafana/scenes';\n\nexport const exemplarsTransformations = (\n openTrace?: (traceId: string, spanId?: string) => void\n): CustomTransformerDefinition[] => [\n {\n topic: DataTopic.Annotations,\n operator: () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n return data.map((frame) => {\n if (frame.name === 'exemplar') {\n const traceIDField = frame.fields.find((field: Field) => field.name === 'traceId');\n if (traceIDField) {\n // The traceID will be interpolated in the url\n // Then, onClick we retrieve the traceId from the url and navigate to the trace exploration scene by setting the state\n traceIDField.config.links = [\n {\n title: 'View trace',\n url: '#${__value.raw}',\n onClick: (event) => {\n event.e.stopPropagation(); // Prevent the click event from propagating to the parent anchor\n const parentAnchorHref = event.e.target?.parentElement?.parentElement?.href;\n if (!parentAnchorHref || parentAnchorHref.indexOf('#') === -1) {\n return;\n }\n const traceId = parentAnchorHref.split('#')[1];\n if (!traceId || traceId === '') {\n return;\n }\n openTrace?.(traceId);\n },\n },\n ];\n }\n }\n\n return frame;\n });\n })\n );\n },\n },\n];\n\nexport const removeExemplarsTransformation = (): CustomTransformerDefinition[] => [\n {\n topic: DataTopic.Annotations,\n operator: () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n return data.filter((frame) => frame.name !== 'exemplar');\n })\n );\n },\n },\n];\n\n","import { throttle } from 'lodash';\nimport { useState, useEffect } from 'react';\n\ninterface MousePosition {\n x: number | null;\n y: number | null;\n}\n\n// For performance reasons, we throttle the mouse position updates\nconst DEFAULT_THROTTLE_INTERVAL_MS = 50;\n\nconst useMousePosition = (throttleInterval = DEFAULT_THROTTLE_INTERVAL_MS) => {\n const [mousePosition, setMousePosition] = useState({ x: null, y: null });\n\n useEffect(() => {\n const updateMousePosition = throttle((event: MouseEvent) => {\n setMousePosition({ x: event.clientX, y: event.clientY });\n }, throttleInterval);\n window.addEventListener('mousemove', updateMousePosition);\n\n return () => {\n window.removeEventListener('mousemove', updateMousePosition);\n };\n }, [throttleInterval]);\n\n return mousePosition;\n};\n\nexport default useMousePosition;\n","import { css } from '@emotion/css';\nimport React, { SVGProps } from 'react';\nimport SVG from 'react-inlinesvg';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2, useTheme2 } from '@grafana/ui';\n\nimport dark404 from './img/grot-404-dark.svg';\nimport light404 from './img/grot-404-light.svg';\n\nimport useMousePosition from './useMousePosition';\n\nconst MIN_ARM_ROTATION = -20;\nconst MAX_ARM_ROTATION = 5;\nconst MIN_ARM_TRANSLATION = -5;\nconst MAX_ARM_TRANSLATION = 5;\n\nexport interface Props {\n width?: SVGProps['width'];\n height?: SVGProps['height'];\n show404?: boolean;\n}\n\nexport const GrotNotFound = ({ width = 'auto', height, show404 = false }: Props) => {\n const theme = useTheme2();\n const { x, y } = useMousePosition();\n const styles = useStyles2(getStyles, x, y, show404);\n return ;\n};\n\nGrotNotFound.displayName = 'GrotNotFound';\n\nconst getStyles = (theme: GrafanaTheme2, xPos: number | null, yPos: number | null, show404: boolean) => {\n const { innerWidth, innerHeight } = window;\n const heightRatio = yPos && yPos / innerHeight;\n const widthRatio = xPos && xPos / innerWidth;\n const rotation = heightRatio !== null ? getIntermediateValue(heightRatio, MIN_ARM_ROTATION, MAX_ARM_ROTATION) : 0;\n const translation =\n widthRatio !== null ? getIntermediateValue(widthRatio, MIN_ARM_TRANSLATION, MAX_ARM_TRANSLATION) : 0;\n\n return {\n svg: css({\n '#grot-404-arm, #grot-404-magnifier': {\n transform: `rotate(${rotation}deg) translateX(${translation}%)`,\n transformOrigin: 'center',\n transition: 'transform 50ms linear',\n },\n '#grot-404-text': {\n display: show404 ? 'block' : 'none',\n },\n }),\n };\n};\n\n/**\n * Given a start value, end value, and a ratio, return the intermediate value\n * Works with negative and inverted start/end values\n */\nconst getIntermediateValue = (ratio: number, start: number, end: number) => {\n const value = ratio * (end - start) + start;\n return value;\n};\n","import React from 'react';\n\nimport { Icon, Stack, Text, useStyles2 } from '@grafana/ui';\nimport { GrafanaTheme2 } from '@grafana/data';\n\nimport { GrotNotFound } from './GrotNotFound';\nimport { css } from '@emotion/css';\nimport { testIds } from 'utils/testIds';\n\nexport interface Props {\n message?: string | React.ReactNode;\n remedyMessage?: string;\n imgWidth?: number;\n padding?: string;\n}\n\nexport const EmptyState = ({ message, remedyMessage, imgWidth, padding }: Props) => {\n const styles = useStyles2(getStyles, padding);\n\n return (\n
\n \n \n {typeof message === 'string' && {message}}\n {typeof message !== 'string' && message}\n\n {remedyMessage && (\n
\n \n \n \n {remedyMessage}\n \n \n
\n )}\n
\n
\n );\n};\n\nEmptyState.displayName = 'EmptyState';\n\nfunction getStyles(theme: GrafanaTheme2, padding?: string) {\n return {\n container: css({\n width: '100%',\n display: 'flex',\n justifyContent: 'space-evenly',\n flexDirection: 'column',\n padding: padding ? padding : 0,\n }),\n remedy: css({\n marginBottom: theme.spacing(4),\n })\n };\n}\n","import { SelectableValue } from '@grafana/data';\n\nexport const DATABASE_CALLS_KEY = 'span.db.system.name';\n\nexport const primarySignalOptions: Array> = [\n {\n label: 'Root spans',\n value: 'nestedSetParent<0',\n filter: { key: 'nestedSetParent', operator: '<', value: '0' },\n description: 'Focus your analysis on the root span of each trace',\n },\n {\n label: 'All spans',\n value: 'true',\n filter: { key: '', operator: '', value: true },\n description: 'View and analyse raw span data. This option may result in long query times.',\n },\n {\n label: 'Server spans',\n value: 'kind=server',\n filter: { key: 'kind', operator: '=', value: 'server' },\n description: 'Explore server-specific segments of traces',\n },\n {\n label: 'Consumer spans',\n value: 'kind=consumer',\n filter: { key: 'kind', operator: '=', value: 'consumer' },\n description: 'Analyze interactions initiated by consumer services',\n },\n {\n label: 'Database calls',\n value: `${DATABASE_CALLS_KEY}!=\"\"`,\n filter: { key: DATABASE_CALLS_KEY, operator: '!=', value: '\"\"' },\n description: 'Evaluate the performance issues in database interactions',\n },\n];\n\nexport const getSignalForKey = (key?: string) => {\n return primarySignalOptions.find((option) => option.value === key);\n};\n","import { PanelMenuItem, PluginExtensionLink, toURLRange, urlUtil } from '@grafana/data';\nimport {\n SceneObjectBase,\n VizPanelMenu,\n SceneObject,\n SceneComponentProps,\n sceneGraph,\n SceneObjectState,\n} from '@grafana/scenes';\nimport React from 'react';\nimport { AddToInvestigationButton } from '../actions/AddToInvestigationButton';\n// Certain imports are not available in the dependant package, but can be if the plugin is running in a different Grafana version.\n// We need both imports to support Grafana v11 and v12.\n// @ts-expect-error\nimport { config, getPluginLinkExtensions, getObservablePluginLinks } from '@grafana/runtime';\nimport { reportAppInteraction, USER_EVENTS_PAGES, USER_EVENTS_ACTIONS } from 'utils/analytics';\nimport { getCurrentStep, getDataSource, getTraceExplorationScene } from 'utils/utils';\nimport { firstValueFrom } from 'rxjs';\n\nexport const ADD_TO_INVESTIGATION_MENU_TEXT = 'Add to investigation';\nconst extensionPointId = 'grafana-exploretraces-app/investigation/v1';\nconst ADD_TO_INVESTIGATION_MENU_DIVIDER_TEXT = 'investigations_divider'; // Text won't be visible\nconst ADD_TO_INVESTIGATION_MENU_GROUP_TEXT = 'Investigations';\n\ninterface PanelMenuState extends SceneObjectState {\n body?: VizPanelMenu;\n query?: string;\n labelValue?: string;\n addToInvestigationButton?: AddToInvestigationButton;\n}\n\nexport class PanelMenu extends SceneObjectBase implements VizPanelMenu, SceneObject {\n constructor(state: Partial) {\n super(state);\n this.addActivationHandler(() => {\n const items: PanelMenuItem[] = [\n {\n text: 'Navigation',\n type: 'group',\n },\n {\n text: 'Explore',\n iconClassName: 'compass',\n href: getExploreHref(this),\n onClick: () => onExploreClick(),\n },\n ];\n\n this.setState({\n body: new VizPanelMenu({\n items,\n }),\n });\n\n const traceExploration = getTraceExplorationScene(this);\n const dsUid = getDataSource(traceExploration);\n\n const addToInvestigationButton = new AddToInvestigationButton({\n query: this.state.query,\n dsUid,\n });\n\n addToInvestigationButton.activate();\n this.setState({ addToInvestigationButton });\n this._subs.add(\n addToInvestigationButton?.subscribeToState(() => {\n subscribeToAddToInvestigation(this);\n })\n );\n \n addToInvestigationButton.setState({\n ...addToInvestigationButton.state,\n labelValue: this.state.labelValue,\n });\n });\n }\n\n addItem(item: PanelMenuItem): void {\n if (this.state.body) {\n this.state.body.addItem(item);\n }\n }\n\n setItems(items: PanelMenuItem[]): void {\n if (this.state.body) {\n this.state.body.setItems(items);\n }\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n\n if (body) {\n return ;\n }\n\n return <>;\n };\n}\n\nconst getExploreHref = (model: SceneObject) => {\n const traceExploration = getTraceExplorationScene(model);\n const datasource = getDataSource(traceExploration);\n const timeRange = sceneGraph.getTimeRange(model).state.value;\n const step = getCurrentStep(model);\n\n const exploreState = JSON.stringify({\n ['traces-explore']: {\n range: toURLRange(timeRange.raw),\n queries: [{ refId: 'A', datasource, query: model.state.query, step }],\n },\n });\n const subUrl = config.appSubUrl ?? '';\n const exploreUrl = urlUtil.renderUrl(`${subUrl}/explore`, { panes: exploreState, schemaVersion: 1 });\n return exploreUrl;\n};\n\nconst onExploreClick = () => {\n reportAppInteraction(USER_EVENTS_PAGES.analyse_traces, USER_EVENTS_ACTIONS.analyse_traces.open_in_explore_clicked);\n};\n\nexport const getInvestigationLink = async (addToInvestigations: AddToInvestigationButton) => {\n const context = addToInvestigations.state.context;\n\n // `getPluginLinkExtensions` is removed in Grafana v12\n if (getPluginLinkExtensions !== undefined) {\n const links = getPluginLinkExtensions({\n extensionPointId,\n context,\n });\n\n return links.extensions[0];\n }\n\n // `getObservablePluginLinks` is introduced in Grafana v12\n if (getObservablePluginLinks !== undefined) {\n const links: PluginExtensionLink[] = await firstValueFrom(\n getObservablePluginLinks({\n extensionPointId,\n context,\n })\n );\n\n return links[0];\n }\n\n return undefined;\n};\n\nasync function subscribeToAddToInvestigation(menu: PanelMenu) {\n const addToInvestigationButton = menu.state.addToInvestigationButton;\n if (addToInvestigationButton) {\n const link = await getInvestigationLink(addToInvestigationButton);\n const existingMenuItems = menu.state.body?.state.items ?? [];\n const existingAddToInvestigationLink = existingMenuItems.find(\n (item) => item.text === ADD_TO_INVESTIGATION_MENU_TEXT\n );\n\n if (link) {\n if (!existingAddToInvestigationLink) {\n menu.state.body?.addItem({\n text: ADD_TO_INVESTIGATION_MENU_DIVIDER_TEXT,\n type: 'divider',\n });\n menu.state.body?.addItem({\n text: ADD_TO_INVESTIGATION_MENU_GROUP_TEXT,\n type: 'group',\n });\n menu.state.body?.addItem({\n text: ADD_TO_INVESTIGATION_MENU_TEXT,\n iconClassName: 'plus-square',\n onClick: (e) => {\n if (link.onClick) {\n link.onClick(e);\n }\n\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.add_to_investigation_clicked\n );\n },\n });\n } else {\n if (existingAddToInvestigationLink) {\n menu.state.body?.setItems(\n existingMenuItems.filter(\n (item) =>\n [\n ADD_TO_INVESTIGATION_MENU_DIVIDER_TEXT,\n ADD_TO_INVESTIGATION_MENU_GROUP_TEXT,\n ADD_TO_INVESTIGATION_MENU_TEXT,\n ].includes(item.text) === false\n )\n );\n }\n }\n }\n }\n}\n","import { DataFrame } from '@grafana/data';\nimport { ComparisonSelection, MetricFunction } from './shared';\n\nexport const computeHighestDifference = (frame: DataFrame) => {\n const baselineField = frame.fields.find((f) => f.name === 'Baseline');\n const selectionField = frame.fields.find((f) => f.name === 'Selection');\n\n let maxDifference = 0;\n let maxDifferenceIndex = 0;\n\n for (let i = 0; i < (baselineField?.values?.length || 0); i++) {\n const diff = (selectionField?.values[i] || 0) - (baselineField?.values[i] || 0);\n if (Math.abs(diff) > Math.abs(maxDifference || 0)) {\n maxDifference = diff;\n maxDifferenceIndex = i;\n }\n }\n\n return { maxDifference, maxDifferenceIndex };\n};\n\nexport const getDefaultSelectionForMetric = (metric: MetricFunction): ComparisonSelection | undefined => {\n if (metric === 'duration') {\n return undefined;\n }\n return { query: 'status = error', type: 'auto' };\n};\n","import React, { useEffect } from 'react';\nimport { CustomVariable, MultiValueVariable, MultiValueVariableState, SceneComponentProps } from '@grafana/scenes';\nimport { primarySignalOptions } from './primary-signals';\nimport { Icon, RadioButtonGroup, Select, useStyles2, Text } from '@grafana/ui';\nimport { css } from '@emotion/css';\nimport { components, DropdownIndicatorProps } from 'react-select';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from 'utils/analytics';\nimport { GrafanaTheme2 } from '@grafana/data';\n\nconst CustomMenu = (props: any) => {\n const styles = useStyles2(getStyles);\n return ;\n};\n\nexport function DropdownIndicator({ selectProps }: DropdownIndicatorProps) {\n const isOpen = selectProps.menuIsOpen;\n const icon = isOpen ? 'angle-up' : 'angle-down';\n const size = 'md';\n return ;\n}\n\nconst GroupHeading = () => {\n const styles = useStyles2(getStyles);\n return (\n
\n \n Primary signal\n \n
\n );\n};\n\nexport class PrimarySignalVariable extends CustomVariable {\n static Component = ({ model }: SceneComponentProps>) => {\n const styles = useStyles2(getStyles);\n const { value, isReadOnly } = model.useState();\n\n // ensure the variable is set to the default value\n useEffect(() => {\n if (!value) {\n model.changeValueTo(isReadOnly ? primarySignalOptions[1].value! : primarySignalOptions[0].value!);\n }\n });\n\n const buttonGroupOptions = primarySignalOptions.slice(0, 2);\n const currentSignal = primarySignalOptions.find((option) => option.value === value);\n if (currentSignal && !buttonGroupOptions.some((option) => option.filter.key === currentSignal.filter.key)) {\n buttonGroupOptions.push(currentSignal);\n }\n const selectOptions = primarySignalOptions.filter(\n (option) => !buttonGroupOptions.some((b) => b.value === option.value)\n );\n\n const onChange = (v: string) => {\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.primary_signal_changed,\n {\n primary_signal: v,\n }\n );\n model.changeValueTo(v!, undefined, true);\n };\n\n if (isReadOnly) {\n return <>;\n }\n\n return (\n <>\n \n onChange(v.value!)}\n className={styles.select}\n components={{\n IndicatorSeparator: () => null,\n SingleValue: () => null,\n Menu: CustomMenu,\n DropdownIndicator,\n GroupHeading,\n }}\n />\n \n );\n };\n}\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n select: css`\n [class$='input-suffix'] {\n position: absolute;\n z-index: 2;\n }\n\n :focus-within {\n outline: none;\n box-shadow: none;\n }\n\n > div {\n padding: 0;\n }\n\n input {\n opacity: 0 !important;\n }\n\n border-radius: 0 2px 2px 0;\n border-left: none;\n `,\n buttonGroup: css`\n border-radius: 2px 0 0 2px;\n `,\n customMenu: css`\n width: 230px;\n\n [class$='grafana-select-option-grafana-select-option-focused'] {\n background: transparent;\n\n ::before {\n display: none;\n }\n }\n `,\n heading: css({\n padding: theme.spacing(1, 1, 0.75, 0.75),\n borderLeft: '2px solid transparent',\n borderBottom: `1px solid ${theme.colors.border.weak}`,\n }),\n});\n","import { reportInteraction } from '@grafana/runtime';\nimport pluginJson from '../plugin.json';\n\n// Helper function to create a unique interaction name for analytics\nconst createInteractionName = (page: UserEventPagesType, action: string) => {\n return `${pluginJson.id.replace(/-/g, '_')}_${page}_${action}`;\n};\n\n// Runs reportInteraction with a standardized interaction name\nexport const reportAppInteraction = (\n page: UserEventPagesType,\n action: UserEventActionType,\n properties?: Record\n) => {\n reportInteraction(createInteractionName(page, action), properties);\n};\n\nexport const USER_EVENTS_PAGES = {\n analyse_traces: 'analyse_traces',\n home: 'home',\n common: 'common',\n} as const;\n\nexport type UserEventPagesType = keyof typeof USER_EVENTS_PAGES;\ntype UserEventActionType =\n | keyof (typeof USER_EVENTS_ACTIONS)['analyse_traces']\n | keyof (typeof USER_EVENTS_ACTIONS)['home']\n | keyof (typeof USER_EVENTS_ACTIONS)['common'];\n\nexport const USER_EVENTS_ACTIONS = {\n [USER_EVENTS_PAGES.analyse_traces]: {\n action_view_changed: 'action_view_changed',\n breakdown_group_by_changed: 'breakdown_group_by_changed',\n breakdown_add_to_filters_clicked: 'breakdown_add_to_filters_clicked',\n comparison_add_to_filters_clicked: 'comparison_add_to_filters_clicked',\n select_attribute_in_comparison_clicked: 'select_attribute_in_comparison_clicked',\n layout_type_changed: 'layout_type_changed',\n start_investigation: 'start_investigation',\n stop_investigation: 'stop_investigation',\n open_trace: 'open_trace',\n open_in_explore_clicked: 'open_in_explore_clicked',\n add_to_investigation_clicked: 'add_to_investigation_clicked',\n add_to_investigation_trace_view_clicked: 'add_to_investigation_trace_view_clicked',\n span_list_columns_changed: 'span_list_columns_changed',\n toggle_bookmark_clicked: 'toggle_bookmark_clicked',\n primary_signal_changed: 'primary_signal_changed',\n exception_message_clicked: 'exception_message_clicked',\n },\n [USER_EVENTS_PAGES.home]: {\n homepage_initialized: 'homepage_initialized',\n panel_row_clicked: 'panel_row_clicked',\n explore_traces_clicked: 'explore_traces_clicked',\n read_documentation_clicked: 'read_documentation_clicked',\n filter_changed: 'filter_changed',\n go_to_bookmark_clicked: 'go_to_bookmark_clicked',\n },\n [USER_EVENTS_PAGES.common]: {\n metric_changed: 'metric_changed',\n new_filter_added_manually: 'new_filter_added_manually',\n app_initialized: 'app_initialized',\n global_docs_link_clicked: 'global_docs_link_clicked',\n metric_docs_link_clicked: 'metric_docs_link_clicked',\n feedback_link_clicked: 'feedback_link_clicked',\n go_to_full_app_clicked: 'go_to_full_app_clicked',\n },\n} as const;\n","import { QueryRunnerState, sceneGraph, SceneQueryRunner } from '@grafana/scenes';\nimport { getStepForTimeRange } from '../../../utils/dates';\n\nexport class StepQueryRunner extends SceneQueryRunner {\n constructor(state: QueryRunnerState) {\n super(state);\n this.addActivationHandler(this._onActivateStep.bind(this));\n }\n\n private _onActivateStep() {\n const step = getStepForTimeRange(this, this.state.maxDataPoints);\n this.setState({\n queries: this.state.queries.map((query) => {\n return {\n ...query,\n step,\n };\n }),\n });\n\n const sceneTimeRange = sceneGraph.getTimeRange(this);\n sceneTimeRange.subscribeToState((newState, prevState) => {\n if (newState.value.from !== prevState.value.from || newState.value.to !== prevState.value.to) {\n const newStep = getStepForTimeRange(this, this.state.maxDataPoints);\n this.setState({\n queries: this.state.queries.map((query) => {\n return {\n ...query,\n step: newStep,\n };\n }),\n });\n }\n });\n }\n}\n","import { PanelBuilders } from '@grafana/scenes';\nimport { DrawStyle, StackingMode, TooltipDisplayMode } from '@grafana/ui';\nimport { MetricFunction } from 'utils/shared';\n\nexport const barsPanelConfig = (metric: MetricFunction, axisWidth?: number) => {\n const isErrorsMetric = metric === 'errors' || false;\n \n const builder = PanelBuilders.timeseries()\n .setOption('legend', { showLegend: false })\n .setCustomFieldConfig('drawStyle', DrawStyle.Bars)\n .setCustomFieldConfig('stacking', { mode: StackingMode.Normal })\n .setCustomFieldConfig('fillOpacity', 75)\n .setCustomFieldConfig('lineWidth', 0)\n .setCustomFieldConfig('pointSize', 0)\n .setCustomFieldConfig('axisLabel', 'Rate')\n .setOverrides((overrides) => {\n overrides.matchFieldsWithNameByRegex('.*').overrideColor({\n mode: 'fixed',\n fixedColor: isErrorsMetric ? 'semi-dark-red' : 'green',\n });\n })\n .setOption('tooltip', { mode: TooltipDisplayMode.Multi });\n\n if (axisWidth !== undefined) {\n builder.setCustomFieldConfig('axisWidth', axisWidth);\n }\n\n return builder;\n};\n","import React from 'react';\n\nimport { SceneObjectBase, SceneComponentProps, SceneObjectState } from '@grafana/scenes';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { Button, useStyles2 } from '@grafana/ui';\nimport { css } from '@emotion/css';\nimport { getMetricValue, getTraceByServiceScene, shouldShowSelection } from 'utils/utils';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../../utils/analytics';\nimport { ComparisonSelection } from '../../../utils/shared';\n\nexport interface ComparisonControlState extends SceneObjectState {\n selection?: ComparisonSelection;\n}\n\nexport class DurationComparisonControl extends SceneObjectBase {\n public constructor({ selection }: ComparisonControlState) {\n super({ selection });\n }\n\n public startInvestigation = () => {\n const byServiceScene = getTraceByServiceScene(this);\n byServiceScene.setState({ selection: this.state.selection });\n if (!shouldShowSelection(byServiceScene.state.actionView)) {\n byServiceScene.setActionView('comparison');\n }\n\n reportAppInteraction(USER_EVENTS_PAGES.analyse_traces, USER_EVENTS_ACTIONS.analyse_traces.start_investigation, {\n selection: this.state.selection,\n metric: getMetricValue(this),\n });\n };\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { selection } = getTraceByServiceScene(model).useState();\n const styles = useStyles2(getStyles);\n\n const isDisabled = selection?.type === 'auto';\n const tooltip = isDisabled\n ? 'Slowest traces are selected, navigate to the Comparison or Slow Traces tab for more details.'\n : undefined;\n\n return (\n
\n \n {isDisabled ? 'Slowest traces selected' : 'Select slowest traces'}\n \n
\n );\n };\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n wrapper: css({\n display: 'flex',\n gap: '16px',\n alignItems: 'center',\n }),\n placeholder: css({\n color: theme.colors.text.secondary,\n fontSize: theme.typography.bodySmall.fontSize,\n display: 'flex',\n gap: theme.spacing.x0_5,\n }),\n };\n}\n","import React, { ReactElement } from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { usePluginComponent } from '@grafana/runtime';\nimport { sceneGraph, SceneObject } from '@grafana/scenes';\nimport { css } from '@emotion/css';\nimport { useStyles2 } from '@grafana/ui';\nimport { getMetricVariable } from 'utils/utils';\nimport { MetricFunction } from 'utils/shared';\n\nexport type AssertionSeverity = 'warning' | 'critical' | 'info';\n\ninterface InsightsTimelineWidgetProps {\n serviceName: string;\n start: string | number;\n end: string | number;\n filterBySeverity?: AssertionSeverity[];\n filterBySummaryKeywords?: string[];\n label?: ReactElement;\n}\n\nexport type InsightsTimelineWidgetExternal = (props: InsightsTimelineWidgetProps) => ReactElement | null;\n\ninterface Props {\n serviceName: string;\n model: SceneObject;\n}\n\nexport function InsightsTimelineWidget({ serviceName, model }: Props) {\n const { isLoading, component: InsightsTimelineWidgetExternal } = usePluginComponent(\n 'grafana-asserts-app/insights-timeline-widget/v1'\n );\n const styles = useStyles2(getStyles);\n const sceneTimeRange = sceneGraph.getTimeRange(model).useState();\n\n const metric = getMetricVariable(model).state.value as MetricFunction;\n let filterBySeverity: AssertionSeverity[] = [];\n if (metric === 'errors') {\n filterBySeverity = ['critical', 'warning'];\n } else if (metric === 'rate') {\n filterBySeverity = ['info'];\n }\n\n let filterBySummaryKeywords: string[] = [];\n if (metric === 'duration') {\n filterBySummaryKeywords = ['latency'];\n }\n\n if (isLoading || !InsightsTimelineWidgetExternal || !sceneTimeRange || !serviceName) {\n return null;\n }\n\n return (\n Insights}\n />\n );\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n label: css({\n fontSize: '12px',\n color: theme.colors.text.secondary,\n marginLeft: '35px', // we are also passing an axisWidth of 70 to barsPanelConfig()\n marginTop: '-3px',\n }),\n };\n}\n","import React from 'react';\n\nimport {\n SceneComponentProps,\n SceneDataTransformer,\n SceneFlexItem,\n SceneFlexLayout,\n sceneGraph,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n} from '@grafana/scenes';\nimport { arrayToDataFrame, DataFrame, GrafanaTheme2, LoadingState } from '@grafana/data';\nimport { ComparisonSelection, EMPTY_STATE_ERROR_MESSAGE, explorationDS, MetricFunction } from 'utils/shared';\nimport { EmptyStateScene } from 'components/states/EmptyState/EmptyStateScene';\nimport { LoadingStateScene } from 'components/states/LoadingState/LoadingStateScene';\nimport { SkeletonComponent } from '../ByFrameRepeater';\nimport { barsPanelConfig } from '../panels/barsPanel';\nimport { getMetricsTempoQuery } from '../queries/generateMetricsQuery';\nimport { StepQueryRunner } from '../queries/StepQueryRunner';\nimport { css } from '@emotion/css';\nimport { RadioButtonList, useStyles2 } from '@grafana/ui';\nimport { StreamingIndicator } from '../StreamingIndicator';\nimport {\n fieldHasEmptyValues,\n getLatencyPartialThresholdVariable,\n getLatencyThresholdVariable,\n getMetricVariable,\n getOpenTrace,\n getTraceByServiceScene,\n shouldShowSelection,\n} from '../../../utils/utils';\nimport { getHistogramVizPanel, yBucketToDuration } from '../panels/histogram';\nimport { TraceSceneState } from './TracesByServiceScene';\nimport { SelectionColor } from '../layouts/allComparison';\nimport { buildHistogramQuery } from '../queries/histogram';\nimport { isEqual } from 'lodash';\nimport { DurationComparisonControl } from './DurationComparisonControl';\nimport { exemplarsTransformations, removeExemplarsTransformation } from '../../../utils/exemplars';\nimport { InsightsTimelineWidget } from 'addedComponents/InsightsTimelineWidget/InsightsTimelineWidget';\nimport { useServiceName } from 'pages/Explore/TraceExploration';\n\nexport interface RateMetricsPanelState extends SceneObjectState {\n panel?: SceneFlexLayout;\n actions?: SceneObject[];\n yBuckets?: number[];\n isStreaming?: boolean;\n}\n\nexport class REDPanel extends SceneObjectBase {\n constructor(state: RateMetricsPanelState) {\n super({\n yBuckets: [],\n actions: [],\n isStreaming: false,\n ...state,\n });\n\n this.addActivationHandler(() => {\n this._onActivate();\n const data = sceneGraph.getData(this);\n const parent = getTraceByServiceScene(this);\n const timeRange = sceneGraph.getTimeRange(this);\n\n this._subs.add(\n data.subscribeToState((newData) => {\n this.setState({ isStreaming: newData.data?.state === LoadingState.Streaming });\n\n if (newData.data?.state === LoadingState.Done) {\n if (\n newData.data.series.length === 0 ||\n newData.data.series[0].length === 0 ||\n fieldHasEmptyValues(newData)\n ) {\n this.setState({\n panel: new SceneFlexLayout({\n children: [\n new SceneFlexItem({\n body: new EmptyStateScene({\n message: EMPTY_STATE_ERROR_MESSAGE,\n imgWidth: 150,\n }),\n }),\n ],\n }),\n });\n } else {\n let yBuckets: number[] | undefined = [];\n if (this.isDuration()) {\n yBuckets = getYBuckets(data.state.data?.series || []);\n if (parent.state.selection && newData.data?.state === LoadingState.Done) {\n // set selection annotation if it exists\n const annotations = this.buildSelectionAnnotation(parent.state);\n\n if (annotations && !data.state.data?.annotations?.length) {\n data.setState({\n data: {\n ...data.state.data!,\n annotations: annotations,\n },\n });\n }\n }\n\n if (yBuckets?.length) {\n const { minDuration, minBucket } = getMinimumsForDuration(yBuckets);\n const selection: ComparisonSelection = { type: 'auto' };\n\n getLatencyThresholdVariable(this).changeValueTo(minDuration);\n getLatencyPartialThresholdVariable(this).changeValueTo(\n yBucketToDuration(minBucket - 1, yBuckets, 0.3)\n );\n\n selection.duration = { from: minDuration, to: '' };\n selection.raw = {\n x: {\n from: timeRange.state.value.from.unix() * 1000,\n to: timeRange.state.value.to.unix() * 1000,\n },\n y: { from: minBucket - 0.5, to: yBuckets.length - 0.5 },\n };\n\n this.setState({\n actions: [\n new DurationComparisonControl({\n selection,\n }),\n ],\n });\n if (!parent.state.selection?.duration || parent.state.selection.type === 'auto') {\n parent.setState({ selection });\n }\n }\n }\n\n // update panel\n this.setState({\n yBuckets,\n panel: this.getVizPanel(),\n });\n }\n } else if (newData.data?.state === LoadingState.Loading) {\n this.setState({\n panel: new SceneFlexLayout({\n direction: 'column',\n children: [\n new LoadingStateScene({\n component: () => SkeletonComponent(1),\n }),\n ],\n }),\n });\n }\n })\n );\n\n this._subs.add(\n parent.subscribeToState((newState, prevState) => {\n if (data.state.data?.state === LoadingState.Done) {\n if (!isEqual(newState.selection, prevState.selection) || newState.actionView !== prevState.actionView) {\n if (this.isDuration()) {\n const annotations = this.buildSelectionAnnotation(newState);\n data.setState({\n data: {\n ...data.state.data!,\n annotations: annotations,\n },\n });\n }\n }\n }\n })\n );\n });\n }\n\n private isDuration() {\n return getMetricVariable(this).state.value === 'duration';\n }\n\n private _onActivate() {\n const metric = getMetricVariable(this).state.value as MetricFunction;\n\n this.setState({\n $data: new SceneDataTransformer({\n $data: new StepQueryRunner({\n maxDataPoints: this.isDuration() ? 24 : 64,\n datasource: explorationDS,\n queries: [this.isDuration() ? buildHistogramQuery() : getMetricsTempoQuery({ metric, sample: true })],\n }),\n transformations: this.isDuration()\n ? [...removeExemplarsTransformation()]\n : [...exemplarsTransformations(getOpenTrace(this))],\n }),\n panel: this.getVizPanel(),\n });\n }\n\n private getVizPanel() {\n const metric = getMetricVariable(this).state.value as MetricFunction;\n if (this.isDuration()) {\n return getHistogramVizPanel(this, this.state.yBuckets ?? []);\n }\n\n return this.getRateOrErrorVizPanel(metric);\n }\n\n private getRateOrErrorVizPanel(type: MetricFunction) {\n const panel = barsPanelConfig(type, 70).setHoverHeader(true).setDisplayMode('transparent');\n if (type === 'rate') {\n panel.setCustomFieldConfig('axisLabel', 'span/s');\n } else if (type === 'errors') {\n panel.setCustomFieldConfig('axisLabel', 'error/s').setColor({\n fixedColor: 'semi-dark-red',\n mode: 'fixed',\n });\n }\n return new SceneFlexLayout({\n direction: 'row',\n children: [\n new SceneFlexItem({\n body: panel.build(),\n }),\n ],\n });\n }\n\n private buildSelectionAnnotation(state: TraceSceneState) {\n if (!shouldShowSelection(state.actionView)) {\n return undefined;\n }\n\n const xSel = state.selection?.raw?.x;\n const ySel = state.selection?.raw?.y;\n\n const frame = arrayToDataFrame([\n {\n time: xSel?.from || 0,\n xMin: xSel?.from || 0,\n xMax: xSel?.to || 0,\n timeEnd: xSel?.to || 0,\n yMin: ySel?.from,\n yMax: ySel?.to,\n isRegion: true,\n fillOpacity: 0.15,\n lineWidth: 1,\n lineStyle: 'solid',\n color: SelectionColor,\n text: 'Comparison selection',\n },\n ]);\n frame.name = 'xymark';\n\n return [frame];\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { panel, actions, isStreaming } = model.useState();\n const { value: metric } = getMetricVariable(model).useState();\n const styles = useStyles2(getStyles);\n const serviceName = useServiceName(model);\n\n if (!panel) {\n return;\n }\n\n const getTitle = () => {\n switch (metric) {\n case 'errors':\n return 'Errors rate';\n case 'rate':\n return 'Span rate';\n case 'duration':\n return 'Histogram by duration';\n default:\n return '';\n }\n };\n\n const getSubtitle = () => {\n switch (metric) {\n case 'duration':\n return 'Click and drag to compare selection with baseline.';\n default:\n return '';\n }\n };\n\n const subtitle = getSubtitle();\n\n return (\n
\n
\n
\n
\n \n {getTitle()}\n
\n {subtitle &&
{subtitle}
}\n
\n
\n {isStreaming && }\n {actions?.map((action) => )}\n
\n
\n \n \n
\n );\n };\n}\n\nexport const getYBuckets = (series: DataFrame[]) => {\n return series.map((s) => parseFloat(s.fields[1].name)).sort((a, b) => a - b);\n};\n\nexport const getMinimumsForDuration = (yBuckets: number[]) => {\n const slowestBuckets = Math.floor(yBuckets.length / 4);\n let minBucket = yBuckets.length - slowestBuckets - 1;\n if (minBucket < 0) {\n minBucket = 0;\n }\n\n return {\n minDuration: yBucketToDuration(minBucket - 1, yBuckets),\n minBucket,\n };\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n border: `1px solid ${theme.colors.border.weak}`,\n borderRadius: '2px',\n background: theme.colors.background.primary,\n\n '.show-on-hover': {\n display: 'none',\n },\n 'section, section:hover': {\n borderColor: 'transparent',\n },\n '& .u-select': {\n border: '1px solid #ffffff75',\n },\n }),\n headerContainer: css({\n width: '100%',\n display: 'flex',\n flexDirection: 'row',\n padding: '8px',\n gap: '8px',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n fontWeight: theme.typography.fontWeightBold,\n }),\n titleContainer: css({\n display: 'flex',\n flexDirection: 'column',\n gap: '4px',\n }),\n titleRadioWrapper: css({\n display: 'flex',\n alignItems: 'center',\n }),\n actions: css({\n display: 'flex',\n gap: '8px',\n alignItems: 'center',\n }),\n subtitle: css({\n display: 'flex',\n color: theme.colors.text.secondary,\n fontSize: '12px',\n fontWeight: 400,\n\n '& svg': {\n margin: '0 2px',\n },\n }),\n };\n}\n","import { dropWhile as _dropWhile, round as _round } from 'lodash';\nimport { sceneGraph, SceneObject } from '@grafana/scenes';\nimport { duration } from 'moment/moment';\n\nexport const ONE_MILLISECOND = 1000;\nexport const ONE_SECOND = 1000 * ONE_MILLISECOND;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\nexport const ONE_DAY = 24 * ONE_HOUR;\nexport const DEFAULT_MS_PRECISION = Math.log10(ONE_MILLISECOND);\n\nconst UNIT_STEPS: Array<{ unit: string; microseconds: number; ofPrevious: number }> = [\n { unit: 'd', microseconds: ONE_DAY, ofPrevious: 24 },\n { unit: 'h', microseconds: ONE_HOUR, ofPrevious: 60 },\n { unit: 'm', microseconds: ONE_MINUTE, ofPrevious: 60 },\n { unit: 's', microseconds: ONE_SECOND, ofPrevious: 1000 },\n { unit: 'ms', microseconds: ONE_MILLISECOND, ofPrevious: 1000 },\n { unit: 'μs', microseconds: 1, ofPrevious: 1000 },\n];\n\n/**\n * Humanizes the duration for display.\n *\n * Example:\n * 5000ms => 5s\n * 1000μs => 1ms\n * 183840s => 2d 3h\n *\n * @param {number} duration (in microseconds)\n * @return {string} formatted duration\n */\nexport const formatDuration = (duration: number): string => {\n // Drop all units that are too large except the last one\n const [primaryUnit, secondaryUnit] = _dropWhile(\n UNIT_STEPS,\n ({ microseconds }, index) => index < UNIT_STEPS.length - 1 && microseconds > duration\n );\n\n if (primaryUnit.ofPrevious === 1000) {\n // If the unit is decimal based, display as a decimal\n return `${_round(duration / primaryUnit.microseconds, 2)}${primaryUnit.unit}`;\n }\n\n let primaryValue = Math.floor(duration / primaryUnit.microseconds);\n let secondaryValue = (duration / secondaryUnit.microseconds) % primaryUnit.ofPrevious;\n const secondaryValueRounded = Math.round(secondaryValue);\n\n // Handle rollover case before rounding (e.g., 60s should become 1m, not 0m 60s)\n if (secondaryValueRounded === primaryUnit.ofPrevious) {\n primaryValue += 1;\n secondaryValue = 0;\n } else {\n secondaryValue = secondaryValueRounded;\n }\n\n const primaryUnitString = `${primaryValue}${primaryUnit.unit}`;\n\n if (secondaryValue === 0) {\n return primaryUnitString;\n }\n\n const secondaryUnitString = `${secondaryValue}${secondaryUnit.unit}`;\n return `${primaryUnitString} ${secondaryUnitString}`;\n}\n\n/**\n * Calculate bucket size based on time range and desired number of data points\n * @param timeRangeSeconds - The time range in seconds\n * @param dataPoints - Desired number of data points (default: 50)\n * @returns Bucket size in seconds\n */\nexport const calculateBucketSize = (timeRangeSeconds: number, dataPoints = 50): number => {\n return Math.floor(timeRangeSeconds / dataPoints) || 1;\n};\n\nexport const getStepForTimeRange = (scene: SceneObject, dataPoints?: number) => {\n const sceneTimeRange = sceneGraph.getTimeRange(scene);\n const from = sceneTimeRange.state.value.from.unix();\n const to = sceneTimeRange.state.value.to.unix();\n\n const dur = duration(to - from, 's');\n const bucketSizeSeconds = calculateBucketSize(dur.asSeconds(), dataPoints);\n return `${bucketSizeSeconds}s`;\n}\n","import { SceneObjectState, SceneObjectBase, SceneComponentProps } from '@grafana/scenes';\nimport React from 'react';\nimport { Alert } from '@grafana/ui';\nimport { testIds } from 'utils/testIds';\n\ninterface ErrorStateSceneState extends SceneObjectState {\n message: string;\n}\n\nexport class ErrorStateScene extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n const { message } = model.useState();\n return (\n \n {message}\n \n );\n };\n}\n","import { Field, Input, Icon, useStyles2 } from \"@grafana/ui\"\nimport React from \"react\"\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { css } from \"@emotion/css\";\n\ntype Props = {\n searchQuery: string;\n onSearchQueryChange: (event: React.ChangeEvent) => void;\n}\n\nexport const Search = (props: Props) => {\n const styles = useStyles2(getStyles);\n const { searchQuery, onSearchQueryChange } = props;\n\n return (\n \n }\n value={searchQuery}\n onChange={onSearchQueryChange}\n id='searchFieldInput'\n />\n \n )\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n searchField: css({\n marginBottom: theme.spacing(1),\n }),\n };\n}\n","import { DataQueryResponseData, Field } from '@grafana/data';\n\nexport function cloneDataFrame(frame: DataQueryResponseData): DataQueryResponseData {\n return {\n ...frame,\n fields: frame.fields.map((field: Field) => ({\n ...field,\n values: field.values,\n })),\n };\n}\n","import React from 'react';\n\nimport { DataFrame, FieldType, GrafanaTheme2, LoadingState, PanelData, sortDataFrame } from '@grafana/data';\nimport {\n SceneComponentProps,\n SceneCSSGridLayout,\n SceneFlexItem,\n sceneGraph,\n SceneLayout,\n SceneObjectBase,\n SceneObjectState,\n} from '@grafana/scenes';\nimport { EmptyStateScene } from 'components/states/EmptyState/EmptyStateScene';\nimport { css } from '@emotion/css';\nimport { useStyles2 } from '@grafana/ui';\nimport Skeleton from 'react-loading-skeleton';\nimport { LoadingStateScene } from 'components/states/LoadingState/LoadingStateScene';\nimport { ErrorStateScene } from 'components/states/ErrorState/ErrorStateScene';\nimport { debounce } from 'lodash';\nimport { Search } from './Search';\nimport { getGroupByVariable } from 'utils/utils';\nimport {\n EMPTY_STATE_ERROR_MESSAGE,\n EMPTY_STATE_ERROR_REMEDY_MESSAGE,\n EventTimeseriesDataReceived,\n GRID_TEMPLATE_COLUMNS,\n} from '../../utils/shared';\nimport { cloneDataFrame } from '../../utils/frames';\n\ninterface ByFrameRepeaterState extends SceneObjectState {\n body: SceneLayout;\n groupBy?: boolean;\n\n getLayoutChild(data: PanelData, frame: DataFrame, frameIndex: number): SceneFlexItem;\n\n searchQuery?: string;\n}\n\nexport class ByFrameRepeater extends SceneObjectBase {\n public constructor(state: ByFrameRepeaterState) {\n super(state);\n\n this.addActivationHandler(() => {\n const data = sceneGraph.getData(this);\n\n this._subs.add(\n data.subscribeToState((data) => {\n if (data.data?.state === LoadingState.Done || data.data?.state === LoadingState.Streaming) {\n if (data.data.series.length === 0 && data.data?.state !== LoadingState.Streaming) {\n this.state.body.setState({\n children: [\n new SceneFlexItem({\n body: new EmptyStateScene({\n message: EMPTY_STATE_ERROR_MESSAGE,\n remedyMessage: EMPTY_STATE_ERROR_REMEDY_MESSAGE,\n padding: '32px',\n }),\n }),\n ],\n });\n } else if (data.data?.state === LoadingState.Done) {\n const filtered = {\n ...data.data,\n series: data.data?.series.filter(doesQueryMatchDataFrameLabels(this.state.searchQuery)),\n };\n this.renderFilteredData(filtered as PanelData);\n this.publishEvent(new EventTimeseriesDataReceived({ series: data.data.series }), true);\n }\n } else if (data.data?.state === LoadingState.Error) {\n this.state.body.setState({\n children: [\n new SceneCSSGridLayout({\n children: [\n new ErrorStateScene({\n message: data.data.errors?.[0]?.message ?? 'An error occurred in the query',\n }),\n ],\n }),\n ],\n });\n } else {\n this.state.body.setState({\n children: [\n new SceneCSSGridLayout({\n children: [\n new LoadingStateScene({\n component: () => SkeletonComponent(8),\n }),\n ],\n }),\n ],\n });\n }\n })\n );\n\n this.subscribeToState((newState, prevState) => {\n if (newState.searchQuery !== prevState.searchQuery) {\n this.onSearchQueryChangeDebounced(newState.searchQuery ?? '');\n }\n });\n\n if (data.state.data) {\n this.performRepeat(data.state.data);\n }\n });\n }\n\n private onSearchQueryChange = (evt: React.SyntheticEvent) => {\n this.setState({ searchQuery: evt.currentTarget.value });\n };\n\n private onSearchQueryChangeDebounced = debounce((searchQuery: string) => {\n const data = sceneGraph.getData(this);\n const filtered = {\n ...data.state.data,\n series: data.state.data?.series.filter(doesQueryMatchDataFrameLabels(searchQuery)),\n };\n this.renderFilteredData(filtered as PanelData);\n }, 250);\n\n private renderFilteredData(filtered: PanelData) {\n if (filtered.series && filtered.series.length > 0) {\n this.performRepeat(filtered as PanelData);\n } else {\n this.state.body.setState({\n children: [\n new SceneFlexItem({\n body: new EmptyStateScene({\n message: 'No data for search term',\n padding: '32px',\n }),\n }),\n ],\n });\n }\n }\n\n private groupSeriesBy(data: PanelData, groupBy: string) {\n const groupedData = data.series.reduce(\n (acc, series) => {\n const key = series.fields.find((f) => f.type === FieldType.number)?.labels?.[groupBy];\n if (!key) {\n return acc;\n }\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(series);\n return acc;\n },\n {} as Record\n );\n\n const newSeries = [];\n for (const key in groupedData) {\n const frames = groupedData[key].sort((a, b) => a.name?.localeCompare(b.name!) || 0);\n const mainFrame = cloneDataFrame(frames[0]);\n frames.slice(1, frames.length).forEach((frame) => mainFrame.fields.push(frame.fields[1]));\n newSeries.push(sortDataFrame(mainFrame, 0));\n }\n return newSeries;\n }\n\n private performRepeat(data: PanelData) {\n const newChildren: SceneFlexItem[] = [];\n let frames = data.series;\n\n if (this.state.groupBy) {\n frames = this.groupSeriesBy(data, getGroupByVariable(this).getValueText());\n }\n\n for (let frameIndex = 0; frameIndex < frames.length; frameIndex++) {\n const currentFrame = frames[frameIndex];\n // Skip frames with no data\n const sum = currentFrame.fields\n .filter((f) => f.type === FieldType.number)\n .reduce((sum, f) => sum + f.values.reduce((vSum, v) => vSum + (v || 0), 0) || 0, 0);\n if (sum === 0) {\n continue;\n }\n // Build the layout child\n const layoutChild = this.state.getLayoutChild(data, frames[frameIndex], frameIndex);\n newChildren.push(layoutChild);\n }\n\n this.state.body.setState({ children: newChildren });\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body, searchQuery } = model.useState();\n const styles = useStyles2(getStyles);\n\n return (\n
\n \n \n
\n );\n };\n}\n\nfunction getStyles() {\n return {\n container: css({\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n }),\n };\n}\n\nexport const SkeletonComponent = (repeat: number) => {\n const styles = useStyles2(getSkeletonStyles);\n\n return (\n
\n {[...Array(repeat)].map((_, i) => (\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n {[...Array(2)].map((_, i) => (\n
\n \n
\n ))}\n
\n
\n {[...Array(2)].map((_, i) => (\n
\n \n
\n ))}\n
\n
\n ))}\n
\n );\n};\n\nfunction getSkeletonStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n display: 'grid',\n gridTemplateColumns: GRID_TEMPLATE_COLUMNS,\n gridAutoRows: '200px',\n rowGap: theme.spacing(1),\n columnGap: theme.spacing(1),\n }),\n itemContainer: css({\n backgroundColor: theme.colors.background.primary,\n border: `1px solid ${theme.colors.background.secondary}`,\n padding: '5px',\n }),\n header: css({\n display: 'flex',\n justifyContent: 'space-between',\n }),\n title: css({\n width: '100px',\n }),\n action: css({\n width: '60px',\n }),\n yAxis: css({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-around',\n marginTop: '35px',\n }),\n yAxisItem: css({\n width: '60px',\n height: '55px',\n }),\n xAxis: css({\n display: 'flex',\n justifyContent: 'space-evenly',\n }),\n xAxisItem: css({\n width: '55px',\n }),\n };\n}\n\nexport const doesQueryMatchDataFrameLabels = (searchQuery?: string) => (dataFrame: DataFrame) => {\n const pattern = searchQuery?.trim();\n if (!pattern) {\n return true;\n }\n\n const regex = new RegExp(pattern, 'i');\n\n return dataFrame.fields.some((f) => (!f.labels ? false : Object.values(f.labels).find((label) => regex.test(label))));\n};\n","import { getTraceByServiceScene, shouldShowSelection } from '../../../utils/utils';\nimport { ComparisonSelection } from '../../../utils/shared';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../../utils/analytics';\nimport { PanelBuilders, SceneFlexItem, SceneFlexLayout, SceneObject } from '@grafana/scenes';\n\nexport function getHistogramVizPanel(scene: SceneObject, yBuckets: number[]) {\n const parent = getTraceByServiceScene(scene);\n const panel = histogramPanelConfig()\n .setHoverHeader(true)\n // @ts-ignore\n .setOption('selectionMode', 'xy')\n .build();\n panel.setState({\n extendPanelContext: (vizPanel, context) => {\n // TODO remove when we the Grafana version with #88107 is released\n // @ts-ignore\n context.onSelectRange = (args) => {\n if (args.length === 0) {\n parent.setState({ selection: undefined });\n return;\n }\n const rawSelection = args[0];\n // @ts-ignore\n const newSelection: ComparisonSelection = { type: 'manual', raw: rawSelection };\n\n newSelection.timeRange = {\n from: Math.round((rawSelection.x?.from || 0) / 1000),\n to: Math.round((rawSelection.x?.to || 0) / 1000),\n };\n\n // Ignore selection and return if the selection is invalid\n if (newSelection.timeRange.from === newSelection.timeRange.to) {\n return;\n }\n\n const yFrom = yBucketToDuration((args[0].y?.from || 0) - 1, yBuckets);\n const yTo = yBucketToDuration(args[0].y?.to || 0, yBuckets);\n newSelection.duration = { from: yFrom, to: yTo };\n\n parent.onUserUpdateSelection(newSelection);\n if (!shouldShowSelection(parent.state.actionView)) {\n parent.setActionView('comparison');\n }\n\n reportAppInteraction(USER_EVENTS_PAGES.analyse_traces, USER_EVENTS_ACTIONS.analyse_traces.start_investigation, {\n selection: newSelection,\n metric: 'duration',\n });\n };\n },\n });\n return new SceneFlexLayout({\n direction: 'row',\n children: [\n new SceneFlexItem({\n body: panel,\n }),\n ],\n });\n}\n\nexport const histogramPanelConfig = () => {\n return PanelBuilders.heatmap()\n .setOption('legend', { show: false })\n .setOption('yAxis', {\n unit: 's',\n axisLabel: 'duration',\n })\n .setOption('color', {\n scheme: 'Blues',\n steps: 16,\n })\n .setOption('rowsFrame', { value: 'Spans' });\n};\n\nexport function yBucketToDuration(yValue: number, buckets?: number[], multiplier?: number) {\n if (!buckets) {\n return '';\n }\n if (yValue < 0) {\n return '0';\n }\n\n const rawValue = buckets[Math.floor(yValue)] * (multiplier || 1);\n if (!rawValue || isNaN(rawValue)) {\n return '';\n }\n if (rawValue >= 1) {\n return `${rawValue.toFixed(0)}s`;\n }\n return `${(rawValue * 1000).toFixed(0)}ms`;\n}\n","export const testIds = {\n emptyState: 'data-testid empty-state',\n errorState: 'data-testid error-state',\n loadingState: 'data-testid loading-state',\n};\n","import { ALL, MetricFunction, VAR_FILTERS_EXPR } from '../../../utils/shared';\n\ninterface QueryOptions {\n metric: MetricFunction;\n extraFilters?: string;\n groupByKey?: string;\n sample?: boolean;\n}\n\nexport function generateMetricsQuery({ metric, groupByKey, extraFilters, sample = false }: QueryOptions) {\n // Generate span set filters\n let filters = `${VAR_FILTERS_EXPR}`;\n\n if (metric === 'errors') {\n filters += ' && status=error';\n }\n\n if (extraFilters) {\n filters += ` && ${extraFilters}`;\n }\n\n if (groupByKey && groupByKey !== ALL) {\n filters += ` && ${groupByKey} != nil`;\n }\n\n // Generate metrics function\n let metricFn = 'rate()';\n switch (metric) {\n case 'errors':\n metricFn = 'rate()';\n break;\n case 'duration':\n metricFn = 'quantile_over_time(duration, 0.9)';\n break;\n }\n\n // Generate group by section\n let groupByAttrs = [];\n if (groupByKey && groupByKey !== ALL) {\n groupByAttrs.push(groupByKey);\n }\n\n const groupBy = groupByAttrs.length ? `by(${groupByAttrs.join(', ')})` : '';\n\n const sampleStr = sample ? ' with(sample=true)' : '';\n\n return `{${filters}} | ${metricFn} ${groupBy}${sampleStr}`;\n}\n\nexport function getMetricsTempoQuery(options: QueryOptions) {\n return {\n refId: 'A',\n query: generateMetricsQuery(options),\n queryType: 'traceql',\n tableType: 'spans',\n limit: 100,\n spss: 10,\n filters: [],\n };\n}\n","import { SceneComponentProps, SceneObjectBase, SceneObjectState, VizPanel } from '@grafana/scenes';\nimport { DataFrame, GrafanaTheme2 } from '@grafana/data';\nimport { Button, Stack, useStyles2 } from '@grafana/ui';\nimport { css } from '@emotion/css';\nimport React from 'react';\nimport { getFiltersVariable } from '../../../utils/utils';\nimport { addToFilters, filterExistsForKey } from '../actions/AddToFiltersAction';\nimport { computeHighestDifference } from '../../../utils/comparison';\n\nexport interface HighestDifferencePanelState extends SceneObjectState {\n frame: DataFrame;\n panel: VizPanel;\n maxDifference?: number;\n maxDifferenceIndex?: number;\n}\n\nexport class HighestDifferencePanel extends SceneObjectBase {\n constructor(state: HighestDifferencePanelState) {\n super({\n ...state,\n });\n\n this.addActivationHandler(() => this._onActivate());\n }\n\n private _onActivate() {\n const { frame } = this.state;\n this.setState({ ...computeHighestDifference(frame) });\n\n this._subs.add(\n this.subscribeToState((newState, prevState) => {\n if (newState.frame !== prevState.frame) {\n const { frame } = newState;\n this.setState({ ...computeHighestDifference(frame) });\n }\n })\n );\n }\n\n private getAttribute() {\n return this.state.frame.name;\n }\n\n private getValue() {\n const valueField = this.state.frame.fields.find((f) => f.name === 'Value');\n return valueField?.values[this.state.maxDifferenceIndex || 0];\n }\n\n private onAddToFilters() {\n const variable = getFiltersVariable(this);\n const attribute = this.getAttribute();\n if (attribute) {\n addToFilters(variable, attribute, this.getValue());\n }\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { maxDifference, maxDifferenceIndex, panel } = model.useState();\n const styles = useStyles2(getStyles);\n const value = model.getValue();\n const key = model.state.frame.name ?? '';\n const filterExists = filterExistsForKey(getFiltersVariable(model), key, value.replace(/\"/g, ''));\n\n return (\n
\n {}\n
\n {maxDifference !== undefined && maxDifferenceIndex !== undefined && (\n <>\n \n
Highest difference
\n {!filterExists && (\n model.onAddToFilters()}\n >\n Add to filters\n \n )}\n
\n
\n {(Math.abs(maxDifference) * 100).toFixed(maxDifference === 0 ? 0 : 2)}%\n
\n
{value}
\n \n )}\n
\n
\n );\n };\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n height: '100%',\n }),\n differenceContainer: css({\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n border: `1px solid ${theme.colors.secondary.border}`,\n background: theme.colors.background.primary,\n padding: '8px',\n marginBottom: theme.spacing(2),\n fontSize: '12px',\n height: '116px',\n }),\n differenceValue: css({\n fontSize: '36px',\n fontWeight: 'bold',\n textAlign: 'center',\n }),\n value: css({\n textAlign: 'center',\n color: theme.colors.secondary.text,\n textWrap: 'nowrap',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }),\n title: css({\n fontWeight: 500,\n }),\n };\n}\n","import { PanelBuilders, SceneCSSGridItem, SceneCSSGridLayout, SceneDataNode, VizPanelState } from '@grafana/scenes';\nimport { ByFrameRepeater } from '../ByFrameRepeater';\nimport { DataFrame, PanelData } from '@grafana/data';\nimport { AxisPlacement } from '@grafana/ui';\nimport { TooltipDisplayMode } from '@grafana/schema';\nimport { HighestDifferencePanel } from './HighestDifferencePanel';\nimport { GRID_TEMPLATE_COLUMNS, MetricFunction } from '../../../utils/shared';\n\nexport const BaselineColor = '#5794F299';\nexport const SelectionColor = '#FF9930';\n\nexport function buildAllComparisonLayout(\n actionsFn: (df: DataFrame) => VizPanelState['headerActions'],\n metric: MetricFunction\n) {\n const panels: Record = {};\n\n return new ByFrameRepeater({\n body: new SceneCSSGridLayout({\n templateColumns: GRID_TEMPLATE_COLUMNS,\n autoRows: '320px',\n children: [],\n }),\n getLayoutChild: getLayoutChild(panels, getFrameName, actionsFn, metric),\n });\n}\n\nconst getFrameName = (df: DataFrame) => {\n return df.name || 'No name available';\n};\n\nfunction getLayoutChild(\n panels: Record,\n getTitle: (df: DataFrame) => string,\n actionsFn: (df: DataFrame) => VizPanelState['headerActions'],\n metric: MetricFunction\n) {\n return (data: PanelData, frame: DataFrame) => {\n const existingGridItem = frame.name ? panels[frame.name] : undefined;\n\n const dataNode = new SceneDataNode({\n data: {\n ...data,\n series: [\n {\n ...frame,\n },\n ],\n },\n });\n\n if (existingGridItem) {\n const body = existingGridItem.state.body as HighestDifferencePanel;\n body.setState({ frame });\n body.state.panel.setState({ $data: dataNode });\n return existingGridItem;\n }\n\n const panel = getPanelConfig(metric).setTitle(getTitle(frame)).setData(dataNode);\n\n const actions = actionsFn(frame);\n if (actions) {\n panel.setHeaderActions(actions);\n }\n\n const gridItem = new SceneCSSGridItem({\n body: new HighestDifferencePanel({ frame, panel: panel.build() }),\n });\n if (frame.name) {\n panels[frame.name] = gridItem;\n }\n\n return gridItem;\n };\n}\n\nexport function getPanelConfig(metric: MetricFunction) {\n return PanelBuilders.barchart()\n .setOption('legend', { showLegend: false })\n .setOption('tooltip', { mode: TooltipDisplayMode.Multi })\n .setMax(1)\n .setOverrides((overrides) => {\n overrides.matchFieldsWithName('Value').overrideCustomFieldConfig('axisPlacement', AxisPlacement.Hidden);\n overrides\n .matchFieldsWithName('Baseline')\n .overrideColor({\n mode: 'fixed',\n fixedColor: metric === 'duration' ? BaselineColor : 'semi-dark-green',\n })\n .overrideUnit('percentunit');\n overrides\n .matchFieldsWithName('Selection')\n .overrideColor({\n mode: 'fixed',\n fixedColor: metric === 'duration' ? SelectionColor : 'semi-dark-red',\n })\n .overrideUnit('percentunit');\n });\n}\n"],"names":["ShareExplorationAction","exploration","origin","useLocation","tooltip","setTooltip","useState","ToolbarButton","variant","icon","onClick","navigator","clipboard","writeText","getUrlForExploration","setTimeout","RECOMMENDED_ATTRIBUTES","labelOrder","SpanListColumnsSelector","options","value","onChange","styles","useStyles2","getStyles","opt","useMemo","Object","values","reduce","acc","curr","label","slice","indexOf","includes","group","push","startsWith","sort","a","b","div","className","container","Field","Select","toString","split","placeholder","x","map","join","isMulti","isClearable","virtualized","prefix","Icon","name","css","display","minWidth","width","SpanListScene","SceneObjectBase","setupTransformations","source","pipe","data","df","nameField","fields","find","f","type","TableCellDisplayMode","Custom","cellComponent","props","frame","traceIdField","spanIdField","traceId","rowIndex","spanId","title","this","publishEvent","EventTraceOpened","Link","href","getLinkToExplore","target","size","config","custom","cellOptions","updatePanel","state","LoadingState","Loading","NotStarted","Streaming","series","length","Done","dataState","panel","setState","SceneFlexLayout","children","SceneFlexItem","body","EmptyStateScene","message","EMPTY_STATE_ERROR_MESSAGE","remedyMessage","EMPTY_STATE_ERROR_REMEDY_MESSAGE","padding","direction","PanelBuilders","table","setHoverHeader","setOverrides","builder","matchFieldsWithName","overrideCustomFieldConfig","build","LoadingStateScene","component","SkeletonComponent","constructor","super","traceExplorationScene","getTraceExplorationScene","datasource","getDataSource","timeRange","sceneGraph","getTimeRange","exploreState","JSON","stringify","range","toURLRange","raw","queries","refId","queryType","query","panelsState","trace","subUrl","appSubUrl","urlUtil","renderUrl","panes","schemaVersion","columns","variable","getSpanListColumnsVariable","getValue","changeValueTo","reportAppInteraction","USER_EVENTS_PAGES","analyse_traces","USER_EVENTS_ACTIONS","span_list_columns_changed","addActivationHandler","$data","SceneDataTransformer","transformations","sceneData","getData","_subs","add","subscribeToState","Component","model","useTheme2","attributes","getTraceByServiceScene","header","description","toOption","theme","gap","justifyContent","alignItems","fontSize","background","colors","secondary","color","text","link","cursor","maxWidth","overflow","textOverflow","textDecoration","typography","h6","spacing","getSkeletonStyles","Skeleton","count","Array","_","i","row","key","j","span","rowItem","height","position","backgroundColor","primary","border","weak","marginBottom","SpansScene","_onActivate","updateBody","newState","prevState","getMetricVariable","bind","nestedSetLeft","parseInt","intValue","Value","int_value","Error","nestedSetRight","TreeNode","addSpan","left","Math","min","right","max","spans","addChild","node","parent","isChild","findMatchingChild","nodeName","child","serviceName","operationName","traceID","createNode","s","serviceNameAttr","stringValue","string_value","svcName","resetLeftRight","t","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","c","ROOT_SPAN_ID","StructureTabScene","tree","traces","spanSets","traceStartTime","startTimeUnixNano","ss","s1","s2","curNode","newNode","mergeTraces","parse","countSpans","loading","wrap","getPanels","minHeight","getPanel","from","to","openTrace","getOpenTrace","setTitle","setOption","setData","SceneDataNode","buildData","getTrace","traceName","createDataFrame","FieldType","other","references","string","spanID","parentSpanId","number","duration","startTime","statusCode","erroredSpans","refType","durationNanos","SceneQueryRunner","explorationDS","buildQuery","metric","filterStreamingProgressTransformations","metricQuery","selectionQuery","VAR_LATENCY_PARTIAL_THRESHOLD_EXPR","VAR_LATENCY_THRESHOLD_EXPR","VAR_FILTERS_EXPR","tableType","limit","spss","filters","isLoading","emptyMsg","tabName","structureDisplayName","noDataMessage","Text","textAlignment","longText","Stack","actionContainer","action","LinkButton","fill","toLowerCase","baseColor","highlightColor","traceViewList","EmptyState","flexDirection","x1","margin","marginLeft","GroupBySelector","radioAttributes","showAll","radioOptions","otherAttrOptions","selectQuery","setSelectQuery","allowAutoUpdate","setAllowAutoUpdate","availableWidth","setAvailableWidth","controlsContainer","useRef","initialGroupBy","getFiltersVariable","metricValue","useResizeObserver","ref","onResize","element","current","clientWidth","radioOptionsWidth","filter","op","checks","o","operator","attribute","replace","SPAN_ATTR","RESOURCE_ATTR","option","textWidth","measureText","ops","ro","filteredOptions","getModifiedSelectOptions","ignoredAttributes","defaultValue","useEffect","some","showAllOption","ALL","defaultOnChangeValue","RadioButtonGroup","selected","newSelected","select","onInputChange","onCloseMenu","maxOptions","queryLowerCase","tag","LayoutSwitcher","Selector","active","onLayoutChange","layout_type_changed","layout","layouts","index","findIndex","linesPanelConfig","timeseries","showLegend","mode","TooltipDisplayMode","Multi","setCustomFieldConfig","syncYAxis","vizPanel","maxima","Map","eventSub","subscribeToEvent","EventTimeseriesDataReceived","event","payload","forEach","set","v","findAllObjects","VizPanel","clearFieldConfigCache","fieldConfig","merge","cloneDeep","defaults","updateTimeseriesAxis","unsubscribe","buildNormalLayout","scene","actionsFn","getMetricsTempoQuery","groupByKey","getValueText","panels","$behaviors","StepQueryRunner","maxDataPoints","exemplarsTransformations","reduceField","field","reducers","ReducerID","calcs","setUnit","ByFrameRepeater","SceneCSSGridLayout","templateColumns","GRID_TEMPLATE_COLUMNS","autoRows","isLazy","groupBy","getLayoutChild","getLabelValue","getTitle","existingGridItem","undefined","dataNode","annotations","labels","status","localeCompare","interpolate","generateMetricsQuery","extraFilters","formatLabelValue","barsPanelConfig","setMenu","PanelMenu","labelValue","actions","setHeaderActions","gridItem","SceneCSSGridItem","AttributesDescription","tags","infoFlex","tagsFlex","borderRadius","style","AttributesBreakdownScene","getGroupByVariable","setBody","onReferencedVariableValueChanged","radioAttributesResource","onAddToFiltersClick","breakdown_add_to_filters_clicked","_variableDependency","VariableDependencyConfig","variableNames","VAR_FILTERS","VAR_METRIC","AddToFiltersAction","labelKey","ignore","breakdown_group_by_changed","flexGrow","content","paddingTop","controls","controlsRight","scope","marginRight","controlsLeft","justifyItems","groupByValue","defaultScope","radioAttributesSpan","SPAN","RESOURCE","setScope","filterType","filteredAttributes","attr","concat","getDescription","getAttributesAsOptions","BreakdownScene","createTimeSeries","timestamps","timeRangeSeconds","bucketSizeMs","calculateBucketSize","buckets","timestamp","bucketKey","floor","get","entries","time","normalizeExceptionMessage","trim","ExceptionsScene","exceptionsCount","calculateExceptionsCount","TableCellHeight","Lg","createTransformation","messageField","typeField","serviceField","timeField","messages","types","occurrences","lastSeenTimes","services","timeSeries","aggregated","messageTimestamps","service","normalizedMessage","has","timestampMs","parseFloat","timeSeriesData","sortedEntries","lastSeenMs","diffMs","Date","now","aggregateExceptions","seriesData","renderSparklineCell","links","createDataLink","url","exception_message_clicked","navigateToTracesWithFilter","escapeFilterValue","occurrencesField","total","getExceptionsCount","SparklineCell","sparklineMessage","countValues","point","timeValues","validCountValues","isFinite","isNaN","validTimeValues","minCount","maxCount","minTime","maxTime","countDelta","timeDelta","safeCountDelta","safeTimeDelta","sparklineData","y","delta","sparklineContainer","Sparkline","sparkline","drawStyle","GraphDrawStyle","Line","fillOpacity","fillColor","lineWidth","showPoints","VisibilityMode","Never","exceptionMessage","filtersVariable","traceByServiceScene","setActionView","currentFilters","escapedMessage","existingFilterIndex","newFilter","newFilters","dataTransformer","loadingContainer","bodySmall","comparisonQuery","selection","selector","fromTimerange","toTimerange","buildAttributeComparison","attributeSeries","d","splitFrames","baselineField","selectionField","displayName","getLabel","getPanelConfig","InspectAttributeAction","Button","AttributesComparisonScene","updateData","getPrimarySignalVariable","isEqual","byServiceScene","sceneTimeRange","unix","primarySignal","getFilteredAttributes","groupedFrames","groupFrameListByAttribute","frames","frameGroupToDataframe","aCompare","computeHighestDifference","bCompare","abs","maxDifference","comparison_add_to_filters_clicked","VAR_PRIMARY_SIGNAL","traceExploration","hasAllValue","buildAllComparisonLayout","getMetricFunction","select_attribute_in_comparison_clicked","compareQuery","durString","asSeconds","step","BaselineColor","getTheme","visualization","getColorByName","SelectionColor","numberField","nonInternalKey","keys","newFrame","valueNameField","val","baselineTotal","getTotalForMetaType","selectionTotal","metaType","calculatedTotal","currentValue","ComparisonScene","tracesByService","getDefaultSelectionForMetric","actionViewsDefinitions","getScene","TabsBarScene","breakpoints","up","md","top","zIndex","setExceptionsCount","metricScene","actionView","allowedActionViews","tracesCount","enabledViews","view","primarySignalVariable","timeRangeValue","exceptionsScene","getExceptionsScene","subscription","hasSetView","embedded","useMount","Box","TabsBar","tab","Tab","onChangeTab","counter","MiniREDPanel","buildHistogramQuery","sample","removeExemplarsTransformation","getVizPanel","getDurationVizPanel","getRateOrErrorPanel","setDisplayMode","setColor","fixedColor","histogramPanelConfig","isStreaming","fieldHasEmptyValues","imgWidth","maxHeight","MINI_PANEL_HEIGHT","flex","borderColor","headerWrapper","clickable","input","radioButton","indicatorWrapper","selectMetric","common","metric_changed","location","onChangeMetricFunction","RadioButtonList","StreamingIndicator","iconSize","TracesByServiceScene","urlActionView","URLSearchParams","window","search","metricVariable","updateQueryRunner","updateExceptionsScene","selectionFrom","getDatasourceVariable","updateAttributes","actionViewDef","buildGraphScene","activate","ds","getDataSourceSrv","VAR_DATASOURCE_EXPR","__sceneObject","getTagKeys","then","tagKeys","l","getUrlState","updateFromUrl","newSelection","onUserUpdateSelection","_urlSync","performBrowserHistoryAction","action_view_changed","oldAction","newAction","$timeRange","timeRangeFromSelection","spanListTransformations","SceneObjectUrlSyncConfig","Tooltip","MetricTypeTooltip","placement","interactive","hand","subtitle","emphasize","button","metric_docs_link_clicked","x0_5","paddingBottom","fontWeight","MAIN_PANEL_HEIGHT","typeQuery","SceneTimeRange","toFixed","dateTime","secondaryPanel","tertiaryPanel","behaviors","sync","DashboardCursorSync","Crosshair","ySizing","REDPanel","id","desc","indexByName","Duration","labelName","addToFilters","filterExistsForKey","filtersWithoutNew","DATABASE_CALLS_KEY","history","pushState","AttributePanelRow","labelTitle","valueTitle","rowHeader","home","panel_row_clicked","locationService","actionText","actionIcon","isDark","ErroredServicesRows","valuesField","getUrl","params","EXPLORATIONS_ROUTE","getTotalErrs","SlowestTracesRows","durField","sortedByDuration","sortedFields","traceServiceField","traceNameField","console","error","ROUTES","Explore","getDuration","durationField","formatDuration","SlowestServicesRows","AttributePanelRows","AttributePanelScene","getIcon","medium","borderTopLeftRadius","borderTopRightRadius","titleText","AttributePanel","exemplars","renderDurationPanel","yBuckets","getYBuckets","minDuration","getMinimumsForDuration","getNoDataMessage","getErrorMessage","tracesContainer","rowLeft","rowRight","textAlign","LightModeRocket","svg","xmlns","viewBox","path","DarkModeRocket","cleanupParams","delete","SELECTION","VAR_LATENCY_THRESHOLD","VAR_LATENCY_PARTIAL_THRESHOLD","useBookmarksStorage","storage","usePluginUserStorage","getBookmarks","removeBookmark","bookmark","bookmarkExists","toggleBookmark","getBookmarkForUrl","urlQueryMap","fromEntries","getAll","setBookmarks","bookmarks","setItem","BOOKMARKS_LS_KEY","e","getItem","addBookmark","filteredBookmarks","storedBookmark","areBookmarksEqual","bookmarkParams","storedBookmarkParams","filterKey","bookmarkKeys","k","storedKeys","allKeysMatch","every","bookmarkFilters","storedFilters","BookmarkItem","ACTION_VIEW","PRIMARY_SIGNAL","FILTER_SEPARATOR","getBookmarkParams","primarySignalFilter","signalData","getSignalForKey","getPrimarySignalFilter","filtersArray","getFiltersWithoutPrimarySignal","EVENT_ATTR","capitalizeFirstChar","WebkitLineClamp","WebkitBoxOrient","Bookmarks","setIsLoading","isRemoving","setIsRemoving","loadedBookmarks","h4","LoadingPlaceholder","p","noBookmarks","go_to_bookmark_clicked","goToBookmark","bookmarkItem","remove","disabled","stopPropagation","updatedBookmarks","removeBookmarkClicked","flexWrap","shape","radius","default","HeaderScene","headerTitleContainer","headerActions","documentationLink","subHeader","variablesAndControls","variables","getTagKeysProvider","dsVar","datasource_","DataSourceWithBackend","isArray","resourceAttributes","spanAttributes","otherAttributes","EVENT_INTRINSIC","ignoredAttributesHomeFilter","filterKeys","getHomeScene","navigate","useNavigate","dsVariable","filterVariable","getHomeFilterVariable","h2","explore_traces_clicked","read_documentation_clicked","control","renderFilter","isNumber","test","endsWith","Home","localStorage","DATASOURCE_LS_KEY","buildPanels","HOMEPAGE_FILTERS_LS_KEY","pf","filter_changed","renderedFilters","expr","renderTraceQLLabelFilters","columnGap","rowGap","initialFilters","initialDS","$variables","SceneVariableSet","DataSourceVariable","VAR_DATASOURCE","pluginId","AdHocFiltersVariable","VAR_HOME_FILTER","allowCustomValue","SceneTimePicker","SceneRefreshPicker","getAncestor","TraceExploration","tracesByServiceScene","newTracesExploration","context","sceneUtils","lookupVariable","VAR_GROUPBY","CustomVariable","VAR_SPAN_LIST_COLUMNS","getLatencyThresholdVariable","getLatencyPartialThresholdVariable","PrimarySignalVariable","getCurrentStep","targetQuery","request","targets","shouldShowSelection","getMetricValue","str","toUpperCase","webpackContext","req","webpackContextResolve","__webpack_require__","code","resolve","module","exports","AddToInvestigationButton","getQueries","getContext","queryRunner","findObject","isQueryRunner","q","dsUid","ctx","uid","logoPath","Logo","TraceViewPanelScene","panelContainer","service1","bar1","service2","bar2","service3","bar3","service4","bar4","service5","bar5","service6","bar6","marginTop","TraceDrawerScene","open_trace","TraceQLIssueDetector","runIssueDetectionQuery","datasourceVar","resetIssues","subtract","minimalTimeRange","toISOString","issueDetector","String","errors","hasIssue","TraceQLConfigWarning","detector","Alert","severity","EntityAssertionsWidget","EntityAssertionsWidgetExternal","usePluginComponent","setTimeRange","sub","start","valueOf","end","entityName","entityType","returnToPrevious","drawerSizes","sm","lg","Drawer","onClose","closeOnMaskClick","scrollableContent","tabs","drawerWidth","onMouseDown","onTouchStart","setDrawerWidth","onMouseMove","useCallback","getCustomDrawerWidth","clientX","onTouchMove","touch","touches","onMouseUp","document","removeEventListener","onTouchEnd","preventDefault","addEventListener","useResizebleDrawer","wrapperStyles","getWrapperStyles","dragStyles","getDragStyles","overlayRef","React","dialogProps","titleProps","useDialog","overlayProps","useOverlay","isDismissable","isOpen","classList","overrideWidth","RcDrawer","open","getContainer","drawerContent","rootClassName","drawer","classNames","wrapper","motion","motionAppear","motionName","drawerMotion","maskClassName","mask","maskClosable","maskMotion","FocusScope","restoreFocus","contain","autoFocus","aria-label","selectors","components","General","cx","dragHandleVertical","resizer","Boolean","headerWithTabs","IconButton","data-testid","close","titleWrapper","tabsWrapper","ScrollContainer","showScrollIndicators","offsetRight","offsetWidth","offsetLeft","boxShadow","shadows","z3","transform","transition","transitions","create","overlay","bottom","opacity","borderBottom","overflowWrap","paddingLeft","modal","down","SmartDrawer","forceNoDrawer","investigationButton","drawerHeader","AttributeFiltersVariable","addFilterButtonText","hide","VariableHide","hideLabel","readOnly","embedderName","expressionBuilder","hasChanges","updatedFilters","initialFilter","buildTime","process","compositeVersion","topScene","setupInvestigationButton","isActive","stateUpdate","initialMetric","closeDrawer","addToInvestigationButton","updateInvestigationLink","serviceNameField","getInvestigationLink","investigationLink","getVariableSet","TraceExplorationScene","drawerScene","bodyContainer","EmbeddedHeader","TraceExplorationHeader","add_to_investigation_trace_view_clicked","ADD_TO_INVESTIGATION_MENU_TEXT","useServiceName","setServiceName","getServiceNameFromFilters","serviceNameFilter","setReturnToPrevious","useReturnToPrevious","returnToPreviousSource","timeRangeControl","timeRangeState","filtersVariableState","metricVariableState","explorationUrl","setExplorationUrl","primarySignalOptions","headerContainer","go_to_full_app_clicked","menuVisible","setMenuVisible","VersionHeader","menuHeader","h5","menuHeaderSubtitle","menu","Menu","feedbackLinksEnabled","Item","ariaLabel","global_docs_link_clicked","feedback_link_clicked","datasourceLabel","Dropdown","onVisibleChange","helpIcon","isReadOnly","hideVariable","defaultToAll","h3","drawerHeaderButtons","canvas","fontWeightMedium","lineHeight","testIds","loadingState","SkeletonTheme","fadeIn","keyframes","animationName","animationDelay","animationTimingFunction","animationDuration","animationFillMode","streamingIndicator","success","topic","DataTopic","Annotations","traceIDField","parentAnchorHref","parentElement","throttleInterval","mousePosition","setMousePosition","updateMousePosition","throttle","clientY","GrotNotFound","show404","useMousePosition","SVG","src","dark404","light404","xPos","yPos","innerWidth","innerHeight","heightRatio","widthRatio","rotation","getIntermediateValue","translation","transformOrigin","ratio","emptyState","remedy","extensionPointId","ADD_TO_INVESTIGATION_MENU_DIVIDER_TEXT","ADD_TO_INVESTIGATION_MENU_GROUP_TEXT","addItem","item","setItems","items","iconClassName","getExploreHref","onExploreClick","VizPanelMenu","existingMenuItems","existingAddToInvestigationLink","add_to_investigation_clicked","open_in_explore_clicked","addToInvestigations","getPluginLinkExtensions","extensions","getObservablePluginLinks","firstValueFrom","maxDifferenceIndex","diff","CustomMenu","customMenu","DropdownIndicator","selectProps","menuIsOpen","GroupHeading","heading","weight","buttonGroupOptions","currentSignal","selectOptions","primary_signal_changed","primary_signal","buttonGroup","isSearchable","IndicatorSeparator","SingleValue","borderLeft","page","properties","reportInteraction","pluginJson","createInteractionName","start_investigation","stop_investigation","toggle_bookmark_clicked","homepage_initialized","new_filter_added_manually","app_initialized","_onActivateStep","getStepForTimeRange","newStep","axisWidth","isErrorsMetric","DrawStyle","Bars","StackingMode","Normal","overrides","matchFieldsWithNameByRegex","overrideColor","DurationComparisonControl","startInvestigation","isDisabled","InsightsTimelineWidget","InsightsTimelineWidgetExternal","filterBySeverity","filterBySummaryKeywords","isDuration","getHistogramVizPanel","getRateOrErrorVizPanel","buildSelectionAnnotation","xSel","ySel","arrayToDataFrame","xMin","xMax","timeEnd","yMin","yMax","isRegion","lineStyle","newData","minBucket","yBucketToDuration","titleContainer","titleRadioWrapper","slowestBuckets","fontWeightBold","ONE_MILLISECOND","ONE_SECOND","ONE_MINUTE","ONE_HOUR","UNIT_STEPS","log10","unit","microseconds","ofPrevious","primaryUnit","secondaryUnit","_dropWhile","_round","primaryValue","secondaryValue","secondaryValueRounded","round","primaryUnitString","dataPoints","dur","ErrorStateScene","errorState","Search","searchQuery","onSearchQueryChange","searchField","Input","cloneDataFrame","renderFilteredData","filtered","performRepeat","groupSeriesBy","groupedData","newSeries","mainFrame","sortDataFrame","newChildren","frameIndex","sum","vSum","layoutChild","evt","currentTarget","onSearchQueryChangeDebounced","debounce","doesQueryMatchDataFrameLabels","repeat","itemContainer","yAxis","yAxisItem","xAxis","xAxisItem","gridTemplateColumns","gridAutoRows","dataFrame","pattern","regex","RegExp","extendPanelContext","onSelectRange","args","rawSelection","yFrom","yTo","heatmap","show","axisLabel","scheme","steps","yValue","multiplier","rawValue","metricFn","groupByAttrs","HighestDifferencePanel","getAttribute","valueField","onAddToFilters","differenceContainer","differenceValue","textWrap","whiteSpace","filterExists","getFrameName","barchart","setMax","AxisPlacement","Hidden","overrideUnit"],"sourceRoot":""} \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/220.js b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/220.js deleted file mode 100644 index b8973a0..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/220.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[220],{8220:(e,t,a)=>{a.r(t),a.d(t,{default:()=>l});var l={"grafana-scenes":{components:{"adhoc-filter-pill":{"edit-filter-with-key":"{{keyLabel}} kulcsos szűrő szerkesztése","managed-filter":"{{origin}} által kezelt szűrő","remove-filter-with-key":"{{keyLabel}} kulcsos szűrő eltávolítása"},"adhoc-filters-combobox":{"remove-filter-value":"Szűrőérték eltávolítása – {{itemLabel}}","use-custom-value":"Egyéni érték használata: {{itemLabel}}"},"fallback-page":{content:"Ha egy hivatkozáson keresztül lépett ide, akkor lehet, hogy hiba van ebben az alkalmazásban.",subTitle:"Az URL-cím nem egyezett egyetlen oldallal sem",title:"Nem található"},"nested-scene-renderer":{"collapse-button-label":"Jelenet összecsukása","expand-button-label":"Jelenet kibontása","remove-button-label":"Jelenet eltávolítása"},"scene-debugger":{"object-details":"Az objektum részletei","scene-graph":"Jelenetdiagram","title-scene-debugger":"Jelenet-hibakereső"},"scene-grid-row":{"collapse-row":"Sor összecsukása","expand-row":"Sor kibontása"},"scene-time-range-compare-renderer":{"button-label":"Összehasonlítás","button-tooltip":"Időkeret-összehasonlítás engedélyezése"},splitter:{"aria-label-pane-resize-widget":"Ablaktábla-átméretezési widget"},"viz-panel":{title:{title:"Cím"}},"viz-panel-explore-button":{explore:"Explore"},"viz-panel-renderer":{"loading-plugin-panel":"Bővítménypanel betöltése…","panel-plugin-has-no-panel-component":"A panelbővítménynek nincs panelösszetevője"},"viz-panel-series-limit":{"content-rendering-series-single-panel-impact-performance":"Ha túl sok sorozatot jelenít meg egyetlen panelen, az hatással lehet a teljesítményre, és megnehezítheti az adatok olvasását.","warning-message":"Csak {{seriesLimit}} sorozat megjelenítése"}},utils:{"controls-label":{"tooltip-remove":"Eltávolítás"},"loading-indicator":{"content-cancel-query":"A lekérdezés megszakítása"}},variables:{"ad-hoc-combobox":{"aria-label-edit-filter-operator":"Szűrőoperátor szerkesztése"},"ad-hoc-filter-builder":{"aria-label-add-filter":"Szűrő hozzáadása","title-add-filter":"Szűrő hozzáadása"},"ad-hoc-filter-renderer":{"aria-label-remove-filter":"Szűrő eltávolítása","key-select":{"placeholder-select-label":"Címke kiválasztása"},"label-select-label":"Címke kiválasztása","title-remove-filter":"Szűrő eltávolítása","value-select":{"placeholder-select-value":"Érték kiválasztása"}},"data-source-variable":{label:{default:"alapértelmezés"}},"default-group-by-custom-indicator-container":{"aria-label-clear":"törlés",tooltip:"Alapértelmezés szerint alkalmazva ezen az irányítópulton. A szerkesztést átviszi más irányítópultokra.","tooltip-restore-groupby-set-by-this-dashboard":"A jelen irányítópult által beállított csoportosítási szempont visszaállítása."},"format-registry":{formats:{description:{"commaseparated-values":"Vesszővel elválasztott értékek","double-quoted-values":"Dupla idézőjeles értékek","format-date-in-different-ways":"Dátum formázása különböző módokon","format-multivalued-variables-using-syntax-example":"Többértékű változók formázása glob szintaxissal, például: {érték1,érték2}","html-escaping-of-values":"Értékek módosított HTML-értelmezése","json-stringify-value":"A JSON stringify értéke","keep-value-as-is":"Érték megtartása adott állapotban","multiple-values-are-formatted-like-variablevalue":"Több érték formázása változó=érték formátumban","single-quoted-values":"Egyszeres idézőjeles értékek","useful-escaping-values-taking-syntax-characters":"Hasznos az értékek módosított URL-értelmezéséhez, az URI-szintaktikai karakterek figyelembevételével","useful-for-url-escaping-values":"Hasznos az értékek módosított URL-értelmezéséhez","values-are-separated-by-character":"Az értékeket | karakter választja el"}}},"group-by-variable-renderer":{"aria-label-group-by-selector":"Csoportosításiszempont-választó","placeholder-group-by-label":"Csoportosítási szempont címkéje"},"interval-variable":{"placeholder-select-value":"Érték kiválasztása"},"loading-options-placeholder":{"loading-options":"Beállítások betöltése…"},"multi-value-apply-button":{apply:"Alkalmaz"},"no-options-placeholder":{"no-options-found":"Nem található beállítás"},"options-error-placeholder":{"error-occurred-fetching-labels-click-retry":"Hiba történt a címkék lekérése során. Kattintson az újrapróbálkozáshoz"},"test-object-with-variable-dependency":{title:{hello:"Üdv"}},"test-variable":{text:{text:"Szöveg"}},"variable-value-input":{"placeholder-enter-value":"Érték megadása"},"variable-value-select":{"placeholder-select-value":"Érték kiválasztása"}}}}}}]); -//# sourceMappingURL=220.js.map?_cache=06dc1f2a0010c383dc1e \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/220.js.map b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/220.js.map deleted file mode 100644 index 4a0be74..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/220.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"220.js?_cache=06dc1f2a0010c383dc1e","mappings":"mKAAA,IAAIA,EAAgB,CACnB,iBAAkB,CAClBC,WAAY,CACX,oBAAqB,CACpB,uBAAwB,0CACxB,iBAAkB,gCAClB,yBAA0B,2CAE3B,yBAA0B,CACzB,sBAAuB,0CACvB,mBAAoB,0CAErB,gBAAiB,CAChBC,QAAS,+FACTC,SAAU,gDACVC,MAAO,iBAER,wBAAyB,CACxB,wBAAyB,uBACzB,sBAAuB,oBACvB,sBAAuB,wBAExB,iBAAkB,CACjB,iBAAkB,wBAClB,cAAe,iBACf,uBAAwB,sBAEzB,iBAAkB,CACjB,eAAgB,mBAChB,aAAc,iBAEf,oCAAqC,CACpC,eAAgB,kBAChB,iBAAkB,0CAEnBC,SAAU,CACT,gCAAiC,kCAElC,YAAa,CACZD,MAAO,CACNA,MAAO,QAGT,2BAA4B,CAC3BE,QAAS,WAEV,qBAAsB,CACrB,uBAAwB,4BACxB,sCAAuC,8CAExC,yBAA0B,CACzB,2DAA4D,gIAC5D,kBAAmB,+CAGrBC,MAAO,CACN,iBAAkB,CACjB,iBAAkB,eAEnB,oBAAqB,CACpB,uBAAwB,8BAG1BC,UAAW,CACV,kBAAmB,CAClB,kCAAmC,8BAEpC,wBAAyB,CACxB,wBAAyB,mBACzB,mBAAoB,oBAErB,yBAA0B,CACzB,2BAA4B,qBAC5B,aAAc,CACb,2BAA4B,sBAE7B,qBAAsB,qBACtB,sBAAuB,qBACvB,eAAgB,CACf,2BAA4B,uBAG9B,uBAAwB,CACvBC,MAAO,CACN,QAAW,mBAGb,8CAA+C,CAC9C,mBAAoB,SACpBC,QAAS,yGACT,gDAAiD,iFAElD,kBAAmB,CAClBC,QAAS,CACRC,YAAa,CACZ,wBAAyB,iCACzB,uBAAwB,2BACxB,gCAAiC,oCACjC,oDAAqD,4EACrD,0BAA2B,sCAC3B,uBAAwB,0BACxB,mBAAoB,oCACpB,mDAAoD,iDACpD,uBAAwB,+BACxB,kDAAmD,uGACnD,iCAAkC,mDAClC,oCAAqC,0CAIxC,6BAA8B,CAC7B,+BAAgC,kCAChC,6BAA8B,mCAE/B,oBAAqB,CACpB,2BAA4B,sBAE7B,8BAA+B,CAC9B,kBAAmB,0BAEpB,2BAA4B,CAC3BC,MAAO,YAER,yBAA0B,CACzB,mBAAoB,2BAErB,4BAA6B,CAC5B,6CAA8C,0EAE/C,uCAAwC,CACvCT,MAAO,CACNU,MAAO,QAGT,gBAAiB,CAChBC,KAAM,CACLA,KAAM,WAGR,uBAAwB,CACvB,0BAA2B,kBAE5B,wBAAyB,CACxB,2BAA4B,wB","sources":["webpack://grafana-exploretraces-app/../node_modules/@grafana/scenes/dist/esm/locales/hu-HU/grafana-scenes.json.js"],"sourcesContent":["var grafanaScenes = {\n\t\"grafana-scenes\": {\n\tcomponents: {\n\t\t\"adhoc-filter-pill\": {\n\t\t\t\"edit-filter-with-key\": \"{{keyLabel}} kulcsos szűrő szerkesztése\",\n\t\t\t\"managed-filter\": \"{{origin}} által kezelt szűrő\",\n\t\t\t\"remove-filter-with-key\": \"{{keyLabel}} kulcsos szűrő eltávolítása\"\n\t\t},\n\t\t\"adhoc-filters-combobox\": {\n\t\t\t\"remove-filter-value\": \"Szűrőérték eltávolítása – {{itemLabel}}\",\n\t\t\t\"use-custom-value\": \"Egyéni érték használata: {{itemLabel}}\"\n\t\t},\n\t\t\"fallback-page\": {\n\t\t\tcontent: \"Ha egy hivatkozáson keresztül lépett ide, akkor lehet, hogy hiba van ebben az alkalmazásban.\",\n\t\t\tsubTitle: \"Az URL-cím nem egyezett egyetlen oldallal sem\",\n\t\t\ttitle: \"Nem található\"\n\t\t},\n\t\t\"nested-scene-renderer\": {\n\t\t\t\"collapse-button-label\": \"Jelenet összecsukása\",\n\t\t\t\"expand-button-label\": \"Jelenet kibontása\",\n\t\t\t\"remove-button-label\": \"Jelenet eltávolítása\"\n\t\t},\n\t\t\"scene-debugger\": {\n\t\t\t\"object-details\": \"Az objektum részletei\",\n\t\t\t\"scene-graph\": \"Jelenetdiagram\",\n\t\t\t\"title-scene-debugger\": \"Jelenet-hibakereső\"\n\t\t},\n\t\t\"scene-grid-row\": {\n\t\t\t\"collapse-row\": \"Sor összecsukása\",\n\t\t\t\"expand-row\": \"Sor kibontása\"\n\t\t},\n\t\t\"scene-time-range-compare-renderer\": {\n\t\t\t\"button-label\": \"Összehasonlítás\",\n\t\t\t\"button-tooltip\": \"Időkeret-összehasonlítás engedélyezése\"\n\t\t},\n\t\tsplitter: {\n\t\t\t\"aria-label-pane-resize-widget\": \"Ablaktábla-átméretezési widget\"\n\t\t},\n\t\t\"viz-panel\": {\n\t\t\ttitle: {\n\t\t\t\ttitle: \"Cím\"\n\t\t\t}\n\t\t},\n\t\t\"viz-panel-explore-button\": {\n\t\t\texplore: \"Explore\"\n\t\t},\n\t\t\"viz-panel-renderer\": {\n\t\t\t\"loading-plugin-panel\": \"Bővítménypanel betöltése…\",\n\t\t\t\"panel-plugin-has-no-panel-component\": \"A panelbővítménynek nincs panelösszetevője\"\n\t\t},\n\t\t\"viz-panel-series-limit\": {\n\t\t\t\"content-rendering-series-single-panel-impact-performance\": \"Ha túl sok sorozatot jelenít meg egyetlen panelen, az hatással lehet a teljesítményre, és megnehezítheti az adatok olvasását.\",\n\t\t\t\"warning-message\": \"Csak {{seriesLimit}} sorozat megjelenítése\"\n\t\t}\n\t},\n\tutils: {\n\t\t\"controls-label\": {\n\t\t\t\"tooltip-remove\": \"Eltávolítás\"\n\t\t},\n\t\t\"loading-indicator\": {\n\t\t\t\"content-cancel-query\": \"A lekérdezés megszakítása\"\n\t\t}\n\t},\n\tvariables: {\n\t\t\"ad-hoc-combobox\": {\n\t\t\t\"aria-label-edit-filter-operator\": \"Szűrőoperátor szerkesztése\"\n\t\t},\n\t\t\"ad-hoc-filter-builder\": {\n\t\t\t\"aria-label-add-filter\": \"Szűrő hozzáadása\",\n\t\t\t\"title-add-filter\": \"Szűrő hozzáadása\"\n\t\t},\n\t\t\"ad-hoc-filter-renderer\": {\n\t\t\t\"aria-label-remove-filter\": \"Szűrő eltávolítása\",\n\t\t\t\"key-select\": {\n\t\t\t\t\"placeholder-select-label\": \"Címke kiválasztása\"\n\t\t\t},\n\t\t\t\"label-select-label\": \"Címke kiválasztása\",\n\t\t\t\"title-remove-filter\": \"Szűrő eltávolítása\",\n\t\t\t\"value-select\": {\n\t\t\t\t\"placeholder-select-value\": \"Érték kiválasztása\"\n\t\t\t}\n\t\t},\n\t\t\"data-source-variable\": {\n\t\t\tlabel: {\n\t\t\t\t\"default\": \"alapértelmezés\"\n\t\t\t}\n\t\t},\n\t\t\"default-group-by-custom-indicator-container\": {\n\t\t\t\"aria-label-clear\": \"törlés\",\n\t\t\ttooltip: \"Alapértelmezés szerint alkalmazva ezen az irányítópulton. A szerkesztést átviszi más irányítópultokra.\",\n\t\t\t\"tooltip-restore-groupby-set-by-this-dashboard\": \"A jelen irányítópult által beállított csoportosítási szempont visszaállítása.\"\n\t\t},\n\t\t\"format-registry\": {\n\t\t\tformats: {\n\t\t\t\tdescription: {\n\t\t\t\t\t\"commaseparated-values\": \"Vesszővel elválasztott értékek\",\n\t\t\t\t\t\"double-quoted-values\": \"Dupla idézőjeles értékek\",\n\t\t\t\t\t\"format-date-in-different-ways\": \"Dátum formázása különböző módokon\",\n\t\t\t\t\t\"format-multivalued-variables-using-syntax-example\": \"Többértékű változók formázása glob szintaxissal, például: {érték1,érték2}\",\n\t\t\t\t\t\"html-escaping-of-values\": \"Értékek módosított HTML-értelmezése\",\n\t\t\t\t\t\"json-stringify-value\": \"A JSON stringify értéke\",\n\t\t\t\t\t\"keep-value-as-is\": \"Érték megtartása adott állapotban\",\n\t\t\t\t\t\"multiple-values-are-formatted-like-variablevalue\": \"Több érték formázása változó=érték formátumban\",\n\t\t\t\t\t\"single-quoted-values\": \"Egyszeres idézőjeles értékek\",\n\t\t\t\t\t\"useful-escaping-values-taking-syntax-characters\": \"Hasznos az értékek módosított URL-értelmezéséhez, az URI-szintaktikai karakterek figyelembevételével\",\n\t\t\t\t\t\"useful-for-url-escaping-values\": \"Hasznos az értékek módosított URL-értelmezéséhez\",\n\t\t\t\t\t\"values-are-separated-by-character\": \"Az értékeket | karakter választja el\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"group-by-variable-renderer\": {\n\t\t\t\"aria-label-group-by-selector\": \"Csoportosításiszempont-választó\",\n\t\t\t\"placeholder-group-by-label\": \"Csoportosítási szempont címkéje\"\n\t\t},\n\t\t\"interval-variable\": {\n\t\t\t\"placeholder-select-value\": \"Érték kiválasztása\"\n\t\t},\n\t\t\"loading-options-placeholder\": {\n\t\t\t\"loading-options\": \"Beállítások betöltése…\"\n\t\t},\n\t\t\"multi-value-apply-button\": {\n\t\t\tapply: \"Alkalmaz\"\n\t\t},\n\t\t\"no-options-placeholder\": {\n\t\t\t\"no-options-found\": \"Nem található beállítás\"\n\t\t},\n\t\t\"options-error-placeholder\": {\n\t\t\t\"error-occurred-fetching-labels-click-retry\": \"Hiba történt a címkék lekérése során. Kattintson az újrapróbálkozáshoz\"\n\t\t},\n\t\t\"test-object-with-variable-dependency\": {\n\t\t\ttitle: {\n\t\t\t\thello: \"Üdv\"\n\t\t\t}\n\t\t},\n\t\t\"test-variable\": {\n\t\t\ttext: {\n\t\t\t\ttext: \"Szöveg\"\n\t\t\t}\n\t\t},\n\t\t\"variable-value-input\": {\n\t\t\t\"placeholder-enter-value\": \"Érték megadása\"\n\t\t},\n\t\t\"variable-value-select\": {\n\t\t\t\"placeholder-select-value\": \"Érték kiválasztása\"\n\t\t}\n\t}\n}\n};\n\nexport { grafanaScenes as default };\n//# sourceMappingURL=grafana-scenes.json.js.map\n"],"names":["grafanaScenes","components","content","subTitle","title","splitter","explore","utils","variables","label","tooltip","formats","description","apply","hello","text"],"sourceRoot":""} \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/327.js b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/327.js deleted file mode 100644 index 24c0ab9..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/327.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[327],{4327:(e,l,a)=>{a.r(l),a.d(l,{default:()=>t});var t={"grafana-scenes":{components:{"adhoc-filter-pill":{"edit-filter-with-key":"{{keyLabel}}キーでフィルターを編集 ","managed-filter":"{{origin}}管理フィルター","remove-filter-with-key":"{{keyLabel}}キーでフィルターを削除 "},"adhoc-filters-combobox":{"remove-filter-value":"フィルター値を削除 - {{itemLabel}}","use-custom-value":"カスタム値を使用:{{itemLabel}} "},"fallback-page":{content:"リンクからこのページにアクセスした場合、アプリケーションにバグがある可能性があります。",subTitle:"URLがどのページにも一致しません",title:"見つかりません"},"nested-scene-renderer":{"collapse-button-label":"シーンを折りたたむ","expand-button-label":"シーンを展開","remove-button-label":"シーンを削除"},"scene-debugger":{"object-details":"オブジェクトの詳細","scene-graph":"シーングラフ","title-scene-debugger":"シーンデバッガー"},"scene-grid-row":{"collapse-row":"行を折りたたむ","expand-row":"行を展開"},"scene-time-range-compare-renderer":{"button-label":"比較","button-tooltip":"時間枠比較を有効にする"},splitter:{"aria-label-pane-resize-widget":"ペインリサイズウィジェット"},"viz-panel":{title:{title:"タイトル"}},"viz-panel-explore-button":{explore:"探検"},"viz-panel-renderer":{"loading-plugin-panel":"プラグインパネルを読み込み中...","panel-plugin-has-no-panel-component":"パネルプラグインにパネルコンポーネントがありません"},"viz-panel-series-limit":{"content-rendering-series-single-panel-impact-performance":"単一パネルで多数の系列を表示すると、パフォーマンスに影響し、データが読みにくくなる場合があります。","warning-message":"{{seriesLimit}}系列のみ表示"}},utils:{"controls-label":{"tooltip-remove":"削除"},"loading-indicator":{"content-cancel-query":"クエリをキャンセル"}},variables:{"ad-hoc-combobox":{"aria-label-edit-filter-operator":"フィルター演算子を編集"},"ad-hoc-filter-builder":{"aria-label-add-filter":"フィルターを追加","title-add-filter":"フィルターを追加"},"ad-hoc-filter-renderer":{"aria-label-remove-filter":"フィルターを削除","key-select":{"placeholder-select-label":"ラベルを選択"},"label-select-label":"ラベルを選択","title-remove-filter":"フィルターを削除","value-select":{"placeholder-select-value":"値を選択"}},"data-source-variable":{label:{default:"デフォルト"}},"default-group-by-custom-indicator-container":{"aria-label-clear":"クリア",tooltip:"このダッシュボードでデフォルトで適用されます。編集した場合、他のダッシュボードに引き継がれます。","tooltip-restore-groupby-set-by-this-dashboard":"このダッシュボードで設定されたgroupbyを復元します。"},"format-registry":{formats:{description:{"commaseparated-values":"カンマ区切り値","double-quoted-values":"二重引用符で囲まれた値","format-date-in-different-ways":"日付を様々な形式でフォーマット","format-multivalued-variables-using-syntax-example":"glob構文を使用して複数値変数をフォーマット(例: {value1,value2})","html-escaping-of-values":"値のHTMLエスケープ","json-stringify-value":"JSON文字列化値","keep-value-as-is":"値をそのまま保持","multiple-values-are-formatted-like-variablevalue":"複数の値は変数=値の形式でフォーマットされます","single-quoted-values":"一重引用符で囲まれた値","useful-escaping-values-taking-syntax-characters":"URI構文文字を考慮したURLエスケープ値に便利","useful-for-url-escaping-values":"URLエスケープ値に便利","values-are-separated-by-character":"値は|文字で区切られます"}}},"group-by-variable-renderer":{"aria-label-group-by-selector":"セレクターでグループ化","placeholder-group-by-label":"ラベルでグループ化"},"interval-variable":{"placeholder-select-value":"値を選択"},"loading-options-placeholder":{"loading-options":"オプションを読み込み中..."},"multi-value-apply-button":{apply:"適用"},"no-options-placeholder":{"no-options-found":"オプションが見つかりません"},"options-error-placeholder":{"error-occurred-fetching-labels-click-retry":"ラベルの取得中にエラーが発生しました。クリックして再試行"},"test-object-with-variable-dependency":{title:{hello:"こんにちは"}},"test-variable":{text:{text:"テキスト"}},"variable-value-input":{"placeholder-enter-value":"値を入力"},"variable-value-select":{"placeholder-select-value":"値を選択"}}}}}}]); -//# sourceMappingURL=327.js.map?_cache=9823d5c8efdaeaf61bf4 \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/327.js.map b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/327.js.map deleted file mode 100644 index dded42c..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/327.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"327.js?_cache=9823d5c8efdaeaf61bf4","mappings":"mKAAA,IAAIA,EAAgB,CACnB,iBAAkB,CAClBC,WAAY,CACX,oBAAqB,CACpB,uBAAwB,2BACxB,iBAAkB,oBAClB,yBAA0B,4BAE3B,yBAA0B,CACzB,sBAAuB,4BACvB,mBAAoB,2BAErB,gBAAiB,CAChBC,QAAS,8CACTC,SAAU,oBACVC,MAAO,WAER,wBAAyB,CACxB,wBAAyB,YACzB,sBAAuB,SACvB,sBAAuB,UAExB,iBAAkB,CACjB,iBAAkB,YAClB,cAAe,SACf,uBAAwB,YAEzB,iBAAkB,CACjB,eAAgB,UAChB,aAAc,QAEf,oCAAqC,CACpC,eAAgB,KAChB,iBAAkB,eAEnBC,SAAU,CACT,gCAAiC,iBAElC,YAAa,CACZD,MAAO,CACNA,MAAO,SAGT,2BAA4B,CAC3BE,QAAS,MAEV,qBAAsB,CACrB,uBAAwB,oBACxB,sCAAuC,6BAExC,yBAA0B,CACzB,2DAA4D,oDAC5D,kBAAmB,0BAGrBC,MAAO,CACN,iBAAkB,CACjB,iBAAkB,MAEnB,oBAAqB,CACpB,uBAAwB,cAG1BC,UAAW,CACV,kBAAmB,CAClB,kCAAmC,eAEpC,wBAAyB,CACxB,wBAAyB,WACzB,mBAAoB,YAErB,yBAA0B,CACzB,2BAA4B,WAC5B,aAAc,CACb,2BAA4B,UAE7B,qBAAsB,SACtB,sBAAuB,WACvB,eAAgB,CACf,2BAA4B,SAG9B,uBAAwB,CACvBC,MAAO,CACN,QAAW,UAGb,8CAA+C,CAC9C,mBAAoB,MACpBC,QAAS,mDACT,gDAAiD,iCAElD,kBAAmB,CAClBC,QAAS,CACRC,YAAa,CACZ,wBAAyB,UACzB,uBAAwB,cACxB,gCAAiC,kBACjC,oDAAqD,8CACrD,0BAA2B,cAC3B,uBAAwB,YACxB,mBAAoB,WACpB,mDAAoD,0BACpD,uBAAwB,cACxB,kDAAmD,2BACnD,iCAAkC,eAClC,oCAAqC,kBAIxC,6BAA8B,CAC7B,+BAAgC,cAChC,6BAA8B,aAE/B,oBAAqB,CACpB,2BAA4B,QAE7B,8BAA+B,CAC9B,kBAAmB,kBAEpB,2BAA4B,CAC3BC,MAAO,MAER,yBAA0B,CACzB,mBAAoB,iBAErB,4BAA6B,CAC5B,6CAA8C,gCAE/C,uCAAwC,CACvCT,MAAO,CACNU,MAAO,UAGT,gBAAiB,CAChBC,KAAM,CACLA,KAAM,SAGR,uBAAwB,CACvB,0BAA2B,QAE5B,wBAAyB,CACxB,2BAA4B,U","sources":["webpack://grafana-exploretraces-app/../node_modules/@grafana/scenes/dist/esm/locales/ja-JP/grafana-scenes.json.js"],"sourcesContent":["var grafanaScenes = {\n\t\"grafana-scenes\": {\n\tcomponents: {\n\t\t\"adhoc-filter-pill\": {\n\t\t\t\"edit-filter-with-key\": \"{{keyLabel}}キーでフィルターを編集 \",\n\t\t\t\"managed-filter\": \"{{origin}}管理フィルター\",\n\t\t\t\"remove-filter-with-key\": \"{{keyLabel}}キーでフィルターを削除 \"\n\t\t},\n\t\t\"adhoc-filters-combobox\": {\n\t\t\t\"remove-filter-value\": \"フィルター値を削除 - {{itemLabel}}\",\n\t\t\t\"use-custom-value\": \"カスタム値を使用:{{itemLabel}} \"\n\t\t},\n\t\t\"fallback-page\": {\n\t\t\tcontent: \"リンクからこのページにアクセスした場合、アプリケーションにバグがある可能性があります。\",\n\t\t\tsubTitle: \"URLがどのページにも一致しません\",\n\t\t\ttitle: \"見つかりません\"\n\t\t},\n\t\t\"nested-scene-renderer\": {\n\t\t\t\"collapse-button-label\": \"シーンを折りたたむ\",\n\t\t\t\"expand-button-label\": \"シーンを展開\",\n\t\t\t\"remove-button-label\": \"シーンを削除\"\n\t\t},\n\t\t\"scene-debugger\": {\n\t\t\t\"object-details\": \"オブジェクトの詳細\",\n\t\t\t\"scene-graph\": \"シーングラフ\",\n\t\t\t\"title-scene-debugger\": \"シーンデバッガー\"\n\t\t},\n\t\t\"scene-grid-row\": {\n\t\t\t\"collapse-row\": \"行を折りたたむ\",\n\t\t\t\"expand-row\": \"行を展開\"\n\t\t},\n\t\t\"scene-time-range-compare-renderer\": {\n\t\t\t\"button-label\": \"比較\",\n\t\t\t\"button-tooltip\": \"時間枠比較を有効にする\"\n\t\t},\n\t\tsplitter: {\n\t\t\t\"aria-label-pane-resize-widget\": \"ペインリサイズウィジェット\"\n\t\t},\n\t\t\"viz-panel\": {\n\t\t\ttitle: {\n\t\t\t\ttitle: \"タイトル\"\n\t\t\t}\n\t\t},\n\t\t\"viz-panel-explore-button\": {\n\t\t\texplore: \"探検\"\n\t\t},\n\t\t\"viz-panel-renderer\": {\n\t\t\t\"loading-plugin-panel\": \"プラグインパネルを読み込み中...\",\n\t\t\t\"panel-plugin-has-no-panel-component\": \"パネルプラグインにパネルコンポーネントがありません\"\n\t\t},\n\t\t\"viz-panel-series-limit\": {\n\t\t\t\"content-rendering-series-single-panel-impact-performance\": \"単一パネルで多数の系列を表示すると、パフォーマンスに影響し、データが読みにくくなる場合があります。\",\n\t\t\t\"warning-message\": \"{{seriesLimit}}系列のみ表示\"\n\t\t}\n\t},\n\tutils: {\n\t\t\"controls-label\": {\n\t\t\t\"tooltip-remove\": \"削除\"\n\t\t},\n\t\t\"loading-indicator\": {\n\t\t\t\"content-cancel-query\": \"クエリをキャンセル\"\n\t\t}\n\t},\n\tvariables: {\n\t\t\"ad-hoc-combobox\": {\n\t\t\t\"aria-label-edit-filter-operator\": \"フィルター演算子を編集\"\n\t\t},\n\t\t\"ad-hoc-filter-builder\": {\n\t\t\t\"aria-label-add-filter\": \"フィルターを追加\",\n\t\t\t\"title-add-filter\": \"フィルターを追加\"\n\t\t},\n\t\t\"ad-hoc-filter-renderer\": {\n\t\t\t\"aria-label-remove-filter\": \"フィルターを削除\",\n\t\t\t\"key-select\": {\n\t\t\t\t\"placeholder-select-label\": \"ラベルを選択\"\n\t\t\t},\n\t\t\t\"label-select-label\": \"ラベルを選択\",\n\t\t\t\"title-remove-filter\": \"フィルターを削除\",\n\t\t\t\"value-select\": {\n\t\t\t\t\"placeholder-select-value\": \"値を選択\"\n\t\t\t}\n\t\t},\n\t\t\"data-source-variable\": {\n\t\t\tlabel: {\n\t\t\t\t\"default\": \"デフォルト\"\n\t\t\t}\n\t\t},\n\t\t\"default-group-by-custom-indicator-container\": {\n\t\t\t\"aria-label-clear\": \"クリア\",\n\t\t\ttooltip: \"このダッシュボードでデフォルトで適用されます。編集した場合、他のダッシュボードに引き継がれます。\",\n\t\t\t\"tooltip-restore-groupby-set-by-this-dashboard\": \"このダッシュボードで設定されたgroupbyを復元します。\"\n\t\t},\n\t\t\"format-registry\": {\n\t\t\tformats: {\n\t\t\t\tdescription: {\n\t\t\t\t\t\"commaseparated-values\": \"カンマ区切り値\",\n\t\t\t\t\t\"double-quoted-values\": \"二重引用符で囲まれた値\",\n\t\t\t\t\t\"format-date-in-different-ways\": \"日付を様々な形式でフォーマット\",\n\t\t\t\t\t\"format-multivalued-variables-using-syntax-example\": \"glob構文を使用して複数値変数をフォーマット(例: {value1,value2})\",\n\t\t\t\t\t\"html-escaping-of-values\": \"値のHTMLエスケープ\",\n\t\t\t\t\t\"json-stringify-value\": \"JSON文字列化値\",\n\t\t\t\t\t\"keep-value-as-is\": \"値をそのまま保持\",\n\t\t\t\t\t\"multiple-values-are-formatted-like-variablevalue\": \"複数の値は変数=値の形式でフォーマットされます\",\n\t\t\t\t\t\"single-quoted-values\": \"一重引用符で囲まれた値\",\n\t\t\t\t\t\"useful-escaping-values-taking-syntax-characters\": \"URI構文文字を考慮したURLエスケープ値に便利\",\n\t\t\t\t\t\"useful-for-url-escaping-values\": \"URLエスケープ値に便利\",\n\t\t\t\t\t\"values-are-separated-by-character\": \"値は|文字で区切られます\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"group-by-variable-renderer\": {\n\t\t\t\"aria-label-group-by-selector\": \"セレクターでグループ化\",\n\t\t\t\"placeholder-group-by-label\": \"ラベルでグループ化\"\n\t\t},\n\t\t\"interval-variable\": {\n\t\t\t\"placeholder-select-value\": \"値を選択\"\n\t\t},\n\t\t\"loading-options-placeholder\": {\n\t\t\t\"loading-options\": \"オプションを読み込み中...\"\n\t\t},\n\t\t\"multi-value-apply-button\": {\n\t\t\tapply: \"適用\"\n\t\t},\n\t\t\"no-options-placeholder\": {\n\t\t\t\"no-options-found\": \"オプションが見つかりません\"\n\t\t},\n\t\t\"options-error-placeholder\": {\n\t\t\t\"error-occurred-fetching-labels-click-retry\": \"ラベルの取得中にエラーが発生しました。クリックして再試行\"\n\t\t},\n\t\t\"test-object-with-variable-dependency\": {\n\t\t\ttitle: {\n\t\t\t\thello: \"こんにちは\"\n\t\t\t}\n\t\t},\n\t\t\"test-variable\": {\n\t\t\ttext: {\n\t\t\t\ttext: \"テキスト\"\n\t\t\t}\n\t\t},\n\t\t\"variable-value-input\": {\n\t\t\t\"placeholder-enter-value\": \"値を入力\"\n\t\t},\n\t\t\"variable-value-select\": {\n\t\t\t\"placeholder-select-value\": \"値を選択\"\n\t\t}\n\t}\n}\n};\n\nexport { grafanaScenes as default };\n//# sourceMappingURL=grafana-scenes.json.js.map\n"],"names":["grafanaScenes","components","content","subTitle","title","splitter","explore","utils","variables","label","tooltip","formats","description","apply","hello","text"],"sourceRoot":""} \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/341.js b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/341.js deleted file mode 100644 index 8b8d6d9..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/341.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[341],{9341:(e,l,a)=>{a.r(l),a.d(l,{default:()=>t});var t={"grafana-scenes":{components:{"adhoc-filter-pill":{"edit-filter-with-key":"使用鍵 {{keyLabel}} 編輯篩選條件","managed-filter":"{{origin}} 受管理的篩選條件","remove-filter-with-key":"使用鍵 {{keyLabel}} 移除篩選條件"},"adhoc-filters-combobox":{"remove-filter-value":"移除篩選條件值 - {{itemLabel}}","use-custom-value":"使用自訂值:{{itemLabel}}"},"fallback-page":{content:"如果您使用連結找到此處,則此應用程式中可能存在錯誤。",subTitle:"URL 與任何頁面都不相符",title:"無結果"},"nested-scene-renderer":{"collapse-button-label":"收闔場景","expand-button-label":"展開場景","remove-button-label":"移除場景"},"scene-debugger":{"object-details":"物件詳情","scene-graph":"場景圖表","title-scene-debugger":"場景除錯器"},"scene-grid-row":{"collapse-row":"收闔列","expand-row":"展開列"},"scene-time-range-compare-renderer":{"button-label":"比較","button-tooltip":"啟用時間範圍比較"},splitter:{"aria-label-pane-resize-widget":"窗格調整大小小工具"},"viz-panel":{title:{title:"標題"}},"viz-panel-explore-button":{explore:"探索"},"viz-panel-renderer":{"loading-plugin-panel":"正在載入外掛程式面板…","panel-plugin-has-no-panel-component":"面板外掛程式沒有面板元件"},"viz-panel-series-limit":{"content-rendering-series-single-panel-impact-performance":"在單個面板中呈現太多序列可能會影響效能,並使資料更難讀取。","warning-message":"僅顯示 {{seriesLimit}} 個序列"}},utils:{"controls-label":{"tooltip-remove":"移除"},"loading-indicator":{"content-cancel-query":"取消查詢"}},variables:{"ad-hoc-combobox":{"aria-label-edit-filter-operator":"編輯篩選條件運算子"},"ad-hoc-filter-builder":{"aria-label-add-filter":"新增篩選條件","title-add-filter":"新增篩選條件"},"ad-hoc-filter-renderer":{"aria-label-remove-filter":"移除篩選條件","key-select":{"placeholder-select-label":"選擇標籤"},"label-select-label":"選擇標籤","title-remove-filter":"移除篩選條件","value-select":{"placeholder-select-value":"選擇值"}},"data-source-variable":{label:{default:"預設值"}},"default-group-by-custom-indicator-container":{"aria-label-clear":"清除",tooltip:"在此儀表板中預設套用。如果編輯,它會轉移到其他儀表板。","tooltip-restore-groupby-set-by-this-dashboard":"還原此儀表板設定的分組依據。"},"format-registry":{formats:{description:{"commaseparated-values":"逗點分隔的值","double-quoted-values":"帶雙引號的值","format-date-in-different-ways":"以不同方式格式化日期","format-multivalued-variables-using-syntax-example":"使用 glob 語法格式化多值變數,例如 {value1,value2}","html-escaping-of-values":"值的 HTML 轉義","json-stringify-value":"JSON 字串化值","keep-value-as-is":"按原樣保留值","multiple-values-are-formatted-like-variablevalue":"多個值按「變數=值」的方式格式化","single-quoted-values":"帶單引號的值","useful-escaping-values-taking-syntax-characters":"對 URL 轉義值很有用,需考慮 URI 語法字元","useful-for-url-escaping-values":"對 URL 轉義值很有用","values-are-separated-by-character":"值以 | 字元分隔"}}},"group-by-variable-renderer":{"aria-label-group-by-selector":"按選取器分組","placeholder-group-by-label":"按標籤分組"},"interval-variable":{"placeholder-select-value":"選擇值"},"loading-options-placeholder":{"loading-options":"正在載入選項…"},"multi-value-apply-button":{apply:"套用"},"no-options-placeholder":{"no-options-found":"未找到選項"},"options-error-placeholder":{"error-occurred-fetching-labels-click-retry":"擷取標籤時發生錯誤。點選以重試"},"test-object-with-variable-dependency":{title:{hello:"您好"}},"test-variable":{text:{text:"文字"}},"variable-value-input":{"placeholder-enter-value":"輸入值"},"variable-value-select":{"placeholder-select-value":"選擇值"}}}}}}]); -//# sourceMappingURL=341.js.map?_cache=9833176b4a90b4233a97 \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/341.js.map b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/341.js.map deleted file mode 100644 index 22fbc3a..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/341.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"341.js?_cache=9833176b4a90b4233a97","mappings":"mKAAA,IAAIA,EAAgB,CACnB,iBAAkB,CAClBC,WAAY,CACX,oBAAqB,CACpB,uBAAwB,0BACxB,iBAAkB,sBAClB,yBAA0B,2BAE3B,yBAA0B,CACzB,sBAAuB,0BACvB,mBAAoB,uBAErB,gBAAiB,CAChBC,QAAS,6BACTC,SAAU,gBACVC,MAAO,OAER,wBAAyB,CACxB,wBAAyB,OACzB,sBAAuB,OACvB,sBAAuB,QAExB,iBAAkB,CACjB,iBAAkB,OAClB,cAAe,OACf,uBAAwB,SAEzB,iBAAkB,CACjB,eAAgB,MAChB,aAAc,OAEf,oCAAqC,CACpC,eAAgB,KAChB,iBAAkB,YAEnBC,SAAU,CACT,gCAAiC,aAElC,YAAa,CACZD,MAAO,CACNA,MAAO,OAGT,2BAA4B,CAC3BE,QAAS,MAEV,qBAAsB,CACrB,uBAAwB,cACxB,sCAAuC,gBAExC,yBAA0B,CACzB,2DAA4D,gCAC5D,kBAAmB,4BAGrBC,MAAO,CACN,iBAAkB,CACjB,iBAAkB,MAEnB,oBAAqB,CACpB,uBAAwB,SAG1BC,UAAW,CACV,kBAAmB,CAClB,kCAAmC,aAEpC,wBAAyB,CACxB,wBAAyB,SACzB,mBAAoB,UAErB,yBAA0B,CACzB,2BAA4B,SAC5B,aAAc,CACb,2BAA4B,QAE7B,qBAAsB,OACtB,sBAAuB,SACvB,eAAgB,CACf,2BAA4B,QAG9B,uBAAwB,CACvBC,MAAO,CACN,QAAW,QAGb,8CAA+C,CAC9C,mBAAoB,KACpBC,QAAS,8BACT,gDAAiD,kBAElD,kBAAmB,CAClBC,QAAS,CACRC,YAAa,CACZ,wBAAyB,SACzB,uBAAwB,SACxB,gCAAiC,aACjC,oDAAqD,uCACrD,0BAA2B,aAC3B,uBAAwB,YACxB,mBAAoB,SACpB,mDAAoD,mBACpD,uBAAwB,SACxB,kDAAmD,4BACnD,iCAAkC,eAClC,oCAAqC,eAIxC,6BAA8B,CAC7B,+BAAgC,SAChC,6BAA8B,SAE/B,oBAAqB,CACpB,2BAA4B,OAE7B,8BAA+B,CAC9B,kBAAmB,WAEpB,2BAA4B,CAC3BC,MAAO,MAER,yBAA0B,CACzB,mBAAoB,SAErB,4BAA6B,CAC5B,6CAA8C,mBAE/C,uCAAwC,CACvCT,MAAO,CACNU,MAAO,OAGT,gBAAiB,CAChBC,KAAM,CACLA,KAAM,OAGR,uBAAwB,CACvB,0BAA2B,OAE5B,wBAAyB,CACxB,2BAA4B,S","sources":["webpack://grafana-exploretraces-app/../node_modules/@grafana/scenes/dist/esm/locales/zh-Hant/grafana-scenes.json.js"],"sourcesContent":["var grafanaScenes = {\n\t\"grafana-scenes\": {\n\tcomponents: {\n\t\t\"adhoc-filter-pill\": {\n\t\t\t\"edit-filter-with-key\": \"使用鍵 {{keyLabel}} 編輯篩選條件\",\n\t\t\t\"managed-filter\": \"{{origin}} 受管理的篩選條件\",\n\t\t\t\"remove-filter-with-key\": \"使用鍵 {{keyLabel}} 移除篩選條件\"\n\t\t},\n\t\t\"adhoc-filters-combobox\": {\n\t\t\t\"remove-filter-value\": \"移除篩選條件值 - {{itemLabel}}\",\n\t\t\t\"use-custom-value\": \"使用自訂值:{{itemLabel}}\"\n\t\t},\n\t\t\"fallback-page\": {\n\t\t\tcontent: \"如果您使用連結找到此處,則此應用程式中可能存在錯誤。\",\n\t\t\tsubTitle: \"URL 與任何頁面都不相符\",\n\t\t\ttitle: \"無結果\"\n\t\t},\n\t\t\"nested-scene-renderer\": {\n\t\t\t\"collapse-button-label\": \"收闔場景\",\n\t\t\t\"expand-button-label\": \"展開場景\",\n\t\t\t\"remove-button-label\": \"移除場景\"\n\t\t},\n\t\t\"scene-debugger\": {\n\t\t\t\"object-details\": \"物件詳情\",\n\t\t\t\"scene-graph\": \"場景圖表\",\n\t\t\t\"title-scene-debugger\": \"場景除錯器\"\n\t\t},\n\t\t\"scene-grid-row\": {\n\t\t\t\"collapse-row\": \"收闔列\",\n\t\t\t\"expand-row\": \"展開列\"\n\t\t},\n\t\t\"scene-time-range-compare-renderer\": {\n\t\t\t\"button-label\": \"比較\",\n\t\t\t\"button-tooltip\": \"啟用時間範圍比較\"\n\t\t},\n\t\tsplitter: {\n\t\t\t\"aria-label-pane-resize-widget\": \"窗格調整大小小工具\"\n\t\t},\n\t\t\"viz-panel\": {\n\t\t\ttitle: {\n\t\t\t\ttitle: \"標題\"\n\t\t\t}\n\t\t},\n\t\t\"viz-panel-explore-button\": {\n\t\t\texplore: \"探索\"\n\t\t},\n\t\t\"viz-panel-renderer\": {\n\t\t\t\"loading-plugin-panel\": \"正在載入外掛程式面板…\",\n\t\t\t\"panel-plugin-has-no-panel-component\": \"面板外掛程式沒有面板元件\"\n\t\t},\n\t\t\"viz-panel-series-limit\": {\n\t\t\t\"content-rendering-series-single-panel-impact-performance\": \"在單個面板中呈現太多序列可能會影響效能,並使資料更難讀取。\",\n\t\t\t\"warning-message\": \"僅顯示 {{seriesLimit}} 個序列\"\n\t\t}\n\t},\n\tutils: {\n\t\t\"controls-label\": {\n\t\t\t\"tooltip-remove\": \"移除\"\n\t\t},\n\t\t\"loading-indicator\": {\n\t\t\t\"content-cancel-query\": \"取消查詢\"\n\t\t}\n\t},\n\tvariables: {\n\t\t\"ad-hoc-combobox\": {\n\t\t\t\"aria-label-edit-filter-operator\": \"編輯篩選條件運算子\"\n\t\t},\n\t\t\"ad-hoc-filter-builder\": {\n\t\t\t\"aria-label-add-filter\": \"新增篩選條件\",\n\t\t\t\"title-add-filter\": \"新增篩選條件\"\n\t\t},\n\t\t\"ad-hoc-filter-renderer\": {\n\t\t\t\"aria-label-remove-filter\": \"移除篩選條件\",\n\t\t\t\"key-select\": {\n\t\t\t\t\"placeholder-select-label\": \"選擇標籤\"\n\t\t\t},\n\t\t\t\"label-select-label\": \"選擇標籤\",\n\t\t\t\"title-remove-filter\": \"移除篩選條件\",\n\t\t\t\"value-select\": {\n\t\t\t\t\"placeholder-select-value\": \"選擇值\"\n\t\t\t}\n\t\t},\n\t\t\"data-source-variable\": {\n\t\t\tlabel: {\n\t\t\t\t\"default\": \"預設值\"\n\t\t\t}\n\t\t},\n\t\t\"default-group-by-custom-indicator-container\": {\n\t\t\t\"aria-label-clear\": \"清除\",\n\t\t\ttooltip: \"在此儀表板中預設套用。如果編輯,它會轉移到其他儀表板。\",\n\t\t\t\"tooltip-restore-groupby-set-by-this-dashboard\": \"還原此儀表板設定的分組依據。\"\n\t\t},\n\t\t\"format-registry\": {\n\t\t\tformats: {\n\t\t\t\tdescription: {\n\t\t\t\t\t\"commaseparated-values\": \"逗點分隔的值\",\n\t\t\t\t\t\"double-quoted-values\": \"帶雙引號的值\",\n\t\t\t\t\t\"format-date-in-different-ways\": \"以不同方式格式化日期\",\n\t\t\t\t\t\"format-multivalued-variables-using-syntax-example\": \"使用 glob 語法格式化多值變數,例如 {value1,value2}\",\n\t\t\t\t\t\"html-escaping-of-values\": \"值的 HTML 轉義\",\n\t\t\t\t\t\"json-stringify-value\": \"JSON 字串化值\",\n\t\t\t\t\t\"keep-value-as-is\": \"按原樣保留值\",\n\t\t\t\t\t\"multiple-values-are-formatted-like-variablevalue\": \"多個值按「變數=值」的方式格式化\",\n\t\t\t\t\t\"single-quoted-values\": \"帶單引號的值\",\n\t\t\t\t\t\"useful-escaping-values-taking-syntax-characters\": \"對 URL 轉義值很有用,需考慮 URI 語法字元\",\n\t\t\t\t\t\"useful-for-url-escaping-values\": \"對 URL 轉義值很有用\",\n\t\t\t\t\t\"values-are-separated-by-character\": \"值以 | 字元分隔\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"group-by-variable-renderer\": {\n\t\t\t\"aria-label-group-by-selector\": \"按選取器分組\",\n\t\t\t\"placeholder-group-by-label\": \"按標籤分組\"\n\t\t},\n\t\t\"interval-variable\": {\n\t\t\t\"placeholder-select-value\": \"選擇值\"\n\t\t},\n\t\t\"loading-options-placeholder\": {\n\t\t\t\"loading-options\": \"正在載入選項…\"\n\t\t},\n\t\t\"multi-value-apply-button\": {\n\t\t\tapply: \"套用\"\n\t\t},\n\t\t\"no-options-placeholder\": {\n\t\t\t\"no-options-found\": \"未找到選項\"\n\t\t},\n\t\t\"options-error-placeholder\": {\n\t\t\t\"error-occurred-fetching-labels-click-retry\": \"擷取標籤時發生錯誤。點選以重試\"\n\t\t},\n\t\t\"test-object-with-variable-dependency\": {\n\t\t\ttitle: {\n\t\t\t\thello: \"您好\"\n\t\t\t}\n\t\t},\n\t\t\"test-variable\": {\n\t\t\ttext: {\n\t\t\t\ttext: \"文字\"\n\t\t\t}\n\t\t},\n\t\t\"variable-value-input\": {\n\t\t\t\"placeholder-enter-value\": \"輸入值\"\n\t\t},\n\t\t\"variable-value-select\": {\n\t\t\t\"placeholder-select-value\": \"選擇值\"\n\t\t}\n\t}\n}\n};\n\nexport { grafanaScenes as default };\n//# sourceMappingURL=grafana-scenes.json.js.map\n"],"names":["grafanaScenes","components","content","subTitle","title","splitter","explore","utils","variables","label","tooltip","formats","description","apply","hello","text"],"sourceRoot":""} \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/353.js b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/353.js deleted file mode 100644 index 5a3f0d2..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/353.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[353],{7353:(e,a,l)=>{l.r(a),l.d(a,{default:()=>t});var t={"grafana-scenes":{components:{"adhoc-filter-pill":{"edit-filter-with-key":"{{keyLabel}} 키로 필터 편집","managed-filter":"{{origin}} 관리 필터","remove-filter-with-key":"{{keyLabel}} 키로 필터 제거"},"adhoc-filters-combobox":{"remove-filter-value":"필터 값 제거 - {{itemLabel}}","use-custom-value":"사용자 지정 값 사용: {{itemLabel}}"},"fallback-page":{content:"링크를 사용하여 여기로 이동한 경우 이 애플리케이션에 버그가 있을 수 있습니다.",subTitle:"URL이 어떤 페이지와도 일치하지 않습니다.",title:"찾을 수 없음"},"nested-scene-renderer":{"collapse-button-label":"장면 접기","expand-button-label":"장면 펼치기","remove-button-label":"장면 제거"},"scene-debugger":{"object-details":"객체 상세 정보","scene-graph":"장면 그래프","title-scene-debugger":"장면 디버거"},"scene-grid-row":{"collapse-row":"행 접기","expand-row":"행 펼치기"},"scene-time-range-compare-renderer":{"button-label":"비교","button-tooltip":"시간 범위 비교 활성화"},splitter:{"aria-label-pane-resize-widget":"창 크기 조정 위젯"},"viz-panel":{title:{title:"제목"}},"viz-panel-explore-button":{explore:"탐색"},"viz-panel-renderer":{"loading-plugin-panel":"플러그인 패널 로딩 중...","panel-plugin-has-no-panel-component":"패널 플러그인에 패널 구성 요소가 없습니다."},"viz-panel-series-limit":{"content-rendering-series-single-panel-impact-performance":"하나의 패널에 너무 많은 시리즈를 렌더링하면 성능에 영향을 주고 데이터가 읽기 어려워질 수 있습니다. ","warning-message":"{{seriesLimit}}개 시계열만 표시 중"}},utils:{"controls-label":{"tooltip-remove":"제거"},"loading-indicator":{"content-cancel-query":"쿼리 취소"}},variables:{"ad-hoc-combobox":{"aria-label-edit-filter-operator":"필터 연산자 편집"},"ad-hoc-filter-builder":{"aria-label-add-filter":"필터 추가","title-add-filter":"필터 추가"},"ad-hoc-filter-renderer":{"aria-label-remove-filter":"필터 제거","key-select":{"placeholder-select-label":"레이블 선택"},"label-select-label":"레이블 선택","title-remove-filter":"필터 제거","value-select":{"placeholder-select-value":"값 선택"}},"data-source-variable":{label:{default:"기본값"}},"default-group-by-custom-indicator-container":{"aria-label-clear":"지우기",tooltip:"이 대시보드에서 기본적으로 적용됩니다. 편집하면 다른 대시보드로 이전됩니다.","tooltip-restore-groupby-set-by-this-dashboard":"이 대시보드에서 설정한 '그룹별'을 복원합니다."},"format-registry":{formats:{description:{"commaseparated-values":"쉼표로 구분된 값","double-quoted-values":"큰 따옴표로 묶인 값","format-date-in-different-ways":"다양한 방식으로 날짜 형식 지정","format-multivalued-variables-using-syntax-example":"glob 구문을 사용하여 다중 값 변수 형식 지정, 예: {value1,value2}","html-escaping-of-values":"값의 HTML 이스케이프","json-stringify-value":"JSON 문자열화 값","keep-value-as-is":"값을 그대로 유지","multiple-values-are-formatted-like-variablevalue":"여러 값은 variable=value와 같은 형식으로 지정됩니다.","single-quoted-values":"작은 따옴표로 묶인 값","useful-escaping-values-taking-syntax-characters":"URI 구문 문자를 고려한 URL 이스케이프 값에 유용","useful-for-url-escaping-values":"URL 이스케이프 값에 유용","values-are-separated-by-character":"값은 | 문자로 구분됩니다"}}},"group-by-variable-renderer":{"aria-label-group-by-selector":"선택기를 기준으로 그룹화","placeholder-group-by-label":"레이블을 기준으로 그룹화"},"interval-variable":{"placeholder-select-value":"값 선택"},"loading-options-placeholder":{"loading-options":"옵션 로딩 중..."},"multi-value-apply-button":{apply:"적용"},"no-options-placeholder":{"no-options-found":"찾은 옵션 없음"},"options-error-placeholder":{"error-occurred-fetching-labels-click-retry":"라벨을 가져오는 동안 오류가 발생했습니다. 클릭하여 다시 시도"},"test-object-with-variable-dependency":{title:{hello:"안녕하세요"}},"test-variable":{text:{text:"텍스트"}},"variable-value-input":{"placeholder-enter-value":"값 입력"},"variable-value-select":{"placeholder-select-value":"값 선택"}}}}}}]); -//# sourceMappingURL=353.js.map?_cache=4585cf7a0d5ac43a4d0e \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/353.js.map b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/353.js.map deleted file mode 100644 index 5a84348..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/353.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"353.js?_cache=4585cf7a0d5ac43a4d0e","mappings":"mKAAA,IAAIA,EAAgB,CACnB,iBAAkB,CAClBC,WAAY,CACX,oBAAqB,CACpB,uBAAwB,wBACxB,iBAAkB,mBAClB,yBAA0B,yBAE3B,yBAA0B,CACzB,sBAAuB,0BACvB,mBAAoB,8BAErB,gBAAiB,CAChBC,QAAS,+CACTC,SAAU,2BACVC,MAAO,WAER,wBAAyB,CACxB,wBAAyB,QACzB,sBAAuB,SACvB,sBAAuB,SAExB,iBAAkB,CACjB,iBAAkB,WAClB,cAAe,SACf,uBAAwB,UAEzB,iBAAkB,CACjB,eAAgB,OAChB,aAAc,SAEf,oCAAqC,CACpC,eAAgB,KAChB,iBAAkB,gBAEnBC,SAAU,CACT,gCAAiC,cAElC,YAAa,CACZD,MAAO,CACNA,MAAO,OAGT,2BAA4B,CAC3BE,QAAS,MAEV,qBAAsB,CACrB,uBAAwB,kBACxB,sCAAuC,4BAExC,yBAA0B,CACzB,2DAA4D,4DAC5D,kBAAmB,+BAGrBC,MAAO,CACN,iBAAkB,CACjB,iBAAkB,MAEnB,oBAAqB,CACpB,uBAAwB,UAG1BC,UAAW,CACV,kBAAmB,CAClB,kCAAmC,aAEpC,wBAAyB,CACxB,wBAAyB,QACzB,mBAAoB,SAErB,yBAA0B,CACzB,2BAA4B,QAC5B,aAAc,CACb,2BAA4B,UAE7B,qBAAsB,SACtB,sBAAuB,QACvB,eAAgB,CACf,2BAA4B,SAG9B,uBAAwB,CACvBC,MAAO,CACN,QAAW,QAGb,8CAA+C,CAC9C,mBAAoB,MACpBC,QAAS,6CACT,gDAAiD,8BAElD,kBAAmB,CAClBC,QAAS,CACRC,YAAa,CACZ,wBAAyB,YACzB,uBAAwB,cACxB,gCAAiC,oBACjC,oDAAqD,kDACrD,0BAA2B,gBAC3B,uBAAwB,cACxB,mBAAoB,YACpB,mDAAoD,uCACpD,uBAAwB,eACxB,kDAAmD,iCACnD,iCAAkC,kBAClC,oCAAqC,oBAIxC,6BAA8B,CAC7B,+BAAgC,gBAChC,6BAA8B,iBAE/B,oBAAqB,CACpB,2BAA4B,QAE7B,8BAA+B,CAC9B,kBAAmB,cAEpB,2BAA4B,CAC3BC,MAAO,MAER,yBAA0B,CACzB,mBAAoB,YAErB,4BAA6B,CAC5B,6CAA8C,sCAE/C,uCAAwC,CACvCT,MAAO,CACNU,MAAO,UAGT,gBAAiB,CAChBC,KAAM,CACLA,KAAM,QAGR,uBAAwB,CACvB,0BAA2B,QAE5B,wBAAyB,CACxB,2BAA4B,U","sources":["webpack://grafana-exploretraces-app/../node_modules/@grafana/scenes/dist/esm/locales/ko-KR/grafana-scenes.json.js"],"sourcesContent":["var grafanaScenes = {\n\t\"grafana-scenes\": {\n\tcomponents: {\n\t\t\"adhoc-filter-pill\": {\n\t\t\t\"edit-filter-with-key\": \"{{keyLabel}} 키로 필터 편집\",\n\t\t\t\"managed-filter\": \"{{origin}} 관리 필터\",\n\t\t\t\"remove-filter-with-key\": \"{{keyLabel}} 키로 필터 제거\"\n\t\t},\n\t\t\"adhoc-filters-combobox\": {\n\t\t\t\"remove-filter-value\": \"필터 값 제거 - {{itemLabel}}\",\n\t\t\t\"use-custom-value\": \"사용자 지정 값 사용: {{itemLabel}}\"\n\t\t},\n\t\t\"fallback-page\": {\n\t\t\tcontent: \"링크를 사용하여 여기로 이동한 경우 이 애플리케이션에 버그가 있을 수 있습니다.\",\n\t\t\tsubTitle: \"URL이 어떤 페이지와도 일치하지 않습니다.\",\n\t\t\ttitle: \"찾을 수 없음\"\n\t\t},\n\t\t\"nested-scene-renderer\": {\n\t\t\t\"collapse-button-label\": \"장면 접기\",\n\t\t\t\"expand-button-label\": \"장면 펼치기\",\n\t\t\t\"remove-button-label\": \"장면 제거\"\n\t\t},\n\t\t\"scene-debugger\": {\n\t\t\t\"object-details\": \"객체 상세 정보\",\n\t\t\t\"scene-graph\": \"장면 그래프\",\n\t\t\t\"title-scene-debugger\": \"장면 디버거\"\n\t\t},\n\t\t\"scene-grid-row\": {\n\t\t\t\"collapse-row\": \"행 접기\",\n\t\t\t\"expand-row\": \"행 펼치기\"\n\t\t},\n\t\t\"scene-time-range-compare-renderer\": {\n\t\t\t\"button-label\": \"비교\",\n\t\t\t\"button-tooltip\": \"시간 범위 비교 활성화\"\n\t\t},\n\t\tsplitter: {\n\t\t\t\"aria-label-pane-resize-widget\": \"창 크기 조정 위젯\"\n\t\t},\n\t\t\"viz-panel\": {\n\t\t\ttitle: {\n\t\t\t\ttitle: \"제목\"\n\t\t\t}\n\t\t},\n\t\t\"viz-panel-explore-button\": {\n\t\t\texplore: \"탐색\"\n\t\t},\n\t\t\"viz-panel-renderer\": {\n\t\t\t\"loading-plugin-panel\": \"플러그인 패널 로딩 중...\",\n\t\t\t\"panel-plugin-has-no-panel-component\": \"패널 플러그인에 패널 구성 요소가 없습니다.\"\n\t\t},\n\t\t\"viz-panel-series-limit\": {\n\t\t\t\"content-rendering-series-single-panel-impact-performance\": \"하나의 패널에 너무 많은 시리즈를 렌더링하면 성능에 영향을 주고 데이터가 읽기 어려워질 수 있습니다. \",\n\t\t\t\"warning-message\": \"{{seriesLimit}}개 시계열만 표시 중\"\n\t\t}\n\t},\n\tutils: {\n\t\t\"controls-label\": {\n\t\t\t\"tooltip-remove\": \"제거\"\n\t\t},\n\t\t\"loading-indicator\": {\n\t\t\t\"content-cancel-query\": \"쿼리 취소\"\n\t\t}\n\t},\n\tvariables: {\n\t\t\"ad-hoc-combobox\": {\n\t\t\t\"aria-label-edit-filter-operator\": \"필터 연산자 편집\"\n\t\t},\n\t\t\"ad-hoc-filter-builder\": {\n\t\t\t\"aria-label-add-filter\": \"필터 추가\",\n\t\t\t\"title-add-filter\": \"필터 추가\"\n\t\t},\n\t\t\"ad-hoc-filter-renderer\": {\n\t\t\t\"aria-label-remove-filter\": \"필터 제거\",\n\t\t\t\"key-select\": {\n\t\t\t\t\"placeholder-select-label\": \"레이블 선택\"\n\t\t\t},\n\t\t\t\"label-select-label\": \"레이블 선택\",\n\t\t\t\"title-remove-filter\": \"필터 제거\",\n\t\t\t\"value-select\": {\n\t\t\t\t\"placeholder-select-value\": \"값 선택\"\n\t\t\t}\n\t\t},\n\t\t\"data-source-variable\": {\n\t\t\tlabel: {\n\t\t\t\t\"default\": \"기본값\"\n\t\t\t}\n\t\t},\n\t\t\"default-group-by-custom-indicator-container\": {\n\t\t\t\"aria-label-clear\": \"지우기\",\n\t\t\ttooltip: \"이 대시보드에서 기본적으로 적용됩니다. 편집하면 다른 대시보드로 이전됩니다.\",\n\t\t\t\"tooltip-restore-groupby-set-by-this-dashboard\": \"이 대시보드에서 설정한 '그룹별'을 복원합니다.\"\n\t\t},\n\t\t\"format-registry\": {\n\t\t\tformats: {\n\t\t\t\tdescription: {\n\t\t\t\t\t\"commaseparated-values\": \"쉼표로 구분된 값\",\n\t\t\t\t\t\"double-quoted-values\": \"큰 따옴표로 묶인 값\",\n\t\t\t\t\t\"format-date-in-different-ways\": \"다양한 방식으로 날짜 형식 지정\",\n\t\t\t\t\t\"format-multivalued-variables-using-syntax-example\": \"glob 구문을 사용하여 다중 값 변수 형식 지정, 예: {value1,value2}\",\n\t\t\t\t\t\"html-escaping-of-values\": \"값의 HTML 이스케이프\",\n\t\t\t\t\t\"json-stringify-value\": \"JSON 문자열화 값\",\n\t\t\t\t\t\"keep-value-as-is\": \"값을 그대로 유지\",\n\t\t\t\t\t\"multiple-values-are-formatted-like-variablevalue\": \"여러 값은 variable=value와 같은 형식으로 지정됩니다.\",\n\t\t\t\t\t\"single-quoted-values\": \"작은 따옴표로 묶인 값\",\n\t\t\t\t\t\"useful-escaping-values-taking-syntax-characters\": \"URI 구문 문자를 고려한 URL 이스케이프 값에 유용\",\n\t\t\t\t\t\"useful-for-url-escaping-values\": \"URL 이스케이프 값에 유용\",\n\t\t\t\t\t\"values-are-separated-by-character\": \"값은 | 문자로 구분됩니다\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"group-by-variable-renderer\": {\n\t\t\t\"aria-label-group-by-selector\": \"선택기를 기준으로 그룹화\",\n\t\t\t\"placeholder-group-by-label\": \"레이블을 기준으로 그룹화\"\n\t\t},\n\t\t\"interval-variable\": {\n\t\t\t\"placeholder-select-value\": \"값 선택\"\n\t\t},\n\t\t\"loading-options-placeholder\": {\n\t\t\t\"loading-options\": \"옵션 로딩 중...\"\n\t\t},\n\t\t\"multi-value-apply-button\": {\n\t\t\tapply: \"적용\"\n\t\t},\n\t\t\"no-options-placeholder\": {\n\t\t\t\"no-options-found\": \"찾은 옵션 없음\"\n\t\t},\n\t\t\"options-error-placeholder\": {\n\t\t\t\"error-occurred-fetching-labels-click-retry\": \"라벨을 가져오는 동안 오류가 발생했습니다. 클릭하여 다시 시도\"\n\t\t},\n\t\t\"test-object-with-variable-dependency\": {\n\t\t\ttitle: {\n\t\t\t\thello: \"안녕하세요\"\n\t\t\t}\n\t\t},\n\t\t\"test-variable\": {\n\t\t\ttext: {\n\t\t\t\ttext: \"텍스트\"\n\t\t\t}\n\t\t},\n\t\t\"variable-value-input\": {\n\t\t\t\"placeholder-enter-value\": \"값 입력\"\n\t\t},\n\t\t\"variable-value-select\": {\n\t\t\t\"placeholder-select-value\": \"값 선택\"\n\t\t}\n\t}\n}\n};\n\nexport { grafanaScenes as default };\n//# sourceMappingURL=grafana-scenes.json.js.map\n"],"names":["grafanaScenes","components","content","subTitle","title","splitter","explore","utils","variables","label","tooltip","formats","description","apply","hello","text"],"sourceRoot":""} \ No newline at end of file diff --git a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/43.js b/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/43.js deleted file mode 100644 index 56ba36a..0000000 --- a/TestRevify.Api/Dockerfiles/tmp/grafana/plugins/grafana-exploretraces-app/43.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see 43.js.LICENSE.txt */ -(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[43],{7:function(e,t,n){!function(e){"use strict";e.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){return 0===this.day()?"[la scorsa] dddd [alle] LT":"[lo scorso] dddd [alle] LT"},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},16:function(e,t,n){!function(e){"use strict";var t="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function n(e){var t=e;return t=-1!==e.indexOf("jaj")?t.slice(0,-3)+"leS":-1!==e.indexOf("jar")?t.slice(0,-3)+"waQ":-1!==e.indexOf("DIS")?t.slice(0,-3)+"nem":t+" pIq"}function r(e){var t=e;return t=-1!==e.indexOf("jaj")?t.slice(0,-3)+"Hu’":-1!==e.indexOf("jar")?t.slice(0,-3)+"wen":-1!==e.indexOf("DIS")?t.slice(0,-3)+"ben":t+" ret"}function a(e,t,n,r){var a=s(e);switch(n){case"ss":return a+" lup";case"mm":return a+" tup";case"hh":return a+" rep";case"dd":return a+" jaj";case"MM":return a+" jar";case"yy":return a+" DIS"}}function s(e){var n=Math.floor(e%1e3/100),r=Math.floor(e%100/10),a=e%10,s="";return n>0&&(s+=t[n]+"vatlh"),r>0&&(s+=(""!==s?" ":"")+t[r]+"maH"),a>0&&(s+=(""!==s?" ":"")+t[a]),""===s?"pagh":s}e.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:n,past:r,s:"puS lup",ss:a,m:"wa’ tup",mm:a,h:"wa’ rep",hh:a,d:"wa’ jaj",dd:a,M:"wa’ jar",MM:a,y:"wa’ DIS",yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},50:function(e,t,n){!function(e){"use strict";e.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec".split("_"),weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"[la] D[-an de] MMMM, YYYY",LLL:"[la] D[-an de] MMMM, YYYY HH:mm",LLLL:"dddd[n], [la] D[-an de] MMMM, YYYY HH:mm",llll:"ddd, [la] D[-an de] MMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(e){return"p"===e.charAt(0).toLowerCase()},meridiem:function(e,t,n){return e>11?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd[n je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasintan] dddd[n je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %s",s:"kelkaj sekundoj",ss:"%d sekundoj",m:"unu minuto",mm:"%d minutoj",h:"unu horo",hh:"%d horoj",d:"unu tago",dd:"%d tagoj",M:"unu monato",MM:"%d monatoj",y:"unu jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}(n(2689))},76:function(e,t,n){!function(e){"use strict";e.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1200?"上午":1200===r?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(2689))},116:(e,t,n)=>{"use strict";n.d(t,{$0:()=>v,AY:()=>M,Hp:()=>d,IP:()=>c,LE:()=>g,MB:()=>r,NY:()=>a,Nm:()=>w,bE:()=>u,d_:()=>s,fY:()=>l,jQ:()=>o,k8:()=>m,mz:()=>b,rT:()=>i,tS:()=>y,tv:()=>_,w2:()=>p,wQ:()=>f,wi:()=>L,y6:()=>h});const r="en-US",a="fr-FR",s="es-ES",i="de-DE",o="pt-BR",l="zh-Hans",u="it-IT",d="ja-JP",c="id-ID",h="ko-KR",m="ru-RU",p="cs-CZ",f="nl-NL",_="hu-HU",g="pt-PT",y="pl-PL",v="sv-SE",b="tr-TR",M="zh-Hant",w=r,L="pseudo"},118:(e,t,n)=>{"use strict";n.d(t,{H9:()=>ds,yP:()=>ul,mI:()=>dl,d0:()=>Sd,xK:()=>vu,gF:()=>yu,Zv:()=>W,Es:()=>Gi,vA:()=>_u,G1:()=>fu,Bs:()=>Y,So:()=>z,dt:()=>Ms,WM:()=>iu,KE:()=>eu,JZ:()=>ee,Pj:()=>il,$L:()=>xl,Sh:()=>Fs,Eb:()=>Ji,Lw:()=>Ol,Gg:()=>r,jh:()=>hi,Go:()=>kd});var r={};n.r(r),n.d(r,{K2:()=>Li});var a=n(1159),s=n(7781),i=n(8531);function o(e,t,n){const r={...t};if(n)for(const e of Object.keys(r))n.includes(e)||delete r[e];return s.urlUtil.renderUrl(s.locationUtil.assureBaseUrl(e),r)}function l(e){const t=(0,a.useParams)(),n=(0,a.useLocation)();return{params:t,isExact:null!==(0,a.matchPath)({path:e,caseSensitive:!1,end:!0},n.pathname),path:n.pathname,url:n.pathname}}const u=new Map;var d=n(5959),c=n.t(d,2),h=n.n(d),m=n(1269);const p={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let f;const _=new Uint8Array(16);function g(){if(!f&&(f="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!f))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return f(_)}const y=[];for(let e=0;e<256;++e)y.push((e+256).toString(16).slice(1));function v(e,t=0){return y[e[t+0]]+y[e[t+1]]+y[e[t+2]]+y[e[t+3]]+"-"+y[e[t+4]]+y[e[t+5]]+"-"+y[e[t+6]]+y[e[t+7]]+"-"+y[e[t+8]]+y[e[t+9]]+"-"+y[e[t+10]]+y[e[t+11]]+y[e[t+12]]+y[e[t+13]]+y[e[t+14]]+y[e[t+15]]}const b=function(e,t,n){if(p.randomUUID&&!t&&!e)return p.randomUUID();const r=(e=e||{}).random||(e.rng||g)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=r[e];return t}return v(r)};const M=h().memo(function({model:e,...t}){var n;const r=null!=(n=e.constructor.Component)?n:w,[a,s]=(0,d.useState)(0);return(0,d.useEffect)(()=>{const t=e.activate();return s(e=>e+1),t},[e]),e.isActive||e.renderBeforeActivation?h().createElement(r,{...t,model:e}):null});function w(e){return null}class L extends s.BusEventWithPayload{}L.type="scene-object-state-change";class S extends s.BusEventWithPayload{}S.type="scene-object-user-action";var k,D=e=>{throw TypeError(e)},T=(e,t,n)=>t.has(e)||D("Cannot "+n);class x{constructor(e){var t,n,r;t=this,(n=k).has(t)?D("Cannot add the same private member more than once"):n instanceof WeakSet?n.add(t):n.set(t,r),((e,t,n)=>{T(e,t,"write to private field"),t.set(e,n)})(this,k,e)}resolve(){return T(e=this,t=k,"read from private field"),n?n.call(e):t.get(e);var e,t,n}}k=new WeakMap;class Y{constructor(e){this._isActive=!1,this._activationHandlers=[],this._deactivationHandlers=new Map,this._subs=new m.Subscription,this._refCount=0,this._renderBeforeActivation=!1,e.key||(e.key=b()),this._events=new s.EventBusSrv,this._state=Object.freeze(e),this._setParent(this._state)}get state(){return this._state}get isActive(){return this._isActive}get renderBeforeActivation(){return this._renderBeforeActivation}get parent(){return this._parent}get variableDependency(){return this._variableDependency}get urlSync(){return this._urlSync}get Component(){return M}_setParent(e){O(e,e=>{e._parent&&e._parent!==this&&console.warn("SceneObject already has a parent set that is different from the new parent. You cannot share the same SceneObject instance in multiple scenes or in multiple different places of the same scene graph. Use SceneObject.clone() to duplicate a SceneObject or store a state key reference and use sceneGraph.findObject to locate it.",e,this),e._parent=this})}clearParent(){this._parent=void 0}subscribeToState(e){return this._events.subscribe(L,t=>{t.payload.changedObject===this&&e(t.payload.newState,t.payload.prevState)})}subscribeToEvent(e,t){return this._events.subscribe(e,t)}setState(e){const t=this._state,n={...this._state,...e};this._state=Object.freeze(n),this._setParent(e),this._handleActivationOfChangedStateProps(t,n),this.publishEvent(new L({prevState:t,newState:n,partialUpdate:e,changedObject:this}),!0)}_handleActivationOfChangedStateProps(e,t){this.isActive&&(e.$behaviors!==t.$behaviors&&this._handleChangedBehaviors(e.$behaviors,t.$behaviors),e.$data!==t.$data&&this._handleChangedStateActivation(e.$data,t.$data),e.$variables!==t.$variables&&this._handleChangedStateActivation(e.$variables,t.$variables),e.$timeRange!==t.$timeRange&&this._handleChangedStateActivation(e.$timeRange,t.$timeRange))}_handleChangedStateActivation(e,t){if(e){const t=this._deactivationHandlers.get(e);t&&(t(),this._deactivationHandlers.delete(e))}t&&this._deactivationHandlers.set(t,t.activate())}_handleChangedBehaviors(e,t){if(e)for(const n of e)if(!t||!t.includes(n)){const e=this._deactivationHandlers.get(n);e&&(e(),this._deactivationHandlers.delete(n))}if(t)for(const n of t)e&&e.includes(n)||this._activateBehavior(n)}publishEvent(e,t){this._events.publish(e),t&&this.parent&&this.parent.publishEvent(e,t)}getRoot(){return this._parent?this._parent.getRoot():this}_internalActivate(){this._isActive=!0;const{$data:e,$variables:t,$timeRange:n,$behaviors:r}=this.state;if(this._activationHandlers.forEach(e=>{const t=e();t&&this._deactivationHandlers.set(t,t)}),n&&!n.isActive&&this._deactivationHandlers.set(n,n.activate()),t&&!t.isActive&&this._deactivationHandlers.set(t,t.activate()),e&&!e.isActive&&this._deactivationHandlers.set(e,e.activate()),r)for(const e of r)this._activateBehavior(e)}_activateBehavior(e){if(e instanceof Y)this._deactivationHandlers.set(e,e.activate());else if("function"==typeof e){const t=e(this);t&&this._deactivationHandlers.set(e,t)}}activate(){this.isActive||this._internalActivate(),this._refCount++;let e=!1;return()=>{if(this._refCount--,e){throw new Error("SceneObject cancelation handler returned by activate() called a second time")}e=!0,0===this._refCount&&this._internalDeactivate()}}_internalDeactivate(){this._isActive=!1;for(let e of this._deactivationHandlers.values())e();this._deactivationHandlers.clear(),this._events.removeAllListeners(),this._subs.unsubscribe(),this._subs=new m.Subscription}useState(){return E(this)}forceRender(){this.setState({})}clone(e){return function(e,t){const n=C(e.state,t);return new e.constructor(n)}(this,e)}addActivationHandler(e){this._activationHandlers.push(e)}forEachChild(e){O(this.state,e)}getRef(){return this._ref||(this._ref=new x(this)),this._ref}toJSON(){return{type:Object.getPrototypeOf(this).constructor.name,isActive:this.isActive,state:this.state}}}function E(e,t){var n;const[r,a]=(0,d.useState)(e.state),s=e.state,i=null!=(n=null==t?void 0:t.shouldActivateOrKeepAlive)&&n;return(0,d.useEffect)(()=>{let t;i&&(t=e.activate());const n=e.subscribeToState(e=>{a(e)});return e.state!==s&&a(e.state),()=>{n.unsubscribe(),t&&t()}},[e,i]),e.state}function O(e,t){for(const n of Object.values(e)){if(n instanceof Y){if(!1===t(n))break}if(Array.isArray(n)){let e=!1;for(const r of n)if(r instanceof Y){if(!1===t(r)){e=!0;break}}if(e)break}}}var A=n(3241);function C(e,t){const n={...e};Object.assign(n,t);for(const e in n){if(t&&void 0!==t[e])continue;const r=n[e];if(r instanceof x)console.warn("Cloning object with SceneObjectRef");else if(r instanceof Y)n[e]=r.clone();else if(Array.isArray(r)){const t=[];for(const e of r)e instanceof Y?t.push(e.clone()):"object"==typeof e?t.push((0,A.cloneDeep)(e)):t.push(e);n[e]=t}else n[e]="object"==typeof r?(0,A.cloneDeep)(r):r}return n}s.DataSourceApi;const R=new Map;function P(e,t){const n=t.state.$variables;if(!n)return t.parent?P(e,t.parent):null;const r=n.getByName(e);return r||(t.parent?P(e,t.parent):null)}function j(e,t,...n){let r=!1;"undefined"!=typeof window&&(r="true"===localStorage.getItem("grafana.debug.scenes"))}function H(e){return"isQueryController"in e}function N(e){let t=e;for(;t;){if(t.state.$behaviors)for(const e of t.state.$behaviors)if(H(e))return e;t=t.parent}}new WeakMap,new WeakMap;var I=n(1625);I.ob.Auto;var F=(e=>(e.NotStarted="NotStarted",e.Loading="Loading",e.Streaming="Streaming",e.Done="Done",e.Error="Error",e))(F||{});class W extends Y{constructor(e){super({data:V,...e})}getResultsStream(){const e={origin:this,data:this.state.data};return(0,m.of)(e)}}const V={state:F.Done,series:[],timeRange:(0,s.getDefaultTimeRange)()};class z{constructor(e,t){this._sceneObject=e,this._nextChangeShouldAddHistoryStep=!1,this._keys=t.keys}getKeys(){return"function"==typeof this._keys?this._keys():this._keys}getUrlState(){return this._sceneObject.getUrlState()}updateFromUrl(e){this._sceneObject.updateFromUrl(e)}shouldCreateHistoryStep(e){return this._nextChangeShouldAddHistoryStep}performBrowserHistoryAction(e){this._nextChangeShouldAddHistoryStep=!0,e(),this._nextChangeShouldAddHistoryStep=!1}}function $(e,t){let n,r=e;for(;r&&!n;)n=t(r),r=r.parent;return n}const B=/^\d+[yYmMsSwWhHdD]$/;function U(e){if("string"!=typeof e)return null;if(-1!==e.indexOf("now"))return e;if(B.test(e))return e;if(8===e.length){const t=(0,s.toUtc)(e,"YYYYMMDD");if(t.isValid())return t.toISOString()}else if(15===e.length){const t=(0,s.toUtc)(e,"YYYYMMDDTHHmmss");if(t.isValid())return t.toISOString()}else if(19===e.length){const t=(0,s.toUtc)(e,"YYYY-MM-DD HH:mm:ss");if(t.isValid())return t.toISOString()}else if(24===e.length){return(0,s.toUtc)(e).toISOString()}const t=parseInt(e,10);return isNaN(t)?null:(0,s.toUtc)(t).toISOString()}function q(e,t,n,r,a,i){const o=a&&"now"===t,l=Date.now();i&&function(e){e!==G&&(G=e,(0,s.setWeekStart)(e))}(i);const u=(e,t)=>s.dateMath.toDateTime?s.dateMath.toDateTime(e,t):s.dateMath.parse(e,t.roundUp,t.timezone,t.fiscalYearStartMonth);return{to:u(o?"now-"+a:t,{roundUp:!0,timezone:n,fiscalYearStartMonth:r,now:l}),from:u(e,{roundUp:!1,timezone:n,fiscalYearStartMonth:r,now:l}),raw:{from:e,to:t}}}let G;function J(e,t,n){if((0,s.isDateTime)(e))return e.isValid();if(s.dateMath.isMathString(e))return s.dateMath.isValid(e);return(0,s.dateTimeParse)(e,{roundUp:t,timeZone:n}).isValid()}new WeakMap,new WeakMap,new WeakMap,new WeakMap,new WeakMap;const K="refresh",Q="filter_removed",Z="filter_changed",X="variable_value_changed";class ee extends Y{constructor(e={}){var t;const n=e.from&&J(e.from)?e.from:"now-6h",r=e.to&&J(e.to)?e.to:"now",a=te(e.timeZone);super({from:n,to:r,timeZone:a,value:q(n,r,a||(0,s.getTimeZone)(),e.fiscalYearStartMonth,e.UNSAFE_nowDelay,e.weekStart),refreshOnActivate:null!=(t=e.refreshOnActivate)?t:{percent:10},...e}),this._urlSync=new z(this,{keys:["from","to","timezone","time","time.window"]}),this.onTimeRangeChange=e=>{const t={};if("string"==typeof e.raw.from?t.from=e.raw.from:t.from=e.raw.from.toISOString(),"string"==typeof e.raw.to?t.to=e.raw.to:t.to=e.raw.to.toISOString(),t.value=q(t.from,t.to,this.getTimeZone(),this.state.fiscalYearStartMonth,this.state.UNSAFE_nowDelay,this.state.weekStart),t.from!==this.state.from||t.to!==this.state.to){const e=N(this);null==e||e.startProfile("time_range_change"),this._urlSync.performBrowserHistoryAction(()=>{this.setState(t)})}},this.onTimeZoneChange=e=>{this._urlSync.performBrowserHistoryAction(()=>{var t;const n=null!=(t=te(e))?t:I.vp,r=q(this.state.from,this.state.to,n,this.state.fiscalYearStartMonth,this.state.UNSAFE_nowDelay,this.state.weekStart);this.setState({timeZone:n,value:r})})},this.onRefresh=()=>{this.refreshRange(0),this.publishEvent(new i.RefreshEvent,!0)},this.addActivationHandler(this._onActivate.bind(this))}_onActivate(){if(!this.state.timeZone){const e=this.getTimeZoneSource();e!==this&&this._subs.add(e.subscribeToState((e,t)=>{void 0!==e.timeZone&&e.timeZone!==t.timeZone&&this.refreshRange(0)}))}return s.rangeUtil.isRelativeTimeRange(this.state.value.raw)&&this.refreshIfStale(),()=>{this.state.weekStart&&(0,s.setWeekStart)(i.config.bootData.user.weekStart)}}refreshIfStale(){var e,t,n,r;let a;void 0!==(null==(t=null==(e=this.state)?void 0:e.refreshOnActivate)?void 0:t.percent)&&(a=this.calculatePercentOfInterval(this.state.refreshOnActivate.percent)),void 0!==(null==(r=null==(n=this.state)?void 0:n.refreshOnActivate)?void 0:r.afterMs)&&(a=Math.min(this.state.refreshOnActivate.afterMs,null!=a?a:1/0)),void 0!==a&&this.refreshRange(a)}getTimeZoneSource(){if(!this.parent||!this.parent.parent)return this;const e=$(this.parent.parent,e=>{if(e.state.$timeRange&&e.state.$timeRange.state.timeZone)return e.state.$timeRange});return e||this}refreshRange(e){var t;const n=q(this.state.from,this.state.to,null!=(t=this.state.timeZone)?t:(0,s.getTimeZone)(),this.state.fiscalYearStartMonth,this.state.UNSAFE_nowDelay,this.state.weekStart);n.to.diff(this.state.value.to,"milliseconds")>=e&&this.setState({value:n})}calculatePercentOfInterval(e){const t=this.state.value.to.diff(this.state.value.from,"milliseconds");return Math.ceil(t/100*e)}getTimeZone(){if(this.state.timeZone&&te(this.state.timeZone))return this.state.timeZone;const e=this.getTimeZoneSource();return e!==this&&te(e.state.timeZone)?e.state.timeZone:(0,s.getTimeZone)()}getUrlState(){const e=i.locationService.getSearchObject(),t={from:this.state.from,to:this.state.to,timezone:this.getTimeZone()};return e.time&&e["time.window"]&&(t.time=null,t["time.window"]=null),t}updateFromUrl(e){var t,n,r;const a={};let i=U(e.from),o=U(e.to);if(e.time&&e["time.window"]){const t=function(e,t){const n=isNaN(Date.parse(e))?parseInt(e,10):Date.parse(e);let r;r=t.match(/^\d+$/)&&parseInt(t,10)?parseInt(t,10):s.rangeUtil.intervalToMs(t);return{from:(0,s.toUtc)(n-r/2).toISOString(),to:(0,s.toUtc)(n+r/2).toISOString()}}(Array.isArray(e.time)?e.time[0]:e.time,Array.isArray(e["time.window"])?e["time.window"][0]:e["time.window"]);t.from&&J(t.from)&&(i=t.from),t.to&&J(t.to)&&(o=t.to)}if(i&&J(i)&&(a.from=i),o&&J(o)&&(a.to=o),"string"==typeof e.timezone&&(a.timeZone=""!==e.timezone?e.timezone:void 0),0!==Object.keys(a).length)return a.value=q(null!=(t=a.from)?t:this.state.from,null!=(n=a.to)?n:this.state.to,null!=(r=a.timeZone)?r:this.getTimeZone(),this.state.fiscalYearStartMonth,this.state.UNSAFE_nowDelay,this.state.weekStart),this.setState(a)}}function te(e){if(void 0!==e)return(0,A.isEmpty)(e)?i.config.bootData.user.timezone:e===I.vp||(0,s.getZone)(e)?e:void j()}const ne=new W,re=new ee;const ae=new class extends Y{constructor(){super({variables:[]})}getByName(e){}isVariableLoadingOrWaitingToUpdate(e){return!1}};function se(e){var t;return null!=(t=$(e,e=>e.state.$timeRange))?t:re}class ie extends s.BusEventWithPayload{}function oe(e){return"object"==typeof e&&"formatter"in e}ie.type="scene-variable-changed-value";let le,ue={};function de(e){const t=ue[e];return t||(ue[e]=(0,A.property)(e))}class ce{constructor(e,t){this.state={name:e,value:t,type:"scopedvar"}}getValue(e){let{value:t}=this.state,n=t.value;return n=e?de(e)(t.value):t.value,"string"===n||"number"===n||"boolean"===n?n:String(n)}getValueText(){const{value:e}=this.state;return null!=e.text?String(e.text):String(e)}}var he=n(9814);const me=new s.Registry(()=>{const e=[{id:I.$m.Lucene,name:"Lucene",description:"Values are lucene escaped and multi-valued variables generate an OR expression",formatter:e=>{if("string"==typeof e)return pe(e);if(Array.isArray(e)){if(0===e.length)return"__empty__";return"("+(0,A.map)(e,e=>'"'+pe(e)+'"').join(" OR ")+")"}return pe(`${e}`)}},{id:I.$m.Raw,name:"raw",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.keep-value-as-is","Keep value as is"),formatter:e=>String(e)},{id:I.$m.Regex,name:"Regex",description:"Values are regex escaped and multi-valued variables generate a (|) expression",formatter:e=>{if("string"==typeof e)return(0,s.escapeRegex)(e);if(Array.isArray(e)){const t=e.map(e=>"string"==typeof e?(0,s.escapeRegex)(e):(0,s.escapeRegex)(String(e)));return 1===t.length?t[0]:"("+t.join("|")+")"}return(0,s.escapeRegex)(`${e}`)}},{id:I.$m.Pipe,name:"Pipe",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.values-are-separated-by-character","Values are separated by | character"),formatter:e=>"string"==typeof e?e:Array.isArray(e)?e.join("|"):`${e}`},{id:I.$m.Distributed,name:"Distributed",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.multiple-values-are-formatted-like-variablevalue","Multiple values are formatted like variable=value"),formatter:(e,t,n)=>"string"==typeof e?e:Array.isArray(e)?(e=(0,A.map)(e,(e,t)=>0!==t?n.state.name+"="+e:e),e.join(",")):`${e}`},{id:I.$m.CSV,name:"Csv",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.commaseparated-values","Comma-separated values"),formatter:e=>"string"==typeof e?e:(0,A.isArray)(e)?e.join(","):String(e)},{id:I.$m.HTML,name:"HTML",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.html-escaping-of-values","HTML escaping of values"),formatter:e=>"string"==typeof e?s.textUtil.escapeHtml(e):(0,A.isArray)(e)?s.textUtil.escapeHtml(e.join(", ")):s.textUtil.escapeHtml(String(e))},{id:I.$m.JSON,name:"JSON",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.json-stringify-value","JSON stringify value"),formatter:e=>"string"==typeof e?e:JSON.stringify(e)},{id:I.$m.PercentEncode,name:"Percent encode",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.useful-for-url-escaping-values","Useful for URL escaping values"),formatter:e=>(0,A.isArray)(e)?fe("{"+e.join(",")+"}"):fe(e)},{id:I.$m.SingleQuote,name:"Single quote",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.single-quoted-values","Single quoted values"),formatter:e=>{const t=new RegExp("'","g");if((0,A.isArray)(e))return(0,A.map)(e,e=>`'${(0,A.replace)(e,t,"\\'")}'`).join(",");let n="string"==typeof e?e:String(e);return`'${(0,A.replace)(n,t,"\\'")}'`}},{id:I.$m.DoubleQuote,name:"Double quote",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.double-quoted-values","Double quoted values"),formatter:e=>{const t=new RegExp('"',"g");if((0,A.isArray)(e))return(0,A.map)(e,e=>`"${(0,A.replace)(e,t,'\\"')}"`).join(",");let n="string"==typeof e?e:String(e);return`"${(0,A.replace)(n,t,'\\"')}"`}},{id:I.$m.SQLString,name:"SQL string",description:"SQL string quoting and commas for use in IN statements and other scenarios",formatter:Me},{id:"join",name:"Join",description:"Join values with a comma",formatter:(e,t)=>{var n;if((0,A.isArray)(e)){const r=null!=(n=t[0])?n:",";return e.join(r)}return String(e)}},{id:I.$m.Date,name:"Date",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.format-date-in-different-ways","Format date in different ways"),formatter:(e,t)=>{var n;let r=NaN;if("number"==typeof e?r=e:"string"==typeof e&&(r=parseInt(e,10)),isNaN(r))return"NaN";const a=null!=(n=t[0])?n:"iso";switch(a){case"ms":return String(e);case"seconds":return`${Math.round(r/1e3)}`;case"iso":return(0,s.dateTime)(r).toISOString();default:return(t||[]).length>1?(0,s.dateTime)(r).format(t.join(":")):(0,s.dateTime)(r).format(a)}}},{id:I.$m.Glob,name:"Glob",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.format-multivalued-variables-using-syntax-example","Format multi-valued variables using glob syntax, example {value1,value2}"),formatter:e=>(0,A.isArray)(e)&&e.length>1?"{"+e.join(",")+"}":String(e)},{id:I.$m.Text,name:"Text",description:"Format variables in their text representation. Example in multi-variable scenario A + B + C.",formatter:(e,t,n)=>n.getValueText?n.getValueText():String(e)},{id:I.$m.QueryParam,name:"Query parameter",description:"Format variables as URL parameters. Example in multi-variable scenario A + B + C => var-foo=A&var-foo=B&var-foo=C.",formatter:(e,t,n)=>{if(n.urlSync){const e=n.urlSync.getUrlState();return s.urlUtil.toUrlParams(e)}return Array.isArray(e)?e.map(e=>ye(n.state.name,e)).join("&"):ye(n.state.name,e)}},{id:"customqueryparam",name:"Custom query parameter",description:"Format variables as URL parameters with custom name and value prefix. Example in multi-variable scenario A + B + C => p-foo=x-A&p-foo=x-B&p-foo=x-C.",formatter:(e,t,n)=>{const r=fe(t[0]||n.state.name),a=fe(t[1]||"");return Array.isArray(e)?e.map(e=>ve(r,e,a)).join("&"):ve(r,e,a)}},{id:I.$m.UriEncode,name:"Percent encode as URI",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.useful-escaping-values-taking-syntax-characters","Useful for URL escaping values, taking into URI syntax characters"),formatter:e=>(0,A.isArray)(e)?_e("{"+e.join(",")+"}"):_e(e)}];return e});function pe(e){return!1===isNaN(+e)?e:e.replace(/([\!\*\+\-\=<>\s\&\|\(\)\[\]\{\}\^\~\?\:\\/"])/g,"\\$1")}function fe(e){return"object"==typeof e&&(e=String(e)),ge(encodeURIComponent(e))}const _e=e=>ge(encodeURI(String(e))),ge=e=>e.replace(/[!'()*]/g,e=>"%"+e.charCodeAt(0).toString(16).toUpperCase());function ye(e,t){return`var-${e}=${fe(t)}`}function ve(e,t,n=""){return`${e}=${n}${fe(t)}`}const be={"'":"''",'"':'\\"'};function Me(e){const t=new RegExp("'|\"","g");if((0,A.isArray)(e))return(0,A.map)(e,e=>`'${(0,A.replace)(e,t,e=>{var t;return null!=(t=be[e])?t:""})}'`).join(",");let n="string"==typeof e?e:String(e);return`'${(0,A.replace)(n,t,e=>{var t;return null!=(t=be[e])?t:""})}'`}const we="All",Le="$__all",Se="$__auto",ke=/\$(\w+)|\[\[(\w+?)(?::(\w+))?\]\]|\${(\w+)(?:\.([^:^\}]+))?(?::([^\}]+))?}/g,De="__searchFilter",Te="__scopes";class xe{constructor(e){this._value=e}formatter(){return this._value}}class Ye{constructor(e,t){this.state={name:e,type:"time_macro"},this._sceneObject=t}getValue(){const e=se(this._sceneObject);return"__from"===this.state.name?e.state.value.from.valueOf():e.state.value.to.valueOf()}getValueText(){const e=se(this._sceneObject);return"__from"===this.state.name?(0,s.dateTimeFormat)(e.state.value.from,{timeZone:e.getTimeZone()}):(0,s.dateTimeFormat)(e.state.value.to,{timeZone:e.getTimeZone()})}}class Ee{constructor(e,t,n){this.state={name:e,type:"time_macro",match:n},this._sceneObject=t}getValue(){var e;const t=oi(this._sceneObject);if(t){const n=null==(e=t.state.data)?void 0:e.request;return n?"__interval_ms"===this.state.name?n.intervalMs:n.interval:this.state.match}return this.state.match}}function Oe(e,t){e.setState(t)}function Ae(){return i.useLocationService?(0,i.useLocationService)():i.locationService}function Ce(e){let t=e;do{if("repeatSourceKey"in t.state&&t.state.repeatSourceKey)return!0;t=t.parent}while(t);return!1}class Re extends Y{constructor(){super(...arguments),this._urlSync=new Pe(this)}validateAndUpdate(){return this.getValueOptions({}).pipe((0,m.map)(e=>(this.updateValueGivenNewOptions(e),{})))}onCancel(){this.setStateHelper({loading:!1});const e=this.parent;null==e||e.cancel(this)}updateValueGivenNewOptions(e){const{value:t,text:n,options:r}=this.state,a=this.getStateUpdateGivenNewOptions(e,t,n);this.interceptStateUpdateAfterValidation(a),this.setStateHelper(a),(a.value!==t||a.text!==n||this.hasAllValue()&&!(0,A.isEqual)(e,r))&&this.publishEvent(new ie(this),!0)}getStateUpdateGivenNewOptions(e,t,n){const r={options:e,loading:!1,value:t,text:n};if(0===e.length)return this.state.defaultToAll||this.state.includeAll?(r.value=Le,r.text=we):this.state.isMulti?(r.value=[],r.text=[]):(r.value="",r.text=""),r;if(this.hasAllValue())return this.state.includeAll?r.text=we:(r.value=e[0].value,r.text=e[0].label,this.state.isMulti&&(r.value=[r.value],r.text=[r.text])),r;if(this.state.isMulti){const a=(Array.isArray(t)?t:[t]).filter(t=>e.find(e=>e.value===t)),s=a.map(t=>e.find(e=>e.value===t).label);if(0===a.length){const t=this.getDefaultMultiState(e);r.value=t.value,r.text=t.text}else(0,A.isEqual)(a,t)||(r.value=a),(0,A.isEqual)(s,n)||(r.text=s);return r}let a=function(e,t,n){let r;for(const a of n){if(a.value===e)return a;a.label===t&&(r=a)}return r}(t,n,e);if(a)r.text=a.label,r.value=a.value;else{const t=this.getDefaultSingleState(e);r.value=t.value,r.text=t.text}return r}interceptStateUpdateAfterValidation(e){const t=e.value===Le&&this.state.text===we;this.skipNextValidation&&e.value!==this.state.value&&e.text!==this.state.text&&!t&&(e.value=this.state.value,e.text=this.state.text),this.skipNextValidation=!1}getValue(e){let t=this.state.value;if(this.hasAllValue()){if(this.state.allValue)return new je(this.state.allValue,this);t=this.state.options.map(e=>e.value)}if(null!=e&&Array.isArray(t)){const n=parseInt(e,10);if(!isNaN(n)&&n>=0&&n0?{value:[e[0].value],text:[e[0].label]}:{value:[],text:[]}}getDefaultSingleState(e){return this.state.defaultToAll?{value:Le,text:we}:e.length>0?{value:e[0].value,text:e[0].label}:{value:"",text:""}}changeValueTo(e,t,n=!1){var r,a;if(e===this.state.value&&t===this.state.text)return;if(t||(t=Array.isArray(e)?e.map(e=>this.findLabelTextForValue(e)):this.findLabelTextForValue(e)),Array.isArray(e)){if(0===e.length){const n=this.getDefaultMultiState(this.state.options);e=n.value,t=n.text}e[e.length-1]===Le?(e=[Le],t=[we]):e[0]===Le&&e.length>1&&(e.shift(),Array.isArray(t)&&t.shift())}if((0,A.isEqual)(e,this.state.value)&&(0,A.isEqual)(t,this.state.text))return;const s=()=>this.setStateHelper({value:e,text:t,loading:!1});if(n){const e=N(this);null==e||e.startProfile(X),null==(a=(r=this._urlSync).performBrowserHistoryAction)||a.call(r,s)}else s();this.publishEvent(new ie(this),!0)}findLabelTextForValue(e){if(e===Le)return we;const t=this.state.options.find(t=>t.value===e);if(t)return t.label;const n=this.state.options.find(t=>t.label===e);return n?n.label:e}setStateHelper(e){Oe(this,e)}getOptionsForSelect(e=!0){let t=this.state.options;if(this.state.includeAll&&(t=[{value:Le,label:we},...t]),e&&!Array.isArray(this.state.value)){t.find(e=>e.value===this.state.value)||(t=[{value:this.state.value,label:String(this.state.text)},...t])}return t}refreshOptions(){this.getValueOptions({}).subscribe(e=>{this.updateValueGivenNewOptions(e)})}}class Pe{constructor(e){this._sceneObject=e,this._nextChangeShouldAddHistoryStep=!1}getKey(){return`var-${this._sceneObject.state.name}`}getKeys(){return this._sceneObject.state.skipUrlSync?[]:[this.getKey()]}getUrlState(){if(this._sceneObject.state.skipUrlSync)return{};let e=null,t=this._sceneObject.state.value;return e=Array.isArray(t)?t.map(String):this._sceneObject.state.isMulti?[String(t)]:String(t),{[this.getKey()]:e}}updateFromUrl(e){let t=e[this.getKey()];null!=t&&(this._sceneObject.state.includeAll&&(t=function(e){if((0,A.isArray)(e)&&e[0]===we)return[Le];if(e===we)return Le;return e}(t)),this._sceneObject.state.allValue&&this._sceneObject.state.allValue===t&&(t=Le),this._sceneObject.isActive||(this._sceneObject.skipNextValidation=!0),this._sceneObject.changeValueTo(t))}performBrowserHistoryAction(e){this._nextChangeShouldAddHistoryStep=!0,e(),this._nextChangeShouldAddHistoryStep=!1}shouldCreateHistoryStep(e){return this._nextChangeShouldAddHistoryStep}}class je{constructor(e,t){this._value=e,this._variable=t}formatter(e){return e===I.$m.Text?we:e===I.$m.PercentEncode?me.get(I.$m.PercentEncode).formatter(this._value,[],this._variable):e===I.$m.QueryParam?me.get(I.$m.QueryParam).formatter(we,[],this._variable):this._value}}function He(e,t={}){if(e.state.$variables)for(const n of e.state.$variables.state.variables)n.state.skipUrlSync||t[n.state.name]||(t[n.state.name]=n);return e.parent&&He(e.parent,t),t}const Ne=(0,s.getDisplayProcessor)();class Ie{constructor(e){this._urlQueryParams=e}formatter(e){if(!e)return this._urlQueryParams;const t=e.split(":");if("exclude"===t[0]&&t.length>1){const e=new URLSearchParams(this._urlQueryParams);for(const n of t[1].split(","))e.delete(n);return`?${e}`}if("include"===t[0]&&t.length>1){const e=new URLSearchParams(this._urlQueryParams),n=t[1].split(",");for(const t of e.keys())n.includes(t)||e.delete(t);return`?${e}`}return this._urlQueryParams}}const Fe=new Map([[s.DataLinkBuiltInVars.includeVars,class{constructor(e,t){this.state={name:e,type:"url_variable"},this._sceneObject=t}getValue(){const e=He(this._sceneObject),t=me.get(I.$m.QueryParam),n=[];for(const r of Object.keys(e)){const a=e[r];if(a instanceof Re&&a.hasAllValue()&&!a.state.allValue){n.push(t.formatter(Le,[],a));continue}const s=a.getValue();s&&(oe(s)?n.push(s.formatter(I.$m.QueryParam)):n.push(t.formatter(s,[],a)))}return new xe(n.join("&"))}getValueText(){return""}}],[s.DataLinkBuiltInVars.keepTime,class{constructor(e,t){this.state={name:e,type:"url_variable"},this._sceneObject=t}getValue(){var e;const t=null==(e=se(this._sceneObject).urlSync)?void 0:e.getUrlState();return"browser"===(null==t?void 0:t.timezone)&&(t.timezone=Intl.DateTimeFormat().resolvedOptions().timeZone),new xe(s.urlUtil.toUrlParams(t))}getValueText(){return""}}],["__value",class{constructor(e,t,n,r){this._match=n,this._scopedVars=r,this.state={name:e,type:"__value"}}getValue(e){var t,n;const r=null==(t=this._scopedVars)?void 0:t.__dataContext;if(!r)return this._match;const{frame:a,rowIndex:i,field:o,calculatedValue:l}=r.value;if(l)switch(e){case"numeric":case"raw":return l.numeric;case"time":return"";default:return(0,s.formattedValueToString)(l)}if(null==i)return this._match;if("time"===e){const e=a.fields.find(e=>e.type===s.FieldType.time);return e?e.values.get(i):void 0}if(!o)return this._match;const u=o.values.get(i);if("raw"===e)return u;const d=(null!=(n=o.display)?n:Ne)(u);return"numeric"===e?d.numeric:(0,s.formattedValueToString)(d)}getValueText(){return""}}],["__data",class{constructor(e,t,n,r){this._match=n,this._scopedVars=r,this.state={name:e,type:"__data"}}getValue(e){var t,n;const r=null==(t=this._scopedVars)?void 0:t.__dataContext;if(!r||!e)return this._match;const{frame:a,rowIndex:i}=r.value;if(void 0===i||void 0===e)return this._match;const o={name:a.name,refId:a.refId,fields:(0,s.getFieldDisplayValuesProxy)({frame:a,rowIndex:i})};return null!=(n=de(e)(o))?n:""}getValueText(){return""}}],["__series",class{constructor(e,t,n,r){this._match=n,this._scopedVars=r,this.state={name:e,type:"__series"}}getValue(e){var t;const n=null==(t=this._scopedVars)?void 0:t.__dataContext;if(!n||!e)return this._match;if("name"!==e)return this._match;const{frame:r,frameIndex:a}=n.value;return(0,s.getFrameDisplayName)(r,a)}getValueText(){return""}}],["__field",class{constructor(e,t,n,r){this._match=n,this._scopedVars=r,this.state={name:e,type:"__field"}}getValue(e){var t,n;const r=null==(t=this._scopedVars)?void 0:t.__dataContext;if(!r||!e)return this._match;if(void 0===e||""===e)return this._match;const{frame:a,field:i,data:o}=r.value,l=function(e,t,n){return new Proxy({},{get:(r,a)=>"name"===a?e.name:"displayName"===a?(0,s.getFieldDisplayName)(e,t,n):"labels"===a||"formattedLabels"===a?e.labels?{...e.labels,__values:Object.values(e.labels).sort().join(", "),toString:()=>(0,s.formatLabels)(e.labels,"",!0)}:"":void 0})}(i,a,o);return null!=(n=de(e)(l))?n:""}getValueText(){return""}}],["__url",class{constructor(e,t){this.state={name:e,type:"url_macro"}}getValue(e){var t;const n=i.locationService.getLocation(),r=null!=(t=i.config.appSubUrl)?t:"";switch(null!=e?e:""){case"params":return new Ie(n.search);case"path":return r+n.pathname;default:return r+n.pathname+n.search}}getValueText(){return""}}],["__from",Ye],["__to",Ye],["__timezone",class{constructor(e,t){this.state={name:e,type:"time_macro"},this._sceneObject=t}getValue(){const e=se(this._sceneObject).getTimeZone();return"browser"===e?Intl.DateTimeFormat().resolvedOptions().timeZone:e}getValueText(){return this.getValue()}}],["__user",class{constructor(e,t){this.state={name:e,type:"user_macro"}}getValue(e){const t=i.config.bootData.user;switch(e){case"login":return t.login;case"email":return t.email;default:return String(t.id)}}getValueText(){return""}}],["__org",class{constructor(e,t){this.state={name:e,type:"org_macro"}}getValue(e){const t=i.config.bootData.user;return"name"===e?t.orgName:String(t.orgId)}getValueText(){return""}}],["__interval",Ee],["__interval_ms",Ee]]);function We(e,t,n,r,a){return t&&"string"==typeof t?(ke.lastIndex=0,t.replace(ke,(t,s,i,o,l,u,d)=>{const c=s||i||l,h=o||d||r,m=function(e,t,n,r){if(n&&n.hasOwnProperty(e)){const t=n[e];if(t)return function(e,t){return le?(le.state.name=e,le.state.value=t):le=new ce(e,t),le}(e,t)}const a=P(e,r);if(a)return a;const s=Fe.get(e);if(s)return new s(e,r,t,n);return null}(c,t,n,e);if(!m)return a&&a.push({match:t,variableName:c,fieldPath:u,format:h,value:t,found:!1}),t;const p=function(e,t,n,r){if(null==n)return"";if(oe(n))return We(e,n.formatter(r));Array.isArray(n)||"object"!=typeof n||(n=`${n}`);if("function"==typeof r)return r(n,{name:t.state.name,type:t.state.type,multi:t.state.isMulti,includeAll:t.state.includeAll});let a=[];r?(a=r.split(":"),a.length>1?(r=a[0],a=a.slice(1)):a=[]):r=I.$m.Glob;let s=me.getIfExists(r);s||(console.error(`Variable format ${r} not found. Using glob format as fallback.`),s=me.get(I.$m.Glob));return s.formatter(n,a,t)}(e,m,m.getValue(u),h);return a&&a.push({match:t,variableName:c,fieldPath:u,format:h,value:p,found:p!==t}),p})):null!=t?t:""}function Ve(e){return void 0!==e.useState}function ze(e){return"enrichDataRequest"in e}function $e(e){return"isDataLayer"in e}function Be(e){return t=>{const n=hi.getQueryController(e.origin);return n?new m.Observable(r=>{e.cancel||(e.cancel=()=>r.complete()),n.queryStarted(e);let a=!1;const s=t.subscribe({next:t=>{a||t.state===F.Loading||(a=!0,n.queryCompleted(e)),r.next(t)},error:e=>r.error(e),complete:()=>{r.complete()}});return()=>{s.unsubscribe(),a||n.queryCompleted(e)}}):t}}function Ue(e){return new m.Observable(t=>{t.next({state:F.Loading});(0,m.from)(e).pipe((0,m.map)(()=>({state:F.Done})),(0,m.catchError)(()=>(t.next({state:F.Error}),[]))).subscribe({next:e=>t.next(e),complete:()=>t.complete()})})}async function qe(e,t){var n;if(null==e?void 0:e.uid){const t=R.get(e.uid);if(t)return t}if(e&&e.query)return e;const r=(0,i.getDataSourceSrv)().get(e,t);if(t.__sceneObject&&t.__sceneObject.value.valueOf()){const a=hi.getQueryController(t.__sceneObject.value.valueOf());a&&a.state.enableProfiling&&Ue(r).pipe(Be({type:`getDataSource/${null!=(n=null==e?void 0:e.type)?n:"unknown"}`,origin:t.__sceneObject.value.valueOf()})).subscribe(()=>{})}return await r}class Ge{constructor(){this._values=new Map}recordCurrentDependencyValuesForSceneObject(e){if(this.clearValues(),e.variableDependency)for(const t of e.variableDependency.getNames()){const n=hi.lookupVariable(t,e);n&&this._values.set(n.state.name,n.getValue())}}cloneAndRecordCurrentValuesForSceneObject(e){const t=new Ge;return t.recordCurrentDependencyValuesForSceneObject(e),t}clearValues(){this._values.clear()}hasValues(){return!!this._values}recordCurrentValue(e){this._values.set(e.state.name,e.getValue())}hasRecordedValue(e){return this._values.has(e.state.name)}hasValueChanged(e){if(this._values.has(e.state.name)){if(!Ss(this._values.get(e.state.name),e.getValue()))return!0}return!1}hasDependenciesChanged(e){if(!this._values)return!1;if(!e.variableDependency)return!1;for(const t of e.variableDependency.getNames()){const n=hi.lookupVariable(t,e);if(!n)continue;const r=n.state.name;if(n&&this._values.has(r)){if(!Ss(this._values.get(r),n.getValue()))return!0}}return!1}}function Je(e){return"object"==typeof e&&"getExtraQueries"in e}const Ke=(e,t)=>(0,m.of)(t),Qe=0;function Ze(e){const t=e.getRoot();return ze(t)?t.enrichDataRequest(e):null}let Xe,et=new Set;const tt=new Set;var nt=n(2007),rt=n(7186),at=n(6089);const st=(e,t)=>e>t?1:ee.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),lt="eexxaacctt",ut=/\p{P}/gu,dt=["en",{numeric:!0,sensitivity:"base"}],ct=(e,t,n)=>e.replace("A-Z",t).replace("a-z",n),ht={unicode:!1,alpha:null,interSplit:"[^A-Za-z\\d']+",intraSplit:"[a-z][A-Z]",interBound:"[^A-Za-z\\d]",intraBound:"[A-Za-z]\\d|\\d[A-Za-z]|[a-z][A-Z]",interLft:0,interRgt:0,interChars:".",interIns:it,intraChars:"[a-z\\d']",intraIns:null,intraContr:"'[a-z]{1,2}\\b",intraMode:0,intraSlice:[1,it],intraSub:null,intraTrn:null,intraDel:null,intraFilt:(e,t,n)=>!0,toUpper:e=>e.toLocaleUpperCase(),toLower:e=>e.toLocaleLowerCase(),compare:null,sort:(e,t,n,r=st)=>{let{idx:a,chars:s,terms:i,interLft2:o,interLft1:l,start:u,intraIns:d,interIns:c,cases:h}=e;return a.map((e,t)=>t).sort((e,n)=>s[n]-s[e]||d[e]-d[n]||i[n]+o[n]+.5*l[n]-(i[e]+o[e]+.5*l[e])||c[e]-c[n]||u[e]-u[n]||h[n]-h[e]||r(t[a[e]],t[a[n]]))}},mt=(e,t)=>0==t?"":1==t?e+"??":t==it?e+"*?":e+`{0,${t}}?`,pt="(?:\\b|_)";function ft(e){e=Object.assign({},ht,e);let{unicode:t,interLft:n,interRgt:r,intraMode:a,intraSlice:s,intraIns:i,intraSub:o,intraTrn:l,intraDel:u,intraContr:d,intraSplit:c,interSplit:h,intraBound:m,interBound:p,intraChars:f,toUpper:_,toLower:g,compare:y}=e;i??=a,o??=a,l??=a,u??=a,y??="undefined"==typeof Intl?st:new Intl.Collator(...dt).compare;let v=e.letters??e.alpha;if(null!=v){let e=_(v),t=g(v);h=ct(h,e,t),c=ct(c,e,t),p=ct(p,e,t),m=ct(m,e,t),f=ct(f,e,t),d=ct(d,e,t)}let b=t?"u":"";const M='".+?"',w=new RegExp(M,"gi"+b),L=new RegExp(`(?:\\s+|^)-(?:${f}+|${M})`,"gi"+b);let{intraRules:S}=e;null==S&&(S=e=>{let t=ht.intraSlice,n=0,r=0,a=0,d=0;if(/[^\d]/.test(e)){let c=e.length;c<=4?c>=3&&(a=Math.min(l,1),4==c&&(n=Math.min(i,1))):(t=s,n=i,r=o,a=l,d=u)}return{intraSlice:t,intraIns:n,intraSub:r,intraTrn:a,intraDel:d}});let k=!!c,D=new RegExp(c,"g"+b),T=new RegExp(h,"g"+b),x=new RegExp("^"+h+"|"+h+"$","g"+b),Y=new RegExp(d,"gi"+b);const E=(e,t=!1)=>{let n=[];e=(e=e.replace(w,e=>(n.push(e),lt))).replace(x,""),t||(e=g(e)),k&&(e=e.replace(D,e=>e[0]+" "+e[1]));let r=0;return e.split(T).filter(e=>""!=e).map(e=>e===lt?n[r++]:e)},O=/[^\d]+|\d+/g,A=(t,s=0,o=!1)=>{let l=E(t);if(0==l.length)return[];let u,d=Array(l.length).fill("");if(l=l.map((e,t)=>e.replace(Y,e=>(d[t]=e,""))),1==a)u=l.map((e,t)=>{if('"'===e[0])return ot(e.slice(1,-1));let n="";for(let r of e.matchAll(O)){let e=r[0],{intraSlice:a,intraIns:s,intraSub:i,intraTrn:o,intraDel:l}=S(e);if(s+i+o+l==0)n+=e+d[t];else{let[r,u]=a,c=e.slice(0,r),h=e.slice(u),m=e.slice(r,u);1==s&&1==c.length&&c!=m[0]&&(c+="(?!"+c+")");let p=m.length,_=[e];if(i)for(let e=0;e0&&(e=")("+e+")("),u=l.map((t,n)=>'"'===t[0]?ot(t.slice(1,-1)):t.split("").map((e,t,n)=>(1==i&&0==t&&n.length>1&&e!=n[t+1]&&(e+="(?!"+e+")"),e)).join(e)+d[n])}let c=2==n?pt:"",h=2==r?pt:"",m=h+mt(e.interChars,e.interIns)+c;return s>0?o?u=c+"("+u.join(")"+h+"|"+c+"(")+")"+h:(u="("+u.join(")("+m+")(")+")",u="(.??"+c+")"+u+"("+h+".*)"):(u=u.join(m),u=c+u+h),[new RegExp(u,"i"+b),l,d]},C=(e,t,n)=>{let[r]=A(t);if(null==r)return null;let a=[];if(null!=n)for(let t=0;t{let[i,o,l]=A(s,1),u=E(s,!0),[d]=A(s,2),c=o.length,h=Array(c),m=Array(c);for(let e=0;e=_){let e=g(l[a+1]).indexOf(i);e>-1&&(E.push(p,v,e,_),p+=N(l,a,e,_),s=i,v=_,O=!0,0==t&&(u=p))}if(y||O){let e=p-1,d=p+v,c=!1,h=!1;if(-1==e||P.test(o[e]))O&&M++,c=!0;else{if(2==n){f=!0;break}if(R&&j.test(o[e]+o[e+1]))O&&w++,c=!0;else if(1==n){let e=l[a+1],n=p+v;if(e.length>=_){let r,d=0,h=!1,m=new RegExp(i,"ig"+b);for(;r=m.exec(e);){d=r.index;let e=n+d,t=e-1;if(-1==t||P.test(o[t])){M++,h=!0;break}if(j.test(o[t]+o[e])){w++,h=!0;break}}h&&(c=!0,E.push(p,v,d,_),p+=N(l,a,d,_),s=i,v=_,O=!0,0==t&&(u=p))}if(!c){f=!0;break}}}if(d==o.length||P.test(o[d]))O&&L++,h=!0;else{if(2==r){f=!0;break}if(R&&j.test(o[d-1]+o[d]))O&&S++,h=!0;else if(1==r){f=!0;break}}O&&(k+=_,c&&h&&D++)}if(v>_&&(Y+=v-_),t>0&&(x+=l[a-1].length),!e.intraFilt(i,s,p)){f=!0;break}t0?0:1/0,i=r-4;for(let t=2;t0&&(l.push(c,h),c=h=n)}h>c&&l.push(c,h),v++}}if(v{let a=e[t]+e[t+1].slice(0,n);return e[t-1]+=a,e[t]=e[t+1].slice(n,n+r),e[t+1]=e[t+1].slice(n+r),a.length};return{search:(...t)=>{let n=((t,n,r,a=1e3,s)=>{r=r?!0===r?5:r:0;let i=null,o=null,l=[];n=n.replace(L,e=>{let t=e.trim().slice(1);return t='"'===t[0]?ot(t.slice(1,-1)):t.replace(ut,""),""!=t&&l.push(t),""});let u,d=E(n);if(l.length>0){if(u=new RegExp(l.join("|"),"i"+b),0==d.length){let e=[];for(let n=0;n0){let e=E(n);if(e.length>1){let n=e.slice().sort((e,t)=>t.length-e.length);for(let e=0;er)return[s,null,null];i=gt(e).map(e=>e.join(" ")),o=[];let a=new Set;for(let e=0;e!a.has(e)),r=C(t,i[e],n);for(let e=0;e0?s:C(t,n)]);let c=null,h=null;if(l.length>0&&(o=o.map(e=>e.filter(e=>!u.test(t[e])))),o.reduce((e,t)=>e+t.length,0)<=a){c={},h=[];for(let n=0;n0)for(let e=0;e{let e={A:"ÁÀÃÂÄĄ",a:"áàãâäą",E:"ÉÈÊËĖ",e:"éèêëę",I:"ÍÌÎÏĮ",i:"íìîïį",O:"ÓÒÔÕÖ",o:"óòôõö",U:"ÚÙÛÜŪŲ",u:"úùûüūų",C:"ÇČĆ",c:"çčć",L:"Ł",l:"ł",N:"ÑŃ",n:"ñń",S:"ŠŚ",s:"šś",Z:"ŻŹ",z:"żź"},t=new Map,n="";for(let r in e)e[r].split("").forEach(e=>{n+=e,t.set(e,r)});let r=new RegExp(`[${n}]`,"g"),a=e=>t.get(e);return e=>{if("string"==typeof e)return e.replace(r,a);let t=Array(e.length);for(let n=0;nt?`${e}`:e,vt=(e,t)=>e+t;ft.latinize=_t,ft.permute=e=>gt([...Array(e.length).keys()]).sort((e,t)=>{for(let n=0;nt.map(t=>e[t])),ft.highlight=function(e,t,n=yt,r="",a=vt){r=a(r,n(e.substring(0,t[0]),!1))??r;for(let s=0;s25||wt.split(n).length>5)for(let a=0;ae[s.idx[t]]):a.map(t=>e[t]))}return r}function St(e,t=!1){let n=e;t&&(n=[{value:Le,label:we},...n]);const r=n.map(e=>e.label);return e=>Lt(n,r,e)}const kt=()=>!0,Dt=e=>"$__all"!==e.value,Tt=(e,t)=>e.length===t.filter(Dt).length?nt.ToggleAllState.allSelected:0===e.length||1===e.length&&e[0]&&"$__all"===e[0].value?nt.ToggleAllState.noneSelected:nt.ToggleAllState.indeterminate;function xt({model:e,state:t}){const{value:n,text:r,key:a,options:s,includeAll:i,isReadOnly:o,allowCustomValue:l=!0}=t,[u,c]=(0,d.useState)(""),[m,p]=(0,d.useState)(!1),f=function(e,t){return{value:e,label:null!=t?t:String(e)}}(n,String(r)),_=hi.getQueryController(e),g=(0,d.useMemo)(()=>St(s,i),[s,i])(u);return h().createElement(nt.Select,{id:a,isValidNewOption:e=>e.trim().length>0,placeholder:(0,he.t)("grafana-scenes.variables.variable-value-select.placeholder-select-value","Select value"),width:"auto",disabled:o,value:f,inputValue:u,allowCustomValue:l,virtualized:!0,filterOption:kt,tabSelectsValue:!1,onInputChange:(t,{action:n})=>"input-change"===n?(c(t),e.onSearchChange&&e.onSearchChange(t),t):t,onOpenMenu:()=>{m&&c(String(r))},onCloseMenu:()=>{c("")},options:g,"data-testid":rt.Tp.pages.Dashboard.SubMenu.submenuItemValueDropDownValueLinkTexts(`${n}`),onChange:t=>{e.changeValueTo(t.value,t.label,!0),null==_||_.startProfile(X),m!==t.__isNew__&&p(t.__isNew__)}})}function Yt({model:e,state:t}){const{value:n,options:r,key:a,maxVisibleValues:s,noValueOnClear:i,includeAll:o,isReadOnly:l,allowCustomValue:u=!0}=t,c=(0,d.useMemo)(()=>(0,A.isArray)(n)?n:[n],[n]),[m,p]=(0,d.useState)(c),[f,_]=(0,d.useState)(""),g=(0,d.useMemo)(()=>St(r,o),[r,o]);(0,d.useEffect)(()=>{p(c)},[c]);const y=r.length>0?"Select value":"",v=g(f);return h().createElement(nt.MultiSelect,{id:a,placeholder:y,width:"auto",inputValue:f,disabled:l,value:m,noMultiValueWrap:!0,maxVisibleValues:null!=s?s:5,tabSelectsValue:!1,virtualized:!0,allowCustomValue:u,toggleAllOptions:{enabled:!0,optionsFilter:Dt,determineToggleAllState:Tt},options:v,closeMenuOnSelect:!1,components:{Option:Et},isClearable:!0,hideSelectedOptions:!1,onInputChange:(t,{action:n})=>"input-change"===n?(_(t),e.onSearchChange&&e.onSearchChange(t),t):"input-blur"===n?(_(""),""):f,onBlur:()=>{e.changeValueTo(m,void 0,!0)},filterOption:kt,"data-testid":rt.Tp.pages.Dashboard.SubMenu.submenuItemValueDropDownValueLinkTexts(`${m}`),onChange:(t,n)=>{"clear"===n.action&&i&&e.changeValueTo([],void 0,!0),p(t.map(e=>e.value))}})}const Et=({children:e,data:t,innerProps:n,innerRef:r,isFocused:a,isSelected:s,indeterminate:i,renderOptionLabel:o})=>{var l;const{onMouseMove:u,onMouseOver:d,...c}=n,m=(0,nt.useTheme2)(),p=(0,nt.getSelectStyles)(m),f=(0,nt.useStyles2)(Ot);return h().createElement("div",{ref:r,className:(0,at.cx)(p.option,a&&p.optionFocused),...c,"data-testid":"data-testid Select option",title:t.title},h().createElement("div",{className:f.checkbox},h().createElement(nt.Checkbox,{indeterminate:i,value:s})),h().createElement("div",{className:p.optionBody,"data-testid":rt.Tp.pages.Dashboard.SubMenu.submenuItemValueDropDownOptionTexts(null!=(l=t.label)?l:String(t.value))},h().createElement("span",null,e)))};Et.displayName="SelectMenuOptions";const Ot=e=>({checkbox:(0,at.css)({marginRight:e.spacing(2)})});function At({model:e}){const t=e.useState();return t.isMulti?h().createElement(Yt,{model:e,state:t}):h().createElement(xt,{model:e,state:t})}class Ct{constructor(e){this._sceneObject=e,this._nextChangeShouldAddHistoryStep=!1}getRestorableKey(){return`restorable-var-${this._sceneObject.state.name}`}getKey(){return`var-${this._sceneObject.state.name}`}getKeys(){return this._sceneObject.state.skipUrlSync?[]:[this.getKey(),this.getRestorableKey()]}getUrlState(){return this._sceneObject.state.skipUrlSync?{}:{[this.getKey()]:Rt(this._sceneObject.state.value,this._sceneObject.state.text),[this.getRestorableKey()]:this._sceneObject.state.defaultValue?this._sceneObject.state.restorable?"true":"false":null}}updateFromUrl(e){let t=e[this.getKey()],n=e[this.getRestorableKey()];if(null!=t){this._sceneObject.isActive||(this._sceneObject.skipNextValidation=!0);const{values:e,texts:a}=(r=t,(r=Array.isArray(r)?r:[r]).reduce((e,t)=>{const[n,r]=(null!=t?t:"").split(",");return e.values.push(Rs(n)),e.texts.push(Rs(null!=r?r:n)),e},{values:[],texts:[]}));if(this._sceneObject.state.defaultValue&&("false"===n||void 0===n))return;if("false"===n)return void this._sceneObject.changeValueTo([],[],!1);this._sceneObject.changeValueTo(e,a)}var r}performBrowserHistoryAction(e){this._nextChangeShouldAddHistoryStep=!0,e(),this._nextChangeShouldAddHistoryStep=!1}shouldCreateHistoryStep(e){return this._nextChangeShouldAddHistoryStep}}function Rt(e,t){return e=Array.isArray(e)?e:[e],t=Array.isArray(t)?t:[t],e.map((e,n)=>{if(null==e)return"";e=String(e);let r=t[n];return r=null==r?e:String(r),Ps(e,r)})}function Pt(e){const t=e.getRoot();return"enrichFiltersRequest"in t?t.enrichFiltersRequest(e):null}var jt,Ht=e=>{throw TypeError(e)},Nt=(e,t,n)=>t.has(e)||Ht("Cannot "+n);class It{constructor(e){((e,t,n)=>{t.has(e)?Ht("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n)})(this,jt),this.text="__sceneObject",this.valueOf=()=>{return Nt(e=this,t=jt,"read from private field"),n?n.call(e):t.get(e);var e,t,n},((e,t,n)=>{Nt(e,t,"write to private field"),t.set(e,n)})(this,jt,e)}toString(){}get value(){return this}}function Ft(e){return function(e){const t=e.match(/^(\d+)\.(\d+)\.(\d+)/);if(!t)return!1;const n=parseInt(t[1],10),r=parseInt(t[2],10),a=parseInt(t[3],10);return 11===n?0===r&&a>=4||1===r&&a>=2||r>1:10===n?4===r&&a>=8||r>=5:n>11}(i.config.buildInfo.version)?new It(e):{value:e,text:"__sceneObject"}}function Wt(e){const{model:t}=e,n=(0,nt.useTheme2)(),r=Vt(n),a=(0,nt.getInputStyles)({theme:n,invalid:!1}),s=(0,A.isArray)(t.state.value)?t.state.value:t.state.value?[t.state.value]:[];let i=[];return s&&s.length&&i.push(h().createElement(nt.IconButton,{"aria-label":(0,he.t)("grafana-scenes.variables.default-group-by-custom-indicator-container.aria-label-clear","clear"),key:"clear",name:"times",size:"md",className:r.clearIcon,onClick:e=>{t.changeValueTo([],void 0,!0),t.checkIfRestorable([])&&t.setState({restorable:!0})}})),t.state.restorable&&i.push(h().createElement(nt.IconButton,{onClick:t=>{e.model.restoreDefaultValues()},onKeyDownCapture:t=>{"Enter"===t.key&&e.model.restoreDefaultValues()},key:"restore",name:"history",size:"md",className:r.clearIcon,tooltip:(0,he.t)("grafana-scenes.variables.default-group-by-custom-indicator-container.tooltip-restore-groupby-set-by-this-dashboard","Restore groupby set by this dashboard.")})),t.state.restorable||i.push(h().createElement(nt.Tooltip,{key:"tooltip",content:(0,he.t)("grafana-scenes.variables.default-group-by-custom-indicator-container.tooltip","Applied by default in this dashboard. If edited, it carries over to other dashboards."),placement:"bottom"},h().createElement(nt.Icon,{name:"info-circle",size:"md"}))),h().createElement("div",{onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},className:(0,at.cx)(a.suffix,(0,at.css)({position:"relative"}))},i)}jt=new WeakMap;const Vt=e=>({clearIcon:(0,at.css)({color:e.colors.action.disabledText,cursor:"pointer","&:hover:before":{backgroundColor:"transparent"},"&:hover":{color:e.colors.text.primary}})});class zt extends Re{constructor(e){super({isMulti:!0,name:"",value:[],text:[],options:[],datasource:null,baseFilters:[],applyMode:"auto",layout:"horizontal",type:"groupby",...e,noValueOnClear:!0}),this.isLazy=!0,this._urlSync=new Ct(this),this._activationHandler=()=>(this.state.defaultValue&&this.checkIfRestorable(this.state.value)&&this.setState({restorable:!0}),()=>{this.state.defaultValue&&this.restoreDefaultValues()}),this._getKeys=async e=>{var t,n,r;const a=await(null==(n=(t=this.state).getTagKeysProvider)?void 0:n.call(t,this,null));if(a&&a.replace)return a.values;if(this.state.defaultOptions)return this.state.defaultOptions.concat(js(null!=(r=null==a?void 0:a.values)?r:[]));if(!e.getTagKeys)return[];const s=Es(this),i=this.state.baseFilters||[],o=hi.getTimeRange(this).state.value,l=await e.getTagKeys({filters:i,queries:s,timeRange:o,scopes:hi.getScopes(this),...Pt(this)});Hs(l)&&this.setState({error:l.error.message});let u=js(l);a&&(u=u.concat(js(a.values)));const d=this.state.tagKeyRegexFilter;return d&&(u=u.filter(e=>e.text.match(d))),u},this.state.defaultValue&&this.changeValueTo(this.state.defaultValue.value,this.state.defaultValue.text,!1),"auto"===this.state.applyMode&&this.addActivationHandler(()=>(tt.add(this),()=>tt.delete(this))),this.addActivationHandler(this._activationHandler)}validateAndUpdate(){return this.getValueOptions({}).pipe((0,m.map)(e=>(this._updateValueGivenNewOptions(e),{})))}_updateValueGivenNewOptions(e){const{value:t,text:n}=this.state,r={options:e,loading:!1,value:null!=t?t:[],text:null!=n?n:[]};this.setState(r)}getValueOptions(e){return this.state.defaultOptions?(0,m.of)(this.state.defaultOptions.map(e=>({label:e.text,value:String(e.value),group:e.group}))):(this.setState({loading:!0,error:null}),(0,m.from)(qe(this.state.datasource,{__sceneObject:Ft(this)})).pipe((0,m.mergeMap)(e=>(0,m.from)(this._getKeys(e)).pipe((0,m.tap)(e=>{Hs(e)&&this.setState({error:e.error.message})}),(0,m.map)(e=>js(e)),(0,m.take)(1),(0,m.mergeMap)(e=>{const t=e.map(e=>({label:e.text,value:e.value?String(e.value):e.text,group:e.group}));return(0,m.of)(t)})))))}checkIfRestorable(e){var t,n,r,a;const s=(0,A.isArray)(null==(t=this.state.defaultValue)?void 0:t.value)?null==(n=this.state.defaultValue)?void 0:n.value:(null==(r=this.state.defaultValue)?void 0:r.value)?[null==(a=this.state.defaultValue)?void 0:a.value]:[],i=(0,A.isArray)(e)?e:[e];return i.length!==s.length||!(0,A.isEqual)(i,s)}restoreDefaultValues(){this.setState({restorable:!1}),this.state.defaultValue&&this.changeValueTo(this.state.defaultValue.value,this.state.defaultValue.text,!0)}getDefaultMultiState(e){return{value:[],text:[]}}}zt.Component=function({model:e}){const{value:t,text:n,key:r,isMulti:a=!0,maxVisibleValues:s,noValueOnClear:i,options:o,includeAll:l,allowCustomValue:u=!0,defaultValue:c}=e.useState(),p=(0,d.useMemo)(()=>{const e=(0,A.isArray)(t)?t:[t],r=(0,A.isArray)(n)?n:[n];return e.map((e,t)=>{var n;return{value:e,label:String(null!=(n=r[t])?n:e)}})},[t,n]),[f,_]=(0,d.useState)(!1),[g,y]=(0,d.useState)(!1),[v,b]=(0,d.useState)(""),[M,w]=(0,d.useState)(p),L=(0,d.useMemo)(()=>St(o,l),[o,l]),S=void 0!==c;(0,d.useEffect)(()=>{w(p)},[p]);const k=(t,{action:n})=>"input-change"===n?(b(t),e.onSearchChange&&e.onSearchChange(t),t):"input-blur"===n?(b(""),""):v,D=(0,d.useMemo)(()=>Ns(L(v).map(Bt)),[L,v]);return a?h().createElement(nt.MultiSelect,{"aria-label":(0,he.t)("grafana-scenes.variables.group-by-variable-renderer.aria-label-group-by-selector","Group by selector"),"data-testid":`GroupBySelect-${r}`,id:r,placeholder:(0,he.t)("grafana-scenes.variables.group-by-variable-renderer.placeholder-group-by-label","Group by label"),width:"auto",allowCustomValue:u,inputValue:v,value:M,noMultiValueWrap:!0,maxVisibleValues:null!=s?s:5,tabSelectsValue:!1,virtualized:!0,options:D,filterOption:$t,closeMenuOnSelect:!1,isOpen:g,isClearable:!0,hideSelectedOptions:!1,isLoading:f,components:{Option:Et,...S?{IndicatorsContainer:()=>h().createElement(Wt,{model:e})}:{}},onInputChange:k,onBlur:()=>{e.changeValueTo(M.map(e=>e.value),M.map(e=>e.label),!0);const t=e.checkIfRestorable(M.map(e=>e.value));t!==e.state.restorable&&e.setState({restorable:t})},onChange:(t,n)=>{"clear"===n.action&&i&&e.changeValueTo([],void 0,!0),w(t)},onOpenMenu:async()=>{_(!0),await(0,m.lastValueFrom)(e.validateAndUpdate()),_(!1),y(!0)},onCloseMenu:()=>{y(!1)}}):h().createElement(nt.Select,{"aria-label":(0,he.t)("grafana-scenes.variables.group-by-variable-renderer.aria-label-group-by-selector","Group by selector"),"data-testid":`GroupBySelect-${r}`,id:r,placeholder:(0,he.t)("grafana-scenes.variables.group-by-variable-renderer.placeholder-group-by-label","Group by label"),width:"auto",inputValue:v,value:M&&M.length>0?M:null,allowCustomValue:u,noMultiValueWrap:!0,maxVisibleValues:null!=s?s:5,tabSelectsValue:!1,virtualized:!0,options:D,filterOption:$t,closeMenuOnSelect:!0,isOpen:g,isClearable:!0,hideSelectedOptions:!1,noValueOnClear:!0,isLoading:f,onInputChange:k,onChange:(t,n)=>{if("clear"===n.action)return w([]),void(i&&e.changeValueTo([]));(null==t?void 0:t.value)&&(w([t]),e.changeValueTo([t.value],t.label?[t.label]:void 0))},onOpenMenu:async()=>{_(!0),await(0,m.lastValueFrom)(e.validateAndUpdate()),_(!1),y(!0)},onCloseMenu:()=>{y(!1)}})};const $t=()=>!0;function Bt(e){const{label:t,value:n,group:r}=e,a={label:t,value:n};return r&&(a.group=r),a}function Ut(e){return h().createElement(nt.Tooltip,{content:(0,he.t)("grafana-scenes.utils.loading-indicator.content-cancel-query","Cancel query")},h().createElement(nt.Icon,{className:"spin-clockwise",name:"sync",size:"xs",role:"button",onMouseDown:t=>{e.onCancel(t)}}))}function qt(e){const t=(0,nt.useStyles2)(Gt),n=(0,nt.useTheme2)(),r="vertical"===e.layout,a=Boolean(e.isLoading)?h().createElement("div",{style:{marginLeft:n.spacing(1),marginTop:"-1px"},"aria-label":rt.Tp.components.LoadingIndicator.icon},h().createElement(Ut,{onCancel:t=>{var n;t.preventDefault(),t.stopPropagation(),null==(n=e.onCancel)||n.call(e)}})):null;let s=null;e.error&&(s=h().createElement(nt.Tooltip,{content:e.error,placement:"bottom"},h().createElement(nt.Icon,{className:t.errorIcon,name:"exclamation-triangle"})));let i=null;e.description&&(i=h().createElement(nt.Tooltip,{content:e.description,placement:r?"top":"bottom"},h().createElement(nt.Icon,{className:t.normalIcon,name:"info-circle"})));const o="string"==typeof e.label?rt.Tp.pages.Dashboard.SubMenu.submenuItemLabels(e.label):"";let l;return l=r?h().createElement("label",{className:(0,at.cx)(t.verticalLabel,e.className),"data-testid":o,htmlFor:e.htmlFor},e.prefix,e.label,i,s,e.icon&&h().createElement(nt.Icon,{name:e.icon,className:t.normalIcon}),a,e.onRemove&&h().createElement(nt.IconButton,{variant:"secondary",size:"xs",name:"times",onClick:e.onRemove,tooltip:(0,he.t)("grafana-scenes.utils.controls-label.tooltip-remove","Remove")}),e.suffix):h().createElement("label",{className:(0,at.cx)(t.horizontalLabel,e.className),"data-testid":o,htmlFor:e.htmlFor},e.prefix,s,e.icon&&h().createElement(nt.Icon,{name:e.icon,className:t.normalIcon}),e.label,i,a,e.suffix),l}const Gt=e=>({horizontalLabel:(0,at.css)({background:e.isDark?e.colors.background.primary:e.colors.background.secondary,display:"flex",alignItems:"center",padding:e.spacing(0,1),fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.bodySmall.fontSize,height:e.spacing(e.components.height.md),lineHeight:e.spacing(e.components.height.md),borderRadius:`${e.shape.radius.default} 0 0 ${e.shape.radius.default}`,border:`1px solid ${e.components.input.borderColor}`,position:"relative",right:-1,whiteSpace:"nowrap",gap:e.spacing(.5)}),verticalLabel:(0,at.css)({display:"flex",alignItems:"center",fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.bodySmall.fontSize,lineHeight:e.typography.bodySmall.lineHeight,whiteSpace:"nowrap",marginBottom:e.spacing(.5),gap:e.spacing(1)}),errorIcon:(0,at.css)({color:e.colors.error.text}),normalIcon:(0,at.css)({color:e.colors.text.secondary})});function Jt(e){const t=e.map(e=>{var t;return null!=(t=e.label)?t:String(e.value)});return n=>Lt(e,t,n)}function Kt(e,t){return""!==e?{value:e,label:t||e}:null}const Qt=()=>!0;function Zt({filter:e,model:t}){var n,r,a,s,i;const o=(0,nt.useStyles2)(Xt),[l,u]=(0,d.useState)([]),[c,m]=(0,d.useState)([]),[p,f]=(0,d.useState)(!1),[_,g]=(0,d.useState)(!1),[y,v]=(0,d.useState)(!1),[b,M]=(0,d.useState)(!1),[w,L]=(0,d.useState)(!1),[S,k]=(0,d.useState)(""),[D,T]=(0,d.useState)(!1),[x,Y]=(0,d.useState)(e.values?e.values.map((t,n)=>{var r;return Kt(t,null==(r=e.valueLabels)?void 0:r[n])}):[]),E=gs(e.operator),O=Kt(e.key,e.keyLabel),A=Kt(e.value,null==(n=e.valueLabels)?void 0:n[0]),C=(0,d.useMemo)(()=>Jt(c),[c]),R=t.state.onAddCustomValue,P=(0,d.useMemo)(()=>Ns(C(S)),[C,S]),j={isMulti:!0,value:x,components:{Option:Et},hideSelectedOptions:!1,closeMenuOnSelect:!1,openMenuOnFocus:!1,onChange:e=>{Y(e),e.some(e=>e.__isNew__)&&k("")},onBlur:()=>{var n,r;t._updateFilter(e,{value:null!=(r=null==(n=x[0])?void 0:n.value)?r:"",values:x.map(e=>e.value),valueLabels:x.map(e=>e.label)})}},H=h().createElement(nt.Select,{virtualized:!0,allowCustomValue:null==(r=t.state.allowCustomValue)||r,isValidNewOption:e=>e.trim().length>0,allowCreateWhileLoading:!0,formatCreateLabel:e=>`Use custom value: ${e}`,disabled:t.state.readOnly,className:(0,at.cx)(o.value,b?o.widthWhenOpen:void 0),width:"auto",value:A,filterOption:Qt,placeholder:(0,he.t)("grafana-scenes.variables.ad-hoc-filter-renderer.value-select.placeholder-select-value","Select value"),options:P,inputValue:S,onInputChange:(e,{action:t})=>("input-change"===t&&k(e),e),onChange:n=>{R&&n.__isNew__?t._updateFilter(e,R(n,e)):t._updateFilter(e,{value:n.value,valueLabels:n.label?[n.label]:[n.value]}),D!==n.__isNew__&&T(n.__isNew__)},isOpen:b&&!_,isLoading:_,openMenuOnFocus:!0,onOpenMenu:async()=>{var n;g(!0),M(!0);const r=await t._getValuesFor(e);g(!1),m(r),D&&k(null!=(n=null==A?void 0:A.label)?n:"")},onCloseMenu:()=>{M(!1),k("")},...E&&j}),N=h().createElement(nt.Select,{key:""+(_?"loading":"loaded"),disabled:t.state.readOnly,className:(0,at.cx)(o.key,y?o.widthWhenOpen:void 0),width:"auto",allowCustomValue:null==(a=t.state.allowCustomValue)||a,value:O,placeholder:(0,he.t)("grafana-scenes.variables.ad-hoc-filter-renderer.key-select.placeholder-select-label","Select label"),options:Ns(l),onChange:n=>{t._updateFilter(e,{key:n.value,keyLabel:n.label,value:"",valueLabels:[""],values:void 0}),Y([])},autoFocus:""===e.key,isOpen:y&&!p,isLoading:p,onOpenMenu:async()=>{v(!0),f(!0);const n=await t._getKeys(e.key);f(!1),u(n)},onCloseMenu:()=>{v(!1)},onBlur:()=>{""===e.key&&t._removeFilter(e)},openMenuOnFocus:!0}),I=h().createElement(nt.Select,{className:(0,at.cx)(o.operator,{[o.widthWhenOpen]:w}),value:e.operator,disabled:t.state.readOnly,options:t._getOperators(),onChange:n=>{var r,a;const s=e.operator,i=n.value,o={operator:i};gs(s)&&!gs(i)?(o.value="",o.valueLabels=[""],o.values=void 0,Y([])):!gs(s)&&gs(i)&&e.value&&(o.values=[e.value],Y([{value:e.value,label:null!=(a=null==(r=e.valueLabels)?void 0:r[0])?a:e.value}])),t._updateFilter(e,o)},onOpenMenu:()=>{L(!0)},onCloseMenu:()=>{L(!1)}});if("vertical"===t.state.layout){if(e.key){const n=h().createElement(qt,{layout:"vertical",label:null!=(s=e.key)?s:"",onRemove:()=>t._removeFilter(e)});return h().createElement(nt.Field,{label:n,"data-testid":`AdHocFilter-${e.key}`,className:o.field},h().createElement("div",{className:o.wrapper},I,H))}return h().createElement(nt.Field,{label:(0,he.t)("grafana-scenes.variables.ad-hoc-filter-renderer.label-select-label","Select label"),"data-testid":`AdHocFilter-${e.key}`,className:o.field},N)}return h().createElement("div",{className:o.wrapper,"data-testid":`AdHocFilter-${e.key}`},N,I,H,h().createElement(nt.Button,{variant:"secondary","aria-label":(0,he.t)("grafana-scenes.variables.ad-hoc-filter-renderer.aria-label-remove-filter","Remove filter"),title:(0,he.t)("grafana-scenes.variables.ad-hoc-filter-renderer.title-remove-filter","Remove filter"),className:o.removeButton,icon:"times","data-testid":`AdHocFilter-remove-${null!=(i=e.key)?i:""}`,onClick:()=>t._removeFilter(e)}))}const Xt=e=>({field:(0,at.css)({marginBottom:0}),wrapper:(0,at.css)({display:"flex","> *":{"&:not(:first-child)":{marginLeft:-1},"&:first-child":{borderTopRightRadius:0,borderBottomRightRadius:0},"&:last-child":{borderTopLeftRadius:0,borderBottomLeftRadius:0},"&:not(:first-child):not(:last-child)":{borderRadius:0},position:"relative",zIndex:0,"&:hover":{zIndex:1},"&:focus-within":{zIndex:2}}}),widthWhenOpen:(0,at.css)({minWidth:e.spacing(16)}),value:(0,at.css)({flexBasis:"content",flexShrink:1,minWidth:"90px"}),key:(0,at.css)({flexBasis:"content",minWidth:"90px",flexShrink:1}),operator:(0,at.css)({flexShrink:0,flexBasis:"content"}),removeButton:(0,at.css)({paddingLeft:e.spacing(1.5),paddingRight:e.spacing(1.5),borderLeft:"none",width:e.spacing(3),marginRight:e.spacing(1),boxSizing:"border-box",position:"relative",left:"1px"})});function en({model:e,addFilterButtonText:t}){const{_wip:n}=e.useState();return n?h().createElement(Zt,{filter:n,model:e}):h().createElement(nt.Button,{variant:"secondary",icon:"plus",title:(0,he.t)("grafana-scenes.variables.ad-hoc-filter-builder.title-add-filter","Add filter"),"aria-label":(0,he.t)("grafana-scenes.variables.ad-hoc-filter-builder.aria-label-add-filter","Add filter"),"data-testid":"AdHocFilter-add",onClick:()=>e._addWip()},t)}class tn{constructor(e){this._variable=e}getKey(){return`var-${this._variable.state.name}`}getKeys(){return[this.getKey()]}getUrlState(){const e=this._variable.state.filters,t=this._variable.state.originFilters;let n=[];return 0===e.length&&0===(null==t?void 0:t.length)?{[this.getKey()]:[""]}:(e.length&&n.push(...e.filter(fs).filter(e=>!e.hidden).map(e=>nn(e).map(Cs).join("|"))),(null==t?void 0:t.length)&&n.push(...null==t?void 0:t.filter(fs).filter(e=>!e.hidden&&e.origin&&e.restorable).map(e=>nn(e).map(Cs).join("|").concat(`#${e.origin}#restorable`))),{[this.getKey()]:n.length?n:[""]})}updateFromUrl(e){const t=e[this.getKey()];if(null==t)return;const n=function(e){if(Array.isArray(e)){return e.map(rn).filter(an)}const t=rn(e);return null===t?[]:[t]}(t),r=function(e,t){const n=[...e];for(let r=0;re.key===t[r].key);a>-1?(t[r].origin||"dashboard"!==e[a].origin||(t[r].origin="dashboard",t[r].restorable=!0),ps(t[r])&&(t[r].matchAllFilter=!0),n[a]=t[r]):"dashboard"===t[r].origin?(delete t[r].origin,delete t[r].restorable):-1===a&&"scope"===t[r].origin&&t[r].restorable&&n.push(t[r])}return n}([...this._variable.state.originFilters||[]],n);this._variable.setState({filters:n.filter(e=>!e.origin),originFilters:r})}}function nn(e){var t;const n=[Ps(e.key,e.keyLabel),e.operator];return gs(e.operator)?e.values.forEach((t,r)=>{var a;n.push(Ps(t,null==(a=e.valueLabels)?void 0:a[r]))}):n.push(Ps(e.value,null==(t=e.valueLabels)?void 0:t[0])),n}function rn(e){if("string"!=typeof e||0===e.length)return null;const[t,n,r]=e.split("#"),[a,s,i,o,...l]=t.split("|").reduce((e,t)=>{const[n,r]=t.split(",");return e.push(n,null!=r?r:n),e},[]).map(Rs);return{key:a,keyLabel:s,operator:i,value:l[0],values:gs(i)?l.filter((e,t)=>t%2==0):void 0,valueLabels:l.filter((e,t)=>t%2==1),condition:"",...(u=n,("scope"===u||"dashboard"===u)&&{origin:n}),...!!r&&{restorable:!0}};var u}function an(e){return null!==e&&"string"==typeof e.key&&"string"==typeof e.value}var sn=n(977);function on(e){let t=e.activeElement;for(;null!=(null==(n=t)||null==(n=n.shadowRoot)?void 0:n.activeElement);){var n;t=t.shadowRoot.activeElement}return t}function ln(e,t){if(!e||!t)return!1;const n=null==t.getRootNode?void 0:t.getRootNode();if(e.contains(t))return!0;if(n&&(0,sn.Ng)(n)){let n=t;for(;n;){if(e===n)return!0;n=n.parentNode||n.host}}return!1}function un(){const e=navigator.userAgentData;return null!=e&&e.platform?e.platform:navigator.platform}function dn(){const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(e=>{let{brand:t,version:n}=e;return t+"/"+n}).join(" "):navigator.userAgent}function cn(e){return!(0!==e.mozInputSource||!e.isTrusted)||(pn()&&e.pointerType?"click"===e.type&&1===e.buttons:0===e.detail&&!e.pointerType)}function hn(e){return!dn().includes("jsdom/")&&(!pn()&&0===e.width&&0===e.height||pn()&&1===e.width&&1===e.height&&0===e.pressure&&0===e.detail&&"mouse"===e.pointerType||e.width<1&&e.height<1&&0===e.pressure&&0===e.detail&&"touch"===e.pointerType)}function mn(){return/apple/i.test(navigator.vendor)}function pn(){const e=/android/i;return e.test(un())||e.test(dn())}function fn(e){return(null==e?void 0:e.ownerDocument)||document}function _n(e,t){if(null==t)return!1;if("composedPath"in e)return e.composedPath().includes(t);const n=e;return null!=n.target&&t.contains(n.target)}function gn(e){return"composedPath"in e?e.composedPath()[0]:e.target}function yn(e){e.preventDefault(),e.stopPropagation()}function vn(e){return!!e&&("combobox"===e.getAttribute("role")&&function(e){return(0,sn.sb)(e)&&e.matches("input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])")}(e))}var bn=n(8015),Mn=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],wn=Mn.join(","),Ln="undefined"==typeof Element,Sn=Ln?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,kn=!Ln&&Element.prototype.getRootNode?function(e){var t;return null==e||null===(t=e.getRootNode)||void 0===t?void 0:t.call(e)}:function(e){return null==e?void 0:e.ownerDocument},Dn=function e(t,n){var r;void 0===n&&(n=!0);var a=null==t||null===(r=t.getAttribute)||void 0===r?void 0:r.call(t,"inert");return""===a||"true"===a||n&&t&&e(t.parentNode)},Tn=function(e,t,n){if(Dn(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(wn));return t&&Sn.call(e,wn)&&r.unshift(e),r=r.filter(n)},xn=function e(t,n,r){for(var a=[],s=Array.from(t);s.length;){var i=s.shift();if(!Dn(i,!1))if("SLOT"===i.tagName){var o=i.assignedElements(),l=e(o.length?o:i.children,!0,r);r.flatten?a.push.apply(a,l):a.push({scopeParent:i,candidates:l})}else{Sn.call(i,wn)&&r.filter(i)&&(n||!t.includes(i))&&a.push(i);var u=i.shadowRoot||"function"==typeof r.getShadowRoot&&r.getShadowRoot(i),d=!Dn(u,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(i));if(u&&d){var c=e(!0===u?i.children:u.children,!0,r);r.flatten?a.push.apply(a,c):a.push({scopeParent:i,candidates:c})}else s.unshift.apply(s,i.children)}}return a},Yn=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},En=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||function(e){var t,n=null==e||null===(t=e.getAttribute)||void 0===t?void 0:t.call(e,"contenteditable");return""===n||"true"===n}(e))&&!Yn(e)?0:e.tabIndex},On=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},An=function(e){return"INPUT"===e.tagName},Cn=function(e){return function(e){return An(e)&&"radio"===e.type}(e)&&!function(e){if(!e.name)return!0;var t,n=e.form||kn(e),r=function(e){return n.querySelectorAll('input[type="radio"][name="'+e+'"]')};if("undefined"!=typeof window&&void 0!==window.CSS&&"function"==typeof window.CSS.escape)t=r(window.CSS.escape(e.name));else try{t=r(e.name)}catch(e){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",e.message),!1}var a=function(e,t){for(var n=0;nsummary:first-of-type")?e.parentElement:e;if(Sn.call(a,"details:not([open]) *"))return!0;if(n&&"full"!==n&&"legacy-full"!==n){if("non-zero-area"===n)return Rn(e)}else{if("function"==typeof r){for(var s=e;e;){var i=e.parentElement,o=kn(e);if(i&&!i.shadowRoot&&!0===r(i))return Rn(e);e=e.assignedSlot?e.assignedSlot:i||o===e.ownerDocument?i:o.host}e=s}if(function(e){var t,n,r,a,s=e&&kn(e),i=null===(t=s)||void 0===t?void 0:t.host,o=!1;if(s&&s!==e)for(o=!!(null!==(n=i)&&void 0!==n&&null!==(r=n.ownerDocument)&&void 0!==r&&r.contains(i)||null!=e&&null!==(a=e.ownerDocument)&&void 0!==a&&a.contains(e));!o&&i;){var l,u,d;o=!(null===(u=i=null===(l=s=kn(i))||void 0===l?void 0:l.host)||void 0===u||null===(d=u.ownerDocument)||void 0===d||!d.contains(i))}return o}(e))return!e.getClientRects().length;if("legacy-full"!==n)return!0}return!1},jn=function(e,t){return!(t.disabled||Dn(t)||function(e){return An(e)&&"hidden"===e.type}(t)||Pn(t,e)||function(e){return"DETAILS"===e.tagName&&Array.prototype.slice.apply(e.children).some(function(e){return"SUMMARY"===e.tagName})}(t)||function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if("FIELDSET"===t.tagName&&t.disabled){for(var n=0;n=0)},In=function e(t){var n=[],r=[];return t.forEach(function(t,a){var s=!!t.scopeParent,i=s?t.scopeParent:t,o=function(e,t){var n=En(e);return n<0&&t&&!Yn(e)?0:n}(i,s),l=s?e(t.candidates):i;0===o?s?n.push.apply(n,l):n.push(i):r.push({documentOrder:a,tabIndex:o,item:t,isScope:s,content:l})}),r.sort(On).reduce(function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e},[]).concat(n)},Fn=function(e,t){var n;return n=(t=t||{}).getShadowRoot?xn([e],t.includeContainer,{filter:Hn.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:Nn}):Tn(e,t.includeContainer,Hn.bind(null,t)),In(n)},Wn=n(8398),Vn=n(8083),zn="undefined"!=typeof document?d.useLayoutEffect:function(){};function $n(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if("function"==typeof e&&e.toString()===t.toString())return!0;let n,r,a;if(e&&t&&"object"==typeof e){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;0!==r--;)if(!$n(e[r],t[r]))return!1;return!0}if(a=Object.keys(e),n=a.length,n!==Object.keys(t).length)return!1;for(r=n;0!==r--;)if(!{}.hasOwnProperty.call(t,a[r]))return!1;for(r=n;0!==r--;){const n=a[r];if(("_owner"!==n||!e.$$typeof)&&!$n(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function Bn(e){if("undefined"==typeof window)return 1;return(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Un(e,t){const n=Bn(e);return Math.round(t*n)/n}function qn(e){const t=d.useRef(e);return zn(()=>{t.current=e}),t}const Gn=(e,t)=>({...(0,Vn.UU)(e),options:[e,t]}),Jn=(e,t)=>({...(0,Vn.Ej)(e),options:[e,t]});const Kn={...c},Qn=Kn.useInsertionEffect||(e=>e());function Zn(e){const t=d.useRef(()=>{0});return Qn(()=>{t.current=e}),d.useCallback(function(){for(var e=arguments.length,n=new Array(e),r=0;r=e.current.length}function sr(e,t){return or(e,{disabledIndices:t})}function ir(e,t){return or(e,{decrement:!0,startingIndex:e.current.length,disabledIndices:t})}function or(e,t){let{startingIndex:n=-1,decrement:r=!1,disabledIndices:a,amount:s=1}=void 0===t?{}:t;const i=e.current;let o=n;do{o+=r?-s:s}while(o>=0&&o<=i.length-1&&hr(i,o,a));return o}function lr(e,t){let{event:n,orientation:r,loop:a,rtl:s,cols:i,disabledIndices:o,minIndex:l,maxIndex:u,prevIndex:d,stopEvent:c=!1}=t,h=d;if(n.key===Xn){if(c&&yn(n),-1===d)h=u;else if(h=or(e,{startingIndex:h,amount:i,decrement:!0,disabledIndices:o}),a&&(d-ie?n:n-i}ar(e,h)&&(h=d)}if(n.key===er&&(c&&yn(n),-1===d?h=l:(h=or(e,{startingIndex:d,amount:i,disabledIndices:o}),a&&d+i>u&&(h=or(e,{startingIndex:d%i-i,amount:i,disabledIndices:o}))),ar(e,h)&&(h=d)),"both"===r){const t=(0,bn.RI)(d/i);n.key===(s?tr:nr)&&(c&&yn(n),d%i!==i-1?(h=or(e,{startingIndex:d,disabledIndices:o}),a&&rr(h,i,t)&&(h=or(e,{startingIndex:d-d%i-1,disabledIndices:o}))):a&&(h=or(e,{startingIndex:d-d%i-1,disabledIndices:o})),rr(h,i,t)&&(h=d)),n.key===(s?nr:tr)&&(c&&yn(n),d%i!==0?(h=or(e,{startingIndex:d,decrement:!0,disabledIndices:o}),a&&rr(h,i,t)&&(h=or(e,{startingIndex:d+(i-d%i),decrement:!0,disabledIndices:o}))):a&&(h=or(e,{startingIndex:d+(i-d%i),decrement:!0,disabledIndices:o})),rr(h,i,t)&&(h=d));const r=(0,bn.RI)(u/i)===t;ar(e,h)&&(h=a&&r?n.key===(s?nr:tr)?u:or(e,{startingIndex:d-d%i-1,disabledIndices:o}):d)}return h}function ur(e,t,n){const r=[];let a=0;return e.forEach((e,s)=>{let{width:i,height:o}=e,l=!1;for(n&&(a=0);!l;){const e=[];for(let n=0;nnull==r[e])?(e.forEach(e=>{r[e]=s}),l=!0):a++}}),[...r]}function dr(e,t,n,r,a){if(-1===e)return-1;const s=n.indexOf(e),i=t[e];switch(a){case"tl":return s;case"tr":return i?s+i.width-1:s;case"bl":return i?s+(i.height-1)*r:s;case"br":return n.lastIndexOf(e)}}function cr(e,t){return t.flatMap((t,n)=>e.includes(t)?[n]:[])}function hr(e,t,n){if(n)return n.includes(t);const r=e[t];return null==r||r.hasAttribute("disabled")||"true"===r.getAttribute("aria-disabled")}var mr="undefined"!=typeof document?d.useLayoutEffect:d.useEffect;const pr=[tr,nr],fr=[Xn,er];function _r(){return _r=Object.assign?Object.assign.bind():function(e){for(var t=1;t"floating-ui-"+Math.random().toString(36).slice(2,6)+yr++;const br=Kn.useId||function(){const[e,t]=d.useState(()=>gr?vr():void 0);return mr(()=>{null==e&&t(vr())},[]),d.useEffect(()=>{gr=!0},[]),e};function Mr(){const e=new Map;return{emit(t,n){var r;null==(r=e.get(t))||r.forEach(e=>e(n))},on(t,n){e.set(t,[...e.get(t)||[],n])},off(t,n){var r;e.set(t,(null==(r=e.get(t))?void 0:r.filter(e=>e!==n))||[])}}}const wr=d.createContext(null),Lr=d.createContext(null),Sr=()=>{var e;return(null==(e=d.useContext(wr))?void 0:e.id)||null},kr=()=>d.useContext(Lr);function Dr(e){return"data-floating-ui-"+e}function Tr(e){const t=(0,d.useRef)(e);return mr(()=>{t.current=e}),t}let xr=0;function Yr(e,t){void 0===t&&(t={});const{preventScroll:n=!1,cancelPrevious:r=!0,sync:a=!1}=t;r&&cancelAnimationFrame(xr);const s=()=>null==e?void 0:e.focus({preventScroll:n});a?s():xr=requestAnimationFrame(s)}function Er(e,t){let n=e.filter(e=>{var n;return e.parentId===t&&(null==(n=e.context)?void 0:n.open)}),r=n;for(;r.length;)r=e.filter(e=>{var t;return null==(t=r)?void 0:t.some(t=>{var n;return e.parentId===t.id&&(null==(n=e.context)?void 0:n.open)})}),n=n.concat(r);return n}let Or=new WeakMap,Ar=new WeakSet,Cr={},Rr=0;const Pr=e=>e&&(e.host||Pr(e.parentNode));function jr(e,t,n,r){const a="data-floating-ui-inert",s=r?"inert":n?"aria-hidden":null,i=(o=t,e.map(e=>{if(o.contains(e))return e;const t=Pr(e);return o.contains(t)?t:null}).filter(e=>null!=e));var o;const l=new Set,u=new Set(i),d=[];Cr[a]||(Cr[a]=new WeakMap);const c=Cr[a];return i.forEach(function e(t){if(!t||l.has(t))return;l.add(t),t.parentNode&&e(t.parentNode)}),function e(t){if(!t||u.has(t))return;[].forEach.call(t.children,t=>{if("script"!==(0,sn.mq)(t))if(l.has(t))e(t);else{const e=s?t.getAttribute(s):null,n=null!==e&&"false"!==e,r=(Or.get(t)||0)+1,i=(c.get(t)||0)+1;Or.set(t,r),c.set(t,i),d.push(t),1===r&&n&&Ar.add(t),1===i&&t.setAttribute(a,""),!n&&s&&t.setAttribute(s,"true")}})}(t),l.clear(),Rr++,()=>{d.forEach(e=>{const t=(Or.get(e)||0)-1,n=(c.get(e)||0)-1;Or.set(e,t),c.set(e,n),t||(!Ar.has(e)&&s&&e.removeAttribute(s),Ar.delete(e)),n||e.removeAttribute(a)}),Rr--,Rr||(Or=new WeakMap,Or=new WeakMap,Ar=new WeakSet,Cr={})}}function Hr(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);const r=fn(e[0]).body;return jr(e.concat(Array.from(r.querySelectorAll("[aria-live]"))),r,t,n)}const Nr=()=>({getShadowRoot:!0,displayCheck:"function"==typeof ResizeObserver&&ResizeObserver.toString().includes("[native code]")?"full":"none"});function Ir(e,t){const n=Fn(e,Nr());"prev"===t&&n.reverse();const r=n.indexOf(on(fn(e)));return n.slice(r+1)[0]}function Fr(){return Ir(document.body,"next")}function Wr(){return Ir(document.body,"prev")}function Vr(e,t){const n=t||e.currentTarget,r=e.relatedTarget;return!r||!ln(n,r)}function zr(e){Fn(e,Nr()).forEach(e=>{e.dataset.tabindex=e.getAttribute("tabindex")||"",e.setAttribute("tabindex","-1")})}function $r(e){e.querySelectorAll("[data-tabindex]").forEach(e=>{const t=e.dataset.tabindex;delete e.dataset.tabindex,t?e.setAttribute("tabindex",t):e.removeAttribute("tabindex")})}const Br={border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"fixed",whiteSpace:"nowrap",width:"1px",top:0,left:0};function Ur(e){"Tab"===e.key&&(e.target,clearTimeout(undefined))}const qr=d.forwardRef(function(e,t){const[n,r]=d.useState();mr(()=>(mn()&&r("button"),document.addEventListener("keydown",Ur),()=>{document.removeEventListener("keydown",Ur)}),[]);const a={ref:t,tabIndex:0,role:n,"aria-hidden":!n||void 0,[Dr("focus-guard")]:"",style:Br};return d.createElement("span",_r({},e,a))}),Gr=d.createContext(null),Jr=Dr("portal");function Kr(e){const{children:t,id:n,root:r,preserveTabOrder:a=!0}=e,s=function(e){void 0===e&&(e={});const{id:t,root:n}=e,r=br(),a=Qr(),[s,i]=d.useState(null),o=d.useRef(null);return mr(()=>()=>{null==s||s.remove(),queueMicrotask(()=>{o.current=null})},[s]),mr(()=>{if(!r)return;if(o.current)return;const e=t?document.getElementById(t):null;if(!e)return;const n=document.createElement("div");n.id=r,n.setAttribute(Jr,""),e.appendChild(n),o.current=n,i(n)},[t,r]),mr(()=>{if(null===n)return;if(!r)return;if(o.current)return;let e=n||(null==a?void 0:a.portalNode);e&&!(0,sn.vq)(e)&&(e=e.current),e=e||document.body;let s=null;t&&(s=document.createElement("div"),s.id=t,e.appendChild(s));const l=document.createElement("div");l.id=r,l.setAttribute(Jr,""),e=s||e,e.appendChild(l),o.current=l,i(l)},[t,n,r,a]),s}({id:n,root:r}),[i,o]=d.useState(null),l=d.useRef(null),u=d.useRef(null),c=d.useRef(null),h=d.useRef(null),m=null==i?void 0:i.modal,p=null==i?void 0:i.open,f=!!i&&!i.modal&&i.open&&a&&!(!r&&!s);return d.useEffect(()=>{if(s&&a&&!m)return s.addEventListener("focusin",e,!0),s.addEventListener("focusout",e,!0),()=>{s.removeEventListener("focusin",e,!0),s.removeEventListener("focusout",e,!0)};function e(e){if(s&&Vr(e)){("focusin"===e.type?$r:zr)(s)}}},[s,a,m]),d.useEffect(()=>{s&&(p||$r(s))},[p,s]),d.createElement(Gr.Provider,{value:d.useMemo(()=>({preserveTabOrder:a,beforeOutsideRef:l,afterOutsideRef:u,beforeInsideRef:c,afterInsideRef:h,portalNode:s,setFocusManagerState:o}),[a,s])},f&&s&&d.createElement(qr,{"data-type":"outside",ref:l,onFocus:e=>{if(Vr(e,s)){var t;null==(t=c.current)||t.focus()}else{const e=Wr()||(null==i?void 0:i.refs.domReference.current);null==e||e.focus()}}}),f&&s&&d.createElement("span",{"aria-owns":s.id,style:Br}),s&&Wn.createPortal(t,s),f&&s&&d.createElement(qr,{"data-type":"outside",ref:u,onFocus:e=>{if(Vr(e,s)){var t;null==(t=h.current)||t.focus()}else{const t=Fr()||(null==i?void 0:i.refs.domReference.current);null==t||t.focus(),(null==i?void 0:i.closeOnFocusOut)&&(null==i||i.onOpenChange(!1,e.nativeEvent,"focus-out"))}}}))}const Qr=()=>d.useContext(Gr),Zr="data-floating-ui-focusable";function Xr(e){return e?e.hasAttribute(Zr)?e:e.querySelector("["+Zr+"]")||e:null}let ea=[];function ta(e){ea=ea.filter(e=>e.isConnected);let t=e;if(t&&"body"!==(0,sn.mq)(t)){if(!function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==Sn.call(e,wn)&&Hn(t,e)}(t,Nr())){const e=Fn(t,Nr())[0];e&&(t=e)}ea.push(t),ea.length>20&&(ea=ea.slice(-20))}}function na(){return ea.slice().reverse().find(e=>e.isConnected)}const ra=d.forwardRef(function(e,t){return d.createElement("button",_r({},e,{type:"button",ref:t,tabIndex:-1,style:Br}))});function aa(e){const{context:t,children:n,disabled:r=!1,order:a=["content"],guards:s=!0,initialFocus:i=0,returnFocus:o=!0,restoreFocus:l=!1,modal:u=!0,visuallyHiddenDismiss:c=!1,closeOnFocusOut:h=!0}=e,{open:m,refs:p,nodeId:f,onOpenChange:_,events:g,dataRef:y,floatingId:v,elements:{domReference:b,floating:M}}=t,w="number"==typeof i&&i<0,L=vn(b)&&w,S="undefined"==typeof HTMLElement||!("inert"in HTMLElement.prototype)||s,k=Tr(a),D=Tr(i),T=Tr(o),x=kr(),Y=Qr(),E=d.useRef(null),O=d.useRef(null),A=d.useRef(!1),C=d.useRef(!1),R=d.useRef(-1),P=null!=Y,j=Xr(M),H=Zn(function(e){return void 0===e&&(e=j),e?Fn(e,Nr()):[]}),N=Zn(e=>{const t=H(e);return k.current.map(e=>b&&"reference"===e?b:j&&"floating"===e?j:t).filter(Boolean).flat()});function I(e){return!r&&c&&u?d.createElement(ra,{ref:"start"===e?E:O,onClick:e=>_(!1,e.nativeEvent)},"string"==typeof c?c:"Dismiss"):null}d.useEffect(()=>{if(r)return;if(!u)return;function e(e){if("Tab"===e.key){ln(j,on(fn(j)))&&0===H().length&&!L&&yn(e);const t=N(),n=gn(e);"reference"===k.current[0]&&n===b&&(yn(e),e.shiftKey?Yr(t[t.length-1]):Yr(t[1])),"floating"===k.current[1]&&n===j&&e.shiftKey&&(yn(e),Yr(t[0]))}}const t=fn(j);return t.addEventListener("keydown",e),()=>{t.removeEventListener("keydown",e)}},[r,b,j,u,k,L,H,N]),d.useEffect(()=>{if(!r&&M)return M.addEventListener("focusin",e),()=>{M.removeEventListener("focusin",e)};function e(e){const t=gn(e),n=H().indexOf(t);-1!==n&&(R.current=n)}},[r,M,H]),d.useEffect(()=>{if(!r&&h)return M&&(0,sn.sb)(b)?(b.addEventListener("focusout",t),b.addEventListener("pointerdown",e),M.addEventListener("focusout",t),()=>{b.removeEventListener("focusout",t),b.removeEventListener("pointerdown",e),M.removeEventListener("focusout",t)}):void 0;function e(){C.current=!0,setTimeout(()=>{C.current=!1})}function t(e){const t=e.relatedTarget;queueMicrotask(()=>{const n=!(ln(b,t)||ln(M,t)||ln(t,M)||ln(null==Y?void 0:Y.portalNode,t)||null!=t&&t.hasAttribute(Dr("focus-guard"))||x&&(Er(x.nodesRef.current,f).find(e=>{var n,r;return ln(null==(n=e.context)?void 0:n.elements.floating,t)||ln(null==(r=e.context)?void 0:r.elements.domReference,t)})||function(e,t){var n;let r=[],a=null==(n=e.find(e=>e.id===t))?void 0:n.parentId;for(;a;){const t=e.find(e=>e.id===a);a=null==t?void 0:t.parentId,t&&(r=r.concat(t))}return r}(x.nodesRef.current,f).find(e=>{var n,r;return(null==(n=e.context)?void 0:n.elements.floating)===t||(null==(r=e.context)?void 0:r.elements.domReference)===t})));if(l&&n&&on(fn(j))===fn(j).body){(0,sn.sb)(j)&&j.focus();const e=R.current,t=H(),n=t[e]||t[t.length-1]||j;(0,sn.sb)(n)&&n.focus()}!L&&u||!t||!n||C.current||t===na()||(A.current=!0,_(!1,e,"focus-out"))})}},[r,b,M,j,u,f,x,Y,_,h,l,H,L]),d.useEffect(()=>{var e;if(r)return;const t=Array.from((null==Y||null==(e=Y.portalNode)?void 0:e.querySelectorAll("["+Dr("portal")+"]"))||[]);if(M){const e=[M,...t,E.current,O.current,k.current.includes("reference")||L?b:null].filter(e=>null!=e),n=u||L?Hr(e,S,!S):Hr(e);return()=>{n()}}},[r,b,M,u,k,Y,L,S]),mr(()=>{if(r||!(0,sn.sb)(j))return;const e=on(fn(j));queueMicrotask(()=>{const t=N(j),n=D.current,r=("number"==typeof n?t[n]:n.current)||j,a=ln(j,e);w||a||!m||Yr(r,{preventScroll:r===j})})},[r,m,j,w,N,D]),mr(()=>{if(r||!j)return;let e=!1;const t=fn(j),n=on(t);let a=y.current.openEvent;function s(t){let{open:n,reason:r,event:s,nested:i}=t;n&&(a=s),"escape-key"===r&&p.domReference.current&&ta(p.domReference.current),"hover"===r&&"mouseleave"===s.type&&(A.current=!0),"outside-press"===r&&(i?(A.current=!1,e=!0):A.current=!(cn(s)||hn(s)))}ta(n),g.on("openchange",s);const i=t.createElement("span");return i.setAttribute("tabindex","-1"),i.setAttribute("aria-hidden","true"),Object.assign(i.style,Br),P&&b&&b.insertAdjacentElement("afterend",i),()=>{g.off("openchange",s);const n=on(t),r=ln(M,n)||x&&Er(x.nodesRef.current,f).some(e=>{var t;return ln(null==(t=e.context)?void 0:t.elements.floating,n)});(r||a&&["click","mousedown"].includes(a.type))&&p.domReference.current&&ta(p.domReference.current);const o="boolean"==typeof T.current?na()||i:T.current.current||i;queueMicrotask(()=>{T.current&&!A.current&&(0,sn.sb)(o)&&(o===n||n===t.body||r)&&o.focus({preventScroll:e}),i.remove()})}},[r,M,j,T,y,p,g,x,f,P,b]),d.useEffect(()=>{queueMicrotask(()=>{A.current=!1})},[r]),mr(()=>{if(!r&&Y)return Y.setFocusManagerState({modal:u,closeOnFocusOut:h,open:m,onOpenChange:_,refs:p}),()=>{Y.setFocusManagerState(null)}},[r,Y,u,m,_,p,h]),mr(()=>{if(r)return;if(!j)return;if("function"!=typeof MutationObserver)return;if(w)return;const e=()=>{const e=j.getAttribute("tabindex"),t=H(),n=on(fn(M)),r=t.indexOf(n);-1!==r&&(R.current=r),k.current.includes("floating")||n!==p.domReference.current&&0===t.length?"0"!==e&&j.setAttribute("tabindex","0"):"-1"!==e&&j.setAttribute("tabindex","-1")};e();const t=new MutationObserver(e);return t.observe(j,{childList:!0,subtree:!0,attributes:!0}),()=>{t.disconnect()}},[r,M,j,p,k,H,w]);const F=!r&&S&&(!u||!L)&&(P||u);return d.createElement(d.Fragment,null,F&&d.createElement(qr,{"data-type":"inside",ref:null==Y?void 0:Y.beforeInsideRef,onFocus:e=>{if(u){const e=N();Yr("reference"===a[0]?e[0]:e[e.length-1])}else if(null!=Y&&Y.preserveTabOrder&&Y.portalNode)if(A.current=!1,Vr(e,Y.portalNode)){const e=Fr()||b;null==e||e.focus()}else{var t;null==(t=Y.beforeOutsideRef.current)||t.focus()}}}),!L&&I("start"),n,I("end"),F&&d.createElement(qr,{"data-type":"inside",ref:null==Y?void 0:Y.afterInsideRef,onFocus:e=>{if(u)Yr(N()[0]);else if(null!=Y&&Y.preserveTabOrder&&Y.portalNode)if(h&&(A.current=!0),Vr(e,Y.portalNode)){const e=Wr()||b;null==e||e.focus()}else{var t;null==(t=Y.afterOutsideRef.current)||t.focus()}}}))}const sa={pointerdown:"onPointerDown",mousedown:"onMouseDown",click:"onClick"},ia={pointerdown:"onPointerDownCapture",mousedown:"onMouseDownCapture",click:"onClickCapture"},oa=e=>{var t,n;return{escapeKey:"boolean"==typeof e?e:null!=(t=null==e?void 0:e.escapeKey)&&t,outsidePress:"boolean"==typeof e?e:null==(n=null==e?void 0:e.outsidePress)||n}};function la(e){void 0===e&&(e={});const{nodeId:t}=e,n=function(e){const{open:t=!1,onOpenChange:n,elements:r}=e,a=br(),s=d.useRef({}),[i]=d.useState(()=>Mr()),o=null!=Sr(),[l,u]=d.useState(r.reference),c=Zn((e,t,r)=>{s.current.openEvent=e?t:void 0,i.emit("openchange",{open:e,event:t,reason:r,nested:o}),null==n||n(e,t,r)}),h=d.useMemo(()=>({setPositionReference:u}),[]),m=d.useMemo(()=>({reference:l||r.reference||null,floating:r.floating||null,domReference:r.reference}),[l,r.reference,r.floating]);return d.useMemo(()=>({dataRef:s,open:t,onOpenChange:c,elements:m,events:i,floatingId:a,refs:h}),[t,c,m,i,a,h])}({...e,elements:{reference:null,floating:null,...e.elements}}),r=e.rootContext||n,a=r.elements,[s,i]=d.useState(null),[o,l]=d.useState(null),u=(null==a?void 0:a.domReference)||s,c=d.useRef(null),h=kr();mr(()=>{u&&(c.current=u)},[u]);const m=function(e){void 0===e&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:a,elements:{reference:s,floating:i}={},transform:o=!0,whileElementsMounted:l,open:u}=e,[c,h]=d.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[m,p]=d.useState(r);$n(m,r)||p(r);const[f,_]=d.useState(null),[g,y]=d.useState(null),v=d.useCallback(e=>{e!==L.current&&(L.current=e,_(e))},[]),b=d.useCallback(e=>{e!==S.current&&(S.current=e,y(e))},[]),M=s||f,w=i||g,L=d.useRef(null),S=d.useRef(null),k=d.useRef(c),D=null!=l,T=qn(l),x=qn(a),Y=qn(u),E=d.useCallback(()=>{if(!L.current||!S.current)return;const e={placement:t,strategy:n,middleware:m};x.current&&(e.platform=x.current),(0,Vn.rD)(L.current,S.current,e).then(e=>{const t={...e,isPositioned:!1!==Y.current};O.current&&!$n(k.current,t)&&(k.current=t,Wn.flushSync(()=>{h(t)}))})},[m,t,n,x,Y]);zn(()=>{!1===u&&k.current.isPositioned&&(k.current.isPositioned=!1,h(e=>({...e,isPositioned:!1})))},[u]);const O=d.useRef(!1);zn(()=>(O.current=!0,()=>{O.current=!1}),[]),zn(()=>{if(M&&(L.current=M),w&&(S.current=w),M&&w){if(T.current)return T.current(M,w,E);E()}},[M,w,E,T,D]);const A=d.useMemo(()=>({reference:L,floating:S,setReference:v,setFloating:b}),[v,b]),C=d.useMemo(()=>({reference:M,floating:w}),[M,w]),R=d.useMemo(()=>{const e={position:n,left:0,top:0};if(!C.floating)return e;const t=Un(C.floating,c.x),r=Un(C.floating,c.y);return o?{...e,transform:"translate("+t+"px, "+r+"px)",...Bn(C.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:t,top:r}},[n,o,C.floating,c.x,c.y]);return d.useMemo(()=>({...c,update:E,refs:A,elements:C,floatingStyles:R}),[c,E,A,C,R])}({...e,elements:{...a,...o&&{reference:o}}}),p=d.useCallback(e=>{const t=(0,sn.vq)(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),contextElement:e}:e;l(t),m.refs.setReference(t)},[m.refs]),f=d.useCallback(e=>{((0,sn.vq)(e)||null===e)&&(c.current=e,i(e)),((0,sn.vq)(m.refs.reference.current)||null===m.refs.reference.current||null!==e&&!(0,sn.vq)(e))&&m.refs.setReference(e)},[m.refs]),_=d.useMemo(()=>({...m.refs,setReference:f,setPositionReference:p,domReference:c}),[m.refs,f,p]),g=d.useMemo(()=>({...m.elements,domReference:u}),[m.elements,u]),y=d.useMemo(()=>({...m,...r,refs:_,elements:g,nodeId:t}),[m,_,g,t,r]);return mr(()=>{r.dataRef.current.floatingContext=y;const e=null==h?void 0:h.nodesRef.current.find(e=>e.id===t);e&&(e.context=y)}),d.useMemo(()=>({...m,context:y,refs:_,elements:g}),[m,_,g,y])}const ua="active",da="selected";function ca(e,t,n){const r=new Map,a="item"===n;let s=e;if(a&&e){const{[ua]:t,[da]:n,...r}=e;s=r}return{..."floating"===n&&{tabIndex:-1,[Zr]:""},...s,...t.map(t=>{const r=t?t[n]:null;return"function"==typeof r?e?r(e):null:r}).concat(e).reduce((e,t)=>t?(Object.entries(t).forEach(t=>{let[n,s]=t;var i;a&&[ua,da].includes(n)||(0===n.indexOf("on")?(r.has(n)||r.set(n,[]),"function"==typeof s&&(null==(i=r.get(n))||i.push(s),e[n]=function(){for(var e,t=arguments.length,a=new Array(t),s=0;se(...a)).find(e=>void 0!==e)})):e[n]=s)}),e):e,{})}}let ha=!1;function ma(e,t,n){switch(e){case"vertical":return t;case"horizontal":return n;default:return t||n}}function pa(e,t){return ma(t,e===Xn||e===er,e===tr||e===nr)}function fa(e,t,n){return ma(t,e===er,n?e===tr:e===nr)||"Enter"===e||" "===e||""===e}function _a(e,t,n){return ma(t,n?e===nr:e===tr,e===Xn)}function ga(e,t){const{open:n,onOpenChange:r,elements:a}=e,{listRef:s,activeIndex:i,onNavigate:o=()=>{},enabled:l=!0,selectedIndex:u=null,allowEscape:c=!1,loop:h=!1,nested:m=!1,rtl:p=!1,virtual:f=!1,focusItemOnOpen:_="auto",focusItemOnHover:g=!0,openOnArrowKeyDown:y=!0,disabledIndices:v,orientation:b="vertical",cols:M=1,scrollItemIntoView:w=!0,virtualItemRef:L,itemSizes:S,dense:k=!1}=t;const D=Tr(Xr(a.floating)),T=Sr(),x=kr(),Y=Zn(o),E=vn(a.domReference),O=d.useRef(_),A=d.useRef(null!=u?u:-1),C=d.useRef(null),R=d.useRef(!0),P=d.useRef(Y),j=d.useRef(!!a.floating),H=d.useRef(n),N=d.useRef(!1),I=d.useRef(!1),F=Tr(v),W=Tr(n),V=Tr(w),z=Tr(u),[$,B]=d.useState(),[U,q]=d.useState(),G=Zn(function(e,t,n){function r(e){f?(B(e.id),null==x||x.events.emit("virtualfocus",e),L&&(L.current=e)):Yr(e,{preventScroll:!0,sync:!(!un().toLowerCase().startsWith("mac")||navigator.maxTouchPoints||!mn())&&(ha||N.current)})}void 0===n&&(n=!1);const a=e.current[t.current];a&&r(a),requestAnimationFrame(()=>{const s=e.current[t.current]||a;if(!s)return;a||r(s);const i=V.current;i&&K&&(n||!R.current)&&(null==s.scrollIntoView||s.scrollIntoView("boolean"==typeof i?{block:"nearest",inline:"nearest"}:i))})});mr(()=>{document.createElement("div").focus({get preventScroll(){return ha=!0,!1}})},[]),mr(()=>{l&&(n&&a.floating?O.current&&null!=u&&(I.current=!0,A.current=u,Y(u)):j.current&&(A.current=-1,P.current(null)))},[l,n,a.floating,u,Y]),mr(()=>{if(l&&n&&a.floating)if(null==i){if(N.current=!1,null!=z.current)return;if(j.current&&(A.current=-1,G(s,A)),(!H.current||!j.current)&&O.current&&(null!=C.current||!0===O.current&&null==C.current)){let e=0;const t=()=>{if(null==s.current[0]){if(e<2){(e?requestAnimationFrame:queueMicrotask)(t)}e++}else A.current=null==C.current||fa(C.current,b,p)||m?sr(s,F.current):ir(s,F.current),C.current=null,Y(A.current)};t()}}else ar(s,i)||(A.current=i,G(s,A,I.current),I.current=!1)},[l,n,a.floating,i,z,m,s,b,p,Y,G,F]),mr(()=>{var e;if(!l||a.floating||!x||f||!j.current)return;const t=x.nodesRef.current,n=null==(e=t.find(e=>e.id===T))||null==(e=e.context)?void 0:e.elements.floating,r=on(fn(a.floating)),s=t.some(e=>e.context&&ln(e.context.elements.floating,r));n&&!s&&R.current&&n.focus({preventScroll:!0})},[l,a.floating,x,T,f]),mr(()=>{if(l&&x&&f&&!T)return x.events.on("virtualfocus",e),()=>{x.events.off("virtualfocus",e)};function e(e){q(e.id),L&&(L.current=e)}},[l,x,f,T,L]),mr(()=>{P.current=Y,j.current=!!a.floating}),mr(()=>{n||(C.current=null)},[n]),mr(()=>{H.current=n},[n]);const J=null!=i,K=d.useMemo(()=>{function e(e){if(!n)return;const t=s.current.indexOf(e);-1!==t&&Y(t)}const t={onFocus(t){let{currentTarget:n}=t;e(n)},onClick:e=>{let{currentTarget:t}=e;return t.focus({preventScroll:!0})},...g&&{onMouseMove(t){let{currentTarget:n}=t;e(n)},onPointerLeave(e){let{pointerType:t}=e;R.current&&"touch"!==t&&(A.current=-1,G(s,A),Y(null),f||Yr(D.current,{preventScroll:!0}))}}};return t},[n,D,G,g,s,Y,f]),Q=Zn(e=>{if(R.current=!1,N.current=!0,229===e.which)return;if(!W.current&&e.currentTarget===D.current)return;if(m&&_a(e.key,b,p))return yn(e),r(!1,e.nativeEvent,"list-navigation"),void((0,sn.sb)(a.domReference)&&(f?null==x||x.events.emit("virtualfocus",a.domReference):a.domReference.focus()));const t=A.current,i=sr(s,v),o=ir(s,v);if(E||("Home"===e.key&&(yn(e),A.current=i,Y(A.current)),"End"===e.key&&(yn(e),A.current=o,Y(A.current))),M>1){const t=S||Array.from({length:s.current.length},()=>({width:1,height:1})),n=ur(t,M,k),r=n.findIndex(e=>null!=e&&!hr(s.current,e,v)),a=n.reduce((e,t,n)=>null==t||hr(s.current,t,v)?e:n,-1),l=n[lr({current:n.map(e=>null!=e?s.current[e]:null)},{event:e,orientation:b,loop:h,rtl:p,cols:M,disabledIndices:cr([...v||s.current.map((e,t)=>hr(s.current,t)?t:void 0),void 0],n),minIndex:r,maxIndex:a,prevIndex:dr(A.current>o?i:A.current,t,n,M,e.key===er?"bl":e.key===(p?tr:nr)?"tr":"tl"),stopEvent:!0})];if(null!=l&&(A.current=l,Y(A.current)),"both"===b)return}if(pa(e.key,b)){if(yn(e),n&&!f&&on(e.currentTarget.ownerDocument)===e.currentTarget)return A.current=fa(e.key,b,p)?i:o,void Y(A.current);fa(e.key,b,p)?A.current=h?t>=o?c&&t!==s.current.length?-1:i:or(s,{startingIndex:t,disabledIndices:v}):Math.min(o,or(s,{startingIndex:t,disabledIndices:v})):A.current=h?t<=i?c&&-1!==t?s.current.length:o:or(s,{startingIndex:t,decrement:!0,disabledIndices:v}):Math.max(i,or(s,{startingIndex:t,decrement:!0,disabledIndices:v})),ar(s,A.current)?Y(null):Y(A.current)}}),Z=d.useMemo(()=>f&&n&&J&&{"aria-activedescendant":U||$},[f,n,J,U,$]),X=d.useMemo(()=>({"aria-orientation":"both"===b?void 0:b,...!vn(a.domReference)&&Z,onKeyDown:Q,onPointerMove(){R.current=!0}}),[Z,Q,a.domReference,b]),ee=d.useMemo(()=>{function e(e){"auto"===_&&cn(e.nativeEvent)&&(O.current=!0)}return{...Z,onKeyDown(e){R.current=!1;const t=e.key.startsWith("Arrow"),a=["Home","End"].includes(e.key),i=t||a,o=function(e,t,n){return ma(t,n?e===tr:e===nr,e===er)}(e.key,b,p),l=_a(e.key,b,p),d=pa(e.key,b),c=(m?o:d)||"Enter"===e.key||""===e.key.trim();if(f&&n){const t=null==x?void 0:x.nodesRef.current.find(e=>null==e.parentId),n=x&&t?function(e,t){let n,r=-1;return function t(a,s){s>r&&(n=a,r=s),Er(e,a).forEach(e=>{t(e.id,s+1)})}(t,0),e.find(e=>e.id===n)}(x.nodesRef.current,t.id):null;if(i&&n&&L){const t=new KeyboardEvent("keydown",{key:e.key,bubbles:!0});if(o||l){var h,_;const r=(null==(h=n.context)?void 0:h.elements.domReference)===e.currentTarget,a=l&&!r?null==(_=n.context)?void 0:_.elements.domReference:o?s.current.find(e=>(null==e?void 0:e.id)===$):null;a&&(yn(e),a.dispatchEvent(t),q(void 0))}var g;if((d||a)&&n.context)if(n.context.open&&n.parentId&&e.currentTarget!==n.context.elements.domReference)return yn(e),void(null==(g=n.context.elements.domReference)||g.dispatchEvent(t))}return Q(e)}(n||y||!t)&&(c&&(C.current=m&&d?null:e.key),m?o&&(yn(e),n?(A.current=sr(s,F.current),Y(A.current)):r(!0,e.nativeEvent,"list-navigation")):d&&(null!=u&&(A.current=u),yn(e),!n&&y?r(!0,e.nativeEvent,"list-navigation"):Q(e),n&&Y(A.current)))},onFocus(){n&&!f&&Y(null)},onPointerDown:function(e){O.current=_,"auto"===_&&hn(e.nativeEvent)&&(O.current=!0)},onMouseDown:e,onClick:e}},[$,Z,Q,F,_,s,m,Y,r,n,y,b,p,u,x,f,L]);return d.useMemo(()=>l?{reference:ee,floating:X,item:K}:{},[l,ee,X,K])}const ya=new Map([["select","listbox"],["combobox","listbox"],["label",!1]]);function va(e,t,n){let r,a=n.initialDeps??[];function s(){var s,i,o,l;let u;n.key&&(null==(s=n.debug)?void 0:s.call(n))&&(u=Date.now());const d=e(),c=d.length!==a.length||d.some((e,t)=>a[t]!==e);if(!c)return r;let h;if(a=d,n.key&&(null==(i=n.debug)?void 0:i.call(n))&&(h=Date.now()),r=t(...d),n.key&&(null==(o=n.debug)?void 0:o.call(n))){Math.round(100*(Date.now()-u)),Math.round(100*(Date.now()-h))}return null==(l=null==n?void 0:n.onChange)||l.call(n,r),r}return s.updateDeps=e=>{a=e},s}function ba(e,t){if(void 0===e)throw new Error("Unexpected undefined"+(t?`: ${t}`:""));return e}const Ma=(e,t,n)=>{let r;return function(...a){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,a),n)}},wa=e=>{const{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},La=e=>e,Sa=e=>{const t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let e=t;e<=n;e++)r.push(e);return r},ka=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;const a=e=>{const{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(a(wa(n)),!r.ResizeObserver)return()=>{};const s=new r.ResizeObserver(t=>{const r=()=>{const e=t[0];if(null==e?void 0:e.borderBoxSize){const t=e.borderBoxSize[0];if(t)return void a({width:t.inlineSize,height:t.blockSize})}a(wa(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return s.observe(n,{box:"border-box"}),()=>{s.unobserve(n)}},Da={passive:!0},Ta="undefined"==typeof window||"onscrollend"in window,xa=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;let a=0;const s=e.options.useScrollendEvent&&Ta?()=>{}:Ma(r,()=>{t(a,!1)},e.options.isScrollingResetDelay),i=r=>()=>{const{horizontal:i,isRtl:o}=e.options;a=i?n.scrollLeft*(o?-1:1):n.scrollTop,s(),t(a,r)},o=i(!0),l=i(!1);l(),n.addEventListener("scroll",o,Da);const u=e.options.useScrollendEvent&&Ta;return u&&n.addEventListener("scrollend",l,Da),()=>{n.removeEventListener("scroll",o),u&&n.removeEventListener("scrollend",l)}},Ya=(e,t,n)=>{if(null==t?void 0:t.borderBoxSize){const e=t.borderBoxSize[0];if(e){return Math.round(e[n.options.horizontal?"inlineSize":"blockSize"])}}return e[n.options.horizontal?"offsetWidth":"offsetHeight"]},Ea=(e,{adjustments:t=0,behavior:n},r)=>{var a,s;const i=e+t;null==(s=null==(a=r.scrollElement)?void 0:a.scrollTo)||s.call(a,{[r.options.horizontal?"left":"top"]:i,behavior:n})};class Oa{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null;const t=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{const t=()=>{this._measureElement(e.target,e)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}):null);return{disconnect:()=>{var n;null==(n=t())||n.disconnect(),e=null},observe:e=>{var n;return null==(n=t())?void 0:n.observe(e,{box:"border-box"})},unobserve:e=>{var n;return null==(n=t())?void 0:n.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,n])=>{void 0===n&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:La,rangeExtractor:Sa,onChange:()=>{},measureElement:Ya,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,n;null==(n=(t=this.options).onChange)||n.call(t,this,e)},this.maybeNotify=va(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;const t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t)return void this.maybeNotify();this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{const n=new Map,r=new Map;for(let a=t-1;a>=0;a--){const t=e[a];if(n.has(t.lane))continue;const s=r.get(t.lane);if(null==s||t.end>s.end?r.set(t.lane,t):t.ende.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=va(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,t,n,r,a)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:a}),{key:!1}),this.getMeasurements=va(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:a},s)=>{if(!a)return this.measurementsCache=[],this.itemSizeCache.clear(),[];0===this.measurementsCache.length&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));const i=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const o=this.measurementsCache.slice(0,i);for(let a=i;athis.options.debug}),this.calculateRange=va(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>this.range=e.length>0&&t>0?function({measurements:e,outerSize:t,scrollOffset:n,lanes:r}){const a=e.length-1,s=t=>e[t].start;if(e.length<=r)return{startIndex:0,endIndex:a};let i=Aa(0,a,s,n),o=i;if(1===r)for(;o1){const s=Array(r).fill(0);for(;oe=0&&l.some(e=>e>=n);){const t=e[i];l[t.lane]=t.start,i--}i=Math.max(0,i-i%r),o=Math.min(a,o+(r-1-o%r))}return{startIndex:i,endIndex:o}}({measurements:e,outerSize:t,scrollOffset:n,lanes:r}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=va(()=>{let e=null,t=null;const n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,a)=>null===r||null===a?[]:e({startIndex:r,endIndex:a,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{const t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{const n=this.indexFromElement(e),r=this.measurementsCache[n];if(!r)return;const a=r.key,s=this.elementsCache.get(a);s!==e&&(s&&this.observer.unobserve(s),this.observer.observe(e),this.elementsCache.set(a,e)),e.isConnected&&this.resizeItem(n,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{const n=this.measurementsCache[e];if(!n)return;const r=t-(this.itemSizeCache.get(n.key)??n.size);0!==r&&((void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(n,r,this):n.start{e?this._measureElement(e,void 0):this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))})},this.getVirtualItems=va(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{const n=[];for(let r=0,a=e.length;rthis.options.debug}),this.getVirtualItemForOffset=e=>{const t=this.getMeasurements();if(0!==t.length)return ba(t[Aa(0,t.length-1,e=>ba(t[e]).start,e)])},this.getOffsetForAlignment=(e,t,n=0)=>{const r=this.getSize(),a=this.getScrollOffset();"auto"===t&&(t=e>=a+r?"end":"start"),"center"===t?e+=(n-r)/2:"end"===t&&(e-=r);const s=this.getTotalSize()+this.options.scrollMargin-r;return Math.max(Math.min(s,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));const n=this.measurementsCache[e];if(!n)return;const r=this.getSize(),a=this.getScrollOffset();if("auto"===t)if(n.end>=a+r-this.options.scrollPaddingEnd)t="end";else{if(!(n.start<=a+this.options.scrollPaddingStart))return[a,t];t="start"}const s="end"===t?n.end+this.options.scrollPaddingEnd:n.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(s,t,n.size),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:t="start",behavior:n}={})=>{"smooth"===n&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:n})},this.scrollToIndex=(e,{align:t="auto",behavior:n}={})=>{"smooth"===n&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1));let r=0;const a=t=>{if(!this.targetWindow)return;const r=this.getOffsetForIndex(e,t);if(!r)return void console.warn("Failed to get offset for index:",e);const[a,i]=r;this._scrollToOffset(a,{adjustments:void 0,behavior:n}),this.targetWindow.requestAnimationFrame(()=>{const t=this.getScrollOffset(),n=this.getOffsetForIndex(e,i);var r,a;n?(r=n[0],a=t,Math.abs(r-a)<1.01||s(i)):console.warn("Failed to get offset for index:",e)})},s=t=>{this.targetWindow&&(r++,r<10?this.targetWindow.requestAnimationFrame(()=>a(t)):console.warn(`Failed to scroll to index ${e} after 10 attempts.`))};a(t)},this.scrollBy=(e,{behavior:t}={})=>{"smooth"===t&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;const t=this.getMeasurements();let n;if(0===t.length)n=this.options.paddingStart;else if(1===this.options.lanes)n=(null==(e=t[t.length-1])?void 0:e.end)??0;else{const e=Array(this.options.lanes).fill(null);let r=t.length-1;for(;r>=0&&e.some(e=>null===e);){const n=t[r];null===e[n.lane]&&(e[n.lane]=n.end),r--}n=Math.max(...e.filter(e=>null!==e))}return Math.max(n-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(e)}}const Aa=(e,t,n,r)=>{for(;e<=t;){const a=(e+t)/2|0,s=n(a);if(sr))return a;t=a-1}}return e>0?e-1:0};const Ca="undefined"!=typeof document?d.useLayoutEffect:d.useEffect;function Ra(e){const t=d.useReducer(()=>({}),{})[1],n={...e,onChange:(n,r)=>{var a;r?(0,Wn.flushSync)(t):t(),null==(a=e.onChange)||a.call(e,n,r)}},[r]=d.useState(()=>new Oa(n));return r.setOptions(n),Ca(()=>r._didMount(),[]),Ca(()=>r._willUpdate()),r}const Pa=(0,d.forwardRef)(function({children:e,active:t,addGroupBottomBorder:n,isMultiValueEdit:r,checked:a,...s},i){const o=(0,nt.useStyles2)(ja),l=(0,d.useId)();return h().createElement("div",{ref:i,role:"option",id:l,"aria-selected":t,className:(0,at.cx)(o.option,t&&o.optionFocused,n&&o.groupBottomBorder),...s},h().createElement("div",{className:o.optionBody,"data-testid":`data-testid ad hoc filter option value ${e}`},h().createElement("span",null,r?h().createElement(nt.Checkbox,{tabIndex:-1,checked:a,className:o.checkbox}):null,e)))}),ja=e=>({option:(0,at.css)({label:"grafana-select-option",top:0,left:0,width:"100%",position:"absolute",padding:e.spacing(1),display:"flex",alignItems:"center",flexDirection:"row",flexShrink:0,whiteSpace:"nowrap",cursor:"pointer","&:hover":{background:e.colors.action.hover,"@media (forced-colors: active), (prefers-contrast: more)":{border:`1px solid ${e.colors.primary.border}`}}}),optionFocused:(0,at.css)({label:"grafana-select-option-focused",background:e.colors.action.focus,"@media (forced-colors: active), (prefers-contrast: more)":{border:`1px solid ${e.colors.primary.border}`}}),optionBody:(0,at.css)({label:"grafana-select-option-body",display:"flex",fontWeight:e.typography.fontWeightMedium,flexDirection:"column",flexGrow:1}),groupBottomBorder:(0,at.css)({borderBottom:`1px solid ${e.colors.border.weak}`}),checkbox:(0,at.css)({paddingRight:e.spacing(.5)}),multiValueApplyWrapper:(0,at.css)({position:"fixed",top:0,left:0,display:"flex",backgroundColor:e.colors.background.primary,color:e.colors.text.primary,boxShadow:e.shadows.z2,overflowY:"auto",zIndex:e.zIndex.dropdown,gap:e.spacing(1.5),padding:`${e.spacing(1.5)} ${e.spacing(1)}`})}),Ha=()=>h().createElement(Pa,{onClick:e=>e.stopPropagation()},h().createElement(he.x6,{i18nKey:"grafana-scenes.variables.loading-options-placeholder.loading-options"},"Loading options...")),Na=()=>h().createElement(Pa,{onClick:e=>e.stopPropagation()},h().createElement(he.x6,{i18nKey:"grafana-scenes.variables.no-options-placeholder.no-options-found"},"No options found")),Ia=({handleFetchOptions:e})=>h().createElement(Pa,{onClick:e},h().createElement(he.x6,{i18nKey:"grafana-scenes.variables.options-error-placeholder.error-occurred-fetching-labels-click-retry"},"An error has occurred fetching labels. Click to retry")),Fa=({onApply:e,floatingElement:t,maxOptionWidth:n,menuHeight:r})=>{const a=(0,nt.useStyles2)(ja),s=null==t?void 0:t.getBoundingClientRect();return h().createElement("div",{className:a.multiValueApplyWrapper,style:{width:`${n}px`,transform:`translate(${null==s?void 0:s.left}px,${s?s.top+r:0}px)`}},h().createElement(nt.Button,{onClick:e,size:"sm",tabIndex:-1},h().createElement(he.x6,{i18nKey:"grafana-scenes.variables.multi-value-apply-button.apply"},"Apply")))},Wa={key:"operator",operator:"value",value:"key"},Va=(e,t,n,r,a)=>za(Wa[e],t,"value"===e?n:void 0,r,a),za=(e,t,n,r,a)=>{t(e),null==n||n(void 0,a),setTimeout(()=>null==r?void 0:r.focus())},$a=({filterInputType:e,item:t,filter:n,setFilterMultiValues:r,onAddCustomValue:a})=>{var s,i,o,l,u;if("key"===e)return{key:t.value,keyLabel:t.label?t.label:t.value,meta:null==t?void 0:t.meta};if("value"===e)return t.isCustom&&a?a(t,n):{value:t.value,valueLabels:[t.label?t.label:t.value]};if("operator"===e){if(gs(n.operator)&&!gs(t.value))return r([]),{operator:t.value,valueLabels:[(null==(s=n.valueLabels)?void 0:s[0])||(null==(i=n.values)?void 0:i[0])||n.value],values:void 0};if(gs(t.value)&&!gs(n.operator)){const e=[(null==(o=n.valueLabels)?void 0:o[0])||(null==(l=n.values)?void 0:l[0])||n.value],a=[n.value];return a[0]&&r([{value:a[0],label:null!=(u=null==e?void 0:e[0])?u:a[0]}]),{operator:t.value,valueLabels:e,values:a}}}return{[e]:t.value}},Ba="Filter by label values",Ua=(e,t,n,r)=>{var a;return"key"===t?Ba:"value"===t?n?"Edit values":(null==(a=e.valueLabels)?void 0:a[0])||"":e[t]&&!r?`${e[t]}`:Ba},qa=({populateInputOnEdit:e,item:t,filterInputType:n,setInputValue:r,filter:a})=>{var s,i,o;e&&!gs(t.value||"")&&"value"===Wa[n]?r(null!=(o=null!=(i=null==(s=null==a?void 0:a.valueLabels)?void 0:s[0])?i:null==a?void 0:a.value)?o:""):r("")},Ga=({open:e,onOpenChange:t,activeIndex:n,setActiveIndex:r,outsidePressIdsToIgnore:a,listRef:s,disabledIndicesRef:i})=>{const{refs:o,floatingStyles:l,context:u}=la({whileElementsMounted:Vn.ll,open:e,onOpenChange:t,placement:"bottom-start",middleware:[(c=10,{...(0,Vn.cY)(c),options:[c,h]}),Gn({padding:10}),Jn({apply({availableHeight:e,availableWidth:t,elements:n}){n.floating.style.maxHeight=`${Math.min(300,e)}px`,n.floating.style.maxWidth=`${t}px`},padding:10})],strategy:"fixed"});var c,h;const m=function(e,t){var n;void 0===t&&(t={});const{open:r,floatingId:a}=e,{enabled:s=!0,role:i="dialog"}=t,o=null!=(n=ya.get(i))?n:i,l=br(),u=null!=Sr(),c=d.useMemo(()=>"tooltip"===o||"label"===i?{["aria-"+("label"===i?"labelledby":"describedby")]:r?a:void 0}:{"aria-expanded":r?"true":"false","aria-haspopup":"alertdialog"===o?"dialog":o,"aria-controls":r?a:void 0,..."listbox"===o&&{role:"combobox"},..."menu"===o&&{id:l},..."menu"===o&&u&&{role:"menuitem"},..."select"===i&&{"aria-autocomplete":"none"},..."combobox"===i&&{"aria-autocomplete":"list"}},[o,a,u,r,l,i]),h=d.useMemo(()=>{const e={id:a,...o&&{role:o}};return"tooltip"===o||"label"===i?e:{...e,..."menu"===o&&{"aria-labelledby":l}}},[o,a,l,i]),m=d.useCallback(e=>{let{active:t,selected:n}=e;const r={role:"option",...t&&{id:a+"-option"}};switch(i){case"select":return{...r,"aria-selected":t&&n};case"combobox":return{...r,...t&&{"aria-selected":!0}}}return{}},[a,i]);return d.useMemo(()=>s?{reference:c,floating:h,item:m}:{},[s,c,h,m])}(u,{role:"listbox"}),p=function(e,t){void 0===t&&(t={});const{open:n,onOpenChange:r,elements:a,dataRef:s}=e,{enabled:i=!0,escapeKey:o=!0,outsidePress:l=!0,outsidePressEvent:u="pointerdown",referencePress:c=!1,referencePressEvent:h="pointerdown",ancestorScroll:m=!1,bubbles:p,capture:f}=t,_=kr(),g=Zn("function"==typeof l?l:()=>!1),y="function"==typeof l?g:l,v=d.useRef(!1),b=d.useRef(!1),{escapeKey:M,outsidePress:w}=oa(p),{escapeKey:L,outsidePress:S}=oa(f),k=d.useRef(!1),D=Zn(e=>{var t;if(!n||!i||!o||"Escape"!==e.key)return;if(k.current)return;const a=null==(t=s.current.floatingContext)?void 0:t.nodeId,l=_?Er(_.nodesRef.current,a):[];if(!M&&(e.stopPropagation(),l.length>0)){let e=!0;if(l.forEach(t=>{var n;null==(n=t.context)||!n.open||t.context.dataRef.current.__escapeKeyBubbles||(e=!1)}),!e)return}r(!1,function(e){return"nativeEvent"in e}(e)?e.nativeEvent:e,"escape-key")}),T=Zn(e=>{var t;const n=()=>{var t;D(e),null==(t=gn(e))||t.removeEventListener("keydown",n)};null==(t=gn(e))||t.addEventListener("keydown",n)}),x=Zn(e=>{var t;const n=v.current;v.current=!1;const i=b.current;if(b.current=!1,"click"===u&&i)return;if(n)return;if("function"==typeof y&&!y(e))return;const o=gn(e),l="["+Dr("inert")+"]",d=fn(a.floating).querySelectorAll(l);let c=(0,sn.vq)(o)?o:null;for(;c&&!(0,sn.eu)(c);){const e=(0,sn.$4)(c);if((0,sn.eu)(e)||!(0,sn.vq)(e))break;c=e}if(d.length&&(0,sn.vq)(o)&&!o.matches("html,body")&&!ln(o,a.floating)&&Array.from(d).every(e=>!ln(c,e)))return;if((0,sn.sb)(o)&&O){const t=o.clientWidth>0&&o.scrollWidth>o.clientWidth,n=o.clientHeight>0&&o.scrollHeight>o.clientHeight;let r=n&&e.offsetX>o.clientWidth;if(n&&"rtl"===(0,sn.L9)(o).direction&&(r=e.offsetX<=o.offsetWidth-o.clientWidth),r||t&&e.offsetY>o.clientHeight)return}const h=null==(t=s.current.floatingContext)?void 0:t.nodeId,m=_&&Er(_.nodesRef.current,h).some(t=>{var n;return _n(e,null==(n=t.context)?void 0:n.elements.floating)});if(_n(e,a.floating)||_n(e,a.domReference)||m)return;const p=_?Er(_.nodesRef.current,h):[];if(p.length>0){let e=!0;if(p.forEach(t=>{var n;null==(n=t.context)||!n.open||t.context.dataRef.current.__outsidePressBubbles||(e=!1)}),!e)return}r(!1,e,"outside-press")}),Y=Zn(e=>{var t;const n=()=>{var t;x(e),null==(t=gn(e))||t.removeEventListener(u,n)};null==(t=gn(e))||t.addEventListener(u,n)});d.useEffect(()=>{if(!n||!i)return;s.current.__escapeKeyBubbles=M,s.current.__outsidePressBubbles=w;let e=-1;function t(e){r(!1,e,"ancestor-scroll")}function l(){window.clearTimeout(e),k.current=!0}function d(){e=window.setTimeout(()=>{k.current=!1},(0,sn.Tc)()?5:0)}const c=fn(a.floating);o&&(c.addEventListener("keydown",L?T:D,L),c.addEventListener("compositionstart",l),c.addEventListener("compositionend",d)),y&&c.addEventListener(u,S?Y:x,S);let h=[];return m&&((0,sn.vq)(a.domReference)&&(h=(0,sn.v9)(a.domReference)),(0,sn.vq)(a.floating)&&(h=h.concat((0,sn.v9)(a.floating))),!(0,sn.vq)(a.reference)&&a.reference&&a.reference.contextElement&&(h=h.concat((0,sn.v9)(a.reference.contextElement)))),h=h.filter(e=>{var t;return e!==(null==(t=c.defaultView)?void 0:t.visualViewport)}),h.forEach(e=>{e.addEventListener("scroll",t,{passive:!0})}),()=>{o&&(c.removeEventListener("keydown",L?T:D,L),c.removeEventListener("compositionstart",l),c.removeEventListener("compositionend",d)),y&&c.removeEventListener(u,S?Y:x,S),h.forEach(e=>{e.removeEventListener("scroll",t)}),window.clearTimeout(e)}},[s,a,o,y,u,n,r,m,i,M,w,D,L,T,x,S,Y]),d.useEffect(()=>{v.current=!1},[y,u]);const E=d.useMemo(()=>({onKeyDown:D,[sa[h]]:e=>{c&&r(!1,e.nativeEvent,"reference-press")}}),[D,r,c,h]),O=d.useMemo(()=>({onKeyDown:D,onMouseDown(){b.current=!0},onMouseUp(){b.current=!0},[ia[u]]:()=>{v.current=!0}}),[D,u]);return d.useMemo(()=>i?{reference:E,floating:O}:{},[i,E,O])}(u,{outsidePress:e=>{var t;if(e.currentTarget instanceof Element){const n=e.currentTarget;let r=n.id;if("path"===n.nodeName&&(r=(null==(t=n.parentElement)?void 0:t.id)||""),a.includes(r))return!1}return!0}}),f=ga(u,{listRef:s,activeIndex:n,onNavigate:r,virtual:!0,loop:!0,disabledIndices:i.current}),{getReferenceProps:_,getFloatingProps:g,getItemProps:y}=function(e){void 0===e&&(e=[]);const t=e.map(e=>null==e?void 0:e.reference),n=e.map(e=>null==e?void 0:e.floating),r=e.map(e=>null==e?void 0:e.item),a=d.useCallback(t=>ca(t,e,"reference"),t),s=d.useCallback(t=>ca(t,e,"floating"),n),i=d.useCallback(t=>ca(t,e,"item"),r);return d.useMemo(()=>({getReferenceProps:a,getFloatingProps:s,getItemProps:i}),[a,s,i])}([m,p,f]);return{refs:o,floatingStyles:l,context:u,getReferenceProps:_,getFloatingProps:g,getItemProps:y}},Ja=({item:e,handleRemoveMultiValue:t,index:n,handleEditMultiValuePill:r})=>{var a,s;const i=(0,nt.useStyles2)(Ka),o=(0,d.useCallback)(t=>{t.stopPropagation(),t.preventDefault(),r(e)},[r,e]),l=(0,d.useCallback)(e=>{"Enter"===e.key&&o(e)},[o]),u=(0,d.useCallback)(n=>{n.stopPropagation(),n.preventDefault(),t(e)},[t,e]),c=(0,d.useCallback)(e=>{"Enter"===e.key&&u(e)},[u]);return h().createElement("div",{className:(0,at.cx)(i.basePill,i.valuePill),onClick:o,onKeyDown:l,tabIndex:0,id:`${e.value}-${n}`},null!=(a=e.label)?a:e.value,h().createElement(nt.Button,{onClick:u,onKeyDownCapture:c,fill:"text",size:"sm",variant:"secondary",className:i.removeButton,tooltip:(0,he.t)("grafana-scenes.components.adhoc-filters-combobox.remove-filter-value","Remove filter value - {{itemLabel}}",{itemLabel:null!=(s=e.label)?s:e.value})},h().createElement(nt.Icon,{name:"times",size:"md",id:`${e.value}-${n}-close-icon`})))},Ka=e=>({basePill:(0,at.css)({display:"flex",alignItems:"center",background:e.colors.action.disabledBackground,border:`1px solid ${e.colors.border.weak}`,padding:e.spacing(.125,1,.125,1),color:e.colors.text.primary,overflow:"hidden",whiteSpace:"nowrap",minHeight:e.spacing(2.75),...e.typography.bodySmall,cursor:"pointer"}),valuePill:(0,at.css)({background:e.colors.action.selected,padding:e.spacing(.125,0,.125,1)}),removeButton:(0,at.css)({marginInline:e.spacing(.5),height:"100%",padding:0,cursor:"pointer","&:hover":{color:e.colors.text.primary}})}),Qa=(0,d.forwardRef)(function({filter:e,model:t,isAlwaysWip:n,handleChangeViewMode:r,focusOnWipInputRef:a,populateInputOnEdit:s},i){var o,l,u,c;const[m,p]=(0,d.useState)(!1),[f,_]=(0,d.useState)([]),[g,y]=(0,d.useState)(!1),[v,b]=(0,d.useState)(!1),[M,w]=(0,d.useState)(""),[L,S]=(0,d.useState)(null),[k,D]=(0,d.useState)(n?"key":"value"),[T,x]=(0,d.useState)(!n&&"value"===k),Y=(0,nt.useStyles2)(Za),[E,O]=(0,d.useState)([]),[A,C]=(0,d.useState)({}),R=null==(o=t.state.allowCustomValue)||o,P=(0,d.useRef)(null),j=gs((null==e?void 0:e.operator)||""),H=j&&"value"===k,I=(0,d.useId)(),F=(0,d.useRef)([]),W=(0,d.useRef)([]),V=(0,d.useRef)(n?"key":"value"),z=(0,d.useMemo)(()=>Jt(f),[f]),$=(0,d.useMemo)(()=>!n&&t.state.filters.at(-1)===e,[e,n,t.state.filters]),B=(0,d.useCallback)(()=>{n&&(t._addWip(),D("key"),w(""))},[t,n]),U=(0,d.useCallback)((e,t,n,r)=>{if(!n.length&&t.origin&&e.updateToMatchAll(t),n.length){const r=[],a=[];n.forEach(e=>{var t;r.push(null!=(t=e.label)?t:e.value),a.push(e.value)});let s=!0;if(Array.isArray(t.values)&&t.values.length===a.length&&(s=!t.values.every((e,t)=>e===a[t])),s){const t=N(e);null==t||t.startProfile(Z)}e._updateFilter(t,{valueLabels:r,values:a,value:a[0]}),O([])}r||setTimeout(()=>{var e;return null==(e=K.domReference.current)?void 0:e.focus()})},[]),q=(0,d.useCallback)(e=>{O(t=>t.some(t=>t.value===e.value)?t.filter(t=>t.value!==e.value):[...t,e])},[]),G=(0,d.useCallback)((n,a,s)=>{p(n),s&&["outside-press","escape-key"].includes(s)&&(H?U(t,e,E):e&&e.origin&&""===M&&t.updateToMatchAll(e),B(),null==r||r())},[e,E,r,U,B,M,H,t]),J=(0,d.useMemo)(()=>[I,...E.reduce((e,t,n)=>[...e,`${t.value}-${n}`,`${t.value}-${n}-close-icon`],[])],[I,E]),{refs:K,floatingStyles:X,context:ee,getReferenceProps:te,getFloatingProps:ne,getItemProps:re}=Ga({open:m,onOpenChange:G,activeIndex:L,setActiveIndex:S,outsidePressIdsToIgnore:J,listRef:F,disabledIndicesRef:W});(0,d.useImperativeHandle)(i,()=>()=>{var e;return null==(e=K.domReference.current)?void 0:e.focus()},[K.domReference]);const ae=(0,d.useCallback)(e=>{O(t=>t.filter(t=>t.value!==e.value)),setTimeout(()=>{var e;return null==(e=K.domReference.current)?void 0:e.focus()})},[K.domReference]),se=(e=>e.flatMap(e=>e.options?[e,...e.options]:[e]))(Ns(z(T?"":M)));R&&"operator"!==k&&M&&se.push({value:M.trim(),label:M.trim(),isCustom:!0});const ie=t.state.onAddCustomValue,oe=((e,t,n)=>{var r,a,s,i;let o=182;const l=[],u=[];for(let t=0;to&&(o=c)}return t.current=[...l],n.current=[...u],o})(se,F,W),le=(0,d.useCallback)(async n=>{var r;b(!1),y(!0),_([]);let a=[];try{if("key"===n?a=await t._getKeys(null):"operator"===n?a=t._getOperators():"value"===n&&(a=await t._getValuesFor(e)),V.current!==n)return;_(a),(null==(r=a[0])?void 0:r.group)?S(1):S(0)}catch(e){b(!0)}y(!1)},[e,t]),ue=function(e){return Ra({observeElementRect:ka,observeElementOffset:xa,scrollToFn:Ea,...e})}({count:se.length,getScrollElement:()=>K.floating.current,estimateSize:e=>se[e].description?60:38,overscan:5}),de=(0,d.useCallback)((r,s)=>{if("Backspace"===r.key&&!M){if("value"===k){if(s&&E.length)return void O(e=>{const t=[...e];return t.splice(-1,1),t});if(null==e?void 0:e.origin)return;return void D("operator")}if(null==a||a(),fs(e)){const e=N(t);null==e||e.startProfile(Q)}t._handleComboboxBackspace(e),n&&B()}},[M,k,t,e,n,E.length,B,a]),ce=(0,d.useCallback)((n,a)=>{var s;"Tab"!==n.key||n.shiftKey||(a&&(n.preventDefault(),U(t,e,E),null==(s=K.domReference.current)||s.focus()),null==r||r(),B())},[e,E,r,U,B,t,K.domReference]),me=(0,d.useCallback)((n,a)=>{"Tab"===n.key&&n.shiftKey&&(a&&(n.preventDefault(),U(t,e,E,!0)),null==r||r(),B())},[e,E,r,U,B,t]),pe=(0,d.useCallback)((n,i)=>{if("Enter"===n.key&&null!=L){if(!se[L])return;const n=se[L];if(i)q(n),w("");else{const i=$a({filterInputType:k,item:n,filter:e,setFilterMultiValues:O,onAddCustomValue:ie});if("value"===k&&i.value!==(null==e?void 0:e.value)){const e=N(t);null==e||e.startProfile(Z)}t._updateFilter(e,i),qa({populateInputOnEdit:s,item:n,filterInputType:k,setInputValue:w,filter:e}),Va(k,D,r,K.domReference.current,!$&&void 0),S(null),$&&(null==a||a())}}},[L,se,q,t,e,k,s,r,K.domReference,$,a,ie]),fe=(0,d.useCallback)(e=>{var t;const n=e.label||e.value;O(t=>t.filter(t=>t.value!==e.value)),x(!0),w(n),null==(t=K.domReference.current)||t.focus(),setTimeout(()=>{var e;null==(e=K.domReference.current)||e.select()})},[K.domReference]);(0,d.useEffect)(()=>{m&&le(k)},[m,k]),(0,d.useEffect)(()=>{var t,r,a,i;if(!n){if(j&&(null==(t=null==e?void 0:e.values)?void 0:t.length)){const t=e.values.reduce((t,n,r)=>{var a;return[...t,{label:(null==(a=e.valueLabels)?void 0:a[r])||n,value:n}]},[]);O(t)}!j&&s&&(w(null!=(a=null==(r=null==e?void 0:e.valueLabels)?void 0:r[0])?a:(null==e?void 0:e.value)||""),setTimeout(()=>{var e;null==(e=K.domReference.current)||e.select()})),null==(i=K.domReference.current)||i.focus()}},[]),(0,d.useEffect)(()=>{H&&E&&setTimeout(()=>C({}))},[E,H]),(0,d.useLayoutEffect)(()=>{V.current&&(V.current=k)},[k]),(0,d.useLayoutEffect)(()=>{var e,t;null!==L&&ue.range&&(L>(null==(e=ue.range)?void 0:e.endIndex)||L<(null==(t=ue.range)?void 0:t.startIndex))&&ue.scrollToIndex(L)},[L,ue]);const _e=null!=(l=null==e?void 0:e.keyLabel)?l:null==e?void 0:e.key;return h().createElement("div",{className:Y.comboboxWrapper},e?h().createElement("div",{className:Y.pillWrapper},(null==e?void 0:e.key)?h().createElement("div",{className:(0,at.cx)(Y.basePill,Y.keyPill)},_e):null,(null==e?void 0:e.key)&&(null==e?void 0:e.operator)&&"operator"!==k?h().createElement("div",{id:I,className:(0,at.cx)(Y.basePill,!e.origin&&Y.operatorPill,e.origin&&Y.keyPill,I),"aria-label":(0,he.t)("grafana-scenes.variables.ad-hoc-combobox.aria-label-edit-filter-operator","Edit filter operator"),tabIndex:e.origin?-1:0,onClick:t=>{e.origin?null==r||r():(t.stopPropagation(),w(""),za("operator",D,void 0,K.domReference.current))},onKeyDown:t=>{e.origin||(me(t,j),"Enter"===t.key&&(w(""),za("operator",D,void 0,K.domReference.current)))},...!e.origin&&{role:"button"}},e.operator):null,h().createElement("div",{ref:P}),H?E.map((e,t)=>h().createElement(Ja,{key:`${e.value}-${t}`,item:e,index:t,handleRemoveMultiValue:ae,handleEditMultiValuePill:fe})):null):null,h().createElement("input",{...te({ref:K.setReference,onChange:function(e){const t=e.target.value;w(t),S(0),T&&x(!1)},value:M,placeholder:Ua(e,k,H,n),"aria-autocomplete":"list",onKeyDown(e){m?("operator"===k&&me(e),de(e,H),ce(e,H),pe(e,H)):p(!0)}}),className:(0,at.cx)(Y.inputStyle,{[Y.loadingInputPadding]:!g}),onClick:e=>{e.stopPropagation(),p(!0)},onFocus:()=>{p(!0)}}),g?h().createElement(nt.Spinner,{className:Y.loadingIndicator,inline:!0}):null,h().createElement(Kr,null,m&&h().createElement(aa,{context:ee,initialFocus:-1,visuallyHiddenDismiss:!0,modal:!1},h().createElement(h().Fragment,null,h().createElement("div",{style:{...X,width:`${v?366:oe}px`,transform:H?`translate(${(null==(u=P.current)?void 0:u.getBoundingClientRect().left)||0}px, ${((null==(c=K.domReference.current)?void 0:c.getBoundingClientRect().bottom)||0)+10}px )`:X.transform},ref:K.setFloating,className:Y.dropdownWrapper,tabIndex:-1},h().createElement("div",{style:{height:`${ue.getTotalSize()||38}px`},...ne(),tabIndex:-1},g?h().createElement(Ha,null):v?h().createElement(Ia,{handleFetchOptions:()=>le(k)}):se.length||R&&"operator"!==k&&M?ue.getVirtualItems().map(n=>{var a;const i=se[n.index],o=n.index;if(i.options)return h().createElement("div",{key:`${i.label}+${o}`,className:(0,at.cx)(Y.optionGroupLabel,Y.groupTopBorder),style:{height:`${n.size}px`,transform:`translateY(${n.start}px)`}},h().createElement(nt.Text,{weight:"bold",variant:"bodySmall",color:"secondary"},i.label));const l=se[n.index+1],u=l&&!l.group&&!l.options&&i.group,d=null!=(a=i.label)?a:i.value;return h().createElement(Pa,{...re({key:`${i.value}-${o}`,ref(e){F.current[o]=e},onClick(n){var a;if("value"!==k&&n.stopPropagation(),H)n.preventDefault(),n.stopPropagation(),q(i),w(""),null==(a=K.domReference.current)||a.focus();else{const n=$a({filterInputType:k,item:i,filter:e,setFilterMultiValues:O,onAddCustomValue:ie});if("value"===k&&n.value!==(null==e?void 0:e.value)){const e=N(t);null==e||e.startProfile(Z)}t._updateFilter(e,n),qa({populateInputOnEdit:s,item:i,filterInputType:k,setInputValue:w,filter:e}),Va(k,D,r,K.domReference.current,!1)}}}),active:L===o,addGroupBottomBorder:u,style:{height:`${n.size}px`,transform:`translateY(${n.start}px)`},"aria-setsize":se.length,"aria-posinset":n.index+1,isMultiValueEdit:H,checked:E.some(e=>e.value===i.value)},h().createElement("span",null,i.isCustom?(0,he.t)("grafana-scenes.components.adhoc-filters-combobox.use-custom-value","Use custom value: {{itemLabel}}",{itemLabel:d}):d),i.description?h().createElement("div",{className:Y.descriptionText},i.description):null)}):h().createElement(Na,null))),H&&!g&&!v&&se.length?h().createElement(Fa,{onApply:()=>{U(t,e,E)},floatingElement:K.floating.current,maxOptionWidth:oe,menuHeight:Math.min(ue.getTotalSize(),300)}):null))))}),Za=e=>({comboboxWrapper:(0,at.css)({display:"flex",flexWrap:"wrap"}),pillWrapper:(0,at.css)({display:"flex",alignItems:"center",flexWrap:"wrap"}),basePill:(0,at.css)({display:"flex",alignItems:"center",background:e.colors.action.disabledBackground,border:`1px solid ${e.colors.border.weak}`,padding:e.spacing(.125,1,.125,1),color:e.colors.text.primary,overflow:"hidden",whiteSpace:"nowrap",minHeight:e.spacing(2.75),...e.typography.bodySmall,cursor:"pointer"}),keyPill:(0,at.css)({fontWeight:e.typography.fontWeightBold,cursor:"default"}),operatorPill:(0,at.css)({"&:hover":{background:e.colors.action.hover}}),dropdownWrapper:(0,at.css)({backgroundColor:e.colors.background.primary,color:e.colors.text.primary,boxShadow:e.shadows.z2,overflowY:"auto",zIndex:e.zIndex.portal}),inputStyle:(0,at.css)({paddingBlock:0,"&:focus":{outline:"none"}}),loadingIndicator:(0,at.css)({color:e.colors.text.secondary,marginLeft:e.spacing(.5)}),loadingInputPadding:(0,at.css)({paddingRight:e.spacing(2.5)}),optionGroupLabel:(0,at.css)({padding:e.spacing(1),position:"absolute",top:0,left:0,width:"100%"}),groupTopBorder:(0,at.css)({"&:not(:first-child)":{borderTop:`1px solid ${e.colors.border.weak}`}}),descriptionText:(0,at.css)({...e.typography.bodySmall,color:e.colors.text.secondary,paddingTop:e.spacing(.5)})});function Xa({filter:e,model:t,readOnly:n,focusOnWipInputRef:r}){var a,s,i,o;const l=(0,nt.useStyles2)(es),[u,c]=(0,d.useState)(!0),[m,p]=(0,d.useState)(!1),f=(0,d.useRef)(null),[_,g]=(0,d.useState)(!1),y=null!=(a=e.keyLabel)?a:e.key,v=(null==(s=e.valueLabels)?void 0:s.join(", "))||(null==(i=e.values)?void 0:i.join(", "))||e.value,b=(0,d.useCallback)((e,t)=>{null==e||e.stopPropagation(),n||(p(null!=t?t:!u),c(!u))},[n,u]);(0,d.useEffect)(()=>{var e;m&&(null==(e=f.current)||e.focus(),p(!1))},[m]),(0,d.useEffect)(()=>{e.forceEdit&&u&&(c(!1),t._updateFilter(e,{forceEdit:void 0}))},[e,t,u]),(0,d.useEffect)(()=>{u&&g(e=>!e&&e)},[u]);const M=e=>"dashboard"===e?{info:"Applied by default in this dashboard. If edited, it carries over to other dashboards.",restore:"Restore the value set by this dashboard."}:"scope"===e?{info:"Applied automatically from your selected scope.",restore:"Restore the value set by your selected scope."}:{info:`This is a ${e} injected filter.`,restore:"Restore filter to its original value."},w=!e.restorable&&!e.readOnly&&!e.nonApplicable;if(u){const a=`${y} ${e.operator} ${v}`,s=h().createElement("span",{className:(0,at.cx)(l.pillText,e.nonApplicable&&l.strikethrough)},a);return h().createElement("div",{className:(0,at.cx)(l.combinedFilterPill,n&&l.readOnlyCombinedFilter,(ps(e)||e.nonApplicable)&&l.disabledPill,e.readOnly&&l.filterReadOnly),onClick:e=>{e.stopPropagation(),g(!0),b()},onKeyDown:e=>{"Enter"===e.key&&(g(!0),b())},role:n?void 0:"button","aria-label":(0,he.t)("grafana-scenes.components.adhoc-filter-pill.edit-filter-with-key","Edit filter with key {{keyLabel}}",{keyLabel:y}),tabIndex:0,ref:f},a.length<20?s:h().createElement(nt.Tooltip,{content:h().createElement("div",{className:l.tooltipText},a),placement:"top"},s),n||e.matchAllFilter||e.origin&&"dashboard"!==e.origin?null:h().createElement(nt.IconButton,{onClick:n=>{n.stopPropagation(),e.origin&&"dashboard"===e.origin?t.updateToMatchAll(e):t._removeFilter(e),setTimeout(()=>null==r?void 0:r())},onKeyDownCapture:n=>{"Enter"===n.key&&(n.preventDefault(),n.stopPropagation(),e.origin&&"dashboard"===e.origin?t.updateToMatchAll(e):t._removeFilter(e),setTimeout(()=>null==r?void 0:r()))},name:"times",size:"md",className:(0,at.cx)(l.pillIcon,e.nonApplicable&&l.disabledPillIcon),tooltip:(0,he.t)("grafana-scenes.components.adhoc-filter-pill.remove-filter-with-key","Remove filter with key {{keyLabel}}",{keyLabel:y})}),e.origin&&e.readOnly&&h().createElement(nt.Tooltip,{content:(0,he.t)("grafana-scenes.components.adhoc-filter-pill.managed-filter","{{origin}} managed filter",{origin:e.origin}),placement:"bottom"},h().createElement(nt.Icon,{name:"lock",size:"md",className:l.readOnlyPillIcon})),e.origin&&w&&h().createElement(nt.Tooltip,{content:M(e.origin).info,placement:"bottom"},h().createElement(nt.Icon,{name:"info-circle",size:"md",className:l.infoPillIcon})),e.origin&&e.restorable&&!e.readOnly&&h().createElement(nt.IconButton,{onClick:n=>{n.stopPropagation(),t.restoreOriginalFilter(e)},onKeyDownCapture:n=>{"Enter"===n.key&&(n.preventDefault(),n.stopPropagation(),t.restoreOriginalFilter(e))},name:"history",size:"md",className:ps(e)?l.matchAllPillIcon:l.pillIcon,tooltip:M(e.origin).restore}),e.nonApplicable&&h().createElement(nt.Tooltip,{content:null!=(o=e.nonApplicableReason)?o:(0,he.t)("grafana-scenes.components.adhoc-filter-pill.non-applicable","Filter is not applicable"),placement:"bottom"},h().createElement(nt.Icon,{name:"info-circle",size:"md",className:l.infoPillIcon})))}return h().createElement(Qa,{filter:e,model:t,handleChangeViewMode:b,focusOnWipInputRef:r,populateInputOnEdit:_})}const es=e=>({combinedFilterPill:(0,at.css)({display:"flex",alignItems:"center",background:e.colors.action.selected,borderRadius:e.shape.radius.default,border:`1px solid ${e.colors.border.weak}`,padding:e.spacing(.125,0,.125,1),color:e.colors.text.primary,overflow:"hidden",whiteSpace:"nowrap",minHeight:e.spacing(2.75),...e.typography.bodySmall,fontWeight:e.typography.fontWeightBold,cursor:"pointer","&:hover":{background:e.colors.action.hover}}),readOnlyCombinedFilter:(0,at.css)({paddingRight:e.spacing(1),cursor:"text","&:hover":{background:e.colors.action.selected}}),filterReadOnly:(0,at.css)({background:e.colors.background.canvas,cursor:"text","&:hover":{background:e.colors.background.canvas}}),pillIcon:(0,at.css)({marginInline:e.spacing(.5),cursor:"pointer","&:hover":{color:e.colors.text.primary}}),pillText:(0,at.css)({maxWidth:"200px",width:"100%",textOverflow:"ellipsis",overflow:"hidden"}),tooltipText:(0,at.css)({textAlign:"center"}),infoPillIcon:(0,at.css)({marginInline:e.spacing(.5),cursor:"pointer"}),readOnlyPillIcon:(0,at.css)({marginInline:e.spacing(.5)}),matchAllPillIcon:(0,at.css)({marginInline:e.spacing(.5),cursor:"pointer",color:e.colors.text.disabled}),disabledPillIcon:(0,at.css)({marginInline:e.spacing(.5),cursor:"pointer",color:e.colors.text.disabled,"&:hover":{color:e.colors.text.disabled}}),disabledPill:(0,at.css)({background:e.colors.action.selected,color:e.colors.text.disabled,border:0,"&:hover":{background:e.colors.action.selected}}),strikethrough:(0,at.css)({textDecoration:"line-through"})}),ts=(0,d.forwardRef)(function({model:e},t){const{_wip:n}=e.useState();return(0,d.useLayoutEffect)(()=>{n||e._addWip()},[n]),h().createElement(Qa,{model:e,filter:n,isAlwaysWip:!0,ref:t})}),ns=(0,d.memo)(function({model:e}){const{originFilters:t,filters:n,readOnly:r}=e.useState(),a=(0,nt.useStyles2)(rs),s=(0,d.useRef)();return h().createElement("div",{className:(0,at.cx)(a.comboboxWrapper,{[a.comboboxFocusOutline]:!r}),onClick:()=>{var e;null==(e=s.current)||e.call(s)}},h().createElement(nt.Icon,{name:"filter",className:a.filterIcon,size:"lg"}),null==t?void 0:t.map((t,n)=>t.origin?h().createElement(Xa,{key:`${n}-${t.key}`,filter:t,model:e,focusOnWipInputRef:s.current}):null),n.filter(e=>!e.hidden).map((t,n)=>h().createElement(Xa,{key:`${n}-${t.key}`,filter:t,model:e,readOnly:r||t.readOnly,focusOnWipInputRef:s.current})),r?null:h().createElement(ts,{model:e,ref:s}))}),rs=e=>({comboboxWrapper:(0,at.css)({display:"flex",flexWrap:"wrap",alignItems:"center",columnGap:e.spacing(1),rowGap:e.spacing(.5),minHeight:e.spacing(4),backgroundColor:e.components.input.background,border:`1px solid ${e.colors.border.strong}`,borderRadius:e.shape.radius.default,paddingInline:e.spacing(1),paddingBlock:e.spacing(.5),flexGrow:1}),comboboxFocusOutline:(0,at.css)({"&:focus-within":{outline:"2px dotted transparent",outlineOffset:"2px",boxShadow:`0 0 0 2px ${e.colors.background.canvas}, 0 0 0px 4px ${e.colors.primary.main}`,transitionTimingFunction:"cubic-bezier(0.19, 1, 0.22, 1)",transitionDuration:"0.2s",transitionProperty:"outline, outline-offset, box-shadow",zIndex:2}}),filterIcon:(0,at.css)({color:e.colors.text.secondary,alignSelf:"center"})}),as=Object.fromEntries(Object.entries(s.scopeFilterOperatorMap).map(([e,t])=>[t,e]));function ss(e){return new Set(["equals","not-equals","one-of","not-one-of"]).has(e)}function is(e){return new Set(["regex-match","regex-not-match"]).has(e)}function os(e,t,n){var r,a;if(!n)return;const i=e.get(n.key);i&&function(e,t){const n=s.scopeFilterOperatorMap[e];if(!ss(n)||!ss(t))return!1;return ls(n,t)}(i.operator,n.operator)?function(e,t){var n,r,a,s;const i=null!=(n=t.values)?n:[t.value];for(const t of i)(null==(r=e.values)?void 0:r.includes(t))||null==(a=e.values)||a.push(t);if(1===(null==(s=e.values)?void 0:s.length))return;"equals"===t.operator&&e.operator===as.equals?e.operator=as["one-of"]:"not-equals"===t.operator&&e.operator===as["not-equals"]&&(e.operator=as["not-one-of"])}(i,n):i&&function(e,t){const n=s.scopeFilterOperatorMap[e];if(!is(n)||!is(t))return!1;return ls(n,t)}(i.operator,n.operator)?(i.value+=`|${n.value}`,i.values=[i.value]):i?t.push({key:n.key,operator:as[n.operator],value:n.value,values:null!=(a=n.values)?a:[n.value],origin:"scope"}):e.set(n.key,{key:n.key,operator:as[n.operator],value:n.value,values:null!=(r=n.values)?r:[n.value],origin:"scope"})}function ls(e,t){return!(e.includes("not")&&!t.includes("not")||!e.includes("not")&&t.includes("not"))}const us=[{value:"=",description:"Equals"},{value:"!=",description:"Not equal"},{value:"=|",description:"One of. Use to filter on multiple values.",isMulti:!0},{value:"!=|",description:"Not one of. Use to exclude multiple values.",isMulti:!0},{value:"=~",description:"Matches regex",isRegex:!0},{value:"!~",description:"Does not match regex",isRegex:!0},{value:"<",description:"Less than"},{value:"<=",description:"Less than or equal to"},{value:">",description:"Greater than"},{value:">=",description:"Greater than or equal to"}];class ds extends Y{constructor(e){var t,n,r,a,s;super({type:"adhoc",name:null!=(t=e.name)?t:"Filters",filters:[],datasource:null,applyMode:"auto",filterExpression:null!=(a=e.filterExpression)?a:cs(e.expressionBuilder,[...null!=(n=e.originFilters)?n:[],...null!=(r=e.filters)?r:[]]),...e}),this._scopedVars={__sceneObject:Ft(this)},this._dataSourceSrv=(0,i.getDataSourceSrv)(),this._originalValues=new Map,this._prevScopes=[],this._variableDependency=new Fs(this,{dependsOnScopes:!0,onReferencedVariableValueChanged:()=>this._updateScopesFilters()}),this._urlSync=new tn(this),this._debouncedVerifyApplicability=(0,A.debounce)(this._verifyApplicability,100),this._activationHandler=()=>(this._debouncedVerifyApplicability(),()=>{var e;null==(e=this.state.originFilters)||e.forEach(e=>{e.restorable&&this.restoreOriginalFilter(e)})}),"auto"===this.state.applyMode&&function(e){if(e.addActivationHandler(()=>(et.add(e),()=>et.delete(e))),Xe)return;const t=(0,i.getTemplateSrv)();(null==t?void 0:t.getAdhocFilters)&&(Xe=t.getAdhocFilters,t.getAdhocFilters=function(e){var n;if(0===et.size)return Xe.call(t,e);const r=(0,i.getDataSourceSrv)().getInstanceSettings(e);if(!r)return[];for(const e of et.values())if((null==(n=e.state.datasource)?void 0:n.uid)===r.uid)return e.state.filters;return[]}.bind(t))}(this),null==(s=this.state.originFilters)||s.forEach(e=>{var t;this._originalValues.set(`${e.key}-${e.origin}`,{operator:e.operator,value:null!=(t=e.values)?t:[e.value]})}),this.addActivationHandler(this._activationHandler)}_updateScopesFilters(){var e,t;const n=hi.getScopes(this);if(!n||!n.length)return void this.setState({originFilters:null==(e=this.state.originFilters)?void 0:e.filter(e=>"scope"!==e.origin)});const r=function(e){const t=new Map,n=[],r=e.flatMap(e=>e.spec.filters);for(const e of r)os(t,n,e);return[...t.values(),...n]}(n);if(!r.length)return;let a=r;const s=[],i=[];if(a.forEach(e=>{var t;this._originalValues.set(`${e.key}-${e.origin}`,{value:null!=(t=e.values)?t:[e.value],operator:e.operator})}),null==(t=this.state.originFilters)||t.forEach(e=>{"scope"===e.origin?s.push(e):i.push(e)}),this._prevScopes.length)return this.setState({originFilters:[...a,...i]}),this._prevScopes=n,void this._debouncedVerifyApplicability();const o=s.filter(e=>e.restorable),l=o.map(e=>e.key),u=r.map(e=>e.key);a=[...o.filter(e=>u.includes(e.key)),...r.filter(e=>!l.includes(e.key))],this.setState({originFilters:[...a,...i]}),this._prevScopes=n,this._debouncedVerifyApplicability()}setState(e){var t,n;let r=!1;if((e.filters&&e.filters!==this.state.filters||e.originFilters&&e.originFilters!==this.state.originFilters)&&!e.filterExpression){const a=null!=(t=e.filters)?t:this.state.filters,s=null!=(n=e.originFilters)?n:this.state.originFilters;e.filterExpression=cs(this.state.expressionBuilder,[...null!=s?s:[],...a]),r=e.filterExpression!==this.state.filterExpression}super.setState(e),r&&this.publishEvent(new ie(this),!0)}updateFilters(e,t){var n;let r,a=!1;e&&e!==this.state.filters&&(r=cs(this.state.expressionBuilder,[...null!=(n=this.state.originFilters)?n:[],...e]),a=r!==this.state.filterExpression),super.setState({filters:e,filterExpression:r}),(a&&!0!==(null==t?void 0:t.skipPublish)||(null==t?void 0:t.forcePublish))&&this.publishEvent(new ie(this),!0)}restoreOriginalFilter(e){const t={matchAllFilter:!1,restorable:!1};if(e.restorable){const n=this._originalValues.get(`${e.key}-${e.origin}`);if(!n)return;t.value=null==n?void 0:n.value[0],t.values=null==n?void 0:n.value,t.valueLabels=null==n?void 0:n.value,t.operator=null==n?void 0:n.operator,t.nonApplicable=null==n?void 0:n.nonApplicable;const r=N(this);null==r||r.startProfile("filter_restored"),this._updateFilter(e,t)}}getValue(){return this.state.filterExpression}_updateFilter(e,t){var n;const{originFilters:r,filters:a,_wip:s}=this.state;if(e.origin){const a=this._originalValues.get(`${e.key}-${e.origin}`),s=t.values||(t.value?[t.value]:void 0);s&&!(0,A.isEqual)(s,null==a?void 0:a.value)||t.operator&&t.operator!==(null==a?void 0:a.operator)?t.restorable=!0:s&&(0,A.isEqual)(s,null==a?void 0:a.value)&&(t.restorable=!1);const i=null!=(n=null==r?void 0:r.map(n=>n===e?{...n,...t}:n))?n:[];return void this.setState({originFilters:i})}if(e===s)return void("value"in t&&""!==t.value?(this.setState({filters:[...a,{...s,...t}],_wip:void 0}),this._debouncedVerifyApplicability()):this.setState({_wip:{...e,...t}}));const i=this.state.filters.map(n=>n===e?{...n,...t}:n);this.setState({filters:i})}updateToMatchAll(e){this._updateFilter(e,{operator:"=~",value:".*",values:[".*"],valueLabels:["All"],matchAllFilter:!0,nonApplicable:!1,restorable:!0})}_removeFilter(e){if(e===this.state._wip)return void this.setState({_wip:void 0});const t=N(this);null==t||t.startProfile(Q),this.setState({filters:this.state.filters.filter(t=>t!==e)}),this._debouncedVerifyApplicability()}_removeLastFilter(){const e=this.state.filters.at(-1);e&&this._removeFilter(e)}_handleComboboxBackspace(e){var t;if(this.state.filters.length){let t=this.state.filters.length-1;e!==this.state._wip&&(t=-1),this.setState({filters:this.state.filters.reduce((n,r,a)=>a!==t||r.readOnly?r===e?n:[...n,r]:[...n,{...r,forceEdit:!0}],[])})}else if(null==(t=this.state.originFilters)?void 0:t.length){let t=this.state.originFilters.length-1;e!==this.state._wip&&(t=-1),this.setState({originFilters:this.state.originFilters.reduce((n,r,a)=>a!==t||r.readOnly?r===e?n:[...n,r]:[...n,{...r,forceEdit:!0}],[])})}}async _verifyApplicability(){var e,t,n;const r=[...this.state.filters,...null!=(e=this.state.originFilters)?e:[]],a=await this._dataSourceSrv.get(this.state.datasource,this._scopedVars);if(!a||!a.getFiltersApplicability)return;if(!r)return;const s=hi.getTimeRange(this).state.value,i=this.state.useQueriesAsFilterForOptions?Es(this):void 0,o=await a.getFiltersApplicability({filters:r,queries:i,timeRange:s,scopes:hi.getScopes(this),...Pt(this)}),l=new Map;o.forEach(e=>{l.set(`${e.key}${e.origin?`-${e.origin}`:""}`,e)});const u={filters:[...this.state.filters],originFilters:[...null!=(t=this.state.originFilters)?t:[]]};u.filters.forEach(e=>{const t=l.get(e.key);t&&(e.nonApplicable=!t.applicable,e.nonApplicableReason=t.reason)}),null==(n=u.originFilters)||n.forEach(e=>{const t=l.get(`${e.key}-${e.origin}`);if(t){e.matchAllFilter||(e.nonApplicable=!t.applicable,e.nonApplicableReason=t.reason);const n=this._originalValues.get(`${e.key}-${e.origin}`);n&&(n.nonApplicable=!t.applicable,n.nonApplicableReason=null==t?void 0:t.reason)}}),this.setState(u)}async _getKeys(e){var t,n,r,a,s;const i=await(null==(n=(t=this.state).getTagKeysProvider)?void 0:n.call(t,this,e));if(i&&i.replace)return js(i.values).map(ms);if(this.state.defaultKeys)return this.state.defaultKeys.map(ms);const o=await this._dataSourceSrv.get(this.state.datasource,this._scopedVars);if(!o||!o.getTagKeys)return[];const l=null!=(a=null==(r=this.state.originFilters)?void 0:r.filter(e=>!e.nonApplicable))?a:[],u=this.state.filters.filter(t=>t.key!==e&&!t.nonApplicable).concat(null!=(s=this.state.baseFilters)?s:[]).concat(l),d=hi.getTimeRange(this).state.value,c=this.state.useQueriesAsFilterForOptions?Es(this):void 0,h=await o.getTagKeys({filters:u,queries:c,timeRange:d,scopes:hi.getScopes(this),...Pt(this)});Hs(h)&&this.setState({error:h.error.message});let m=js(h);i&&(m=m.concat(js(i.values)));const p=this.state.tagKeyRegexFilter;return p&&(m=m.filter(e=>e.text.match(p))),m.map(ms)}async _getValuesFor(e){var t,n,r,a;const s=await(null==(n=(t=this.state).getTagValuesProvider)?void 0:n.call(t,this,e));if(s&&s.replace)return js(s.values).map(ms);const i=await this._dataSourceSrv.get(this.state.datasource,this._scopedVars);if(!i||!i.getTagValues)return[];const o=null!=(a=null==(r=this.state.originFilters)?void 0:r.filter(t=>t.key!==e.key))?a:[],l=this.state.filters.filter(t=>t.key!==e.key).concat(o),u=hi.getTimeRange(this).state.value,d=this.state.useQueriesAsFilterForOptions?Es(this):void 0;let c=hi.getScopes(this);"scope"===e.origin&&(c=null==c?void 0:c.map(t=>({...t,spec:{...t.spec,filters:t.spec.filters.filter(t=>t.key!==e.key)}})));const h=await i.getTagValues({key:e.key,filters:l,timeRange:u,queries:d,scopes:c,...Pt(this)});Hs(h)&&this.setState({error:h.error.message});let m=js(h);return s&&(m=m.concat(js(s.values))),m.map(ms)}_addWip(){this.setState({_wip:{key:"",value:"",operator:"=",condition:""}})}_getOperators(){const{supportsMultiValueOperators:e,allowCustomValue:t=!0}=this.state;return us.filter(({isMulti:n,isRegex:r})=>!(!e&&n)&&!(!t&&r)).map(({value:e,description:t})=>({label:e,value:e,description:t}))}}function cs(e,t){var n;return(null!=e?e:Ds)(null!=(n=null==t?void 0:t.filter(e=>_s(e)))?n:[])}ds.Component=function({model:e}){const{filters:t,readOnly:n,addFilterButtonText:r}=e.useState(),a=(0,nt.useStyles2)(hs);if("combobox"===e.state.layout)return h().createElement(ns,{model:e});return h().createElement("div",{className:a.wrapper},t.filter(e=>!e.hidden).map((t,n)=>h().createElement(h().Fragment,{key:n},h().createElement(Zt,{filter:t,model:e}))),!n&&h().createElement(en,{model:e,key:"'builder",addFilterButtonText:r}))};const hs=e=>({wrapper:(0,at.css)({display:"flex",flexWrap:"wrap",alignItems:"flex-end",columnGap:e.spacing(2),rowGap:e.spacing(1)})});function ms(e){const{text:t,value:n}=e,r={label:String(t),value:String(null!=n?n:t)};return"group"in e&&(r.group=e.group),"meta"in e&&(r.meta=e.meta),r}function ps(e){return"=~"===e.operator&&".*"===e.value}function fs(e){return""!==e.key&&""!==e.operator&&""!==e.value}function _s(e){return!e.nonApplicable}function gs(e){const t=us.find(t=>t.value===e);return!!t&&Boolean(t.isMulti)}class ys{constructor(){this._resultsMap=new Map,this._prevLayers=[]}getMergedStream(e){(function(e,t){if(e.length!==t.length)return!0;for(let n=0;ne.getResultsStream()),n=[];for(const t of e)n.push(t.activate());return(0,m.merge)(t).pipe((0,m.mergeAll)(),(0,m.filter)(e=>this._resultsMap.get(e.origin.state.key)!==e),(0,m.map)(e=>(this._resultsMap.set(e.origin.state.key,e),this._resultsMap.values())),(0,m.finalize)(()=>{n.forEach(e=>e())}))}}let vs=100;function bs(){return"SQR"+vs++}class Ms extends Y{constructor(e){super(e),this._dataLayersMerger=new ys,this._variableValueRecorder=new Ge,this._results=new m.ReplaySubject(1),this._scopedVars={__sceneObject:Ft(this)},this._variableDependency=new Fs(this,{statePaths:["queries","datasource","minInterval"],onVariableUpdateCompleted:this.onVariableUpdatesCompleted.bind(this),onAnyVariableChanged:this.onAnyVariableChanged.bind(this),dependsOnScopes:!0}),this.onDataReceived=e=>{const t=(0,s.preProcessPanelData)(e,this.state.data);this._resultAnnotations=e.annotations;const n=this._combineDataLayers(t);let r=this.state._hasFetchedData;r||t.state===F.Loading||(r=!0),this.setState({data:n,_hasFetchedData:r}),this._results.next({origin:this,data:n})},this.addActivationHandler(()=>this._onActivate())}getResultsStream(){return this._results}_onActivate(){if(this.isQueryModeAuto()){const e=hi.getTimeRange(this),t=this.getClosestExtraQueryProviders();for(const e of t)this._subs.add(e.subscribeToState((t,n)=>{e.shouldRerun(n,t,this.state.queries)&&this.runQueries()}));this.subscribeToTimeRangeChanges(e),this.shouldRunQueriesOnActivate()&&this.runQueries()}return this._dataLayersSub||this._handleDataLayers(),()=>this._onDeactivate()}_handleDataLayers(){const e=hi.getDataLayers(this);0!==e.length&&(this._dataLayersSub=this._dataLayersMerger.getMergedStream(e).subscribe(this._onLayersReceived.bind(this)))}_onLayersReceived(e){var t,n,r,a,i;const o=hi.getTimeRange(this),{dataLayerFilter:l}=this.state;let u,d=[],c=[];for(const r of e)for(let e of r.data.series)(null==(t=e.meta)?void 0:t.dataTopic)===s.DataTopic.Annotations&&(d=d.concat(e)),(null==(n=e.meta)?void 0:n.dataTopic)===s.DataTopic.AlertStates&&(c=c.concat(e));if((null==l?void 0:l.panelId)&&(d.length>0&&(d=function(e,t){var n;if(!Array.isArray(e)||0===e.length)return e;const r=Array.from({length:e.length},()=>new Set);let a=0;for(const s of e){for(let e=0;e"panelId"===e.name),l=s.fields.find(e=>"source"===e.name);if(l){o&&"dashboard"===l.values[e].type&&(i=[t.panelId,Qe].includes(o.values[e]));const r=l.values[e].filter;if(r){const e=[...null!=(n=r.ids)?n:[],Qe].includes(t.panelId);r.exclude?e&&(i=!1):e||(i=!1)}}i&&r[a].add(e)}a++}const s=[];a=0;for(const t of e){const e=r[a].size,n=[];for(const e of t.fields){const s=[];for(let n=0;n0))for(const e of c){const t=new s.DataFrameView(e);for(const e of t)if(e.panelId===l.panelId){u=e;break}}if(Ls(d)&&Ls(this._layerAnnotations)&&(0,A.isEqual)(u,null==(r=this.state.data)?void 0:r.alertState))return;this._layerAnnotations=d;const h=this.state.data?this.state.data:{...V,timeRange:o.state.value};this.setState({data:{...h,annotations:[...null!=(a=this._resultAnnotations)?a:[],...d],alertState:null!=u?u:null==(i=this.state.data)?void 0:i.alertState}})}onVariableUpdatesCompleted(){this.isQueryModeAuto()&&this.runQueries()}onAnyVariableChanged(e){this._adhocFiltersVar!==e&&this._groupByVar!==e&&this.isQueryModeAuto()&&(e instanceof ds&&this._isRelevantAutoVariable(e)&&this.runQueries(),e instanceof zt&&this._isRelevantAutoVariable(e)&&this.runQueries())}_isRelevantAutoVariable(e){var t,n;const r=null!=(t=this.state.datasource)?t:ws(this.state.queries);return"auto"===e.state.applyMode&&(null==r?void 0:r.uid)===(null==(n=e.state.datasource)?void 0:n.uid)}shouldRunQueriesOnActivate(){return this._variableValueRecorder.hasDependenciesChanged(this)?(j(),!0):!this.state.data||!!this._isDataTimeRangeStale(this.state.data)}_isDataTimeRangeStale(e){const t=hi.getTimeRange(this).state.value,n=e.timeRange;return(t.from.unix()!==n.from.unix()||t.to.unix()!==n.to.unix())&&(j(),!0)}_onDeactivate(){var e;this._querySub&&(this._querySub.unsubscribe(),this._querySub=void 0),this._dataLayersSub&&(this._dataLayersSub.unsubscribe(),this._dataLayersSub=void 0),null==(e=this._timeSub)||e.unsubscribe(),this._timeSub=void 0,this._timeSubRange=void 0,this._adhocFiltersVar=void 0,this._groupByVar=void 0}setContainerWidth(e){!this._containerWidth&&e>0?(this._containerWidth=e,this.state.maxDataPointsFromWidth&&!this.state.maxDataPoints&&setTimeout(()=>{this.isActive&&!this.state._hasFetchedData&&this.runQueries()},0)):e>0&&(this._containerWidth=e)}isDataReadyToDisplay(){return Boolean(this.state._hasFetchedData)}subscribeToTimeRangeChanges(e){this._timeSubRange!==e&&(this._timeSub&&this._timeSub.unsubscribe(),this._timeSubRange=e,this._timeSub=e.subscribeToState(()=>{this.runWithTimeRange(e)}))}runQueries(){const e=hi.getTimeRange(this);this.isQueryModeAuto()&&this.subscribeToTimeRangeChanges(e),this.runWithTimeRange(e)}getMaxDataPoints(){var e;return this.state.maxDataPoints?this.state.maxDataPoints:this.state.maxDataPointsFromWidth&&null!=(e=this._containerWidth)?e:500}cancelQuery(){var e;null==(e=this._querySub)||e.unsubscribe(),this._dataLayersSub&&(this._dataLayersSub.unsubscribe(),this._dataLayersSub=void 0),this.setState({data:{...this.state.data,state:F.Done}})}async runWithTimeRange(e){var t,n,r;if(!this.state.maxDataPoints&&this.state.maxDataPointsFromWidth&&!this._containerWidth)return;if(this._dataLayersSub||this._handleDataLayers(),null==(t=this._querySub)||t.unsubscribe(),this._variableDependency.hasDependencyInLoadingState())return j(),void this.setState({data:{...null!=(n=this.state.data)?n:V,state:F.Loading}});this._variableValueRecorder.recordCurrentDependencyValuesForSceneObject(this);const{queries:a}=this.state;if(null==a?void 0:a.length)try{const t=null!=(r=this.state.datasource)?r:ws(a),n=await qe(t,this._scopedVars);this.findAndSubscribeToAdHocFilters(n.uid);const s=(0,i.getRunRequest)(),{primary:o,secondaries:l,processors:u}=this.prepareRequests(e,n);j(0,0,this.state.key);let d=s(n,o);if(l.length>0){const e=l.map(e=>s(n,e)),t=(e=>t=>t.pipe((0,m.mergeMap)(([t,...n])=>{const r=n.flatMap(n=>{var r,a;return null!=(a=null==(r=e.get(n.request.requestId))?void 0:r(t,n))?a:(0,m.of)(n)});return(0,m.forkJoin)([(0,m.of)(t),...r])}),(0,m.map)(([e,...t])=>{var n;return{...e,series:[...e.series,...t.flatMap(e=>e.series)],annotations:[...null!=(n=e.annotations)?n:[],...t.flatMap(e=>{var t;return null!=(t=e.annotations)?t:[]})]}})))(u);d=(0,m.forkJoin)([d,...e]).pipe(t)}d=d.pipe(Be({type:"SceneQueryRunner/runQueries",request:o,origin:this,cancel:()=>this.cancelQuery()})),this._querySub=d.subscribe(this.onDataReceived)}catch(e){console.error("PanelQueryRunner Error",e),this.onDataReceived({...V,...this.state.data,state:F.Error,errors:[(0,i.toDataQueryError)(e)]})}else this._setNoDataState()}clone(e){var t;const n=super.clone(e);return this._resultAnnotations&&(n._resultAnnotations=this._resultAnnotations.map(e=>({...e}))),this._layerAnnotations&&(n._layerAnnotations=this._layerAnnotations.map(e=>({...e}))),n._variableValueRecorder=this._variableValueRecorder.cloneAndRecordCurrentValuesForSceneObject(this),n._containerWidth=this._containerWidth,n._results.next({origin:this,data:null!=(t=this.state.data)?t:V}),n}prepareRequests(e,t){var n,r;const{minInterval:a,queries:o}=this.state;let l={app:"scenes",requestId:bs(),timezone:e.getTimeZone(),range:e.state.value,interval:"1s",intervalMs:1e3,targets:(0,A.cloneDeep)(o),maxDataPoints:this.getMaxDataPoints(),scopedVars:this._scopedVars,startTime:Date.now(),liveStreaming:this.state.liveStreaming,rangeRaw:{from:e.state.from,to:e.state.to},cacheTimeout:this.state.cacheTimeout,queryCachingTTL:this.state.queryCachingTTL,scopes:hi.getScopes(this),...Ze(this)};this._adhocFiltersVar&&(l.filters=[...null!=(n=this._adhocFiltersVar.state.originFilters)?n:[],...this._adhocFiltersVar.state.filters].filter(e=>fs(e)&&_s(e))),this._groupByVar&&(l.groupByKeys=this._groupByVar.state.value),l.targets=l.targets.map(e=>{var n;return e.datasource&&(e.datasource.uid===t.uid||(null==(n=t.meta)?void 0:n.mixed)||!i.isExpressionReference||(0,i.isExpressionReference)(e.datasource))||(e.datasource=t.getRef()),e});const u=a?li(this,a):t.interval,d=s.rangeUtil.calculateInterval(e.state.value,l.maxDataPoints,u);l.scopedVars=Object.assign({},l.scopedVars,{__interval:{text:d.interval,value:d.interval},__interval_ms:{text:d.intervalMs.toString(),value:d.intervalMs}}),l.interval=d.interval,l.intervalMs=d.intervalMs;const c=e.state.value;let h=[],m=new Map;for(const e of null!=(r=this.getClosestExtraQueryProviders())?r:[])for(const{req:t,processor:n}of e.getExtraQueries(l)){const e=bs();h.push({...t,requestId:e}),m.set(e,null!=n?n:Ke)}return l.range=c,{primary:l,secondaries:h,processors:m}}_combineDataLayers(e){return this._layerAnnotations&&this._layerAnnotations.length>0&&(e.annotations=(e.annotations||[]).concat(this._layerAnnotations)),this.state.data&&this.state.data.alertState&&(e.alertState=this.state.data.alertState),e}_setNoDataState(){this.state.data!==V&&this.setState({data:V})}getClosestExtraQueryProviders(){const e=new Map;return this.parent?($(this.parent,t=>(Je(t)&&!e.has(t.constructor)&&e.set(t.constructor,t),t.forEachChild(t=>{Je(t)&&!e.has(t.constructor)&&e.set(t.constructor,t)}),null)),Array.from(e.values())):[]}findAndSubscribeToAdHocFilters(e){const t=function(e){var t;for(const n of et.values())if(li(n,null==(t=n.state.datasource)?void 0:t.uid)===e)return n}(e);this._adhocFiltersVar!==t&&(this._adhocFiltersVar=t,this._updateExplicitVariableDependencies());const n=function(e){var t;for(const n of tt.values())if(li(n,null==(t=n.state.datasource)?void 0:t.uid)===e)return n}(e);this._groupByVar!==n&&(this._groupByVar=n,this._updateExplicitVariableDependencies())}_updateExplicitVariableDependencies(){const e=[];this._adhocFiltersVar&&e.push(this._adhocFiltersVar.state.name),this._groupByVar&&e.push(this._groupByVar.state.name),this._variableDependency.setVariableNames(e)}isQueryModeAuto(){var e;return"auto"===(null!=(e=this.state.runQueriesMode)?e:"auto")}}function ws(e){var t,n;return null!=(n=null==(t=e.find(e=>null!==e.datasource))?void 0:t.datasource)?n:void 0}function Ls(e){if(!e)return!0;for(let t=0;t0)return!1;return!0}function Ss(e,t){return e===t||(0,A.isEqual)(e,t)}function ks(e){try{return JSON.stringify(e,(()=>{const e=new WeakSet;return(t,n)=>{if("object"==typeof n&&null!==n){if(e.has(n))return;e.add(n)}return n}})())}catch(e){console.error(e)}return""}function Ds(e){return e.map(e=>function(e){var t,n;let r="",a=e.operator;"=|"===a?(a="=~",r=null==(t=e.values)?void 0:t.map(xs).join("|")):"!=|"===a?(a="!~",r=null==(n=e.values)?void 0:n.map(xs).join("|")):r="=~"===a||"!~"===a?xs(e.value):Ts(e.value);return`${e.key}${a}"${r}"`}(e)).join(",")}function Ts(e){return e.replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/"/g,'\\"')}function xs(e){return Ts(e.replace(Ys,"\\$&"))}const Ys=/[*+?()|\\.\[\]{}^$]/g;function Es(e){var t;const n=hi.findAllObjects(e.getRoot(),e=>e instanceof Ms),r=hi.interpolate(e,null==(t=e.state.datasource)?void 0:t.uid),a=function(e){const t={};for(const n of e)n.state.key&&(n.state.key in t||(t[n.state.key]=[]),t[n.state.key].push(n));return Object.values(t).flatMap(e=>{const t=e.filter(e=>e.isActive);return 0===t.length&&1===e.length?e:t})}(n).filter(t=>{var n;return hi.interpolate(e,null==(n=t.state.datasource)?void 0:n.uid)===r});if(0===a.length)return[];const s=[];return a.forEach(t=>{s.push(...t.state.queries.filter(t=>{if(!t.datasource||!t.datasource.uid)return!0;return hi.interpolate(e,t.datasource.uid)===r}))}),s}function Os(e){return null==e?"":/\|/g[Symbol.replace](e,"__gfp__")}function As(e){return null==e?"":/,/g[Symbol.replace](e,"__gfc__")}function Cs(e){return function(e){return null==e?"":/#/g[Symbol.replace](e,"__gfh__")}(Os(e))}function Rs(e){return null==e?"":(e=/__gfp__/g[Symbol.replace](e,"|"),e=/__gfc__/g[Symbol.replace](e,","),e=/__gfh__/g[Symbol.replace](e,"#"))}function Ps(e,t){return t&&e!==t?[e,t].map(As).join(","):As(e)}function js(e){return Array.isArray(e)?e:e.data}function Hs(e){return!Array.isArray(e)&&Boolean(e.error)}function Ns(e){const t=[],n=new Map;for(const r of e){const e=r.group;if(e){let a=n.get(e);a||(a=[],n.set(e,a),t.push({label:e,options:a})),a.push(r)}else t.push(r)}return t}class Is extends Y{constructor(e){super({type:"constant",value:"",name:"",...e,skipUrlSync:!0}),this._variableDependency=new Fs(this,{statePaths:["value"]}),this._prevValue=""}validateAndUpdate(){const e=this.getValue();return this._prevValue!==e&&(this._prevValue=e,this.publishEvent(new ie(this),!0)),(0,m.of)({})}getValue(){return"string"==typeof this.state.value?hi.interpolate(this,this.state.value):this.state.value}}class Fs{constructor(e,t){this._sceneObject=e,this._options=t,this._dependencies=new Set,this._isWaitingForVariables=!1,this.scanCount=0,this._statePaths=t.statePaths,this._options.handleTimeMacros&&this.handleTimeMacros()}hasDependencyOn(e){return this.getNames().has(e)}variableUpdateCompleted(e,t){var n,r,a,i;const o=this.getNames(),l=(o.has(e.state.name)||o.has(s.DataLinkBuiltInVars.includeVars))&&t;j(0,0,e.state.name,this._isWaitingForVariables),null==(r=(n=this._options).onAnyVariableChanged)||r.call(n,e),this._options.onVariableUpdateCompleted&&(this._isWaitingForVariables||l)&&this._options.onVariableUpdateCompleted(),l&&(null==(i=(a=this._options).onReferencedVariableValueChanged)||i.call(a,e),this._options.onReferencedVariableValueChanged||this._options.onVariableUpdateCompleted||this._sceneObject.forceRender())}hasDependencyInLoadingState(){return this._isWaitingForVariables=hi.hasVariableDependencyInLoadingState(this._sceneObject),this._isWaitingForVariables}getNames(){const e=this._state,t=this._state=this._sceneObject.state;return(!e||t!==e&&(!this._statePaths||this._statePaths.some(n=>"*"===n||t[n]!==e[n])))&&this.scanStateForDependencies(t),this._dependencies}setVariableNames(e){this._options.variableNames=e,this.scanStateForDependencies(this._state)}setPaths(e){this._statePaths=e}scanStateForDependencies(e){if(this._dependencies.clear(),this.scanCount++,this._options.variableNames)for(const e of this._options.variableNames)this._dependencies.add(e);if(this._options.dependsOnScopes&&this._dependencies.add(Te),this._statePaths)for(const t of this._statePaths){if("*"===t){this.extractVariablesFrom(e);break}{const n=e[t];n&&this.extractVariablesFrom(n)}}}extractVariablesFrom(e){ke.lastIndex=0;const t=("string"!=typeof e?ks(e):e).matchAll(ke);if(t)for(const e of t){const[,t,n,,r]=e,a=t||n||r;this._dependencies.add(a)}}handleTimeMacros(){this._sceneObject.addActivationHandler(()=>{const e=hi.getTimeRange(this._sceneObject).subscribeToState((e,t)=>{const n=this.getNames(),r=n.has("__from"),a=n.has("__to"),s=n.has("__timezone");if(e.value!==t.value)if(r){const t=new Is({name:"__from",value:e.from});this.variableUpdateCompleted(t,!0)}else if(a){const t=new Is({name:"__to",value:e.to});this.variableUpdateCompleted(t,!0)}if(e.timeZone!==t.timeZone&&s){const t=new Is({name:"__timezone",value:e.timeZone});this.variableUpdateCompleted(t,!0)}});return()=>e.unsubscribe()})}}const Ws=e=>Boolean(e.metricFindQuery)&&!Boolean(e.variables),Vs=e=>{if(!e.variables)return!1;if(e.variables.getType()!==s.VariableSupportType.Standard)return!1;const t=e.variables;return"toDataQuery"in t&&Boolean(t.toDataQuery)},zs=e=>{if(!e.variables)return!1;if(e.variables.getType()!==s.VariableSupportType.Custom)return!1;const t=e.variables;return"query"in t&&"editor"in t&&Boolean(t.query)&&Boolean(t.editor)},$s=e=>!!e.variables&&e.variables.getType()===s.VariableSupportType.Datasource;class Bs{constructor(e,t=(0,i.getRunRequest)()){this.datasource=e,this._runRequest=t}getTarget(e){if(Vs(this.datasource))return this.datasource.variables.toDataQuery(function(e){var t;const n=null!=(t=e.state.query)?t:"";if("string"==typeof n)return{query:n,refId:`variable-${e.state.name}`};if(null==n.refId)return{...n,refId:`variable-${e.state.name}`};return e.state.query}(e));throw new Error("Couldn't create a target with supplied arguments.")}runRequest(e,t){return Vs(this.datasource)?this.datasource.variables.query?this._runRequest(this.datasource,t,this.datasource.variables.query.bind(this.datasource.variables)):this._runRequest(this.datasource,t):Js()}}class Us{constructor(e){this.datasource=e}getTarget(e){if(Ws(this.datasource))return e.state.query;throw new Error("Couldn't create a target with supplied arguments.")}runRequest({variable:e,searchFilter:t},n){return Ws(this.datasource)?(0,m.from)(this.datasource.metricFindQuery(e.state.query,{...n,variable:{name:e.state.name,type:e.state.type},searchFilter:t})).pipe((0,m.mergeMap)(e=>{if(!e||!e.length)return Js();const t=e;return(0,m.of)({series:t,state:s.LoadingState.Done,timeRange:n.range})})):Js()}}class qs{constructor(e,t=(0,i.getRunRequest)()){this.datasource=e,this._runRequest=t}getTarget(e){if(zs(this.datasource))return e.state.query;throw new Error("Couldn't create a target with supplied arguments.")}runRequest(e,t){return zs(this.datasource)?this.datasource.variables.query?this._runRequest(this.datasource,t,this.datasource.variables.query.bind(this.datasource.variables)):this._runRequest(this.datasource,t):Js()}}class Gs{constructor(e,t=(0,i.getRunRequest)()){this.datasource=e,this._runRequest=t}getTarget(e){var t;if($s(this.datasource))return"string"==typeof e.state.query?e.state.query:{...e.state.query,refId:null!=(t=e.state.query.refId)?t:"variable-query"};throw new Error("Couldn't create a target with supplied arguments.")}runRequest(e,t){return $s(this.datasource)?this._runRequest(this.datasource,t):Js()}}function Js(){return(0,m.of)({state:s.LoadingState.Done,series:[],timeRange:(0,s.getDefaultTimeRange)()})}let Ks=function(e){if(Vs(e))return new Bs(e,(0,i.getRunRequest)());if(Ws(e))return new Us(e);if(zs(e))return new qs(e);if($s(e))return new Gs(e);throw new Error(`Couldn't create a query runner for datasource ${e.type}`)};const Qs=(e,t)=>{const n=[];let r=null;t.lastIndex=0;do{r=t.exec(e),r&&n.push(r)}while(t.global&&r&&""!==r[0]&&void 0!==r[0]);return n},Zs=(e,t)=>{if(t===s.VariableSort.disabled)return e;switch(t){case s.VariableSort.alphabeticalAsc:e=(0,A.sortBy)(e,"label");break;case s.VariableSort.alphabeticalDesc:e=(0,A.sortBy)(e,"label").reverse();break;case s.VariableSort.numericalAsc:e=(0,A.sortBy)(e,Xs);break;case s.VariableSort.numericalDesc:e=(e=(0,A.sortBy)(e,Xs)).reverse();break;case s.VariableSort.alphabeticalCaseInsensitiveAsc:e=(0,A.sortBy)(e,e=>(0,A.toLower)(e.label));break;case s.VariableSort.alphabeticalCaseInsensitiveDesc:e=(e=(0,A.sortBy)(e,e=>(0,A.toLower)(e.label))).reverse();break;case s.VariableSort.naturalAsc||7:e=ti(e);break;case s.VariableSort.naturalDesc||8:e=(e=ti(e)).reverse()}return e};function Xs(e){if(!e.label)return-1;const t=e.label.match(/.*?(\d+).*/);return!t||t.length<2?-1:parseInt(t[1],10)}const ei=new Intl.Collator(void 0,{sensitivity:"accent",numeric:!0});function ti(e){return e.slice().sort((e,t)=>ei.compare(e.label,t.label))}function ni(){return e=>e.pipe((0,m.map)(e=>{const t=e.series;if(!t||!t.length)return[];if(function(e){if(!e)return!1;if(!e.length)return!0;const t=e[0];if((0,s.isDataFrame)(t))return!1;for(const e in t){if(!t.hasOwnProperty(e))continue;if(null!==t[e]&&"string"!=typeof t[e]&&"number"!=typeof t[e])continue;const n=e.toLowerCase();if("text"===n||"value"===n)return!0}return!1}(t))return t;if(0===t[0].fields.length)return[];const n=(0,s.getProcessedDataFrames)(t),r=[];let a=-1,i=-1,o=-1,l=-1;for(const e of n)for(let n=0;n{ks(this.state.query).indexOf(De)>-1&&this._updateOptionsBasedOnSearchFilter(e)},this._updateOptionsBasedOnSearchFilter=(0,A.debounce)(async e=>{const t=await(0,m.lastValueFrom)(this.getValueOptions({searchFilter:e}));this.setState({options:t,loading:!1})},400)}getValueOptions(e){return this.state.query?(this.setState({loading:!0,error:null}),(0,m.from)(qe(this.state.datasource,{__sceneObject:Ft(this)})).pipe((0,m.mergeMap)(t=>{const n=Ks(t),r=n.getTarget(this),a=this.getRequest(r,e.searchFilter);return n.runRequest({variable:this,searchFilter:e.searchFilter},a).pipe(Be({type:"QueryVariable/getValueOptions",request:a,origin:this}),(0,m.filter)(e=>e.state===s.LoadingState.Done||e.state===s.LoadingState.Error),(0,m.take)(1),(0,m.mergeMap)(e=>e.state===s.LoadingState.Error?(0,m.throwError)(()=>e.error):(0,m.of)(e)),ni(),(0,m.mergeMap)(e=>{let t="";this.state.regex&&(t=hi.interpolate(this,this.state.regex,void 0,"regex"));let n=function(e,t,n){var r,a,i,o,l,u,d,c,h,m;let p,f=[];e&&(p=(0,s.stringToJsRegex)(e));for(let e=0;ee.groups&&e.groups.value),n=e.find(e=>e.groups&&e.groups.text),r=e.find(e=>e.length>1),a=e.length>1&&r;if(t||n)_=null!=(d=null==(l=null==t?void 0:t.groups)?void 0:l.value)?d:null==(u=null==n?void 0:n.groups)?void 0:u.text,s=null!=(m=null==(c=null==n?void 0:n.groups)?void 0:c.text)?m:null==(h=null==t?void 0:t.groups)?void 0:h.value;else{if(a){for(let t=0;t!e.find(e=>e.value===t.value)),"after"===this.state.staticOptionsOrder?n.push(...e):"sorted"===this.state.staticOptionsOrder?n=Zs(n.concat(e),this.state.sort):n.unshift(...e)}return(0,m.of)(n)}),(0,m.catchError)(e=>e.cancelled?(0,m.of)([]):(0,m.throwError)(()=>e)))}))):(0,m.of)([])}getRequest(e,t){const n={__sceneObject:Ft(this)};t&&(n.__searchFilter={value:t,text:t});const r=hi.getTimeRange(this).state.value;return{app:s.CoreApp.Dashboard,requestId:b(),timezone:"",range:r,interval:"",intervalMs:0,targets:[e],scopedVars:n,startTime:Date.now()}}}ri.Component=({model:e})=>h().createElement(At,{model:e});var ai=n(2245);class si extends Y{constructor(e){super({skipUrlSync:!0,loading:!0,scopes:[],...e,type:"system",name:Te,hide:ai.zL.hideVariable}),this._renderBeforeActivation=!0,this.UNSAFE_renderAsHidden=!0}getValue(){var e;const t=null!=(e=this.state.scopes)?e:[];return new ii(t.map(e=>e.metadata.name))}getScopes(){return this.state.scopes}setContext(e){if(!e)return;this._context=e;const t=e.state;null!=this.state.enable&&e.setEnabled(this.state.enable);const n=e.stateObservable.subscribe(e=>{this.updateStateFromContext(e)});return()=>{n.unsubscribe(),null!=this.state.enable&&e.setEnabled(t.enabled)}}updateStateFromContext(e){const t=0!==e.value.length&&e.loading,n=this.state.scopes.map(e=>e.metadata.name),r=e.value.map(e=>e.metadata.name),a=!(0,A.isEqual)(n,r);if(t||!a&&0!==r.length)this.setState({loading:t});else{const n=N(this);null==n||n.startProfile("scopes_changed"),this.setState({scopes:e.value,loading:t}),this.publishEvent(new ie(this),!0)}}}si.Component=function({model:e}){const t=(0,d.useContext)(i.ScopesContext);return(0,d.useEffect)(()=>e.setContext(t),[t,e]),null};class ii{constructor(e){this._value=e}formatter(e){return e===I.$m.QueryParam?this._value.map(e=>`scope=${encodeURIComponent(e)}`).join("&"):this._value.join(", ")}}function oi(e){var t;return null!=(t=$(e,e=>e.state.$data))?t:ne}function li(e,t,n,r,a){return""===t||null==t?"":We(e,t,n,r,a)}function ui(e,t,n,r){if(t(e))return e;let a=null;return e.forEachChild(e=>{if(e===n)return;let r=ui(e,t);return r?(a=r,!1):void 0}),a||(r&&e.parent?ui(e.parent,t,e,!0):null)}function di(e,t){return ui(e,t,void 0,!0)}function ci(e,t){const n=[];return e.forEachChild(e=>{t(e)&&n.push(e),n.push(...ci(e,t))}),n}const hi={getVariables:function(e){var t;return null!=(t=$(e,e=>e.state.$variables))?t:ae},getData:oi,getTimeRange:se,getLayout:function(e){const t=$(e,e=>function(e){return"isDraggable"in e}(e)?e:void 0);return t||null},getDataLayers:function(e,t=!1){let n=e,r=[];for(;n;){const e=n.state.$data;if(e){if($e(e)?r=r.concat(e):e.state.$data&&$e(e.state.$data)&&(r=r.concat(e.state.$data)),t&&r.length>0)break;n=n.parent}else n=n.parent}return r},interpolate:li,lookupVariable:P,hasVariableDependencyInLoadingState:function(e){if(!e.variableDependency)return!1;for(const t of e.variableDependency.getNames()){if(e instanceof ri&&e.state.name===t){console.warn("Query variable is referencing itself");continue}const n=P(t,e);if(!n)continue;if(n.parent.isVariableLoadingOrWaitingToUpdate(n))return!0}return!1},findByKey:function(e,t){const n=di(e,e=>e.state.key===t);if(!n)throw new Error("Unable to find scene with key "+t);return n},findByKeyAndType:function(e,t,n){const r=di(e,e=>e.state.key===t);if(!r)throw new Error("Unable to find scene with key "+t);if(!(r instanceof n))throw new Error(`Found scene object with key ${t} does not match type ${n.name}`);return r},findObject:di,findAllObjects:ci,getAncestor:function(e,t){let n=e;for(;n;){if(n instanceof t)return n;n=n.parent}if(!n)throw new Error("Unable to find parent of type "+t.name);return n},getQueryController:N,findDescendents:function(e,t){function n(e){return e instanceof t}return ci(e,n).filter(n)},getScopes:function(e){const t=P(Te,e);if(t instanceof si)return t.state.scopes}},mi=["from","to","timezone"];class pi{constructor(e){this.index=new Map,this.options={namespace:(null==e?void 0:e.namespace)||"",excludeFromNamespace:(null==e?void 0:e.excludeFromNamespace)||mi}}getOptions(){return this.options}getNamespacedKey(e){return this.options.namespace&&!this.options.excludeFromNamespace.includes(e)?`${this.options.namespace}-${e}`:e}getUniqueKey(e,t){const n=this.getNamespacedKey(e),r=this.index.get(n);if(!r)return this.index.set(n,[t]),n;let a=r.findIndex(e=>e===t);return-1===a&&(!function(e){for(const t of e)if(fi(t)){const n=e.indexOf(t);e.splice(n,1)}}(r),r.push(t),a=r.length-1),a>0?`${n}-${a+1}`:n}clear(){this.index.clear()}}function fi(e){const t=e.getRoot();return!hi.findObject(t,t=>t===e)}function _i(e,t){const n=new pi(t),r={},a=e=>{if(e.urlSync){const t=e.urlSync.getUrlState();for(const[a,s]of Object.entries(t))if(null!=s){const t=n.getUniqueKey(a,e);r[t]=s}}e.forEachChild(a)};return a(e),r}function gi(e,t,n,r){r||yi(e,t,n),e.forEachChild(e=>{yi(e,t,n)}),e.forEachChild(e=>gi(e,t,n,!0))}function yi(e,t,n){if(e.urlSync){const r={},a=e.urlSync.getUrlState();for(const s of e.urlSync.getKeys()){const i=n.getUniqueKey(s,e),o=t.getAll(i),l=a[s];vi(o,l)||(o.length>0?Array.isArray(l)?r[s]=o:r[s]=o[0]:r[s]=null)}Object.keys(r).length>0&&e.urlSync.updateFromUrl(r)}}function vi(e,t){return 0===e.length&&null==t||(Array.isArray(t)||1!==(null==e?void 0:e.length)?0===(null==t?void 0:t.length)&&null===e||(0,A.isEqual)(e,t):t===e[0])}class bi extends Y{constructor(e){super({type:"system",value:"",text:"",name:"",...e,skipUrlSync:!0})}getValue(){return this.state.value}getValueText(){return this.state.text.toString()}isAncestorLoading(){var e,t;const n=null==(t=null==(e=this.parent)?void 0:e.parent)?void 0:t.parent;if(!n)throw new Error("LocalValueVariable requires a parent SceneVariableSet that has an ancestor SceneVariableSet");const r=hi.getVariables(n),a=hi.lookupVariable(this.state.name,n);return!(!r||!a)&&r.isVariableLoadingOrWaitingToUpdate(a)}}function Mi(e){let t,n=`panel-${e.getLegacyPanelId()}`,r=e;for(;r;){const e=r.state.$variables;e&&e.state.variables.forEach(e=>{e.state.name!==t&&e instanceof bi&&(n=`${e.state.value}$${n}`,t=e.state.name)}),r=r.parent}return n}var wi=n(6145);class Li extends Y{constructor(e){super({...e,sync:e.sync||wi.yV.Off}),this.getEventsBus=e=>{if(!this.parent)throw new Error("EnableCursorSync cannot be used as a standalone scene object");return new Si(this.parent,e)}}getEventsScope(){if(!this.parent)throw new Error("EnableCursorSync cannot be used as a standalone scene object");return this.state.key}}class Si{constructor(e,t){this._source=e,this._eventsOrigin=t}publish(e){e.origin=this,this._eventsOrigin.publishEvent(e,!0)}getStream(e){return new m.Observable(t=>{const n=this._source.subscribeToEvent(e,e=>{t.next(e)});return()=>n.unsubscribe()})}subscribe(e,t){return this.getStream(e).pipe().subscribe(t)}removeAllListeners(){}newScopedBus(e,t){throw new Error("For internal use only")}}var ki=function(){};var Di="undefined"!=typeof window;const Ti=Di?d.useLayoutEffect:d.useEffect;var xi={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};const Yi=Di&&void 0!==window.ResizeObserver?function(){var e=(0,d.useState)(null),t=e[0],n=e[1],r=(0,d.useState)(xi),a=r[0],s=r[1],i=(0,d.useMemo)(function(){return new window.ResizeObserver(function(e){if(e[0]){var t=e[0].contentRect,n=t.x,r=t.y,a=t.width,i=t.height,o=t.top,l=t.left,u=t.bottom,d=t.right;s({x:n,y:r,width:a,height:i,top:o,left:l,bottom:u,right:d})}})},[]);return Ti(function(){if(t)return i.observe(t),function(){i.disconnect()}},[t]),[n,a]}:function(){return[ki,xi]};function Ei({data:e,showAll:t,seriesLimit:n,onShowAllSeries:r}){const a=(0,nt.useStyles2)(Oi),s=null==e?void 0:e.series.length;if(void 0===s||s({timeSeriesDisclaimer:(0,at.css)({label:"time-series-disclaimer",display:"flex",alignItems:"center",gap:e.spacing(1)}),warningMessage:(0,at.css)({display:"flex",alignItems:"center",gap:e.spacing(.5),color:e.colors.warning.main,fontSize:e.typography.bodySmall.fontSize})});function Ai(e,t){if(t)return t;let n=e.error?e.error.message:void 0;return e.errors&&(n=e.errors.map(e=>e.message).join(", ")),n}const Ci=(0,at.css)({position:"relative",width:"100%",height:"100%"}),Ri=(0,at.css)({position:"absolute",width:"100%",height:"100%"}),Pi=e=>({ok:(0,at.css)({color:e.colors.success.text}),pending:(0,at.css)({color:e.colors.warning.text}),alerting:(0,at.css)({color:e.colors.error.text})}),ji="hideSeriesFrom",Hi=(0,s.isSystemOverrideWithRef)(ji);function Ni(e,t=s.ByNamesMatcherMode.exclude,n){return n=null!=n?n:{id:"custom.hideFrom",value:{viz:!0,legend:!1,tooltip:!0}},{__systemRef:ji,matcher:{id:s.FieldMatcherID.byNames,options:{mode:t,names:e,prefix:t===s.ByNamesMatcherMode.exclude?"All except:":void 0,readOnly:!0}},properties:[{...n,value:{viz:!0,legend:!1,tooltip:!0}}]}}const Ii=(e,t,n=s.ByNamesMatcherMode.exclude)=>{const r=e.properties.find(e=>"custom.hideFrom"===e.id),a=Fi(e),i=a.findIndex(e=>e===t);return i<0?a.push(t):a.splice(i,1),Ni(a,n,r)},Fi=e=>{var t;const n=null==(t=e.matcher.options)?void 0:t.names;return Array.isArray(n)?[...n]:[]},Wi=(e,t)=>Fi(e).length===Vi(t).length,Vi=(e,t)=>{const n=new Set;for(const r of e)for(const a of r.fields){if(a.type!==s.FieldType.number)continue;const i=(0,s.getFieldDisplayName)(a,r,e);i!==t&&n.add(i)}return Array.from(n)},zi=(e,t)=>{var n;let r=[];for(const a of e){const e=a.properties.find(e=>"custom.hideFrom"===e.id);if(void 0!==e&&!0===(null==(n=e.value)?void 0:n.legend)){const e=s.fieldMatchers.get(a.matcher.id).get(a.matcher.options);for(const n of t)for(const a of n.fields){if(a.type!==s.FieldType.number)continue;const i=(0,s.getFieldDisplayName)(a,n,t);e(a,n,t)&&r.push(i)}}}return r},$i=(e,t)=>({matcher:{id:s.FieldMatcherID.byName,options:e},properties:[Bi(t)]}),Bi=e=>({id:"color",value:{mode:s.FieldColorModeId.Fixed,fixedColor:e}});class Ui extends Y{constructor(){super(...arguments),this.isDataLayer=!0,this._results=new m.ReplaySubject(1),this._dataLayersMerger=new ys}subscribeToAllLayers(e){e.length>0?this.querySub=this._dataLayersMerger.getMergedStream(e).subscribe(this._onLayerUpdateReceived.bind(this)):(this._results.next({origin:this,data:V}),this.setStateHelper({data:V}))}_onLayerUpdateReceived(e){var t;let n=[];for(const r of e)(null==(t=r.data)?void 0:t.series)&&(n=n.concat(r.data.series));const r={...V,series:n};this._results.next({origin:this,data:r}),this.setStateHelper({data:r})}getResultsStream(){return this._results}cancelQuery(){var e;null==(e=this.querySub)||e.unsubscribe()}setStateHelper(e){Oe(this,e)}}class qi extends Ui{constructor(e){var t,n;super({name:null!=(t=e.name)?t:"Data layers",layers:null!=(n=e.layers)?n:[]}),this.addActivationHandler(()=>this._onActivate())}_onActivate(){return this._subs.add(this.subscribeToState((e,t)=>{var n;e.layers!==t.layers&&(null==(n=this.querySub)||n.unsubscribe(),this.subscribeToAllLayers(e.layers))})),this.subscribeToAllLayers(this.state.layers),()=>{var e;null==(e=this.querySub)||e.unsubscribe()}}}qi.Component=({model:e})=>{const{layers:t}=e.useState();return h().createElement(h().Fragment,null,t.map(e=>h().createElement(e.Component,{model:e,key:e.state.key})))};class Gi extends Y{constructor(e){super(e),this._results=new m.ReplaySubject(1),this._variableDependency=new Fs(this,{statePaths:["transformations"],onReferencedVariableValueChanged:()=>this.reprocessTransformations()}),this.addActivationHandler(()=>this.activationHandler())}activationHandler(){const e=this.getSourceData();return this._subs.add(e.subscribeToState(e=>this.transform(e.data))),e.state.data&&this.transform(e.state.data),()=>{this._transformSub&&this._transformSub.unsubscribe()}}getSourceData(){if(this.state.$data){if(this.state.$data instanceof qi)throw new Error("SceneDataLayerSet can not be used as data provider for SceneDataTransformer.");return this.state.$data}if(!this.parent||!this.parent.parent)throw new Error("SceneDataTransformer must either have $data set on it or have a parent.parent with $data");return hi.getData(this.parent.parent)}setContainerWidth(e){this.state.$data&&this.state.$data.setContainerWidth&&this.state.$data.setContainerWidth(e)}isDataReadyToDisplay(){const e=this.getSourceData();return!e.isDataReadyToDisplay||e.isDataReadyToDisplay()}reprocessTransformations(){this.transform(this.getSourceData().state.data,!0)}cancelQuery(){var e,t;null==(t=(e=this.getSourceData()).cancelQuery)||t.call(e)}getResultsStream(){return this._results}clone(e){const t=super.clone(e);return this._prevDataFromSource&&(t._prevDataFromSource=this._prevDataFromSource),t}haveAlreadyTransformedData(e){if(!this._prevDataFromSource)return!1;if(e===this._prevDataFromSource)return!0;const{series:t,annotations:n}=this._prevDataFromSource;return e.series===t&&e.annotations===n&&(this.state.data&&e.state!==this.state.data.state&&this.setState({data:{...this.state.data,state:e.state}}),!0)}transform(e,t=!1){var n;if(0===this.state.transformations.length||!e)return this._prevDataFromSource=e,this.setState({data:e}),void(e&&this._results.next({origin:this,data:e}));if(!t&&this.haveAlreadyTransformedData(e))return;let r=this._interpolateVariablesInTransformationConfigs(e);const a=r.filter(e=>!("options"in e)&&!("topic"in e)||(null==e.topic||e.topic===s.DataTopic.Series)).map(e=>"operator"in e?e.operator:e),o=r.filter(e=>("options"in e||"topic"in e)&&e.topic===s.DataTopic.Annotations).map(e=>"operator"in e?e.operator:e);this._transformSub&&this._transformSub.unsubscribe();const l={interpolate:(t,n)=>{var r;return hi.interpolate(this,t,{...null==(r=e.request)?void 0:r.scopedVars,...n})}};let u=[(0,s.transformDataFrame)(a,e.series,l)];e.annotations&&e.annotations.length>0&&o.length>0&&u.push((0,s.transformDataFrame)(o,null!=(n=e.annotations)?n:[])),this._transformSub=(0,m.forkJoin)(u).pipe((0,m.map)(t=>{const n=t[0],r=t[1];return{...e,series:n,annotations:null!=r?r:e.annotations}}),(0,m.catchError)(t=>{var n;console.error("Error transforming data: ",t);const r=(null==(n=this.getSourceData().state.data)?void 0:n.errors)||[],a=(0,i.toDataQueryError)(t);a.message=`Error transforming data: ${a.message}`;const o={...e,state:s.LoadingState.Error,errors:[...r,a]};return(0,m.of)(o)})).subscribe(t=>{this.setState({data:t}),this._results.next({origin:this,data:t}),this._prevDataFromSource=e})}_interpolateVariablesInTransformationConfigs(e){var t;const n=this.state.transformations;if(0===this._variableDependency.getNames().size)return n;return n.every(e=>"object"==typeof e)?JSON.parse(hi.interpolate(this,JSON.stringify(n),null==(t=e.request)?void 0:t.scopedVars)):n.map(t=>{var n;return"object"==typeof t?JSON.parse(hi.interpolate(this,JSON.stringify(t),null==(n=e.request)?void 0:n.scopedVars)):t})}}class Ji extends Y{constructor(e){var t;super({options:{},fieldConfig:{defaults:{},overrides:[]},title:(0,he.t)("grafana-scenes.components.viz-panel.title.title","Title"),pluginId:"timeseries",_renderCounter:0,...e}),this._variableDependency=new Fs(this,{statePaths:["title","options","fieldConfig"]}),this._structureRev=0,this.onTimeRangeChange=e=>{hi.getTimeRange(this).onTimeRangeChange({raw:{from:(0,s.toUtc)(e.from),to:(0,s.toUtc)(e.to)},from:(0,s.toUtc)(e.from),to:(0,s.toUtc)(e.to)})},this.getTimeRange=e=>{const t=hi.findObject(this,e=>e instanceof Qi),n=hi.getTimeRange(this);if(t instanceof Qi&&t.isEnabled)return q(n.state.from,n.state.to,n.getTimeZone(),n.state.fiscalYearStartMonth,n.state.UNSAFE_nowDelay,n.state.weekStart);const r=this.getPlugin();return r&&!r.meta.skipDataQuery&&e&&e.timeRange?e.timeRange:n.state.value},this.onTitleChange=e=>{this.setState({title:e})},this.onDescriptionChange=e=>{this.setState({description:e})},this.onDisplayModeChange=e=>{this.setState({displayMode:e})},this.onToggleCollapse=e=>{this.setState({collapsed:e})},this.onOptionsChange=(e,t=!1,n=!1)=>{var r;const{fieldConfig:a,options:i}=this.state,o=t?e:(0,A.mergeWith)((0,A.cloneDeep)(i),e,(e,t,n,r)=>{if((0,A.isArray)(t))return t;e===t||void 0!==t||(r[n]=t)}),l=(0,s.getPanelOptionsWithDefaults)({plugin:this._plugin,currentOptions:o,currentFieldConfig:a,isAfterPluginChange:n});this.setState({options:l.options,_renderCounter:(null!=(r=this.state._renderCounter)?r:0)+1})},this.onFieldConfigChange=(e,t)=>{const{fieldConfig:n,options:r}=this.state,a=t?e:(0,A.merge)((0,A.cloneDeep)(n),e),i=(0,s.getPanelOptionsWithDefaults)({plugin:this._plugin,currentOptions:r,currentFieldConfig:a,isAfterPluginChange:!1});this._dataWithFieldConfig=void 0,this.setState({fieldConfig:i.fieldConfig})},this.interpolate=(e,t,n)=>hi.interpolate(this,e,t,n),this.getDescription=()=>{this.publishEvent(new S({origin:this,interaction:"panel-description-shown"}),!0);const{description:e}=this.state;if(e){const t=this.interpolate(e);return(0,s.renderMarkdown)(t)}return""},this.onCancelQuery=()=>{var e;this.publishEvent(new S({origin:this,interaction:"panel-cancel-query-clicked"}),!0);const t=hi.getData(this);null==(e=t.cancelQuery)||e.call(t)},this.onStatusMessageClick=()=>{this.publishEvent(new S({origin:this,interaction:"panel-status-message-clicked"}),!0)},this._onSeriesColorChange=(e,t)=>{this.onFieldConfigChange(((e,t,n)=>{const{overrides:r}=n,a=n.overrides.findIndex(t=>t.matcher.id===s.FieldMatcherID.byName&&t.matcher.options===e);if(a<0)return{...n,overrides:[...n.overrides,$i(e,t)]};const i=Array.from(r),o=i[a],l=o.properties.findIndex(e=>"color"===e.id);if(l<0)return i[a]={...o,properties:[...o.properties,Bi(t)]},{...n,overrides:i};const u=Array.from(o.properties);return u[l]=Bi(t),i[a]={...o,properties:u},{...n,overrides:i}})(e,t,this.state.fieldConfig))},this._onSeriesVisibilityChange=(e,t)=>{this._dataWithFieldConfig&&this.onFieldConfigChange(function(e,t,n,r){const{overrides:a}=n,s=e,i=a.findIndex(Hi);if(i<0){if(t===nt.SeriesVisibilityChangeMode.ToggleSelection){const e=Ni([s,...zi(a,r)]);return{...n,overrides:[...n.overrides,e]}}const e=Ni(Vi(r,s));return{...n,overrides:[...n.overrides,e]}}const o=Array.from(a),[l]=o.splice(i,1);if(t===nt.SeriesVisibilityChangeMode.ToggleSelection){let e=Fi(l);const t=zi(o,r);if(t.length>0&&(e=e.filter(e=>t.indexOf(e)<0)),e[0]===s&&1===e.length)return{...n,overrides:o};const a=Ni([s,...t]);return{...n,overrides:[...o,a]}}const u=Ii(l,s);return Wi(u,r)?{...n,overrides:o}:{...n,overrides:[...o,u]}}(e,t,this.state.fieldConfig,this._dataWithFieldConfig.series),!0)},this._onInstanceStateChange=e=>{this._panelContext&&(this._panelContext={...this._panelContext,instanceState:e}),this.setState({_pluginInstanceState:e})},this._onToggleLegendSort=e=>{const t=this.state.options.legend;if(!t)return;let n=t.sortDesc,r=t.sortBy;e!==r&&(n=void 0),!1===n?(r=void 0,n=void 0):(n=!n,r=e),this.onOptionsChange({...this.state.options,legend:{...t,sortBy:r,sortDesc:n}},!0)},this.addActivationHandler(()=>{this._onActivate()}),null==(t=e.menu)||t.addActivationHandler(()=>{this.publishEvent(new S({origin:this,interaction:"panel-menu-shown"}),!0)})}_onActivate(){this._plugin||this._loadPlugin(this.state.pluginId)}forceRender(){var e;this.setState({_renderCounter:(null!=(e=this.state._renderCounter)?e:0)+1})}async _loadPlugin(e,t,n,r){const a=function(e){var t;const{getPanelPluginFromCache:n}=(0,i.getPluginImportUtils)();return null!=(t=n(e))?t:u.get(e)}(e);if(a)this._pluginLoaded(a,t,n,r);else{const{importPanelPlugin:a}=(0,i.getPluginImportUtils)();try{const s=a(e),i=hi.getQueryController(this);i&&i.state.enableProfiling&&Ue(s).pipe(Be({type:`VizPanel/loadPlugin/${e}`,origin:this})).subscribe(()=>{});const o=await s;this._pluginLoaded(o,t,n,r)}catch(t){this._pluginLoaded(function(e){const t=new s.PanelPlugin(()=>null);return t.meta={id:e,name:e,sort:100,type:s.PluginType.panel,module:"",baseUrl:"",info:{author:{name:""},description:"",links:[],logos:{large:"",small:"public/img/grafana_icon.svg"},screenshots:[],updated:"",version:""}},t}(e)),t instanceof Error&&this.setState({_pluginLoadError:t.message})}}}getLegacyPanelId(){var e,t;const n=null!=(t=null==(e=this.state.key)?void 0:e.split("/"))?t:[];if(0===n.length)return 0;const r=n[n.length-1],a=parseInt(r.replace("panel-",""),10);return isNaN(a)?0:a}getPathId(){return Mi(this)}async _pluginLoaded(e,t,n,r){var a;const{options:i,fieldConfig:o,title:l,pluginVersion:u,_UNSAFE_customMigrationHandler:d}=this.state,c={title:l,options:i,fieldConfig:o,id:this.getLegacyPanelId(),type:e.meta.id,pluginVersion:u};t&&(c.options=t),n&&(c.fieldConfig=n);const h=this._getPluginVersion(e);null==d||d(c,e);const m=h!==u||(null==(a=e.shouldMigrate)?void 0:a.call(e,c));e.onPanelMigration&&m&&!r&&(c.options=await e.onPanelMigration(c));let p=this.state.$data;c.transformations&&p&&(p instanceof Gi?p.setState({transformations:c.transformations}):p instanceof Ms&&(p.clearParent(),p=new Gi({transformations:c.transformations,$data:p})));const f=(0,s.getPanelOptionsWithDefaults)({plugin:e,currentOptions:c.options,currentFieldConfig:c.fieldConfig,isAfterPluginChange:null!=r&&r});if(this._plugin=e,this.setState({$data:p,options:f.options,fieldConfig:f.fieldConfig,pluginVersion:h,pluginId:e.meta.id}),e.meta.skipDataQuery){const e=hi.getTimeRange(this);this._subs.add(e.subscribeToState(()=>this.forceRender()))}}_getPluginVersion(e){return e&&e.meta.info.version?e.meta.info.version:i.config.buildInfo.version}getPlugin(){return this._plugin}getPanelContext(){return null!=this._panelContext||(this._panelContext=this.buildPanelContext()),this._panelContext}async changePluginType(e,t,n){var r,a;const{options:s,fieldConfig:i,pluginId:o}=this.state;this._dataWithFieldConfig=void 0;const l=this.state.pluginId!==e;await this._loadPlugin(e,null!=t?t:{},n,l);const u={title:this.state.title,options:this.state.options,fieldConfig:this.state.fieldConfig,id:1,type:e},d=null==(a=null==(r=this._plugin)?void 0:r.onPanelTypeChanged)?void 0:a.call(r,u,o,s,i);d&&!(0,A.isEmpty)(d)&&this.onOptionsChange(d,!0,!0)}clearFieldConfigCache(){this._dataWithFieldConfig=void 0}applyFieldConfig(e){var t,n,r,a;const o=this._plugin;if(!o||o.meta.skipDataQuery||!e)return V;if(this._prevData===e&&this._dataWithFieldConfig)return this._dataWithFieldConfig;const l=o.dataSupport||{alertStates:!1,annotations:!1},u=o.fieldConfigRegistry,d=null!=(n=null==(t=this._dataWithFieldConfig)?void 0:t.series)?n:[],c=(0,s.applyFieldOverrides)({data:e.series,fieldConfig:this.state.fieldConfig,fieldConfigRegistry:u,replaceVariables:this.interpolate,theme:i.config.theme2,timeZone:null==(r=e.request)?void 0:r.timezone});return(0,s.compareArrayValues)(c,d,s.compareDataFrameStructures)||this._structureRev++,this._dataWithFieldConfig={...e,structureRev:this._structureRev,series:c},this._dataWithFieldConfig.annotations&&(this._dataWithFieldConfig.annotations=(0,s.applyFieldOverrides)({data:this._dataWithFieldConfig.annotations,fieldConfig:{defaults:{},overrides:[]},fieldConfigRegistry:u,replaceVariables:this.interpolate,theme:i.config.theme2,timeZone:null==(a=e.request)?void 0:a.timezone})),l.alertStates||(this._dataWithFieldConfig.alertState=void 0),l.annotations||(this._dataWithFieldConfig.annotations=void 0),this._prevData=e,this._dataWithFieldConfig}clone(e){return super.clone({_pluginInstanceState:void 0,_pluginLoadError:void 0,...e})}buildPanelContext(){const e=(t=this,hi.findObject(t,e=>e instanceof Li));var t;const n={eventsScope:e?e.getEventsScope():"__global_",eventBus:e?e.getEventsBus(this):(0,i.getAppEvents)(),app:s.CoreApp.Unknown,sync:()=>e?e.state.sync:s.DashboardCursorSync.Off,onSeriesColorChange:this._onSeriesColorChange,onToggleSeriesVisibility:this._onSeriesVisibilityChange,onToggleLegendSort:this._onToggleLegendSort,onInstanceStateChange:this._onInstanceStateChange};return this.state.extendPanelContext&&this.state.extendPanelContext(this,n),n}}Ji.Component=function({model:e}){var t;const{title:n,options:r,fieldConfig:a,_pluginLoadError:o,displayMode:l,hoverHeader:u,showMenuAlways:c,hoverHeaderOffset:m,menu:p,headerActions:f,titleItems:_,seriesLimit:g,seriesLimitShowAll:y,description:v,collapsible:b,collapsed:M,_renderCounter:w=0}=e.useState(),[L,{width:S,height:k}]=Yi(),D=(0,d.useMemo)(()=>(0,i.getAppEvents)(),[]),T=(0,d.useCallback)(()=>{e.state.key&&D.publish(new s.SetPanelAttentionEvent({panelId:e.getPathId()}))},[e,D]),x=(0,d.useMemo)(()=>(0,A.debounce)(T,100,{leading:!0,trailing:!1}),[T]),Y=e.getPlugin(),{dragClass:E,dragClassCancel:O}=function(e){var t,n;const r=hi.getLayout(e),a=null==r?void 0:r.isDraggable();if(!r||!a||function(e,t){let n=e;for(;n&&n!==t;){if("isDraggable"in n.state&&!1===n.state.isDraggable)return!0;if("repeatSourceKey"in n.state&&n.state.repeatSourceKey)return!0;n=n.parent}return!1}(e,r))return{dragClass:"",dragClassCancel:""};return{dragClass:null==(t=r.getDragClass)?void 0:t.call(r),dragClassCancel:null==(n=null==r?void 0:r.getDragClassCancel)?void 0:n.call(r)}}(e),C=function(e){var t,n;const r=hi.getLayout(e);return null!=(n=null==(t=null==r?void 0:r.getDragHooks)?void 0:t.call(r))?n:{}}(e),R=hi.getData(e),P=R.useState(),j=function(e,t,n){return(0,d.useMemo)(()=>(null==e?void 0:e.series)&&t&&!n?{...e,series:e.series.slice(0,t)}:e,[e,t,n])}(P.data,g,y),H=e.applyFieldConfig(j),N=hi.getTimeRange(e).getTimeZone(),I=e.getTimeRange(H),F=e.interpolate(n,void 0,"text"),W=(0,nt.useStyles2)(Pi);if(!Y)return h().createElement("div",null,h().createElement(he.x6,{i18nKey:"grafana-scenes.components.viz-panel-renderer.loading-plugin-panel"},"Loading plugin panel..."));if(!Y.panel)return h().createElement("div",null,h().createElement(he.x6,{i18nKey:"grafana-scenes.components.viz-panel-renderer.panel-plugin-has-no-panel-component"},"Panel plugin has no panel component"));const V=Y.panel;R&&R.setContainerWidth&&R.setContainerWidth(Math.round(S));let z,$,B=[];_&&(Array.isArray(_)?B=B.concat(_.map(e=>h().createElement(e.Component,{model:e,key:`${e.state.key}`}))):Ve(_)?B.push(h().createElement(_.Component,{model:_})):B.push(_)),g&&B.push(h().createElement(Ei,{key:"series-limit",data:P.data,seriesLimit:g,showAll:y,onShowAllSeries:()=>e.setState({seriesLimitShowAll:!y})})),e.state.$timeRange&&B.push(h().createElement(e.state.$timeRange.Component,{model:e.state.$timeRange,key:e.state.key})),H.alertState&&B.push(h().createElement(nt.Tooltip,{content:null!=(t=H.alertState.state)?t:"unknown",key:`alert-states-icon-${e.state.key}`},h().createElement(nt.PanelChrome.TitleItem,{className:(0,at.cx)({[W.ok]:H.alertState.state===s.AlertState.OK,[W.pending]:H.alertState.state===s.AlertState.Pending,[W.alerting]:H.alertState.state===s.AlertState.Alerting})},h().createElement(nt.Icon,{name:"alerting"===H.alertState.state?"heart-break":"heart",className:"panel-alert-icon",size:"md"})))),p&&(z=h().createElement(p.Component,{model:p})),f&&($=Array.isArray(f)?h().createElement(h().Fragment,null,f.map(e=>h().createElement(e.Component,{model:e,key:`${e.state.key}`}))):Ve(f)?h().createElement(f.Component,{model:f}):f);const U=H,q=!R.isDataReadyToDisplay||R.isDataReadyToDisplay(),G=e.getPanelContext(),J=e.getLegacyPanelId();return h().createElement("div",{className:Ci},h().createElement("div",{ref:L,className:Ri,"data-viz-panel-key":e.state.key},S>0&&k>0&&h().createElement(nt.PanelChrome,{title:F,description:(null==v?void 0:v.trim())?e.getDescription:void 0,loadingState:U.state,statusMessage:Ai(U,o),statusMessageOnClick:e.onStatusMessageClick,width:S,height:k,selectionId:e.state.key,displayMode:l,titleItems:B,dragClass:E,actions:$,dragClassCancel:O,padding:Y.noPadding?"none":"md",menu:z,onCancelQuery:e.onCancelQuery,onFocus:T,onMouseEnter:T,onMouseMove:x,onDragStart:t=>{var n;null==(n=C.onDragStart)||n.call(C,t,e)},showMenuAlways:c,...b?{collapsible:Boolean(b),collapsed:M,onToggleCollapse:e.onToggleCollapse}:{hoverHeader:u,hoverHeaderOffset:m}},(t,i)=>h().createElement(h().Fragment,null,h().createElement(nt.ErrorBoundaryAlert,{dependencies:[Y,U]},h().createElement(s.PluginContextProvider,{meta:Y.meta},h().createElement(nt.PanelContextProvider,{value:G},q&&h().createElement(V,{id:J,data:U,title:n,timeRange:I,timeZone:N,options:r,fieldConfig:a,transparent:"transparent"===l,width:t,height:i,renderCounter:w,replaceVariables:e.interpolate,onOptionsChange:e.onOptionsChange,onFieldConfigChange:e.onFieldConfigChange,onChangeTimeRange:e.onTimeRangeChange,eventBus:G.eventBus}))))))))};const Ki=class e extends Y{constructor({enabled:e=!1}){super({enabled:e}),this.timerId=void 0,this._activationHandler=()=>(this.state.enabled&&this.enable(),()=>{window.clearInterval(this.timerId),this.timerId=void 0}),this.addActivationHandler(this._activationHandler)}enable(){window.clearInterval(this.timerId),this.timerId=void 0,this.timerId=window.setInterval(()=>{const e=hi.findAllObjects(this.getRoot(),e=>e instanceof Ji);for(const t of e)t.forceRender()},e.REFRESH_RATE),this.setState({enabled:!0})}disable(){window.clearInterval(this.timerId),this.timerId=void 0,this.setState({enabled:!1})}get isEnabled(){return this.state.enabled}};Ki.REFRESH_RATE=100;let Qi=Ki;function Zi(e){if("string"==typeof e)return e;if(e){if(e instanceof Error)return e.message;if((0,i.isFetchError)(e)){if(e.data&&e.data.message)return e.data.message;if(e.statusText)return e.statusText}else if(e.hasOwnProperty("message"))return e.message}return JSON.stringify(e)}class Xi extends Y{constructor(e,t=[]){super({isEnabled:!0,...e}),this._results=new m.ReplaySubject(1),this.isDataLayer=!0,this._variableValueRecorder=new Ge,this._variableDependency=new Fs(this,{onVariableUpdateCompleted:this.onVariableUpdateCompleted.bind(this),dependsOnScopes:!0}),this._variableDependency.setPaths(t),this.addActivationHandler(()=>this.onActivate())}onActivate(){return this.state.isEnabled&&this.onEnable(),this.shouldRunLayerOnActivate()&&this.runLayer(),this.subscribeToState((e,t)=>{!e.isEnabled&&this.querySub&&(this.querySub.unsubscribe(),this.querySub=void 0,this.onDisable(),this._results.next({origin:this,data:V}),this.setStateHelper({data:V})),e.isEnabled&&!t.isEnabled&&(this.onEnable(),this.runLayer())}),()=>{this.onDeactivate()}}onDeactivate(){this.querySub&&(this.querySub.unsubscribe(),this.querySub=void 0),this.onDisable(),this._variableValueRecorder.recordCurrentDependencyValuesForSceneObject(this)}onVariableUpdateCompleted(){this.runLayer()}cancelQuery(){this.querySub&&(this.querySub.unsubscribe(),this.querySub=void 0,this.publishResults(V))}publishResults(e){this.state.isEnabled&&(this._results.next({origin:this,data:e}),this.setStateHelper({data:e}))}getResultsStream(){return this._results}shouldRunLayerOnActivate(){return!!this.state.isEnabled&&(this._variableValueRecorder.hasDependenciesChanged(this)?(j(),!0):!this.state.data)}setStateHelper(e){Oe(this,e)}}function eo({layer:e}){var t,n;const r=`data-layer-${e.state.key}`,{data:a,isEnabled:s}=e.useState(),i=Boolean(a&&a.state===F.Loading);return h().createElement("div",{className:to},h().createElement(qt,{htmlFor:r,isLoading:i,onCancel:()=>{var t;return null==(t=e.cancelQuery)?void 0:t.call(e)},label:e.state.name,description:e.state.description,error:null==(n=null==(t=e.state.data)?void 0:t.errors)?void 0:n[0].message}),h().createElement(nt.InlineSwitch,{id:r,value:s,onChange:()=>e.setState({isEnabled:!s})}))}(class extends Y{constructor(){super({})}}).Component=function({model:e}){const t=hi.getDataLayers(e,!0);if(0===t.length)return null;return h().createElement(h().Fragment,null,t.map(e=>h().createElement(e.Component,{model:e,key:e.state.key})))};const to=(0,at.css)({display:"flex"});function no(e){return"function"==typeof e}function ro(e){return function(t){if(function(e){return no(null==e?void 0:e.lift)}(t))return t.lift(function(t){try{return e(t,this)}catch(e){this.error(e)}});throw new TypeError("Unable to lift unknown Observable type")}}var ao=function(e,t){return ao=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},ao(e,t)};function so(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}ao(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var io=function(){return io=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&a[a.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!a||o[1]>a[0]&&o[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function co(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,s=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=s.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(a)throw a.error}}return i}function ho(e,t,n){if(n||2===arguments.length)for(var r,a=0,s=t.length;a1||o(e,t)})},t&&(r[e]=t(r[e])))}function o(e,t){try{(n=a[e](t)).value instanceof mo?Promise.resolve(n.value.v).then(l,u):d(s[0][2],n)}catch(e){d(s[0][3],e)}var n}function l(e){o("next",e)}function u(e){o("throw",e)}function d(e,t){e(t),s.shift(),s.length&&o(s[0][0],s[0][1])}}function fo(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=uo(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,a){(function(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)})(r,a,(t=e[n](t)).done,t.value)})}}}Object.create;"function"==typeof SuppressedError&&SuppressedError;var _o,go=((_o=function(e){return function(t){e(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map(function(e,t){return t+1+") "+e.toString()}).join("\n "):"",this.name="UnsubscriptionError",this.errors=t}}(function(e){Error.call(e),e.stack=(new Error).stack})).prototype=Object.create(Error.prototype),_o.prototype.constructor=_o,_o);function yo(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var vo=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}var t;return e.prototype.unsubscribe=function(){var e,t,n,r,a;if(!this.closed){this.closed=!0;var s=this._parentage;if(s)if(this._parentage=null,Array.isArray(s))try{for(var i=uo(s),o=i.next();!o.done;o=i.next()){o.value.remove(this)}}catch(t){e={error:t}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(e)throw e.error}}else s.remove(this);var l=this.initialTeardown;if(no(l))try{l()}catch(e){a=e instanceof go?e.errors:[e]}var u=this._finalizers;if(u){this._finalizers=null;try{for(var d=uo(u),c=d.next();!c.done;c=d.next()){var h=c.value;try{Mo(h)}catch(e){a=null!=a?a:[],e instanceof go?a=ho(ho([],co(a)),co(e.errors)):a.push(e)}}}catch(e){n={error:e}}finally{try{c&&!c.done&&(r=d.return)&&r.call(d)}finally{if(n)throw n.error}}}if(a)throw new go(a)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)Mo(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(n=this._finalizers)&&void 0!==n?n:[]).push(t)}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&yo(t,e)},e.prototype.remove=function(t){var n=this._finalizers;n&&yo(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=((t=new e).closed=!0,t),e}();vo.EMPTY;function bo(e){return e instanceof vo||e&&"closed"in e&&no(e.remove)&&no(e.add)&&no(e.unsubscribe)}function Mo(e){no(e)?e():e.unsubscribe()}var wo={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Lo={setTimeout:function(e,t){for(var n=[],r=2;r{if((0,A.isString)(null==e?void 0:e.query)){const{query:t,...n}=e;return{...n,target:{refId:"annotation_query",query:t},mappings:{}}}return e},prepareQuery:e=>e.target,processEvents:(e,t)=>function(e,t){return(0,m.of)(e).pipe(e=>e.pipe(Go(e=>{if(!(null==e?void 0:e.length))return(0,m.of)(void 0);if(1===e.length)return(0,m.of)(e[0]);const t={interpolate:e=>e};return(0,m.of)(e).pipe(s.standardTransformers.mergeTransformer.operator({},t),Io(e=>e[0]))})),Io(e=>{if(!(null==e?void 0:e.length))return[];let n=!1,r=!1;const a={};for(const t of e.fields){a[(0,s.getFieldDisplayName)(t,e).toLowerCase()]=t}t||(t={});const i=[];for(const o of Qo){const l=t[o.key]||{};if(l.source===s.AnnotationEventFieldSource.Skip)continue;const u={key:o.key,split:o.split};if(l.source===s.AnnotationEventFieldSource.Text)u.text=l.value;else{const t=(l.value||o.key).toLowerCase();u.field=a[t],!u.field&&o.field&&(u.field=o.field(e))}(u.field||u.text)&&(i.push(u),"time"===u.key?n=!0:"text"===u.key&&(r=!0))}if(!n||!r)return console.error("Cannot process annotation fields. No time or text present."),[];const o=[];for(let t=0;te.fields.find(e=>e.type===s.FieldType.time),placeholder:"time, or the first time field"},{key:"timeEnd",help:"When this field is defined, the annotation will be treated as a range"},{key:"title"},{key:"text",field:e=>e.fields.find(e=>e.type===s.FieldType.string),placeholder:"text, or the first text field"},{key:"tags",split:",",help:"The results will be split on comma (,)"},{key:"id"}],Qo=[...i.config.publicDashboardAccessToken?[{key:"color"},{key:"isRegion"},{key:"source"}]:[],...Ko,{key:"userId"},{key:"login"},{key:"email"},{key:"prevState"},{key:"newState"},{key:"data"},{key:"panelId"},{key:"alertId"},{key:"dashboardId"},{key:"dashboardUID"}];const Zo=["prometheus","loki","elasticsearch","grafana-opensearch-datasource"];let Xo=100;function el(e,t,n,r){var a;if(e.annotationQuery&&function(e){const{type:t}=e;return!e.annotations||Zo.includes(t)}(e))return console.warn("Using deprecated annotationQuery method, please upgrade your datasource"),(0,m.from)(e.annotationQuery({range:t.state.value,rangeRaw:t.state.value.raw,annotation:n,dashboard:{getVariables:(0,i.getTemplateSrv)().getVariables}})).pipe(Io(e=>({state:F.Done,events:e})));const o={...Jo,...e.annotations},l={...null==(a=o.getDefaultQuery)?void 0:a.call(o),...n},u=o.prepareAnnotation(l);if(!u)return(0,m.of)({state:F.Done,events:[]});const d=o.prepareQuery(u);if(!d)return(0,m.of)({state:F.Done,events:[]});const c=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,h=s.rangeUtil.calculateInterval(t.state.value,c,e.interval),p={__interval:{text:h.interval,value:h.interval},__interval_ms:{text:h.intervalMs.toString(),value:h.intervalMs},__annotation:{text:u.name,value:u},__sceneObject:Ft(r)},f={startTime:Date.now(),requestId:"AQ"+Xo++,range:t.state.value,maxDataPoints:c,scopedVars:p,...h,app:s.CoreApp.Dashboard,timezone:t.getTimeZone(),targets:[{...d,refId:"Anno"}],scopes:hi.getScopes(r),...Ze(r)};return(0,i.getRunRequest)()(e,f).pipe(Go(e=>{const t=(null==e?void 0:e.series.length)?e.series:e.annotations;return(null==t?void 0:t.length)?(t.forEach(e=>{var t;(null==(t=e.meta)?void 0:t.dataTopic)||(e.meta={...e.meta||{},dataTopic:s.DataTopic.Annotations})}),o.processEvents(u,t).pipe(Io(t=>({state:e.state,events:t||[]})))):(0,m.of)({state:e.state,events:[]})}))}function tl(e){return"panel-alert"===e.eventType}(class extends Xi{constructor(e){super({isEnabled:!0,...e},["query"]),this._scopedVars={__sceneObject:Ft(this)}}onEnable(){this.publishEvent(new i.RefreshEvent,!0);const e=hi.getTimeRange(this);this.setState({query:{...this.state.query,enable:!0}}),this._timeRangeSub=e.subscribeToState(()=>{this.runWithTimeRange(e)})}onDisable(){var e;this.publishEvent(new i.RefreshEvent,!0),this.setState({query:{...this.state.query,enable:!1}}),null==(e=this._timeRangeSub)||e.unsubscribe()}runLayer(){j();const e=hi.getTimeRange(this);this.runWithTimeRange(e)}async runWithTimeRange(e){const{query:t}=this.state;if(t.enable)if(this.querySub&&this.querySub.unsubscribe(),this._variableDependency.hasDependencyInLoadingState())j();else try{let n=el(await this.resolveDataSource(t),e,t,this).pipe(Be({type:"AnnotationsDataLayer/annotationsLoading",origin:this,cancel:()=>this.cancelQuery()}),(0,m.map)(e=>this.processEvents(t,e)));this.querySub=n.subscribe(e=>{this.publishResults(e)})}catch(e){this.publishResults({...V,state:F.Error,errors:[{message:Zi(e)}]}),console.error("AnnotationsDataLayer error",e)}}async resolveDataSource(e){return await qe(e.datasource||void 0,this._scopedVars)}processEvents(e,t){let n=(r=e,a=t.events||[],r.snapshotData&&delete(r=(0,A.cloneDeep)(r)).snapshotData,a.map(e=>{var t;const n={...e};switch(n.source=r,n.color=i.config.theme2.visualization.getColorByName(r.iconColor),n.type=r.name,n.isRegion=Boolean(n.timeEnd&&n.time!==n.timeEnd),null==(t=n.newState)?void 0:t.toLowerCase()){case"pending":n.color="yellow";break;case"alerting":n.color="red";break;case"ok":case"normal":n.color="green";break;case"no_data":case"nodata":n.color="gray"}return n}));var r,a;n=function(e){let t=[];const n=(0,A.partition)(e,"id"),r=(0,A.groupBy)(n[0],"id");return t=(0,A.map)(r,e=>e.length>1&&!(0,A.every)(e,tl)?(0,A.find)(e,e=>"panel-alert"!==e.eventType):(0,A.head)(e)),t=(0,A.concat)(t,n[1]),t}(n);const o={...V,state:t.state},l=(0,s.arrayToDataFrame)(n);return l.meta={...l.meta,dataTopic:s.DataTopic.Annotations},o.series=[l],o}}).Component=function({model:e}){const{isHidden:t}=e.useState();if(t)return null;return h().createElement(eo,{layer:e})};function nl({variable:e,layout:t,showAlways:n,hideLabel:r}){return E(e,{shouldActivateOrKeepAlive:!0}).hide!==s.VariableHide.hideVariable||n?"vertical"===t?h().createElement("div",{className:sl,"data-testid":rt.Tp.pages.Dashboard.SubMenu.submenuItem},h().createElement(rl,{variable:e,layout:t,hideLabel:r}),h().createElement(e.Component,{model:e})):h().createElement("div",{className:al,"data-testid":rt.Tp.pages.Dashboard.SubMenu.submenuItem},h().createElement(rl,{variable:e,hideLabel:r}),h().createElement(e.Component,{model:e})):e.UNSAFE_renderAsHidden?h().createElement(e.Component,{model:e}):null}function rl({variable:e,layout:t,hideLabel:n}){var r;const{state:a}=e;if(e.state.hide===s.VariableHide.hideLabel||n)return null;const i=`var-${a.key}`,o=a.label||a.name;return h().createElement(qt,{htmlFor:i,isLoading:a.loading,onCancel:()=>{var t;return null==(t=e.onCancel)?void 0:t.call(e)},label:o,error:a.error,layout:t,description:null!=(r=a.description)?r:void 0})}(class extends Y{}).Component=function({model:e}){const t=hi.getVariables(e).useState();return h().createElement(h().Fragment,null,t.variables.map(t=>h().createElement(nl,{key:t.state.key,variable:t,layout:e.state.layout})))};const al=(0,at.css)({display:"flex","> :nth-child(2)":(0,at.css)({borderTopLeftRadius:0,borderBottomLeftRadius:0})}),sl=(0,at.css)({display:"flex",flexDirection:"column"});(class extends Y{}).Component=function({model:e}){const t=hi.lookupVariable(e.state.variableName,e);if(!t)return null;return h().createElement(nl,{key:t.state.key,variable:t,layout:e.state.layout,showAlways:!0})};class il extends Y{constructor(e){super(e),this._variablesToUpdate=new Set,this._updating=new Map,this._variableValueRecorder=new Ge,this._variableDependency=new ll(this._handleParentVariableUpdatesCompleted.bind(this)),this._onActivate=()=>{const e=hi.getTimeRange(this);this._subs.add(this.subscribeToEvent(ie,e=>this._handleVariableValueChanged(e.payload))),this._subs.add(e.subscribeToState(()=>{this._refreshTimeRangeBasedVariables()})),this._subs.add(this.subscribeToState(this._onStateChanged)),this._checkForVariablesThatChangedWhileInactive();for(const e of this.state.variables)this._variableNeedsUpdate(e)&&this._variablesToUpdate.add(e);return this._updateNextBatch(),this._onDeactivate},this._onDeactivate=()=>{var e;for(const t of this._updating.values())null==(e=t.subscription)||e.unsubscribe();for(const e of this.state.variables)this._variablesToUpdate.has(e)||this._updating.has(e)||this._variableValueRecorder.recordCurrentValue(e);this._variablesToUpdate.clear(),this._updating.clear()},this._onStateChanged=(e,t)=>{const n=this._variablesToUpdate.size;for(const n of t.variables)if(!e.variables.includes(n)){const e=this._updating.get(n);(null==e?void 0:e.subscription)&&e.subscription.unsubscribe(),this._updating.delete(n),this._variablesToUpdate.delete(n)}for(const n of e.variables)t.variables.includes(n)||this._variableNeedsUpdate(n)&&this._variablesToUpdate.add(n);0===n&&this._variablesToUpdate.size>0&&this._updateNextBatch()},this.addActivationHandler(this._onActivate)}getByName(e){return this.state.variables.find(t=>t.state.name===e)}_refreshTimeRangeBasedVariables(){for(const e of this.state.variables)"refresh"in e.state&&e.state.refresh===s.VariableRefresh.onTimeRangeChanged&&this._variablesToUpdate.add(e);this._updateNextBatch()}_checkForVariablesThatChangedWhileInactive(){if(this._variableValueRecorder.hasValues())for(const e of this.state.variables)this._variableValueRecorder.hasValueChanged(e)&&(ol(e,"Changed while in-active"),this._addDependentVariablesToUpdateQueue(e))}_variableNeedsUpdate(e){return!e.isLazy&&(!!e.validateAndUpdate&&(!this._variableValueRecorder.hasRecordedValue(e)||(ol(e,"Skipping updateAndValidate current value valid"),!1)))}_updateNextBatch(){for(const e of this._variablesToUpdate){if(!e.validateAndUpdate){console.error("Variable added to variablesToUpdate but does not have validateAndUpdate");continue}if(this._updating.has(e))continue;if(hi.hasVariableDependencyInLoadingState(e))continue;const t={variable:e};this._updating.set(e,t),ol(e,"updateAndValidate started"),t.subscription=e.validateAndUpdate().subscribe({next:()=>this._validateAndUpdateCompleted(e),complete:()=>this._validateAndUpdateCompleted(e),error:t=>this._handleVariableError(e,t)})}}_validateAndUpdateCompleted(e){var t;if(!this._updating.has(e))return;const n=this._updating.get(e);null==(t=null==n?void 0:n.subscription)||t.unsubscribe(),this._updating.delete(e),this._variablesToUpdate.delete(e),ol(e,"updateAndValidate completed"),this._notifyDependentSceneObjects(e),this._updateNextBatch()}cancel(e){var t;const n=this._updating.get(e);null==(t=null==n?void 0:n.subscription)||t.unsubscribe(),this._updating.delete(e),this._variablesToUpdate.delete(e)}_handleVariableError(e,t){var n;const r=this._updating.get(e);null==(n=null==r?void 0:r.subscription)||n.unsubscribe(),this._updating.delete(e),this._variablesToUpdate.delete(e),e.setState({loading:!1,error:t.message}),console.error("SceneVariableSet updateAndValidate error",t),ol(e,"updateAndValidate error",t),this._notifyDependentSceneObjects(e),this._updateNextBatch()}_handleVariableValueChanged(e){this._addDependentVariablesToUpdateQueue(e),this._updating.has(e)||(this._updateNextBatch(),this._notifyDependentSceneObjects(e))}_handleParentVariableUpdatesCompleted(e,t){t&&this._addDependentVariablesToUpdateQueue(e),this._variablesToUpdate.size>0&&0===this._updating.size&&this._updateNextBatch()}_addDependentVariablesToUpdateQueue(e){for(const t of this.state.variables)t.variableDependency&&t.variableDependency.hasDependencyOn(e.state.name)&&(ol(t,"Added to update queue, dependant variable value changed"),this._updating.has(t)&&t.onCancel&&t.onCancel(),t.validateAndUpdate&&this._variablesToUpdate.add(t),t.variableDependency.variableUpdateCompleted(e,!0))}_notifyDependentSceneObjects(e){this.parent&&this._traverseSceneAndNotify(this.parent,e,!0)}_traverseSceneAndNotify(e,t,n){if(this!==e&&e.isActive){if(e.state.$variables&&e.state.$variables!==this){const n=e.state.$variables.getByName(t.state.name);if(null==n?void 0:n.isAncestorLoading)t=n;else if(n)return}e.variableDependency&&e.variableDependency.variableUpdateCompleted(t,n),e.forEachChild(e=>this._traverseSceneAndNotify(e,t,n))}}isVariableLoadingOrWaitingToUpdate(e){return!!e.state.loading||(!(!e.isAncestorLoading||!e.isAncestorLoading())||(!(!this._variablesToUpdate.has(e)&&!this._updating.has(e))||hi.hasVariableDependencyInLoadingState(e)))}}function ol(e,t,n){j(0,e.state.name)}class ll{constructor(e){this._variableUpdatesCompleted=e,this._emptySet=new Set}getNames(){return this._emptySet}hasDependencyOn(e){return!1}variableUpdateCompleted(e,t){this._variableUpdatesCompleted(e,t)}}class ul extends Re{constructor(e){super({type:"custom",query:"",value:"",text:"",options:[],name:"",...e}),this._variableDependency=new Fs(this,{statePaths:["query"]})}getValueOptions(e){var t;const n=(null!=(t=hi.interpolate(this,this.state.query).match(/(?:\\,|[^,])+/g))?t:[]).map(e=>{var t;e=e.replace(/\\,/g,",");const n=null!=(t=/^\s*(.+)\s:\s(.+)$/g.exec(e))?t:[];if(3===n.length){const[,e,t]=n;return{label:e.trim(),value:t.trim()}}return{label:e.trim(),value:e.trim()}});return n.length||(this.skipNextValidation=!0),(0,m.of)(n)}}ul.Component=({model:e})=>h().createElement(At,{model:e});class dl extends Re{constructor(e){super({type:"datasource",value:"",text:"",options:[],name:"",regex:"",pluginId:"",...e}),this._variableDependency=new Fs(this,{statePaths:["regex"]})}getValueOptions(e){if(!this.state.pluginId)return(0,m.of)([]);const t=(0,i.getDataSourceSrv)().getList({metrics:!0,variables:!1,pluginId:this.state.pluginId});let n;if(this.state.regex){const e=hi.interpolate(this,this.state.regex,void 0,"regex");n=(0,s.stringToJsRegex)(e)}const r=[];for(let e=0;e5)return[];for(const a of n){const n=`${e}${a}`;r.push({name:n,children:ml(n,t+1)})}return r}function pl(e,t,n){if(n>=t.length)return e;if("*"===t[n])return e;const r=t[n];let a=[],s=[r];r.startsWith("{")&&(s=r.replace(/\{|\}/g,"").split(","));for(const r of e)for(const e of s)if(-1!==e.indexOf("*")){const s=e.replace("*","");new RegExp(`^${s}.*`,"gi").test(r.name)&&(a=a.concat(pl([r],t,n+1)))}else r.name===e&&(a=a.concat(pl(r.children,t,n+1)));return a}function fl(e){if(0===e.indexOf("value"))return[{name:e,children:[]}];return pl(ml("",0),e.split("."),0)}dl.Component=({model:e})=>h().createElement(At,{model:e});function _l({model:e}){const{value:t,key:n,loading:r}=e.useState(),a=(0,d.useCallback)(t=>{e.setValue(t.currentTarget.value)},[e]),s=(0,d.useCallback)(t=>{"Enter"===t.key&&e.setValue(t.currentTarget.value)},[e]);return h().createElement(nt.AutoSizeInput,{id:n,placeholder:(0,he.t)("grafana-scenes.variables.variable-value-input.placeholder-enter-value","Enter value"),minWidth:15,maxWidth:30,value:t,loading:r,onBlur:a,onKeyDown:s})}(class extends Re{constructor(e,t=!1){super({type:"custom",name:"Test",value:"Value",text:(0,he.t)("grafana-scenes.variables.test-variable.text.text","Text"),query:"Query",options:[],refresh:s.VariableRefresh.onDashboardLoad,updateOptions:!0,...e}),this.completeUpdate=new m.Subject,this.isGettingValues=!0,this.getValueOptionsCount=0,this.isLazy=!1,this._variableDependency=new Fs(this,{statePaths:["query"]}),this.isLazy=t}getValueOptions(e){const{delayMs:t}=this.state;this.getValueOptionsCount+=1;const n=hi.getQueryController(this);return new m.Observable(e=>{const r={type:"variable",origin:this,cancel:()=>e.complete()};if(n&&n.queryStarted(r),this.setState({loading:!0}),this.state.throwError)throw new Error(this.state.throwError);const a=hi.interpolate(this,this.state.query),s=this.getOptions(a),i=this.completeUpdate.subscribe({next:()=>{const t={issuedQuery:a,loading:!1};this.state.updateOptions&&(t.options=s),this.setState(t),e.next(s),e.complete()}});let o;return t?o=window.setTimeout(()=>this.signalUpdateCompleted(),t):0===t&&this.signalUpdateCompleted(),this.isGettingValues=!0,()=>{i.unsubscribe(),window.clearTimeout(o),this.isGettingValues=!1,this.state.loading&&this.setState({loading:!1}),n&&n.queryCompleted(r)}})}cancel(){const e=$(this,e=>e instanceof il?e:void 0);null==e||e.cancel(this)}getOptions(e){return this.state.optionsToReturn?this.state.optionsToReturn:fl(e).map(e=>({label:e.name,value:e.name}))}signalUpdateCompleted(){this.completeUpdate.next(1)}}).Component=({model:e})=>h().createElement(At,{model:e});(class extends Y{constructor(e){super({type:"textbox",value:"",name:"",...e}),this._urlSync=new z(this,{keys:()=>this.getKeys()})}getValue(){return this.state.value}setValue(e){e!==this.state.value&&(this.setState({value:e}),this.publishEvent(new ie(this),!0))}getKey(){return`var-${this.state.name}`}getKeys(){return this.state.skipUrlSync?[]:[this.getKey()]}getUrlState(){return this.state.skipUrlSync?{}:{[this.getKey()]:this.state.value}}updateFromUrl(e){const t=e[this.getKey()];"string"==typeof t&&this.setValue(t)}}).Component=({model:e})=>h().createElement(_l,{model:e});(class extends Y{constructor(e){super({type:"interval",value:"",intervals:["1m","10m","30m","1h","6h","12h","1d","7d","14d","30d"],name:"",autoStepCount:30,autoMinInterval:"10s",autoEnabled:!1,refresh:wi.CO.onTimeRangeChanged,...e}),this._onChange=e=>{this.setState({value:e.value}),this.publishEvent(new ie(this),!0)},this._urlSync=new z(this,{keys:()=>[this.getKey()]})}getKey(){return`var-${this.state.name}`}getUrlState(){return{[this.getKey()]:this.state.value}}updateFromUrl(e){const t={},n=e[this.getKey()];"string"==typeof n&&(n.startsWith("$__auto_interval_")?t.value=Se:t.value=n),this.setState(t)}getOptionsForSelect(){const{value:e,intervals:t,autoEnabled:n}=this.state;let r=t.map(e=>({value:e,label:e}));return n&&(r=[{value:Se,label:"Auto"},...r]),e&&!r.some(t=>t.value===e)&&r.push({value:e,label:e}),r}getValue(){const{value:e,autoStepCount:t,autoMinInterval:n}=this.state;return e===Se?this.getAutoRefreshInteval(t,n):e}getAutoRefreshInteval(e,t){const n=hi.getTimeRange(this).state.value;return s.rangeUtil.calculateInterval(n,e,t).interval}validateAndUpdate(){const{value:e,intervals:t}=this.state;let n=!1;if(e===Se)n=!0;else if(!e&&t.length>0){const e=t[0];this.setState({value:e}),n=!0}return n&&this.publishEvent(new ie(this),!0),(0,m.of)({})}}).Component=({model:e})=>{const{key:t,value:n}=e.useState();return h().createElement(nt.Select,{id:t,placeholder:(0,he.t)("grafana-scenes.variables.interval-variable.placeholder-select-value","Select value"),width:"auto",value:n,tabSelectsValue:!1,options:e.getOptionsForSelect(),onChange:e._onChange})};var gl,yl,vl=e=>{throw TypeError(e)},bl=(e,t,n)=>t.has(e)||vl("Cannot "+n),Ml=(e,t,n)=>(bl(e,t,"read from private field"),n?n.call(e):t.get(e)),wl=(e,t,n)=>t.has(e)?vl("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Ll=(e,t,n,r)=>(bl(e,t,"write to private field"),t.set(e,n),n);class Sl extends s.BusEventWithPayload{}Sl.type="new-scene-object-added";class kl{constructor(e={},t=i.locationService){this._options=e,this._locationService=t,this._paramsCache=new Dl(t),this._urlKeyMapper=new pi({namespace:e.namespace,excludeFromNamespace:e.excludeFromNamespace})}initSync(e){var t;if(this._subs&&(j(0,0,null==(t=this._sceneRoot)||t.state.key),this._subs.unsubscribe()),j(0,0,e.state.key),this._sceneRoot=e,this._subs=new m.Subscription,this._subs.add(e.subscribeToEvent(L,e=>{this.handleSceneObjectStateChanged(e.payload.changedObject)})),this._subs.add(e.subscribeToEvent(Sl,e=>{this.handleNewObject(e.payload)})),this._urlKeyMapper.clear(),this._lastLocation=this._locationService.getLocation(),this.handleNewObject(this._sceneRoot),this._options.updateUrlOnInit){const t=_i(e,this._urlKeyMapper.getOptions());(function(e,t){for(let n in e)if(!vi(t.getAll(n),e[n]))return!0;return!1})(t,this._paramsCache.getParams())&&this._locationService.partial(t,!0)}}cleanUp(e){this._sceneRoot===e&&(j(),this._subs&&(this._subs.unsubscribe(),this._subs=void 0,j(0,0,(this._sceneRoot.state.key,e.state.key))),this._sceneRoot=void 0,this._lastLocation=void 0)}handleNewLocation(e){this._sceneRoot&&this._lastLocation!==e&&(j(),this._lastLocation=e,gi(this._sceneRoot,this._paramsCache.getParams(),this._urlKeyMapper))}handleNewObject(e){this._sceneRoot&&gi(e,this._paramsCache.getParams(),this._urlKeyMapper)}handleSceneObjectStateChanged(e){var t,n;if(!e.urlSync)return;const r=e.urlSync.getUrlState(),a=this._locationService.getSearch(),s={};for(const[t,n]of Object.entries(r)){const r=this._urlKeyMapper.getUniqueKey(t,e);vi(a.getAll(r),n)||(s[r]=n)}if(Object.keys(s).length>0){const a=!0!==(null==(n=(t=e.urlSync).shouldCreateHistoryStep)?void 0:n.call(t,r));j(),this._locationService.partial(s,a),this._lastLocation=this._locationService.getLocation()}}getUrlState(e){return _i(e,this._urlKeyMapper.getOptions())}}class Dl{constructor(e){this.locationService=e,wl(this,gl),wl(this,yl)}getParams(){const e=this.locationService.getLocation();return Ml(this,yl)===e||(Ll(this,yl,e),Ll(this,gl,new URLSearchParams(e.search))),Ml(this,gl)}}function Tl(e,t={}){const n=(0,a.useLocation)(),r=Ae(),[s,i]=(0,d.useState)(!1),o=function(e,t){return(0,d.useMemo)(()=>new kl({updateUrlOnInit:e.updateUrlOnInit,createBrowserHistorySteps:e.createBrowserHistorySteps,namespace:e.namespace,excludeFromNamespace:e.excludeFromNamespace},t),[e.updateUrlOnInit,e.createBrowserHistorySteps,e.namespace,e.excludeFromNamespace,t])}(t,r);return(0,d.useEffect)(()=>(o.initSync(e),i(!0),()=>o.cleanUp(e)),[e,o]),(0,d.useEffect)(()=>{const e=r.getLocation(),t=e!==n?e:n;e!==n&&j(),o.handleNewLocation(t)},[e,o,n,r]),s}function xl({children:e,scene:t,updateUrlOnInit:n,createBrowserHistorySteps:r,namespace:a,excludeFromNamespace:s}){return Tl(t,{updateUrlOnInit:n,createBrowserHistorySteps:r,namespace:a,excludeFromNamespace:s})?e:null}gl=new WeakMap,yl=new WeakMap;class Yl extends Y{constructor(e){super(e),this.addActivationHandler(()=>{const e=function(e){const t=window.__grafanaSceneContext;return j(),window.__grafanaSceneContext=e,()=>{window.__grafanaSceneContext===e&&(j(),window.__grafanaSceneContext=t)}}(this);return()=>{e()}})}}Yl.Component=function({model:e}){const{body:t,controls:n}=e.useState(),r=(0,nt.useStyles2)(El);return h().createElement("div",{className:r.container},n&&h().createElement("div",{className:r.controls},n.map(e=>h().createElement(e.Component,{key:e.state.key,model:e}))),h().createElement("div",{className:r.body},h().createElement(t.Component,{model:t})))};const El=e=>({container:(0,at.css)({flexGrow:1,display:"flex",gap:e.spacing(2),minHeight:"100%",flexDirection:"column"}),body:(0,at.css)({flexGrow:1,display:"flex",gap:e.spacing(1)}),controls:(0,at.css)({display:"flex",gap:e.spacing(2),alignItems:"flex-end",flexWrap:"wrap"})});class Ol extends Y{addItem(e){this.setState({items:this.state.items?[...this.state.items,e]:[e]})}setItems(e){this.setState({items:e})}}function Al(e,t,n){void 0===t&&(t=[]),void 0===n&&(n={loading:!1});var r=(0,d.useRef)(0),a=function(){var e=(0,d.useRef)(!1),t=(0,d.useCallback)(function(){return e.current},[]);return(0,d.useEffect)(function(){return e.current=!0,function(){e.current=!1}},[]),t}(),s=(0,d.useState)(n),i=s[0],o=s[1],l=(0,d.useCallback)(function(){for(var t=[],n=0;n{n.current&&n.current.focus()},[]);const r=e=>e.map(e=>{switch(e.type){case"divider":return h().createElement(nt.Menu.Divider,{key:e.text});case"group":return h().createElement(nt.Menu.Group,{key:e.text,label:e.text},e.subMenu?r(e.subMenu):void 0);default:return h().createElement(nt.Menu.Item,{key:e.text,role:"menuitem",label:e.text,icon:e.iconClassName,childItems:e.subMenu?r(e.subMenu):void 0,url:e.href,onClick:e.onClick,shortcut:e.shortcut,testId:rt.Tp.components.Panels.Panel.menuItems(e.text)})}});return h().createElement(nt.Menu,{ref:n},r(t))};(class extends Y{constructor(e={}){super({options:e})}}).Component=function({model:e}){const{options:t}=e.useState(),{data:n}=hi.getData(e).useState(),{from:r,to:a}=hi.getTimeRange(e).useState(),{value:s}=function(e,t){void 0===t&&(t=[]);var n=Al(e,t,{loading:!0}),r=n[0],a=n[1];return(0,d.useEffect)(function(){a()},[a]),r}(async()=>n?async function(e,t,n,r){var a,s,o,l;const u=null==(a=e.request)?void 0:a.targets;if(!u)return"";const{from:d,to:c}=n,h=null==(s=e.request)?void 0:s.filters,m={__sceneObject:Ft(t)},p=(await Promise.allSettled(u.map(async e=>{var t;const n=await(0,i.getDataSourceSrv)().get(e.datasource);return(null==(t=n.interpolateVariablesInQueries)?void 0:t.call(n,[e],null!=m?m:{},h)[0])||e}))).filter(e=>"fulfilled"===e.status).map(e=>e.value).map(e=>{var t;return null!=(t=null==r?void 0:r(e))?t:e}),f=null!=p?p:[];let _=new Set(f.map(e=>{var t;return null==(t=e.datasource)?void 0:t.uid})).size>1?"-- Mixed --":null==(l=null==(o=f.find(e=>{var t;return!!(null==(t=e.datasource)?void 0:t.uid)}))?void 0:o.datasource)?void 0:l.uid;if((null==f?void 0:f.length)&&_&&d&&c)return`/explore?left=${encodeURIComponent(JSON.stringify({datasource:_,queries:f,range:{from:d,to:c}}))}`;return""}(n,e,{from:r,to:a},t.transform):"",[n,e,r,a]),o=(0,i.useReturnToPrevious)();if(s)return h().createElement(nt.LinkButton,{key:"explore",icon:"compass",size:"sm",variant:"secondary",href:s,onClick:()=>{var e;t.returnToPrevious&&o(t.returnToPrevious.title,t.returnToPrevious.href),null==(e=t.onClick)||e.call(t)}},h().createElement(he.x6,{i18nKey:"grafana-scenes.components.viz-panel-explore-button.explore"},"Explore"));return null};function Cl(e){return e instanceof Kl}(class extends Y{}).Component=function({model:e}){const{body:t}=e.useState(),n=e.parent;if(n&&(r=n,!(r instanceof Ul))&&!Cl(n))throw new Error("SceneGridItem must be a child of SceneGridLayout or SceneGridRow");var r;if(!t)return null;return h().createElement(t.Component,{model:t})};var Rl=n(2548),Pl=n.n(Rl);const jl=function(e){(0,d.useEffect)(e,[])};function Hl(){const e=(0,d.useRef)(void 0);return null!=e.current||(e.current=(0,A.uniqueId)()),e.current}const Nl=h().forwardRef(({children:e,onLoad:t,onChange:n,className:r,...a},s)=>{const i=Hl(),{hideEmpty:o}=(0,nt.useStyles2)(Il),[l,u]=(0,d.useState)(!1),[c,m]=(0,d.useState)(!1),p=(0,d.useRef)(null);return(0,d.useImperativeHandle)(s,()=>p.current),jl(()=>{Nl.addCallback(i,e=>{!l&&e.isIntersecting&&(u(!0),null==t||t()),m(e.isIntersecting),null==n||n(e.isIntersecting)});const e=p.current;return e&&Nl.observer.observe(e),()=>{e&&Nl.observer.unobserve(e),delete Nl.callbacks[i],0===Object.keys(Nl.callbacks).length&&Nl.observer.disconnect()}}),h().createElement("div",{id:i,ref:p,className:`${o} ${r}`,...a},l&&c?e:(0,he.t)("grafana-scenes.components.lazy-loader.placeholder"," "))});function Il(){return{hideEmpty:(0,at.css)({"&:empty":{display:"none"}})}}Nl.displayName="LazyLoader",Nl.callbacks={},Nl.addCallback=(e,t)=>Nl.callbacks[e]=t,Nl.observer=new IntersectionObserver(e=>{for(const t of e)"function"==typeof Nl.callbacks[t.target.id]&&Nl.callbacks[t.target.id](t)},{rootMargin:"100px"});const Fl=h().forwardRef((e,t)=>{var n;const{grid:r,layoutItem:a,index:s,totalCount:i,isLazy:o,style:l,onLoad:u,onChange:d,children:c,...m}=e,p=r.getSceneLayoutChild(a.i),f=null==(n=p.getClassName)?void 0:n.call(p),_=h().createElement(p.Component,{model:p,key:p.state.key});return o?h().createElement(Nl,{...m,key:p.state.key,"data-griditem-key":p.state.key,className:(0,at.cx)(f,e.className),style:l,ref:t},_,c):h().createElement("div",{...m,ref:t,key:p.state.key,"data-griditem-key":p.state.key,className:(0,at.cx)(f,e.className),style:l},_,c)});function Wl(e,t,n){e.current?t?e.current.classList.add("react-grid-layout--enable-move-animations"):e.current.classList.remove("react-grid-layout--enable-move-animations"):n||setTimeout(()=>Wl(e,t,!0),50)}Fl.displayName="GridItemWrapper";const Vl=h().forwardRef(({handleAxis:e,...t},n)=>{const r=(0,nt.useStyles2)(zl);return h().createElement("div",{ref:n,...t,className:`${r} scene-resize-handle`},h().createElement("svg",{width:"16px",height:"16px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h().createElement("path",{d:"M21 15L15 21M21 8L8 21",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})))});function zl(e){return(0,at.css)({position:"absolute",bottom:0,right:0,zIndex:999,padding:e.spacing(1.5,0,0,1.5),color:e.colors.border.strong,cursor:"se-resize","&:hover":{color:e.colors.text.link},svg:{display:"block"},".react-resizable-hide &":{display:"none"}})}Vl.displayName="ResizeHandle";class $l extends s.BusEventWithPayload{}$l.type="scene-grid-layout-drag-start";const Bl=class e extends Y{constructor(e){super({...e,children:Gl(e.children)}),this._skipOnLayoutChange=!1,this._oldLayout=[],this._loadOldLayout=!1,this.onLayoutChange=e=>{if(this._skipOnLayoutChange)this._skipOnLayoutChange=!1;else{this._loadOldLayout&&(e=[...this._oldLayout],this._loadOldLayout=!1);for(const t of e){const e=this.getSceneLayoutChild(t.i),n={x:t.x,y:t.y,width:t.w,height:t.h};ql(e.state,n)||e.setState({...n})}this.setState({children:Gl(this.state.children)})}},this.onResizeStop=(e,t,n)=>{this.getSceneLayoutChild(n.i).setState({width:n.w,height:n.h})},this.onDragStart=e=>{this._oldLayout=[...e]},this.onDragStop=(e,t,n)=>{const r=this.getSceneLayoutChild(n.i),a=(e=Jl(e)).findIndex(e=>e.i===n.i);let s=this.findGridItemSceneParent(e,a-1),i=this.state.children;for(let t=0;t{this.publishEvent(new $l({evt:e,panel:t}),!0)}}}toggleRow(e){var t,n;if(!e.state.isCollapsed)return e.setState({isCollapsed:!0}),void this.setState({});const r=e.state.children;if(0===r.length)return e.setState({isCollapsed:!1}),void this.setState({});const a=e.state.y,s=(null!=(t=r[0].state.y)?t:a)-(a+1);let i=a;for(const e of r){const t={...e.state};t.y=null!=(n=t.y)?n:a,t.y-=s,t.y!==e.state.y&&e.setState(t),i=Math.max(i,Number(t.y)+Number(t.height))}const o=i-a-1;for(const t of this.state.children)if(t.state.y>a&&this.pushChildDown(t,o),Cl(t)&&t!==e)for(const e of t.state.children)e.state.y>a&&this.pushChildDown(e,o);e.setState({isCollapsed:!1}),this.setState({})}ignoreLayoutChange(e){this._skipOnLayoutChange=e}getSceneLayoutChild(e){for(const t of this.state.children){if(t.state.key===e)return t;if(t instanceof Kl)for(const n of t.state.children)if(n.state.key===e)return n}throw new Error("Scene layout child not found for GridItem")}pushChildDown(e,t){e.setState({y:e.state.y+t})}findGridItemSceneParent(e,t){for(let n=t;n>=0;n--){const t=e[n],r=this.getSceneLayoutChild(t.i);if(r instanceof Kl)return r.state.isCollapsed?this:r}return this}isRowDropValid(t,n,r){if(t[t.length-1].i===n.i)return!0;const a=this.getSceneLayoutChild(t[r+1].i);return a instanceof Kl||a.parent instanceof e}moveChildTo(t,n){const r=t.parent;let a=this.state.children;const s=t.clone({key:t.state.key});if(r instanceof Kl){const e=r.clone();if(e.setState({children:e.state.children.filter(e=>e.state.key!==t.state.key)}),a=a.map(t=>t===r?e:t),n instanceof Kl){const e=n.clone();e.setState({children:[...e.state.children,s]}),a=a.map(t=>t===n?e:t)}else a=[...a,s]}else if(!(n instanceof e)){a=a.filter(e=>e.state.key!==t.state.key);const e=n.clone();e.setState({children:[...e.state.children,s]}),a=a.map(t=>t===n?e:t)}return a}toGridCell(e){var t,n;const r=e.state;let a=null!=(t=r.x)?t:0,s=null!=(n=r.y)?n:0;const i=Number.isInteger(Number(r.width))?Number(r.width):4,o=Number.isInteger(Number(r.height))?Number(r.height):4;let l=e.state.isDraggable,u=e.state.isResizable;return e instanceof Kl&&(l=!!e.state.isCollapsed,u=!1),Ce(e)&&(l=!1,u=!1),{i:e.state.key,x:a,y:s,h:o,w:i,isResizable:u,isDraggable:l}}buildGridLayout(e,t){let n=[];for(const e of this.state.children)if(n.push(this.toGridCell(e)),e instanceof Kl&&!e.state.isCollapsed)for(const t of e.state.children)n.push(this.toGridCell(t));return n=Jl(n),this.state.UNSAFE_fitPanels&&(n=function(e,t){const n=t-32,r=Math.max(...e.map(e=>e.h+e.y))/Math.floor(n/38);return e.map(e=>({...e,y:Math.round(e.y/r)||0,h:Math.round(e.h/r)||1}))}(n,t)),e<768?(this._skipOnLayoutChange=!0,n.map(e=>({...e,w:24}))):(this._skipOnLayoutChange=!1,n)}};Bl.Component=function({model:e}){const{children:t,isLazy:n,isDraggable:r,isResizable:a}=e.useState(),[s,{width:i,height:o}]=Yi(),l=(0,d.useRef)(null);return(0,d.useEffect)(()=>{Wl(l,!!r)},[r]),function(e){if(e.some(e=>void 0===e.state.height||void 0===e.state.width||void 0===e.state.x||void 0===e.state.y))throw new Error("All children must have a size specified")}(t),h().createElement("div",{ref:s,style:{flex:"1 1 auto",position:"relative",zIndex:1,width:"100%"}},((t,s)=>{if(!t||!s)return null;const i=e.buildGridLayout(t,s);return h().createElement("div",{ref:l,style:{width:`${t}px`,height:"100%"},className:"react-grid-layout"},h().createElement(Pl(),{width:t,isDraggable:r&&t>768,isResizable:null!=a&&a,containerPadding:[0,0],useCSSTransforms:!0,margin:[8,8],cols:24,rowHeight:30,draggableHandle:`.grid-drag-handle-${e.state.key}`,draggableCancel:".grid-drag-cancel",layout:i,onDragStart:e.onDragStart,onDragStop:e.onDragStop,onResizeStop:e.onResizeStop,onLayoutChange:e.onLayoutChange,isBounded:!1,resizeHandle:h().createElement(Vl,null)},i.map((t,r)=>h().createElement(Fl,{key:t.i,grid:e,layoutItem:t,index:r,isLazy:n,totalCount:i.length}))))})(i,o))};let Ul=Bl;function ql(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Gl(e){return e.forEach(e=>{e instanceof Kl&&e.setState({children:Gl(e.state.children)})}),[...e].sort((e,t)=>e.state.y-t.state.y||e.state.x-t.state.x)}function Jl(e){return[...e].sort((e,t)=>e.y-t.y||e.x-t.x)}class Kl extends Y{constructor(e){super({children:e.children||[],isCollapsible:e.isCollapsible||!0,title:e.title||"",...e,x:0,height:1,width:24}),this._variableDependency=new Fs(this,{statePaths:["title"],handleTimeMacros:!0}),this.onCollapseToggle=()=>{this.state.isCollapsible&&this.getGridLayout().toggleRow(this)}}getGridLayout(){const e=this.parent;if(!(e&&e instanceof Ul))throw new Error("SceneGridRow must be a child of SceneGridLayout");return e}getUrlState(){return{rowc:this.state.isCollapsed?"1":"0"}}updateFromUrl(e){null!=e.rowc&&e.rowc!==this.getUrlState().rowc&&this.onCollapseToggle()}}Kl.Component=function({model:e}){const t=(0,nt.useStyles2)(Ql),{isCollapsible:n,isCollapsed:r,title:a,actions:s,children:i}=e.useState(),o=e.getGridLayout(),l=o.getDragClass(),u=o.isDraggable()&&!Ce(e),d=i?i.length:0,c=1===d?"panel":"panels";return h().createElement("div",{className:(0,at.cx)(t.row,r&&t.rowCollapsed)},h().createElement("div",{className:t.rowTitleAndActionsGroup},h().createElement("button",{onClick:e.onCollapseToggle,className:t.rowTitleButton,"aria-label":r?(0,he.t)("grafana-scenes.components.scene-grid-row.expand-row","Expand row"):(0,he.t)("grafana-scenes.components.scene-grid-row.collapse-row","Collapse row"),"data-testid":rt.Tp.components.DashboardRow.title(hi.interpolate(e,a,void 0,"text"))},n&&h().createElement(nt.Icon,{name:r?"angle-right":"angle-down"}),h().createElement("span",{className:t.rowTitle,role:"heading"},hi.interpolate(e,a,void 0,"text"))),h().createElement("span",{className:(0,at.cx)(t.panelCount,r&&t.panelCountCollapsed)},"(",d," ",c,")"),s&&h().createElement("div",{className:t.rowActions},h().createElement(s.Component,{model:s}))),u&&r&&h().createElement("div",{className:(0,at.cx)(t.dragHandle,l)},h().createElement(nt.Icon,{name:"draggabledots"})))};const Ql=e=>({row:(0,at.css)({width:"100%",height:"30px",display:"flex",justifyContent:"space-between",gap:e.spacing(1)}),rowTitleButton:(0,at.css)({display:"flex",alignItems:"center",cursor:"pointer",background:"transparent",border:"none",minWidth:0,gap:e.spacing(1)}),rowCollapsed:(0,at.css)({borderBottom:`1px solid ${e.colors.border.weak}`}),rowTitle:(0,at.css)({fontSize:e.typography.h5.fontSize,fontWeight:e.typography.fontWeightMedium,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",flexGrow:1,minWidth:0}),collapsedInfo:(0,at.css)({fontSize:e.typography.bodySmall.fontSize,color:e.colors.text.secondary,display:"flex",alignItems:"center",flexGrow:1}),rowTitleAndActionsGroup:(0,at.css)({display:"flex",minWidth:0,"&:hover, &:focus-within":{"& > div":{opacity:1}}}),rowActions:(0,at.css)({display:"flex",whiteSpace:"nowrap",opacity:0,transition:"200ms opacity ease-in 200ms","&:hover, &:focus-within":{opacity:1}}),dragHandle:(0,at.css)({display:"flex",padding:e.spacing(0,1),alignItems:"center",justifyContent:"flex-end",cursor:"move",color:e.colors.text.secondary,"&:hover":{color:e.colors.text.primary}}),panelCount:(0,at.css)({whiteSpace:"nowrap",paddingLeft:e.spacing(2),color:e.colors.text.secondary,fontStyle:"italic",fontSize:e.typography.size.sm,fontWeight:"normal",display:"none",lineHeight:"30px"}),panelCountCollapsed:(0,at.css)({display:"inline-block"})});(class extends Y{constructor(){super(...arguments),this.onToggle=()=>{this.setState({isCollapsed:!this.state.isCollapsed})},this.onRemove=()=>{const e=this.parent;"body"in e.state&&e.setState({body:void 0})}}}).Component=function({model:e}){const{title:t,isCollapsed:n,canCollapse:r,canRemove:a,body:s,controls:i}=e.useState(),o=(0,nt.useStyles2)(Ql),l=(0,nt.useStyles2)(Zl),u=(null!=i?i:[]).map(e=>h().createElement(e.Component,{key:e.state.key,model:e}));a&&u.push(h().createElement(nt.ToolbarButton,{icon:"times",variant:"default",onClick:e.onRemove,key:"remove-button","aria-label":(0,he.t)("grafana-scenes.components.nested-scene-renderer.remove-button-label","Remove scene")}));return h().createElement("div",{className:l.wrapper},h().createElement("div",{className:(0,at.cx)(l.row,n&&l.rowCollapsed)},h().createElement("button",{onClick:e.onToggle,className:o.rowTitleButton,"aria-label":n?(0,he.t)("grafana-scenes.components.nested-scene-renderer.expand-button-label","Expand scene"):(0,he.t)("grafana-scenes.components.nested-scene-renderer.collapse-button-label","Collapse scene")},r&&h().createElement(nt.Icon,{name:n?"angle-right":"angle-down"}),h().createElement("span",{className:o.rowTitle,role:"heading"},hi.interpolate(e,t,void 0,"text"))),h().createElement("div",{className:l.actions},u)),!n&&h().createElement(s.Component,{model:s}))};const Zl=e=>({wrapper:(0,at.css)({display:"flex",flexDirection:"column",flexGrow:1,gap:e.spacing(1)}),row:(0,at.css)({width:"100%",display:"flex",justifyContent:"space-between",gap:e.spacing(1)}),rowCollapsed:(0,at.css)({borderBottom:`1px solid ${e.colors.border.weak}`,paddingBottom:e.spacing(1)}),actions:(0,at.css)({display:"flex",alignItems:"center",gap:e.spacing(1),justifyContent:"flex-end",flexGrow:1})});(class extends Y{constructor(){super(...arguments),this._variableDependency=new Fs(this,{statePaths:["text"]})}}).Component=function({model:e}){const{text:t,fontSize:n=20,align:r="left",key:a,spacing:s}=e.useState(),i=(0,nt.useTheme2)(),o=(0,at.css)({fontSize:n,display:"flex",flexGrow:1,alignItems:"center",padding:s?i.spacing(s,0):void 0,justifyContent:r});return h().createElement("div",{className:o,"data-testid":a},hi.interpolate(e,t))};(class extends Y{}).Component=({model:e})=>{const t=e.useState();return h().createElement(nt.ToolbarButton,{onClick:t.onClick,icon:t.icon})};(class extends Y{}).Component=({model:e})=>{const t=e.useState();return h().createElement("div",{style:{display:"flex"}},t.label&&h().createElement(qt,{label:t.label}),h().createElement(nt.Input,{defaultValue:t.value,width:8,onBlur:t=>{e.state.onChange(parseInt(t.currentTarget.value,10))}}))};const Xl=function(e,t,n){if(!Di)return[t,ki,ki];if(!e)throw new Error("useLocalStorage key may not be falsy");var r=n?n.raw?function(e){return e}:n.deserializer:JSON.parse,a=(0,d.useRef)(function(e){try{var a=n?n.raw?String:n.serializer:JSON.stringify,s=localStorage.getItem(e);return null!==s?r(s):(t&&localStorage.setItem(e,a(t)),t)}catch(e){return t}}),s=(0,d.useState)(function(){return a.current(e)}),i=s[0],o=s[1];(0,d.useLayoutEffect)(function(){return o(a.current(e))},[e]);var l=(0,d.useCallback)(function(t){try{var a="function"==typeof t?t(i):t;if(void 0===a)return;var s=void 0;s=n?n.raw?"string"==typeof a?a:JSON.stringify(a):n.serializer?n.serializer(a):JSON.stringify(a):JSON.stringify(a),localStorage.setItem(e,s),o(r(s))}catch(e){}},[e,o]),u=(0,d.useCallback)(function(){try{localStorage.removeItem(e),o(void 0)}catch(e){}},[e,o]);return[i,l,u]};class eu extends Y{constructor(){super(...arguments),this.onZoom=()=>{const e=hi.getTimeRange(this),t=function(e,t){const n=e.to.valueOf()-e.from.valueOf(),r=e.to.valueOf()-n/2,a=0===n?3e4:n*t,i=r+a/2,o=r-a/2;return{from:(0,s.toUtc)(o),to:(0,s.toUtc)(i),raw:{from:(0,s.toUtc)(o),to:(0,s.toUtc)(i)}}}(e.state.value,2);e.onTimeRangeChange(t)},this.onChangeFiscalYearStartMonth=e=>{hi.getTimeRange(this).setState({fiscalYearStartMonth:e})},this.toAbsolute=()=>{const e=hi.getTimeRange(this),t=e.state.value,n=(0,s.toUtc)(t.from),r=(0,s.toUtc)(t.to);e.onTimeRangeChange({from:n,to:r,raw:{from:n,to:r}})},this.onMoveBackward=()=>{const e=hi.getTimeRange(this),{state:{value:t}}=e;e.onTimeRangeChange(tu(0,t,Date.now()))},this.onMoveForward=()=>{const e=hi.getTimeRange(this),{state:{value:t}}=e;e.onTimeRangeChange(tu(1,t,Date.now()))}}}function tu(e,t,n){const r=t.to.valueOf(),a=t.from.valueOf(),i=(r-a)/2;let o,l;0===e?(o=a-i,l=r-i):(o=a+i,l=r+i,l>n&&r{var t;t=e,((0,s.isDateTime)(t.raw.from)||(0,s.isDateTime)(t.raw.to))&&d([e,...null!=u?u:[]]),i.onTimeRangeChange(e)},timeZone:o,fiscalYearStartMonth:l.fiscalYearStartMonth,onMoveBackward:e.onMoveBackward,onMoveForward:e.onMoveForward,onZoom:e.onZoom,onChangeTimeZone:i.onTimeZoneChange,onChangeFiscalYearStartMonth:e.onChangeFiscalYearStartMonth,weekStart:l.weekStart,history:u,quickRanges:c})};const nu="grafana.dashboard.timepicker.history";function ru(e){return JSON.parse(e).map(e=>s.rangeUtil.convertRawToRange(e,"utc",void 0,"YYYY-MM-DD HH:mm:ss"))}function au(e){return JSON.stringify((t=e.map(e=>({from:"string"==typeof e.raw.from?e.raw.from:e.raw.from.toISOString(),to:"string"==typeof e.raw.to?e.raw.to:e.raw.to.toISOString()})),(0,A.uniqBy)(t,e=>e.from+e.to).slice(0,4)));var t}const su=["5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"];class iu extends Y{constructor(e){var t,n,r;super({refresh:"",...e,autoValue:void 0,autoEnabled:null==(t=e.autoEnabled)||t,autoMinInterval:null!=(n=e.autoMinInterval)?n:i.config.minRefreshInterval,intervals:(null!=(r=e.intervals)?r:su).filter(t=>{var n;const r=null!=(n=e.minRefreshInterval)?n:i.config.minRefreshInterval;try{return!r||s.rangeUtil.intervalToMs(t)>=s.rangeUtil.intervalToMs(r)}catch(e){return!1}})}),this._urlSync=new z(this,{keys:["refresh"]}),this._autoRefreshBlocked=!1,this.onRefresh=()=>{const e=hi.getQueryController(this);if(null==e?void 0:e.state.isRunning)return e.cancelAll(),void e.cancelProfile();null==e||e.startProfile(K);const t=hi.getTimeRange(this);this._intervalTimer&&clearInterval(this._intervalTimer),t.onRefresh(),this.setupIntervalTimer()},this.onIntervalChanged=e=>{this.setState({refresh:e}),this.setupIntervalTimer()},this.setupAutoTimeRangeListener=()=>hi.getTimeRange(this).subscribeToState((e,t)=>{e.from===t.from&&e.to===t.to||this.setupIntervalTimer()}),this.calculateAutoRefreshInterval=()=>{var e;const t=hi.getTimeRange(this),n=null!=(e=null==window?void 0:window.innerWidth)?e:2e3;return s.rangeUtil.calculateInterval(t.state.value,n,this.state.autoMinInterval)},this.setupIntervalTimer=()=>{var e;const t=hi.getTimeRange(this),{refresh:n,intervals:r}=this.state;if((this._intervalTimer||""===n)&&clearInterval(this._intervalTimer),""===n)return;if(n!==nt.RefreshPicker.autoOption.value&&r&&!r.includes(n))return;let a;if(null==(e=this._autoTimeRangeListener)||e.unsubscribe(),n===nt.RefreshPicker.autoOption.value){const e=this.calculateAutoRefreshInterval();a=e.intervalMs,this._autoTimeRangeListener=this.setupAutoTimeRangeListener(),e.interval!==this.state.autoValue&&this.setState({autoValue:e.interval})}else a=s.rangeUtil.intervalToMs(n);this._intervalTimer=setInterval(()=>{if(this.isTabVisible()){const e=hi.getQueryController(this);(null==e?void 0:e.state.isRunning)&&e.cancelProfile(),null==e||e.startProfile(K),t.onRefresh()}else this._autoRefreshBlocked=!0},a)},this.addActivationHandler(()=>{this.setupIntervalTimer();const e=()=>{this._autoRefreshBlocked&&"visible"===document.visibilityState&&(this._autoRefreshBlocked=!1,this.onRefresh())};return document.addEventListener("visibilitychange",e),()=>{var t;this._intervalTimer&&clearInterval(this._intervalTimer),document.removeEventListener("visibilitychange",e),null==(t=this._autoTimeRangeListener)||t.unsubscribe()}})}getUrlState(){let e=this.state.refresh;return"string"==typeof e&&0!==e.length||(e=void 0),{refresh:e}}updateFromUrl(e){const{intervals:t}=this.state;let n=e.refresh;"string"==typeof n&&function(e){try{return s.rangeUtil.describeInterval(e).count>0}catch(e){return!1}}(n)&&((null==t?void 0:t.includes(n))?this.setState({refresh:n}):this.setState({refresh:t?t[0]:void 0}))}isTabVisible(){return void 0===document.visibilityState||"visible"===document.visibilityState}}iu.Component=function({model:e}){var t;const{refresh:n,intervals:r,autoEnabled:a,autoValue:s,isOnCanvas:i,primary:o,withText:l}=e.useState(),u=function(e){const t=hi.getQueryController(e);if(!t)return!1;return t.useState().isRunning}(e);let d,c,m=n===(null==(t=nt.RefreshPicker.autoOption)?void 0:t.value)?s:l?"Refresh":void 0;u&&(d="Cancel all queries",l&&(m="Cancel"));l&&(c="96px");return h().createElement(nt.RefreshPicker,{showAutoInterval:a,value:n,intervals:r,tooltip:d,width:c,text:m,onRefresh:()=>{e.onRefresh()},primary:o,onIntervalChanged:e.onIntervalChanged,isLoading:u,isOnCanvas:null==i||i})};const ou=e=>`${e}-compare`,lu="__previousPeriod",uu="__noPeriod",du={label:"Previous period",value:lu},cu={label:"None",value:uu},hu=[{label:"Day before",value:"24h"},{label:"Week before",value:"1w"},{label:"Month before",value:"1M"}];(class extends Y{constructor(e){super({compareOptions:hu,...e}),this._urlSync=new z(this,{keys:["compareWith"]}),this._onActivate=()=>{const e=hi.getTimeRange(this);this.setState({compareOptions:this.getCompareOptions(e.state.value)}),this._subs.add(e.subscribeToState(e=>{const t=this.getCompareOptions(e.value),n={compareOptions:t};Boolean(this.state.compareWith)&&!t.find(({value:e})=>e===this.state.compareWith)&&(n.compareWith=lu),this.setState(n)}))},this.getCompareOptions=e=>{const t=Math.ceil(e.to.diff(e.from)),n=hu.findIndex(({value:e})=>s.rangeUtil.intervalToMs(e)>=t);return[cu,du,...hu.slice(n).map(({label:e,value:t})=>({label:e,value:t}))]},this.onCompareWithChanged=e=>{e===uu?this.onClearCompare():this.setState({compareWith:e})},this.onClearCompare=()=>{this.setState({compareWith:void 0})},this.addActivationHandler(this._onActivate)}getExtraQueries(e){const t=[],n=this.getCompareTimeRange(e.range);if(!n)return t;const r=e.targets.filter(e=>!1!==e.timeRangeCompare);return r.length&&t.push({req:{...e,targets:r,range:n},processor:mu}),t}shouldRerun(e,t,n){return e.compareWith!==t.compareWith&&void 0!==n.find(e=>!1!==e.timeRangeCompare)}getCompareTimeRange(e){let t,n;if(this.state.compareWith){if(this.state.compareWith===lu){const r=e.to.diff(e.from);t=(0,s.dateTime)(e.from).subtract(r),n=(0,s.dateTime)(e.to).subtract(r)}else t=(0,s.dateTime)(e.from).subtract(s.rangeUtil.intervalToMs(this.state.compareWith)),n=(0,s.dateTime)(e.to).subtract(s.rangeUtil.intervalToMs(this.state.compareWith));return{from:t,to:n,raw:{from:t,to:n}}}}getUrlState(){return{compareWith:this.state.compareWith}}updateFromUrl(e){if(!e.compareWith)return;const t=U(e.compareWith);if(t){this.getCompareOptions(hi.getTimeRange(this).state.value).find(({value:e})=>e===t)?this.setState({compareWith:t}):this.setState({compareWith:"__previousPeriod"})}}}).Component=function({model:e}){var t;const n=(0,nt.useStyles2)(pu),{compareWith:r,compareOptions:a,hideCheckbox:s}=e.useState(),[i,o]=h().useState(r),l=null!=(t=a.find(({value:e})=>e===i))?t:du,u=a.find(({value:e})=>e===r),d=Boolean(u),c=()=>{d?(o(r),e.onClearCompare()):d||e.onCompareWithChanged(l.value)},m=s&&!r?cu:u,p=s||d,f=s&&m?{...m,label:`Comparison: ${m.label}`}:m;return h().createElement(nt.ButtonGroup,null,!s&&h().createElement(nt.ToolbarButton,{variant:"canvas",tooltip:(0,he.t)("grafana-scenes.components.scene-time-range-compare-renderer.button-tooltip","Enable time frame comparison"),onClick:e=>{e.stopPropagation(),e.preventDefault(),c()}},h().createElement(nt.Checkbox,{label:" ",value:d,onClick:c}),h().createElement(he.x6,{i18nKey:"grafana-scenes.components.scene-time-range-compare-renderer.button-label"},"Comparison")),p?h().createElement(nt.ButtonSelect,{variant:"canvas",value:f,options:a,onChange:t=>{e.onCompareWithChanged(t.value)}}):h().createElement(nt.ToolbarButton,{className:n.previewButton,disabled:!0,variant:"canvas",isOpen:!1},l.label))};const mu=(e,t)=>{const n=t.timeRange.from.diff(e.timeRange.from);return t.series.forEach(e=>{e.refId=ou(e.refId||""),e.meta={...e.meta,timeCompare:{diffMs:n,isTimeShiftQuery:!0}},e.fields.forEach(e=>(e.type===s.FieldType.time&&(e.values=e.values.map(e=>n<0?e-n:e+n)),e.config={...e.config,color:{mode:"fixed",fixedColor:i.config.theme.palette.gray60}},e))}),(0,m.of)(t)};function pu(e){return{previewButton:(0,at.css)({"&:disabled":{border:`1px solid ${e.colors.secondary.border}`,color:e.colors.text.disabled,opacity:1}})}}(class extends Y{constructor(e){super(e),this.addActivationHandler(()=>{const e=hi.getData(this);this._subs.add(e.subscribeToState(e=>{var t;(null==(t=e.data)?void 0:t.state)===s.LoadingState.Done&&this.performRepeat(e.data)})),e.state.data&&this.performRepeat(e.state.data)})}performRepeat(e){const t=[];for(let n=0;n{const{body:t}=e.useState();return h().createElement(t.Component,{model:t})};(class extends Y{constructor(e){super(e),this._variableDependency=new Fs(this,{variableNames:[this.state.variableName],onVariableUpdateCompleted:()=>this.performRepeat()}),this.addActivationHandler(()=>this.performRepeat())}performRepeat(){if(this._variableDependency.hasDependencyInLoadingState())return;const e=hi.lookupVariable(this.state.variableName,this);if(!(e instanceof Re))return void console.error("SceneByVariableRepeater: variable is not a MultiValueVariable");const t=function(e){const{value:t,text:n,options:r}=e.state;if(e.hasAllValue())return r;if(Array.isArray(t)&&Array.isArray(n))return t.map((e,t)=>({value:e,label:n[t]}));return[{value:t,label:n}]}(e),n=[];for(const e of t){const t=this.state.getLayoutChild(e);n.push(t)}this.state.body.setState({children:n})}}).Component=({model:e})=>{const{body:t}=e.useState();return h().createElement(t.Component,{model:t})};(class extends Y{constructor(){super({}),this._renderBeforeActivation=!0}}).Component=e=>h().createElement("div",{style:{flexGrow:1}});class fu extends Y{toggleDirection(){this.setState({direction:"row"===this.state.direction?"column":"row"})}isDraggable(){return!1}}fu.Component=function({model:e,parentState:t}){const{children:n,isHidden:r}=e.useState(),a=function(e,t){return(0,d.useMemo)(()=>{var n,r,a,s,o,l,u,d,c,h;const{direction:m="row",wrap:p}=e,f=i.config.theme2,_={};return t?gu(_,e,t):(_.display="flex",_.flexGrow=1,_.minWidth=e.minWidth,_.minHeight=e.minHeight),_.flexDirection=m,_.gap="8px",_.flexWrap=p||"nowrap",_.alignContent="baseline",_.minWidth=_.minWidth||0,_.minHeight=_.minHeight||0,_[f.breakpoints.down("md")]={flexDirection:null!=(r=null==(n=e.md)?void 0:n.direction)?r:"column",maxWidth:null!=(s=null==(a=e.md)?void 0:a.maxWidth)?s:"unset",maxHeight:null!=(l=null==(o=e.md)?void 0:o.maxHeight)?l:"unset",height:null!=(d=null==(u=e.md)?void 0:u.height)?d:"unset",width:null!=(h=null==(c=e.md)?void 0:c.width)?h:"unset"},(0,at.css)(_)},[t,e])}(e.state,t);if(r)return null;return h().createElement("div",{className:a},n.map(t=>{const n=t.Component;return h().createElement(n,{key:t.state.key,model:t,parentState:e.state})}))};class _u extends Y{}function gu(e,t,n){var r,a,s;const i=null!=(r=n.direction)?r:"row",{xSizing:o="fill",ySizing:l="fill"}=t;return e.display="flex",e.position="relative",e.flexDirection=i,"column"===i?(t.height?e.height=t.height:e.flexGrow="fill"===l?1:0,t.width?e.width=t.width:e.alignSelf="fill"===o?"stretch":"flex-start"):(t.height?e.height=t.height:e.alignSelf="fill"===l?"stretch":"flex-start",t.width?e.width=t.width:e.flexGrow="fill"===o?1:0,t.wrap&&(e.flexWrap=t.wrap,"nowrap"!==t.wrap&&("row"===i?e.rowGap="8px":e.columnGap="8px"))),e.minWidth=t.minWidth,e.maxWidth=t.maxWidth,e.maxHeight=t.maxHeight,e.minHeight=null!=(a=t.minHeight)?a:n.minHeight,e.height=null!=(s=t.height)?s:n.height,e}_u.Component=function({model:e,parentState:t}){if(!t)throw new Error("SceneFlexItem must be a child of SceneFlexLayout");const{body:n,isHidden:r}=e.useState(),a=function(e,t){return(0,d.useMemo)(()=>{var n,r,a,s,o,l,u,d,c,h;const m=i.config.theme2,p=gu({},e,t);return p[m.breakpoints.down("md")]={maxWidth:null!=(r=null==(n=e.md)?void 0:n.maxWidth)?r:"unset",maxHeight:null!=(s=null==(a=e.md)?void 0:a.maxHeight)?s:"unset",height:null!=(u=null==(o=e.md)?void 0:o.height)?u:null==(l=t.md)?void 0:l.height,width:null!=(h=null==(d=e.md)?void 0:d.width)?h:null==(c=t.md)?void 0:c.width},(0,at.css)(p)},[e,t])}(e.state,t);if(!n||r)return null;return h().createElement("div",{className:a},h().createElement(n.Component,{model:n}))};class yu extends Y{constructor(e){var t,n;super({rowGap:1,columnGap:1,templateColumns:"repeat(auto-fit, minmax(400px, 1fr))",autoRows:null!=(t=e.autoRows)?t:"320px",children:null!=(n=e.children)?n:[],...e})}isDraggable(){return!1}}yu.Component=function({model:e}){const{children:t,isHidden:n,isLazy:r}=e.useState(),a=(s=e.state,(0,d.useMemo)(()=>{var e,t,n,r,a,o,l,u,d,c,h;const m={},p=i.config.theme2;return m.display="grid",m.gridTemplateColumns=s.templateColumns,m.gridTemplateRows=s.templateRows||"unset",m.gridAutoRows=s.autoRows||"unset",m.rowGap=p.spacing(null!=(e=s.rowGap)?e:1),m.columnGap=p.spacing(null!=(t=s.columnGap)?t:1),m.justifyItems=s.justifyItems||"unset",m.alignItems=s.alignItems||"unset",m.justifyContent=s.justifyContent||"unset",m.flexGrow=1,s.md&&(m[p.breakpoints.down("md")]={gridTemplateRows:null==(n=s.md)?void 0:n.templateRows,gridTemplateColumns:null==(r=s.md)?void 0:r.templateColumns,rowGap:s.md.rowGap?p.spacing(null!=(o=null==(a=s.md)?void 0:a.rowGap)?o:1):void 0,columnGap:s.md.columnGap?p.spacing(null!=(u=null==(l=s.md)?void 0:l.rowGap)?u:1):void 0,justifyItems:null==(d=s.md)?void 0:d.justifyItems,alignItems:null==(c=s.md)?void 0:c.alignItems,justifyContent:null==(h=s.md)?void 0:h.justifyContent}),(0,at.css)(m)},[s]));var s;if(n)return null;return h().createElement("div",{className:a},t.map(t=>{const n=t.Component;return r?h().createElement(Nl,{key:t.state.key,className:a},h().createElement(n,{key:t.state.key,model:t,parentState:e.state})):h().createElement(n,{key:t.state.key,model:t,parentState:e.state})}))};class vu extends Y{}vu.Component=function({model:e,parentState:t}){if(!t)throw new Error("SceneCSSGridItem must be a child of SceneCSSGridLayout");const{body:n,isHidden:r}=e.useState(),a=(s=e.state,(0,d.useMemo)(()=>{const e={};return e.gridColumn=s.gridColumn||"unset",e.gridRow=s.gridRow||"unset",e.position="relative",(0,at.css)(e)},[s]));var s;if(!n||r)return null;return h().createElement("div",{className:a},h().createElement(n.Component,{model:n}))};const bu=new Set(["ArrowUp","ArrowDown"]),Mu=new Set(["ArrowLeft","ArrowRight"]),wu={row:{dim:"width",axis:"clientX",min:"minWidth",max:"maxWidth"},column:{dim:"height",axis:"clientY",min:"minHeight",max:"maxHeight"}};function Lu({direction:e="row",handleSize:t=32,initialSize:n="auto",primaryPaneStyles:r,secondaryPaneStyles:a,onDragFinished:s,children:i}){const o=h().Children.toArray(i),l=(0,d.useRef)(null),u=(0,d.useRef)(null),c=(0,d.useRef)(null),m=(0,d.useRef)(null),p=(0,d.useRef)(null),f=(0,d.useRef)("1fr"),_=(0,d.useRef)(void 0),g=(0,d.useRef)(void 0),y=wu[e].dim,v=wu[e].axis,b=wu[e].min,M=wu[e].max;!function(e,t,n=0,r){const a=(0,A.throttle)(t,n);(0,d.useLayoutEffect)(()=>{if(!e)return;const t=new ResizeObserver(a);return t.observe(e,{box:"device-pixel-content-box"}),()=>t.disconnect()},r)}(m.current,e=>{for(const t of e){if(!t.target.isSameNode(m.current))return;const e=u.current.getBoundingClientRect()[y],n=ku(u.current);l.current.ariaValueNow=`${(0,A.clamp)((e-n[b])/(n[M]-n[b])*100,0,100)}`}},500,[M,b,e,y]);const w=(0,d.useRef)(null),L=(0,d.useCallback)(e=>{f.current=u.current.getBoundingClientRect()[y],p.current=m.current.getBoundingClientRect()[y],w.current=e[v],l.current.setPointerCapture(e.pointerId),_.current=ku(u.current),g.current=void 0},[y,v]),S=(0,d.useCallback)(e=>{if(null!==w.current&&"1fr"!==f.current){const n=e[v]-w.current,r=_.current,a=(0,A.clamp)(f.current+n,r[b],r[M]),s=a/(p.current-t);u.current.style.flexGrow=`${s}`,c.current.style.flexGrow=""+(1-s);const i=(0,A.clamp)((a-r[b])/(r[M]-r[b])*100,0,100);l.current.ariaValueNow=`${i}`}},[t,v,b,M]),k=(0,d.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),l.current.releasePointerCapture(e.pointerId),w.current=null,null==s||s(parseFloat(u.current.style.flexGrow))},[s]),D=(0,d.useRef)(new Set),T=(0,d.useRef)(null),x=(0,d.useCallback)(n=>{var r;if(0===D.current.size)return void(T.current=null);if("1fr"===f.current)return;const a=.3*(n-(null!=(r=T.current)?r:n));let s=0;"row"===e?(D.current.has("ArrowLeft")&&(s-=a),D.current.has("ArrowRight")&&(s+=a)):(D.current.has("ArrowUp")&&(s-=a),D.current.has("ArrowDown")&&(s+=a));const i=_.current,o=u.current.getBoundingClientRect()[y],d=(0,A.clamp)(o+s,i[b],i[M]),h=d/(p.current-t);u.current.style.flexGrow=`${h}`,c.current.style.flexGrow=""+(1-h);const m=(d-i[b])/(i[M]-i[b])*100;l.current.ariaValueNow=`${(0,A.clamp)(m,0,100)}`,T.current=n,window.requestAnimationFrame(x)},[e,t,b,M,y]),Y=(0,d.useCallback)(n=>{if("Enter"===n.key)return void(void 0===g.current?(g.current=u.current.style.flexGrow,u.current.style.flexGrow="0",c.current.style.flexGrow="1"):(u.current.style.flexGrow=g.current,c.current.style.flexGrow=""+(1-parseFloat(g.current)),g.current=void 0));if("Home"===n.key){_.current=ku(u.current),p.current=m.current.getBoundingClientRect()[y];const e=_.current[b]/(p.current-t);return u.current.style.flexGrow=`${e}`,c.current.style.flexGrow=""+(1-e),void(l.current.ariaValueNow="0")}if("End"===n.key){_.current=ku(u.current),p.current=m.current.getBoundingClientRect()[y];const e=_.current[M]/(p.current-t);return u.current.style.flexGrow=`${e}`,c.current.style.flexGrow=""+(1-e),void(l.current.ariaValueNow="100")}if(!("column"===e&&bu.has(n.key)||"row"===e&&Mu.has(n.key))||D.current.has(n.key))return;g.current=void 0,n.preventDefault(),n.stopPropagation(),f.current=u.current.getBoundingClientRect()[y],p.current=m.current.getBoundingClientRect()[y],_.current=ku(u.current);if(!D.current.has(n.key)){const e=0===D.current.size;D.current.add(n.key),e&&window.requestAnimationFrame(x)}},[e,x,t,M,y,b]),E=(0,d.useCallback)(t=>{"row"===e&&!Mu.has(t.key)||"column"===e&&!bu.has(t.key)||(D.current.delete(t.key),null==s||s(parseFloat(u.current.style.flexGrow)))},[e,s]),O=(0,d.useCallback)(()=>{u.current.style.flexGrow="0.5",c.current.style.flexGrow="0.5";const e=ku(u.current);_.current=e,f.current=u.current.getBoundingClientRect()[y],l.current.ariaValueNow=""+(f.current-e[b])/(e[M]-e[b])*100},[M,y,b]),C=(0,d.useCallback)(()=>{D.current.size>0&&(D.current.clear(),w.current=null,null==s||s(parseFloat(u.current.style.flexGrow)))},[s]),R=(0,nt.useStyles2)(Su),P=Hl(),j=2===o.length?"visible":"hidden";return h().createElement("div",{ref:m,className:R.container,style:{flexDirection:e}},h().createElement("div",{ref:u,className:R.panel,style:{flexGrow:"auto"===n?.5:(0,A.clamp)(n,0,1),[b]:"min-content",...r},id:`start-panel-${P}`},o[0]),o[1]&&h().createElement(h().Fragment,null,h().createElement("div",{ref:l,style:{[y]:`${t}px`},className:(0,at.cx)(R.handle,{[R.handleHorizontal]:"column"===e}),onPointerUp:k,onPointerDown:L,onPointerMove:S,onKeyDown:Y,onKeyUp:E,onDoubleClick:O,onBlur:C,role:"separator","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":50,"aria-controls":`start-panel-${P}`,"aria-label":(0,he.t)("grafana-scenes.components.splitter.aria-label-pane-resize-widget","Pane resize widget"),tabIndex:0}),h().createElement("div",{ref:c,className:R.panel,style:{flexGrow:"auto"===n?.5:(0,A.clamp)(1-n,0,1),[b]:"min-content",visibility:`${j}`,...a},id:`end-panel-${P}`},o[1])))}function Su(e){return{handle:(0,at.css)({cursor:"col-resize",position:"relative",flexShrink:0,userSelect:"none","&::before":{content:'""',position:"absolute",backgroundColor:e.colors.primary.main,left:"50%",transform:"translate(-50%)",top:0,height:"100%",width:"1px",opacity:0,transition:"opacity ease-in-out 0.2s"},"&::after":{content:'""',width:"4px",borderRadius:"4px",backgroundColor:e.colors.border.weak,transition:"background-color ease-in-out 0.2s",height:"50%",top:"calc(50% - (50%) / 2)",transform:"translateX(-50%)",position:"absolute",left:"50%"},"&:hover, &:focus-visible":{outline:"none","&::before":{opacity:1},"&::after":{backgroundColor:e.colors.primary.main}}}),handleHorizontal:(0,at.css)({cursor:"row-resize","&::before":{left:"inherit",transform:"translateY(-50%)",top:"50%",height:"1px",width:"100%"},"&::after":{width:"50%",height:"4px",top:"50%",transform:"translateY(-50%)",left:"calc(50% - (50%) / 2)"}}),container:(0,at.css)({display:"flex",width:"100%",flexGrow:1,overflow:"hidden"}),panel:(0,at.css)({display:"flex",position:"relative",flexBasis:0})}}function ku(e){if(null===e)return;const t=document.body.style.overflow,n=e.style.width,r=e.style.height,a=e.style.flexGrow;document.body.style.overflow="hidden",e.style.flexGrow="0";const{width:s,height:i}=e.getBoundingClientRect();e.style.flexGrow="100";const{width:o,height:l}=e.getBoundingClientRect();return document.body.style.overflow=t,e.style.width=n,e.style.height=r,e.style.flexGrow=a,{minWidth:s,maxWidth:o,minHeight:i,maxHeight:l}}(class extends Y{toggleDirection(){this.setState({direction:"row"===this.state.direction?"column":"row"})}isDraggable(){return!1}}).Component=function({model:e}){const{primary:t,secondary:n,direction:r,isHidden:a,initialSize:s,primaryPaneStyles:i,secondaryPaneStyles:o}=e.useState();if(a)return null;const l=t.Component,u=null==n?void 0:n.Component;let d=n?s:1;return h().createElement(Lu,{direction:r,initialSize:null!=d?d:.5,primaryPaneStyles:i,secondaryPaneStyles:o},h().createElement(l,{key:t.state.key,model:t,parentState:e.state}),u&&n&&h().createElement(u,{key:n.state.key,model:n,parentState:e.state}))};(class extends Y{constructor(){super(...arguments),this._renderBeforeActivation=!0}enrichDataRequest(){return{app:this.state.name||"app"}}}).Component=({model:e})=>{const{pages:t}=e.useState();return h().createElement(h().Fragment,null,h().createElement(Du.Provider,{value:e},h().createElement(a.Routes,null,t.map(e=>h().createElement(a.Route,{key:e.state.url,path:e.state.routePath,element:h().createElement(e.Component,{model:e})})))))};const Du=(0,d.createContext)(null);class Tu extends Y{}function xu({node:e}){const t=e.useState(),n=(0,nt.useStyles2)(Yu);return h().createElement("div",{className:n.container},Object.keys(t).map(r=>h().createElement("div",{className:n.row,key:r},h().createElement("div",{className:n.keyName},r),h().createElement("div",{className:n.value},function(e,t,n){if(null===t)return"null";switch(typeof t){case"number":return h().createElement(nt.Input,{type:"number",defaultValue:t,onBlur:t=>n.setState({[e]:t.currentTarget.valueAsNumber})});case"string":return h().createElement(nt.Input,{type:"text",defaultValue:t,onBlur:t=>n.setState({[e]:t.currentTarget.value})});case"object":return Ve(t)?t.constructor.name:(0,A.isPlainObject)(t)||(0,A.isArray)(t)?h().createElement(nt.JSONFormatter,{json:t,open:0}):String(t);default:return typeof t}}(r,t[r],e)))))}function Yu(e){return{container:(0,at.css)({flexGrow:1,display:"flex",gap:e.spacing(.5),flexDirection:"column"}),row:(0,at.css)({display:"flex",gap:e.spacing(2)}),keyName:(0,at.css)({display:"flex",flexGrow:"0",width:120,alignItems:"center",height:e.spacing(e.components.height.md)}),value:(0,at.css)({flexGrow:1,minHeight:e.spacing(e.components.height.md),display:"flex",alignItems:"center"})}}function Eu({node:e,selectedObject:t,onSelect:n}){const r=(0,nt.useStyles2)(Ou),a=[],s=e===t;return e.forEachChild(e=>{a.push(h().createElement(Eu,{node:e,key:e.state.key,selectedObject:t,onSelect:n}))}),h().createElement("div",{className:r.container},h().createElement("div",{className:(0,at.cx)(r.name,s&&r.selected),onClick:()=>n(e)},e.constructor.name),h().createElement("div",{className:r.children},a))}function Ou(e){return{container:(0,at.css)({flexGrow:1,display:"flex",gap:e.spacing(.5),flexDirection:"column"}),name:(0,at.css)({flexGrow:1,display:"flex",gap:e.spacing(1),fontSize:e.typography.bodySmall.fontSize,cursor:"pointer",padding:e.spacing(0,1),borderRadius:e.shape.borderRadius(2),position:"relative","&:hover":{background:e.colors.background.secondary}}),selected:(0,at.css)({"&::before":{display:"block",content:"' '",position:"absolute",left:0,width:4,bottom:2,top:2,borderRadius:e.shape.radius.default,backgroundImage:e.colors.gradients.brandVertical}}),children:(0,at.css)({flexGrow:1,display:"flex",flexDirection:"column",paddingLeft:e.spacing(1)})}}function Au({scene:e}){const t=(0,nt.useStyles2)(Cu),[n,r]=(0,d.useState)(!1),[a,s]=(0,d.useState)();return h().createElement(h().Fragment,null,h().createElement(nt.ToolbarButton,{variant:"canvas",icon:"bug",onClick:()=>r(!0)}),n&&h().createElement(nt.Drawer,{title:(0,he.t)("grafana-scenes.components.scene-debugger.title-scene-debugger","Scene debugger"),onClose:()=>r(!1),size:"lg"},h().createElement("div",{className:t.panes},h().createElement("div",{className:t.pane1},h().createElement("div",{className:t.paneHeading},h().createElement(he.x6,{i18nKey:"grafana-scenes.components.scene-debugger.scene-graph"},"Scene graph")),h().createElement(nt.CustomScrollbar,{autoHeightMin:"100%"},h().createElement("div",{className:t.treeWrapper},h().createElement(Eu,{node:e,selectedObject:a,onSelect:s})))),h().createElement("div",{className:t.pane2},h().createElement("div",{className:t.paneHeading},h().createElement(he.x6,{i18nKey:"grafana-scenes.components.scene-debugger.object-details"},"Object details")),a&&h().createElement(xu,{node:a})))))}function Cu(e){return{panes:(0,at.css)({flexGrow:1,display:"flex",height:"100%",flexDirection:"row",marginTop:e.spacing(-2)}),pane1:(0,at.css)({flexGrow:0,display:"flex",height:"100%",flexDirection:"column",borderRight:`1px solid ${e.colors.border.weak}`}),pane2:(0,at.css)({flexGrow:1,display:"flex",minHeight:"100%",flexDirection:"column",paddingLeft:e.spacing(2)}),treeWrapper:(0,at.css)({paddingRight:e.spacing(2),height:"100%",marginLeft:e.spacing(-1)}),paneHeading:(0,at.css)({padding:e.spacing(1,0),fontWeight:e.typography.fontWeightMedium})}}function Ru({page:e}){const t=l(e.state.url),n=function(e){if(e.parent instanceof Hu)return e.parent;return e}(e),r=n.useState(),s=function(){const e=(0,a.useLocation)();return(0,i.locationSearchToObject)(e.search||"")}(),u=e.getScene(t),c=(0,d.useContext)(Du),m=r.initializedScene===u,{layout:p}=e.state,f=Ae();(0,d.useLayoutEffect)(()=>{m||n.initializeScene(u)},[u,n,m]),(0,d.useEffect)(()=>()=>n.setState({initializedScene:void 0}),[n]);const _=Tl(n,null==c?void 0:c.state.urlSyncOptions);if(!m&&!_)return null;const g={text:r.title,img:r.titleImg,icon:r.titleIcon,url:o(r.url,f.getSearchObject(),r.preserveUrlKeys),hideFromBreadcrumbs:r.hideFromBreadcrumbs,parentItem:Pu(r.getParentPage?r.getParentPage():n.parent,s,f.getSearchObject())};r.tabs&&(g.children=r.tabs.map(t=>({text:t.state.title,icon:t.state.titleIcon,tabSuffix:t.state.tabSuffix,active:e===t,url:o(t.state.url,f.getSearchObject(),t.state.preserveUrlKeys),parentItem:g})));let y=[];return r.controls&&(y=r.controls.map(e=>h().createElement(e.Component,{model:e,key:e.state.key}))),s["scene-debugger"]&&y.push(h().createElement(Au,{scene:n,key:"scene-debugger"})),h().createElement(i.PluginPage,{layout:p,pageNav:g,actions:y,renderTitle:r.renderTitle,subTitle:r.subTitle},h().createElement(u.Component,{model:u}))}function Pu(e,t,n){if(e instanceof Hu)return{text:e.state.title,url:o(e.state.url,n,e.state.preserveUrlKeys),hideFromBreadcrumbs:e.state.hideFromBreadcrumbs,parentItem:Pu(e.state.getParentPage?e.state.getParentPage():e.parent,t,n)}}function ju({drilldown:e,parent:t}){const n=l(e.routePath),r=t.getDrilldownPage(e,n);return h().createElement(r.Component,{model:r})}Tu.Component=({model:e})=>{const{component:t,props:n,reactNode:r}=e.useState();return t?h().createElement(t,{...n}):r||null};class Hu extends Y{constructor(){super(...arguments),this._sceneCache=new Map,this._drilldownCache=new Map}initializeScene(e){this.setState({initializedScene:e})}getScene(e){let t=this._sceneCache.get(e.url);if(t)return t;if(!this.state.getScene)throw new Error("Missing getScene on SceneAppPage "+this.state.title);return t=this.state.getScene(e),this._sceneCache.set(e.url,t),t}getDrilldownPage(e,t){let n=this._drilldownCache.get(t.url);return n||(n=e.getPage(t,this),this._drilldownCache.set(t.url,n),n)}enrichDataRequest(e){if(this.state.getParentPage)return this.state.getParentPage().enrichDataRequest(e);if(!this.parent)return null;const t=this.getRoot();return ze(t)?t.enrichDataRequest(e):null}}Hu.Component=function({model:e}){const{tabs:t,drilldowns:n}=e.useState(),r=[];if(r.push(function(e){var t,n,r;return h().createElement(a.Route,{key:"fallback route",path:"*",element:h().createElement(Ru,{page:null!=(r=null==(n=(t=e.state).getFallbackPage)?void 0:n.call(t))?r:new Hu({url:"",title:(0,he.t)("grafana-scenes.components.fallback-page.title","Not found"),subTitle:(0,he.t)("grafana-scenes.components.fallback-page.subTitle","The url did not match any page"),routePath:"*",getScene:()=>new Yl({body:new fu({direction:"column",children:[new _u({body:new Tu({component:()=>h().createElement("div",{"data-testid":"default-fallback-content"},h().createElement(he.x6,{i18nKey:"grafana-scenes.components.fallback-page.content"},"If you found your way here using a link then there might be a bug in this application."))})})]})})})})})}(e)),t&&t.length>0)for(let n=0;nh().createElement(ju,{drilldown:t,parent:e})}));t||r.push(h().createElement(a.Route,{key:"home route",path:"/",element:h().createElement(Ru,{page:e})}));return h().createElement(a.Routes,null,r)};var Nu=(e=>(e.Always="always",e.Auto="auto",e.Never="never",e))(Nu||{}),Iu=(e=>(e.Hue="hue",e.None="none",e.Opacity="opacity",e.Scheme="scheme",e))(Iu||{}),Fu=(e=>(e.None="none",e.Normal="normal",e.Percent="percent",e))(Fu||{}),Wu=(e=>(e.Auto="auto",e.Horizontal="horizontal",e.Vertical="vertical",e))(Wu||{}),Vu=(e=>(e.Background="background",e.BackgroundSolid="background_solid",e.None="none",e.Value="value",e))(Vu||{}),zu=(e=>(e.Area="area",e.Line="line",e.None="none",e))(zu||{}),$u=(e=>(e.Auto="auto",e.Center="center",e))($u||{}),Bu=(e=>(e.Auto="auto",e.Name="name",e.None="none",e.Value="value",e.ValueAndName="value_and_name",e))(Bu||{}),Uu=(e=>(e.Inverted="inverted",e.SameAsValue="same_as_value",e.Standard="standard",e))(Uu||{}),qu=(e=>(e.Multi="multi",e.None="none",e.Single="single",e))(qu||{}),Gu=(e=>(e.Basic="basic",e.Gradient="gradient",e.Lcd="lcd",e))(Gu||{}),Ju=(e=>(e.Color="color",e.Hidden="hidden",e.Text="text",e))(Ju||{}),Ku=(e=>(e.Auto="auto",e.Hidden="hidden",e.Left="left",e.Top="top",e))(Ku||{}),Qu=(e=>(e.Auto="auto",e.Manual="manual",e))(Qu||{}),Zu=(e=>(e.Auto="auto",e.Lg="lg",e.Md="md",e.Sm="sm",e))(Zu||{});const Xu={barRadius:0,barWidth:.97,fullHighlight:!1,groupWidth:.7,orientation:Wu.Auto,showValue:Nu.Auto,stacking:Fu.None,xTickLabelRotation:0,xTickLabelSpacing:0},ed={fillOpacity:80,gradientMode:Iu.None,lineWidth:1},td={displayMode:Gu.Gradient,maxVizHeight:300,minVizHeight:16,minVizWidth:8,namePlacement:Ku.Auto,showUnfilled:!0,sizing:Qu.Auto,valueMode:Ju.Color},nd={selectedSeries:0},rd={minVizHeight:75,minVizWidth:75,showThresholdLabels:!1,showThresholdMarkers:!0,sizing:Qu.Auto},ad={layers:[]};const sd={calculate:!1,cellGap:1,cellValues:{},color:{scheme:"Oranges",fill:"dark-orange",reverse:!1,exponent:.5,steps:64},exemplars:{color:"rgba(255,0,255,0.7)"},filterValues:{le:1e-9},legend:{show:!0},selectionMode:"x",showValue:Nu.Auto,tooltip:{mode:qu.Single,yHistogram:!1,showColorScale:!1}},id={bucketCount:30,bucketOffset:0},od={fillOpacity:80,gradientMode:Iu.None,lineWidth:1},ld={showImage:!0};const ud={displayLabels:[]},dd={colorMode:Vu.Value,graphMode:zu.Area,justifyMode:$u.Auto,percentChangeColorMode:Uu.Standard,showPercentChange:!1,textMode:Bu.Auto,wideLayout:!0},cd={alignValue:"left",mergeValues:!0,perPage:20,rowHeight:.9,showValue:Nu.Auto},hd={fillOpacity:70,lineWidth:0},md={colWidth:.9,perPage:20,rowHeight:.9,showValue:Nu.Auto},pd={fillOpacity:70,lineWidth:1},fd={cellHeight:Zu.Sm,footer:{show:!1,countRows:!1,reducer:[]},frameIndex:0,showHeader:!0,showTypeIcons:!1,sortBy:[]};const _d={content:"# Title\n\nFor markdown syntax help: [commonmark.org/help](https://commonmark.org/help/)",mode:"markdown"};const gd={fillOpacity:50,show:"points"},yd={series:[]};class vd{constructor(){this._overrides=[]}overrideColor(e){return this._overrides[this._overrides.length-1].properties.push({id:"color",value:e}),this}overrideDecimals(e){return this._overrides[this._overrides.length-1].properties.push({id:"decimals",value:e}),this}overrideDisplayName(e){return this._overrides[this._overrides.length-1].properties.push({id:"displayName",value:e}),this}overrideFilterable(e){return this._overrides[this._overrides.length-1].properties.push({id:"filterable",value:e}),this}overrideLinks(e){return this._overrides[this._overrides.length-1].properties.push({id:"links",value:e}),this}overrideMappings(e){return this._overrides[this._overrides.length-1].properties.push({id:"mappings",value:e}),this}overrideMax(e){return this._overrides[this._overrides.length-1].properties.push({id:"max",value:e}),this}overrideMin(e){return this._overrides[this._overrides.length-1].properties.push({id:"min",value:e}),this}overrideNoValue(e){return this._overrides[this._overrides.length-1].properties.push({id:"noValue",value:e}),this}overrideThresholds(e){return this._overrides[this._overrides.length-1].properties.push({id:"thresholds",value:e}),this}overrideUnit(e){return this._overrides[this._overrides.length-1].properties.push({id:"unit",value:e}),this}}class bd extends vd{match(e){return this._overrides.push({matcher:e,properties:[]}),this}matchFieldsWithName(e){return this._overrides.push({matcher:{id:s.FieldMatcherID.byName,options:e},properties:[]}),this}matchFieldsWithNameByRegex(e){return this._overrides.push({matcher:{id:s.FieldMatcherID.byRegexp,options:e},properties:[]}),this}matchFieldsByType(e){return this._overrides.push({matcher:{id:s.FieldMatcherID.byType,options:e},properties:[]}),this}matchFieldsByQuery(e){return this._overrides.push({matcher:{id:s.FieldMatcherID.byFrameRefID,options:e},properties:[]}),this}matchFieldsByValue(e){return this._overrides.push({matcher:{id:s.FieldMatcherID.byValue,options:e},properties:[]}),this}matchComparisonQuery(e){return this.matchFieldsByQuery(ou(e))}overrideCustomFieldConfig(e,t){const n=`custom.${String(e)}`;return this._overrides[this._overrides.length-1].properties.push({id:n,value:t}),this}build(){return this._overrides}}class Md{constructor(e){this.defaultFieldConfig=e,this._fieldConfig={defaults:{},overrides:[]},this._overridesBuilder=new bd,this.setDefaults()}setDefaults(){const e={defaults:{custom:this.defaultFieldConfig?(0,A.cloneDeep)(this.defaultFieldConfig()):{}},overrides:[]};this._fieldConfig=e}setColor(e){return this.setFieldConfigDefaults("color",e)}setDecimals(e){return this.setFieldConfigDefaults("decimals",e)}setDisplayName(e){return this.setFieldConfigDefaults("displayName",e)}setFilterable(e){return this.setFieldConfigDefaults("filterable",e)}setLinks(e){return this.setFieldConfigDefaults("links",e)}setMappings(e){return this.setFieldConfigDefaults("mappings",e)}setMax(e){return this.setFieldConfigDefaults("max",e)}setMin(e){return this.setFieldConfigDefaults("min",e)}setNoValue(e){return this.setFieldConfigDefaults("noValue",e)}setThresholds(e){return this.setFieldConfigDefaults("thresholds",e)}setUnit(e){return this.setFieldConfigDefaults("unit",e)}setCustomFieldConfig(e,t){return this._fieldConfig.defaults={...this._fieldConfig.defaults,custom:(0,A.merge)(this._fieldConfig.defaults.custom,{[e]:t})},this}setOverrides(e){return e(this._overridesBuilder),this}setFieldConfigDefaults(e,t){return this._fieldConfig.defaults={...this._fieldConfig.defaults,[e]:t},this}build(){return{defaults:this._fieldConfig.defaults,overrides:this._overridesBuilder.build()}}}class wd{constructor(e){this.defaultOptions=e,this._options={},this.setDefaults()}setDefaults(){this._options=this.defaultOptions?(0,A.cloneDeep)(this.defaultOptions()):{}}setOption(e,t){return this._options=(0,A.merge)(this._options,{[e]:t}),this}build(){return this._options}}class Ld{constructor(e,t,n,r){this._state={},this._state.title="",this._state.description="",this._state.displayMode="default",this._state.hoverHeader=!1,this._state.pluginId=e,this._state.pluginVersion=t,this._fieldConfigBuilder=new Md(r),this._panelOptionsBuilder=new wd(n)}setTitle(e){return this._state.title=e,this}setDescription(e){return this._state.description=e,this}setDisplayMode(e){return this._state.displayMode=e,this}setHoverHeader(e){return this._state.hoverHeader=e,this}setShowMenuAlways(e){return this._state.showMenuAlways=e,this}setMenu(e){return this._state.menu=e,this}setHeaderActions(e){return this._state.headerActions=e,this}setCollapsible(e){return this._state.collapsible=e,this}setCollapsed(e){return this._state.collapsed=e,this}setColor(e){return this._fieldConfigBuilder.setColor(e),this}setDecimals(e){return this._fieldConfigBuilder.setDecimals(e),this}setDisplayName(e){return this._fieldConfigBuilder.setDisplayName(e),this}setFilterable(e){return this._fieldConfigBuilder.setFilterable(e),this}setLinks(e){return this._fieldConfigBuilder.setLinks(e),this}setMappings(e){return this._fieldConfigBuilder.setMappings(e),this}setMax(e){return this._fieldConfigBuilder.setMax(e),this}setMin(e){return this._fieldConfigBuilder.setMin(e),this}setNoValue(e){return this._fieldConfigBuilder.setNoValue(e),this}setThresholds(e){return this._fieldConfigBuilder.setThresholds(e),this}setUnit(e){return this._fieldConfigBuilder.setUnit(e),this}setCustomFieldConfig(e,t){return this._fieldConfigBuilder.setCustomFieldConfig(e,t),this}setOverrides(e){return this._fieldConfigBuilder.setOverrides(e),this}setOption(e,t){return this._panelOptionsBuilder.setOption(e,t),this}setData(e){return this._state.$data=e,this}setTimeRange(e){return this._state.$timeRange=e,this}setVariables(e){return this._state.$variables=e,this}setBehaviors(e){return this._state.$behaviors=e,this}setSeriesLimit(e){return this._state.seriesLimit=e,this}applyMixin(e){return e(this),this}build(){return new Ji({...this._state,options:this._panelOptionsBuilder.build(),fieldConfig:this._fieldConfigBuilder.build()})}}const Sd={barchart:()=>new Ld("barchart","10.0.0",()=>Xu,()=>ed),bargauge:()=>new Ld("bargauge","10.0.0",()=>td),datagrid:()=>new Ld("datagrid","10.0.0",()=>nd),flamegraph:()=>new Ld("flamegraph","10.0.0"),gauge:()=>new Ld("gauge","10.0.0",()=>rd),geomap:()=>new Ld("geomap","10.0.0",()=>ad),heatmap:()=>new Ld("heatmap","10.0.0",()=>sd),histogram:()=>new Ld("histogram","10.0.0",()=>id,()=>od),logs:()=>new Ld("logs","10.0.0"),news:()=>new Ld("news","10.0.0",()=>ld),nodegraph:()=>new Ld("nodeGraph","10.0.0"),piechart:()=>new Ld("piechart","10.0.0",()=>ud),stat:()=>new Ld("stat","10.0.0",()=>dd),statetimeline:()=>new Ld("state-timeline","10.0.0",()=>cd,()=>hd),statushistory:()=>new Ld("status-history","10.0.0",()=>md,()=>pd),table:()=>new Ld("table","10.0.0",()=>fd),text:()=>new Ld("text","10.0.0",()=>_d),timeseries:()=>new Ld("timeseries","10.0.0"),trend:()=>new Ld("trend","10.0.0"),traces:()=>new Ld("traces","10.0.0"),xychart:()=>new Ld("xychart","10.0.0",()=>yd,()=>gd)};n(5730).Y.reduce((e,t)=>(e[t.code]=async()=>await function(e){switch(e){case"../locales/cs-CZ/grafana-scenes.json":return n.e(549).then(n.bind(n,4549));case"../locales/de-DE/grafana-scenes.json":return n.e(876).then(n.bind(n,876));case"../locales/en-US/grafana-scenes.json":return n.e(767).then(n.bind(n,4767));case"../locales/es-ES/grafana-scenes.json":return n.e(190).then(n.bind(n,2190));case"../locales/fr-FR/grafana-scenes.json":return n.e(2).then(n.bind(n,6002));case"../locales/hu-HU/grafana-scenes.json":return n.e(220).then(n.bind(n,8220));case"../locales/id-ID/grafana-scenes.json":return n.e(980).then(n.bind(n,7980));case"../locales/it-IT/grafana-scenes.json":return n.e(644).then(n.bind(n,5644));case"../locales/ja-JP/grafana-scenes.json":return n.e(327).then(n.bind(n,4327));case"../locales/ko-KR/grafana-scenes.json":return n.e(353).then(n.bind(n,7353));case"../locales/nl-NL/grafana-scenes.json":return n.e(74).then(n.bind(n,6074));case"../locales/pl-PL/grafana-scenes.json":return n.e(582).then(n.bind(n,3582));case"../locales/pt-BR/grafana-scenes.json":return n.e(150).then(n.bind(n,5150));case"../locales/pt-PT/grafana-scenes.json":return n.e(206).then(n.bind(n,6206));case"../locales/ru-RU/grafana-scenes.json":return n.e(64).then(n.bind(n,6064));case"../locales/sv-SE/grafana-scenes.json":return n.e(697).then(n.bind(n,5697));case"../locales/tr-TR/grafana-scenes.json":return n.e(70).then(n.bind(n,5070));case"../locales/zh-Hans/grafana-scenes.json":return n.e(660).then(n.bind(n,6660));case"../locales/zh-Hant/grafana-scenes.json":return n.e(341).then(n.bind(n,9341));default:return new Promise(function(t,n){("function"==typeof queueMicrotask?queueMicrotask:setTimeout)(n.bind(null,new Error("Unknown variable dynamic import: "+e)))})}}(`../locales/${t.code}/grafana-scenes.json`),e),{});const kd={getUrlWithAppState:o,registerRuntimePanelPlugin:function({pluginId:e,plugin:t}){if(u.has(e))throw new Error(`A runtime panel plugin with id ${e} has already been registered`);t.meta={...t.meta,id:e,name:e,module:"runtime plugin",baseUrl:"runtime plugin",info:{author:{name:"Runtime plugin "+e},description:"",links:[],logos:{large:"",small:""},screenshots:[],updated:"",version:""}},u.set(e,t)},registerRuntimeDataSource:function({dataSource:e}){if(R.has(e.uid))throw new Error(`A runtime data source with uid ${e.uid} has already been registered`);R.set(e.uid,e)},registerVariableMacro:function(e,t,n=!1){if(!n&&Fe.get(e))throw new Error(`Macro already registered ${e}`);return Fe.set(e,t),()=>{if(n)throw new Error("Replaced macros can not be unregistered. They need to be restored manually.");Fe.delete(e)}},cloneSceneObjectState:C,syncStateFromSearchParams:function(e,t,n){gi(e,t,new pi(n))},getUrlState:_i,renderPrometheusLabelFilters:Ds,escapeLabelValueInRegexSelector:xs,escapeLabelValueInExactSelector:Ts,escapeURLDelimiters:function(e){return As(Os(e))},isAdHocVariable:function(e){return"adhoc"===e.state.type},isConstantVariable:function(e){return"constant"===e.state.type},isCustomVariable:function(e){return"custom"===e.state.type},isDataSourceVariable:function(e){return"datasource"===e.state.type},isIntervalVariable:function(e){return"interval"===e.state.type},isQueryVariable:function(e){return"query"===e.state.type},isTextBoxVariable:function(e){return"textbox"===e.state.type},isGroupByVariable:function(e){return"groupby"===e.state.type},isRepeatCloneOrChildOf:Ce,buildPathIdFor:Mi}},144:(e,t,n)=>{"use strict";const r=n(5380);e.exports=(e,t,n)=>r(e,t,n)>0},230:function(e,t,n){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};e.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(e){return n[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},week:{dow:0,doy:6}})}(n(2689))},278:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n}).join("")},t.i=function(e,n,r,a,s){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(r)for(var o=0;o0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=s),n&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=n):d[2]=n),a&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=a):d[4]="".concat(a)),t.push(d))}},t}},311:function(e,t,n){!function(e){"use strict";e.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}(n(2689))},341:function(e,t,n){!function(e){"use strict";var t="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");function n(e,t,n,r){var a=e;switch(n){case"s":return r||t?"néhány másodperc":"néhány másodperce";case"ss":return a+(r||t)?" másodperc":" másodperce";case"m":return"egy"+(r||t?" perc":" perce");case"mm":return a+(r||t?" perc":" perce");case"h":return"egy"+(r||t?" óra":" órája");case"hh":return a+(r||t?" óra":" órája");case"d":return"egy"+(r||t?" nap":" napja");case"dd":return a+(r||t?" nap":" napja");case"M":return"egy"+(r||t?" hónap":" hónapja");case"MM":return a+(r||t?" hónap":" hónapja");case"y":return"egy"+(r||t?" év":" éve");case"yy":return a+(r||t?" év":" éve")}return""}function r(e){return(e?"":"[múlt] ")+"["+t[this.day()]+"] LT[-kor]"}e.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,t,n){return e<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return r.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return r.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},362:(e,t,n)=>{"use strict";var r=n(6441);function a(){}function s(){}s.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,s,i){if(i!==r){var o=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw o.name="Invariant Violation",o}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:s,resetWarningCache:a};return n.PropTypes=n,n}},402:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.canDragX=function(e){return"both"===e.props.axis||"x"===e.props.axis},t.canDragY=function(e){return"both"===e.props.axis||"y"===e.props.axis},t.createCoreData=function(e,t,n){const a=!(0,r.isNum)(e.lastX),i=s(e);return a?{node:i,deltaX:0,deltaY:0,lastX:t,lastY:n,x:t,y:n}:{node:i,deltaX:t-e.lastX,deltaY:n-e.lastY,lastX:e.lastX,lastY:e.lastY,x:t,y:n}},t.createDraggableData=function(e,t){const n=e.props.scale;return{node:t.node,x:e.state.x+t.deltaX/n,y:e.state.y+t.deltaY/n,deltaX:t.deltaX/n,deltaY:t.deltaY/n,lastX:e.state.x,lastY:e.state.y}},t.getBoundPosition=function(e,t,n){if(!e.props.bounds)return[t,n];let{bounds:i}=e.props;i="string"==typeof i?i:function(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}}(i);const o=s(e);if("string"==typeof i){const{ownerDocument:e}=o,t=e.defaultView;let n;if("parent"===i)n=o.parentNode;else{n=o.getRootNode().querySelector(i)}if(!(n instanceof t.HTMLElement))throw new Error('Bounds selector "'+i+'" could not find an element.');const s=n,l=t.getComputedStyle(o),u=t.getComputedStyle(s);i={left:-o.offsetLeft+(0,r.int)(u.paddingLeft)+(0,r.int)(l.marginLeft),top:-o.offsetTop+(0,r.int)(u.paddingTop)+(0,r.int)(l.marginTop),right:(0,a.innerWidth)(s)-(0,a.outerWidth)(o)-o.offsetLeft+(0,r.int)(u.paddingRight)-(0,r.int)(l.marginRight),bottom:(0,a.innerHeight)(s)-(0,a.outerHeight)(o)-o.offsetTop+(0,r.int)(u.paddingBottom)-(0,r.int)(l.marginBottom)}}(0,r.isNum)(i.right)&&(t=Math.min(t,i.right));(0,r.isNum)(i.bottom)&&(n=Math.min(n,i.bottom));(0,r.isNum)(i.left)&&(t=Math.max(t,i.left));(0,r.isNum)(i.top)&&(n=Math.max(n,i.top));return[t,n]},t.getControlPosition=function(e,t,n){const r="number"==typeof t?(0,a.getTouch)(e,t):null;if("number"==typeof t&&!r)return null;const i=s(n),o=n.props.offsetParent||i.offsetParent||i.ownerDocument.body;return(0,a.offsetXYFromParent)(r||e,o,n.props.scale)},t.snapToGrid=function(e,t,n){const r=Math.round(t/e[0])*e[0],a=Math.round(n/e[1])*e[1];return[r,a]};var r=n(6732),a=n(2837);function s(e){const t=e.findDOMNode();if(!t)throw new Error(": Unmounted during event!");return t}},414:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.bottom=c,t.childrenEqual=function(e,t){return(0,r.default)(a.default.Children.map(e,function(e){return null==e?void 0:e.key}),a.default.Children.map(t,function(e){return null==e?void 0:e.key}))},t.cloneLayout=h,t.cloneLayoutItem=p,t.collides=_,t.compact=g,t.compactItem=b,t.compactType=function(e){var t=e||{},n=t.verticalCompact,r=t.compactType;return!1===n?null:r},t.correctBounds=M,t.fastPositionEqual=function(e,t){return e.left===t.left&&e.top===t.top&&e.width===t.width&&e.height===t.height},t.fastRGLPropsEqual=void 0,t.getAllCollisions=S,t.getFirstCollision=L,t.getLayoutItem=w,t.getStatics=k,t.modifyLayout=m,t.moveElement=D,t.moveElementAwayFromCollision=T,t.noop=void 0,t.perc=function(e){return 100*e+"%"},t.setTopLeft=function(e){var t=e.top,n=e.left,r=e.width,a=e.height;return{top:"".concat(t,"px"),left:"".concat(n,"px"),width:"".concat(r,"px"),height:"".concat(a,"px"),position:"absolute"}},t.setTransform=function(e){var t=e.top,n=e.left,r=e.width,a=e.height,s="translate(".concat(n,"px,").concat(t,"px)");return{transform:s,WebkitTransform:s,MozTransform:s,msTransform:s,OTransform:s,width:"".concat(r,"px"),height:"".concat(a,"px"),position:"absolute"}},t.sortLayoutItems=x,t.sortLayoutItemsByColRow=E,t.sortLayoutItemsByRowCol=Y,t.synchronizeLayoutWithChildren=function(e,t,n,r,s){e=e||[];var i=[];a.default.Children.forEach(t,function(t){if(null!=(null==t?void 0:t.key)){var n=w(e,String(t.key));if(n)i.push(p(n));else{!u&&t.props._grid&&console.warn("`_grid` properties on children have been deprecated as of React 15.2. Please use `data-grid` or add your properties directly to the `layout`.");var r=t.props["data-grid"]||t.props._grid;r?(u||O([r],"ReactGridLayout.children"),i.push(p(o(o({},r),{},{i:t.key})))):i.push(p({w:1,h:1,x:0,y:c(i),i:String(t.key)}))}}});var l=M(i,{cols:n});return s?l:g(l,r,n)},t.validateLayout=O,t.withLayoutItem=function(e,t,n){var r=w(e,t);return r?(r=n(p(r)),[e=m(e,r),r]):[e,null]};var r=s(n(7842)),a=s(n(5959));function s(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function o(e){for(var t=1;tn&&(n=t);return n}function h(e){for(var t=Array(e.length),n=0,r=e.length;n=t.x+t.w)&&(!(e.y+e.h<=t.y)&&!(e.y>=t.y+t.h))))}function g(e,t,n){for(var r=k(e),a=x(e,t),s=Array(e.length),i=0,o=a.length;it.y+t.h)break;_(t,i)&&v(e,i,n+t[a],r)}}t[r]=n}function b(e,t,n,r,a){var s,i="horizontal"===n;if("vertical"===n)for(t.y=Math.min(c(e),t.y);t.y>0&&!L(e,t);)t.y--;else if(i)for(;t.x>0&&!L(e,t);)t.x--;for(;s=L(e,t);)i?v(a,t,s.x+s.w,"x"):v(a,t,s.y+s.h,"y"),i&&t.x+t.w>r&&(t.x=r-t.w,t.y++);return t.y=Math.max(t.y,0),t.x=Math.max(t.x,0),t}function M(e,t){for(var n=k(e),r=0,a=e.length;rt.cols&&(s.x=t.cols-s.w),s.x<0&&(s.x=0,s.w=t.cols),s.static)for(;L(n,s);)s.y++;else n.push(s)}return e}function w(e,t){for(var n=0,r=e.length;n=r:"horizontal"===i&&"number"==typeof n&&u>=n)&&(c=c.reverse());var m=S(c,t),p=m.length>0;if(p&&l)return h(e);if(p&&s)return A("Collision prevented on ".concat(t.i,", reverting.")),t.x=u,t.y=d,t.moved=!1,e;for(var f=0,_=m.length;f<_;f++){var g=m[f];A("Resolving collision between ".concat(t.i," at [").concat(t.x,",").concat(t.y,"] and ").concat(g.i," at [").concat(g.x,",").concat(g.y,"]")),g.moved||(e=g.static?T(e,g,t,a,i,o):T(e,t,g,a,i,o))}return e}function T(e,t,n,r,a,s){var i="horizontal"===a,o="horizontal"!==a,l=t.static;if(r){r=!1;var u={x:i?Math.max(t.x-n.w,0):n.x,y:o?Math.max(t.y-n.h,0):n.y,w:n.w,h:n.h,i:"-1"};if(!L(e,u))return A("Doing reverse collision on ".concat(n.i," up to [").concat(u.x,",").concat(u.y,"].")),D(e,n,i?u.x:void 0,o?u.y:void 0,r,l,a,s)}return D(e,n,i?n.x+1:void 0,o?n.y+1:void 0,r,l,a,s)}function x(e,t){return"horizontal"===t?E(e):"vertical"===t?Y(e):e}function Y(e){return e.slice(0).sort(function(e,t){return e.y>t.y||e.y===t.y&&e.x>t.x?1:e.y===t.y&&e.x===t.x?0:-1})}function E(e){return e.slice(0).sort(function(e,t){return e.x>t.x||e.x===t.x&&e.y>t.y?1:-1})}function O(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Layout",n=["x","y","w","h"];if(!Array.isArray(e))throw new Error(t+" must be an array!");for(var r=0,a=e.length;r=1&&e%10<=4&&(e%100<10||e%100>=20)?e%10==1?t[0]:t[1]:t[2]},translate:function(e,n,r,a){var s,i=t.words[r];return 1===r.length?"y"===r&&n?"једна година":a||n?i[0]:i[1]:(s=t.correctGrammaticalCase(e,i),"yy"===r&&n&&"годину"===s?e+" година":e+" "+s)}};e.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){return["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:t.translate,dd:t.translate,M:t.translate,MM:t.translate,y:t.translate,yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},544:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findOrGenerateResponsiveLayout=function(e,t,n,s,i,o){if(e[n])return(0,r.cloneLayout)(e[n]);for(var l=e[s],u=a(t),d=u.slice(u.indexOf(n)),c=0,h=d.length;ce[o]&&(r=o)}return r},t.getColsFromBreakpoint=function(e,t){if(!t[e])throw new Error("ResponsiveReactGridLayout: `cols` entry for breakpoint "+e+" is missing!");return t[e]},t.sortBreakpoints=a;var r=n(414);function a(e){return Object.keys(e).sort(function(t,n){return e[t]-e[n]})}},599:(e,t,n)=>{"use strict";const r=n(5380);e.exports=(e,t,n)=>r(e,t,n)<0},600:function(e,t,n){!function(e){"use strict";var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),r=[/^jan/i,/^feb/i,/^(maart|mrt\.?)$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],a=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",w:"één week",ww:"%d weken",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(2689))},603:(e,t,n)=>{"use strict";const r=n(2801);e.exports=(e,t)=>e.sort((e,n)=>r(e,n,t))},651:(e,t,n)=>{"use strict";const r=n(8395);e.exports=(e,t)=>new r(e,t).set.map(e=>e.map(e=>e.value).join(" ").trim().split(" "))},660:(e,t,n)=>{"use strict";const r=n(5860);e.exports=(e,t)=>{const n=r(e,null,!0),a=r(t,null,!0),s=n.compare(a);if(0===s)return null;const i=s>0,o=i?n:a,l=i?a:n,u=!!o.prerelease.length;if(!!l.prerelease.length&&!u){if(!l.patch&&!l.minor)return"major";if(0===l.compareMain(o))return l.minor&&!l.patch?"minor":"patch"}const d=u?"pre":"";return n.major!==a.major?d+"major":n.minor!==a.minor?d+"minor":n.patch!==a.patch?d+"patch":"prerelease"}},694:(e,t,n)=>{"use strict";function r(e){return r="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},r(e)}n.d(t,{A:()=>r})},765:function(e,t,n){!function(e){"use strict";e.defineLocale("en-in",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:0,doy:6}})}(n(2689))},818:function(e,t,n){!function(e){"use strict";e.defineLocale("ug-cn",{months:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),monthsShort:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekdays:"يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"),weekdaysShort:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),weekdaysMin:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-يىلىM-ئاينىڭD-كۈنى",LLL:"YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm",LLLL:"dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm"},meridiemParse:/يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,meridiemHour:function(e,t){return 12===e&&(e=0),"يېرىم كېچە"===t||"سەھەر"===t||"چۈشتىن بۇرۇن"===t?e:"چۈشتىن كېيىن"===t||"كەچ"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;return r<600?"يېرىم كېچە":r<900?"سەھەر":r<1130?"چۈشتىن بۇرۇن":r<1230?"چۈش":r<1800?"چۈشتىن كېيىن":"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"-كۈنى";case"w":case"W":return e+"-ھەپتە";default:return e}},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:7}})}(n(2689))},901:function(e,t,n){!function(e){"use strict";e.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Миналата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[Миналия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",w:"седмица",ww:"%d седмици",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":n>10&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(n(2689))},906:(e,t)=>{"use strict";function n(e){var t=e.margin,n=e.containerPadding,r=e.containerWidth,a=e.cols;return(r-t[0]*(a-1)-2*n[0])/a}function r(e,t,n){return Number.isFinite(e)?Math.round(t*e+Math.max(0,e-1)*n):e}function a(e,t,n){return Math.max(Math.min(e,n),t)}Object.defineProperty(t,"__esModule",{value:!0}),t.calcGridColWidth=n,t.calcGridItemPosition=function(e,t,a,s,i,o){var l=e.margin,u=e.containerPadding,d=e.rowHeight,c=n(e),h={};o&&o.resizing?(h.width=Math.round(o.resizing.width),h.height=Math.round(o.resizing.height)):(h.width=r(s,c,l[0]),h.height=r(i,d,l[1]));o&&o.dragging?(h.top=Math.round(o.dragging.top),h.left=Math.round(o.dragging.left)):(h.top=Math.round((d+l[1])*a+u[1]),h.left=Math.round((c+l[0])*t+u[0]));return h},t.calcGridItemWHPx=r,t.calcWH=function(e,t,r,s,i){var o=e.margin,l=e.maxRows,u=e.cols,d=e.rowHeight,c=n(e),h=Math.round((t+o[0])/(c+o[0])),m=Math.round((r+o[1])/(d+o[1]));return h=a(h,0,u-s),m=a(m,0,l-i),{w:h,h:m}},t.calcXY=function(e,t,r,s,i){var o=e.margin,l=e.cols,u=e.rowHeight,d=e.maxRows,c=n(e),h=Math.round((r-o[0])/(c+o[0])),m=Math.round((t-o[1])/(u+o[1]));return h=a(h,0,l-s),m=a(m,0,d-i),{x:h,y:m}},t.clamp=a},936:(e,t,n)=>{"use strict";e.exports=function(){throw new Error("Don't instantiate Resizable directly! Use require('react-resizable').Resizable")},e.exports.Resizable=n(1794).default,e.exports.ResizableBox=n(6609).default},940:(e,t,n)=>{"use strict";n.d(t,{A:()=>d});var r=n(5959);function a(e){for(var t=[],n=1;n=3?e:e+12:"বিকাল"===t||"সন্ধ্যা"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"রাত":e<6?"ভোর":e<12?"সকাল":e<15?"দুপুর":e<18?"বিকাল":e<20?"সন্ধ্যা":"রাত"},week:{dow:0,doy:6}})}(n(2689))},977:(e,t,n)=>{"use strict";function r(){return"undefined"!=typeof window}function a(e){return o(e)?(e.nodeName||"").toLowerCase():"#document"}function s(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function i(e){var t;return null==(t=(o(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function o(e){return!!r()&&(e instanceof Node||e instanceof s(e).Node)}function l(e){return!!r()&&(e instanceof Element||e instanceof s(e).Element)}function u(e){return!!r()&&(e instanceof HTMLElement||e instanceof s(e).HTMLElement)}function d(e){return!(!r()||"undefined"==typeof ShadowRoot)&&(e instanceof ShadowRoot||e instanceof s(e).ShadowRoot)}n.d(t,{$4:()=>T,CP:()=>D,L9:()=>k,Lv:()=>p,Ng:()=>d,Tc:()=>w,Tf:()=>_,ZU:()=>h,_m:()=>E,ep:()=>i,eu:()=>S,gJ:()=>M,mq:()=>a,sQ:()=>b,sb:()=>u,v9:()=>Y,vq:()=>l,zk:()=>s});const c=new Set(["inline","contents"]);function h(e){const{overflow:t,overflowX:n,overflowY:r,display:a}=k(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!c.has(a)}const m=new Set(["table","td","th"]);function p(e){return m.has(a(e))}const f=[":popover-open",":modal"];function _(e){return f.some(t=>{try{return e.matches(t)}catch(e){return!1}})}const g=["transform","translate","scale","rotate","perspective"],y=["transform","translate","scale","rotate","perspective","filter"],v=["paint","layout","strict","content"];function b(e){const t=w(),n=l(e)?k(e):e;return g.some(e=>!!n[e]&&"none"!==n[e])||!!n.containerType&&"normal"!==n.containerType||!t&&!!n.backdropFilter&&"none"!==n.backdropFilter||!t&&!!n.filter&&"none"!==n.filter||y.some(e=>(n.willChange||"").includes(e))||v.some(e=>(n.contain||"").includes(e))}function M(e){let t=T(e);for(;u(t)&&!S(t);){if(b(t))return t;if(_(t))return null;t=T(t)}return null}function w(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}const L=new Set(["html","body","#document"]);function S(e){return L.has(a(e))}function k(e){return s(e).getComputedStyle(e)}function D(e){return l(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function T(e){if("html"===a(e))return e;const t=e.assignedSlot||e.parentNode||d(e)&&e.host||i(e);return d(t)?t.host:t}function x(e){const t=T(e);return S(t)?e.ownerDocument?e.ownerDocument.body:e.body:u(t)&&h(t)?t:x(t)}function Y(e,t,n){var r;void 0===t&&(t=[]),void 0===n&&(n=!0);const a=x(e),i=a===(null==(r=e.ownerDocument)?void 0:r.body),o=s(a);if(i){const e=E(o);return t.concat(o,o.visualViewport||[],h(a)?a:[],e&&n?Y(e):[])}return t.concat(a,Y(a,[],n))}function E(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}},1060:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var a,s,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(a=t?r:n){if(a.has(e))return a.get(e);a.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((s=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(s.get||s.set)?a(i,t,s):i[t]=e[t]);return i}(e,t)}(n(5959)),a=d(n(2688)),s=d(n(8398)),i=n(2837),o=n(402),l=n(6732),u=d(n(7988));function d(e){return e&&e.__esModule?e:{default:e}}function c(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const h={start:"touchstart",move:"touchmove",stop:"touchend"},m={start:"mousedown",move:"mousemove",stop:"mouseup"};let p=m;class f extends r.Component{constructor(){super(...arguments),c(this,"dragging",!1),c(this,"lastX",NaN),c(this,"lastY",NaN),c(this,"touchIdentifier",null),c(this,"mounted",!1),c(this,"handleDragStart",e=>{if(this.props.onMouseDown(e),!this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;const t=this.findDOMNode();if(!t||!t.ownerDocument||!t.ownerDocument.body)throw new Error(" not mounted on DragStart!");const{ownerDocument:n}=t;if(this.props.disabled||!(e.target instanceof n.defaultView.Node)||this.props.handle&&!(0,i.matchesSelectorAndParentsTo)(e.target,this.props.handle,t)||this.props.cancel&&(0,i.matchesSelectorAndParentsTo)(e.target,this.props.cancel,t))return;"touchstart"!==e.type||this.props.allowMobileScroll||e.preventDefault();const r=(0,i.getTouchIdentifier)(e);this.touchIdentifier=r;const a=(0,o.getControlPosition)(e,r,this);if(null==a)return;const{x:s,y:l}=a,d=(0,o.createCoreData)(this,s,l);(0,u.default)("DraggableCore: handleDragStart: %j",d),(0,u.default)("calling",this.props.onStart);!1!==this.props.onStart(e,d)&&!1!==this.mounted&&(this.props.enableUserSelectHack&&(0,i.addUserSelectStyles)(n),this.dragging=!0,this.lastX=s,this.lastY=l,(0,i.addEvent)(n,p.move,this.handleDrag),(0,i.addEvent)(n,p.stop,this.handleDragStop))}),c(this,"handleDrag",e=>{const t=(0,o.getControlPosition)(e,this.touchIdentifier,this);if(null==t)return;let{x:n,y:r}=t;if(Array.isArray(this.props.grid)){let e=n-this.lastX,t=r-this.lastY;if([e,t]=(0,o.snapToGrid)(this.props.grid,e,t),!e&&!t)return;n=this.lastX+e,r=this.lastY+t}const a=(0,o.createCoreData)(this,n,r);(0,u.default)("DraggableCore: handleDrag: %j",a);if(!1!==this.props.onDrag(e,a)&&!1!==this.mounted)this.lastX=n,this.lastY=r;else try{this.handleDragStop(new MouseEvent("mouseup"))}catch(e){const t=document.createEvent("MouseEvents");t.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(t)}}),c(this,"handleDragStop",e=>{if(!this.dragging)return;const t=(0,o.getControlPosition)(e,this.touchIdentifier,this);if(null==t)return;let{x:n,y:r}=t;if(Array.isArray(this.props.grid)){let e=n-this.lastX||0,t=r-this.lastY||0;[e,t]=(0,o.snapToGrid)(this.props.grid,e,t),n=this.lastX+e,r=this.lastY+t}const a=(0,o.createCoreData)(this,n,r);if(!1===this.props.onStop(e,a)||!1===this.mounted)return!1;const s=this.findDOMNode();s&&this.props.enableUserSelectHack&&(0,i.scheduleRemoveUserSelectStyles)(s.ownerDocument),(0,u.default)("DraggableCore: handleDragStop: %j",a),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,s&&((0,u.default)("DraggableCore: Removing handlers"),(0,i.removeEvent)(s.ownerDocument,p.move,this.handleDrag),(0,i.removeEvent)(s.ownerDocument,p.stop,this.handleDragStop))}),c(this,"onMouseDown",e=>(p=m,this.handleDragStart(e))),c(this,"onMouseUp",e=>(p=m,this.handleDragStop(e))),c(this,"onTouchStart",e=>(p=h,this.handleDragStart(e))),c(this,"onTouchEnd",e=>(p=h,this.handleDragStop(e)))}componentDidMount(){this.mounted=!0;const e=this.findDOMNode();e&&(0,i.addEvent)(e,h.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const e=this.findDOMNode();if(e){const{ownerDocument:t}=e;(0,i.removeEvent)(t,m.move,this.handleDrag),(0,i.removeEvent)(t,h.move,this.handleDrag),(0,i.removeEvent)(t,m.stop,this.handleDragStop),(0,i.removeEvent)(t,h.stop,this.handleDragStop),(0,i.removeEvent)(e,h.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,i.scheduleRemoveUserSelectStyles)(t)}}findDOMNode(){return this.props?.nodeRef?this.props?.nodeRef?.current:s.default.findDOMNode(this)}render(){return r.cloneElement(r.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}t.default=f,c(f,"displayName","DraggableCore"),c(f,"propTypes",{allowAnyClick:a.default.bool,allowMobileScroll:a.default.bool,children:a.default.node.isRequired,disabled:a.default.bool,enableUserSelectHack:a.default.bool,offsetParent:function(e,t){if(e[t]&&1!==e[t].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:a.default.arrayOf(a.default.number),handle:a.default.string,cancel:a.default.string,nodeRef:a.default.object,onStart:a.default.func,onDrag:a.default.func,onStop:a.default.func,onMouseDown:a.default.func,scale:a.default.number,className:l.dontSetMe,style:l.dontSetMe,transform:l.dontSetMe}),c(f,"defaultProps",{allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1})},1099:(e,t,n)=>{"use strict";n.d(t,{J:()=>o});var r,a=n(3003),s=n(5959);const i=null!==(r=s.useInsertionEffect)&&void 0!==r?r:a.N;function o(e){const t=(0,s.useRef)(null);return i(()=>{t.current=e},[e]),(0,s.useCallback)((...e)=>{const n=t.current;return null==n?void 0:n(...e)},[])}},1112:(e,t,n)=>{"use strict";const r=n(8395);e.exports=(e,t,n)=>(e=new r(e,n),t=new r(t,n),e.intersects(t,n))},1146:function(e,t,n){!function(e){"use strict";function t(e){return e%100==11||e%10!=1}function n(e,n,r,a){var s=e+" ";switch(r){case"s":return n||a?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return t(e)?s+(n||a?"sekúndur":"sekúndum"):s+"sekúnda";case"m":return n?"mínúta":"mínútu";case"mm":return t(e)?s+(n||a?"mínútur":"mínútum"):n?s+"mínúta":s+"mínútu";case"hh":return t(e)?s+(n||a?"klukkustundir":"klukkustundum"):s+"klukkustund";case"d":return n?"dagur":a?"dag":"degi";case"dd":return t(e)?n?s+"dagar":s+(a?"daga":"dögum"):n?s+"dagur":s+(a?"dag":"degi");case"M":return n?"mánuður":a?"mánuð":"mánuði";case"MM":return t(e)?n?s+"mánuðir":s+(a?"mánuði":"mánuðum"):n?s+"mánuður":s+(a?"mánuð":"mánuði");case"y":return n||a?"ár":"ári";case"yy":return t(e)?s+(n||a?"ár":"árum"):s+(n||a?"ár":"ári")}}e.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:n,ss:n,m:n,mm:n,h:"klukkustund",hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},1152:function(e,t,n){!function(e){"use strict";e.defineLocale("en-sg",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2689))},1158:e=>{"use strict";e.exports=class{constructor(){this.max=1e3,this.map=new Map}get(e){const t=this.map.get(e);return void 0===t?void 0:(this.map.delete(e),this.map.set(e,t),t)}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&void 0!==t){if(this.map.size>=this.max){const e=this.map.keys().next().value;this.delete(e)}this.map.set(e,t)}return this}}},1258:function(e,t,n){!function(e){"use strict";e.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},1326:function(e,t,n){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-mx",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:4},invalidDate:"Fecha inválida"})}(n(2689))},1388:function(e,t,n){!function(e){"use strict";e.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(e){return/^(ցերեկվա|երեկոյան)$/.test(e)},meridiem:function(e){return e<4?"գիշերվա":e<12?"առավոտվա":e<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(e,t){switch(t){case"DDD":case"w":case"W":case"DDDo":return 1===e?e+"-ին":e+"-րդ";default:return e}},week:{dow:1,doy:7}})}(n(2689))},1463:function(e,t,n){!function(e){"use strict";e.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(e,t){return 12===e&&(e=0),"രാത്രി"===t&&e>=4||"ഉച്ച കഴിഞ്ഞ്"===t||"വൈകുന്നേരം"===t?e+12:e},meridiem:function(e,t,n){return e<4?"രാത്രി":e<12?"രാവിലെ":e<17?"ഉച്ച കഴിഞ്ഞ്":e<20?"വൈകുന്നേരം":"രാത്രി"}})}(n(2689))},1465:(e,t,n)=>{"use strict";const r=n(1722),a=n(5380);e.exports=(e,t,n)=>{const s=[];let i=null,o=null;const l=e.sort((e,t)=>a(e,t,n));for(const e of l){r(e,t,n)?(o=e,i||(i=e)):(o&&s.push([i,o]),o=null,i=null)}i&&s.push([i,null]);const u=[];for(const[e,t]of s)e===t?u.push(e):t||e!==l[0]?t?e===l[0]?u.push(`<=${t}`):u.push(`${e} - ${t}`):u.push(`>=${e}`):u.push("*");const d=u.join(" || "),c="string"==typeof t.raw?t.raw:String(t);return d.length{"use strict";n.d(t,{A:()=>At});var r=n(7405),a=n(7850),s=n(5959),i=n.n(s),o=n(8398),l=n.n(o);function u(){return!("undefined"==typeof window||!window.document||!window.document.createElement)}var d={},c=[];function h(e,t){}function m(e,t){}function p(e,t,n){t||d[n]||(e(!1,n),d[n]=!0)}function f(e,t){p(h,e,t)}f.preMessage=function(e){c.push(e)},f.resetWarned=function(){d={}},f.noteOnce=function(e,t){p(m,e,t)};const _=f;var g=n(694),y=n(9555);var v=Symbol.for("react.element"),b=Symbol.for("react.transitional.element"),M=Symbol.for("react.fragment");var w=Number(s.version.split(".")[0]),L=function(e,t){"function"==typeof e?e(t):"object"===(0,g.A)(e)&&e&&"current"in e&&(e.current=t)},S=function(){for(var e=arguments.length,t=new Array(e),n=0;n=19)return!0;var r=(0,y.isMemo)(e)?e.type.type:e.type;return!!("function"!=typeof r||null!==(t=r.prototype)&&void 0!==t&&t.render||r.$$typeof===y.ForwardRef)&&!!("function"!=typeof e||null!==(n=e.prototype)&&void 0!==n&&n.render||e.$$typeof===y.ForwardRef)};function T(e){return(0,s.isValidElement)(e)&&!((t=e)&&"object"===(0,g.A)(t)&&(t.$$typeof===v||t.$$typeof===b)&&t.type===M);var t}const x=s.createContext(null);var Y=n(7451);var E=n(6438);function O(e){return function(e){if(Array.isArray(e))return(0,Y.A)(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||(0,E.A)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var A=u()?s.useLayoutEffect:s.useEffect,C=function(e,t){var n=s.useRef(!0);A(function(){return e(n.current)},t),A(function(){return n.current=!1,function(){n.current=!0}},[])};const R=C;var P=[];var j="data-rc-order",H="data-rc-priority",N=new Map;function I(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).mark;return e?e.startsWith("data-")?e:"data-".concat(e):"rc-util-key"}function F(e){return e.attachTo?e.attachTo:document.querySelector("head")||document.body}function W(e){return Array.from((N.get(e)||e).children).filter(function(e){return"STYLE"===e.tagName})}function V(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!u())return null;var n=t.csp,r=t.prepend,a=t.priority,s=void 0===a?0:a,i=function(e){return"queue"===e?"prependQueue":e?"prepend":"append"}(r),o="prependQueue"===i,l=document.createElement("style");l.setAttribute(j,i),o&&s&&l.setAttribute(H,"".concat(s)),null!=n&&n.nonce&&(l.nonce=null==n?void 0:n.nonce),l.innerHTML=e;var d=F(t),c=d.firstChild;if(r){if(o){var h=(t.styles||W(d)).filter(function(e){if(!["prepend","prependQueue"].includes(e.getAttribute(j)))return!1;var t=Number(e.getAttribute(H)||0);return s>=t});if(h.length)return d.insertBefore(l,h[h.length-1].nextSibling),l}d.insertBefore(l,c)}else d.appendChild(l);return l}function z(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=F(t);return(t.styles||W(n)).find(function(n){return n.getAttribute(I(t))===e})}function $(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=z(e,t);n&&F(t).removeChild(n)}function B(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=F(n),s=W(a),i=(0,r.A)((0,r.A)({},n),{},{styles:s});!function(e,t){var n=N.get(e);if(!n||!function(e,t){if(!e)return!1;if(e.contains)return e.contains(t);for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1}(document,n)){var r=V("",t),a=r.parentNode;N.set(e,a),e.removeChild(r)}}(a,i);var o=z(t,i);if(o){var l,u,d;if(null!==(l=i.csp)&&void 0!==l&&l.nonce&&o.nonce!==(null===(u=i.csp)||void 0===u?void 0:u.nonce))o.nonce=null===(d=i.csp)||void 0===d?void 0:d.nonce;return o.innerHTML!==e&&(o.innerHTML=e),o}var c=V(e,i);return c.setAttribute(I(i),t),c}function U(e){var t="rc-scrollbar-measure-".concat(Math.random().toString(36).substring(7)),n=document.createElement("div");n.id=t;var r,a,s=n.style;if(s.position="absolute",s.left="0",s.top="0",s.width="100px",s.height="100px",s.overflow="scroll",e){var i=getComputedStyle(e);s.scrollbarColor=i.scrollbarColor,s.scrollbarWidth=i.scrollbarWidth;var o=getComputedStyle(e,"::-webkit-scrollbar"),l=parseInt(o.width,10),u=parseInt(o.height,10);try{var d=l?"width: ".concat(o.width,";"):"",c=u?"height: ".concat(o.height,";"):"";B("\n#".concat(t,"::-webkit-scrollbar {\n").concat(d,"\n").concat(c,"\n}"),t)}catch(e){console.error(e),r=l,a=u}}document.body.appendChild(n);var h=e&&r&&!isNaN(r)?r:n.offsetWidth-n.clientWidth,m=e&&a&&!isNaN(a)?a:n.offsetHeight-n.clientHeight;return document.body.removeChild(n),$(t),{width:h,height:m}}var q="rc-util-locker-".concat(Date.now()),G=0;function J(e){var t=!!e,n=s.useState(function(){return G+=1,"".concat(q,"_").concat(G)}),r=(0,a.A)(n,1)[0];R(function(){if(t){var e=(a=document.body,"undefined"!=typeof document&&a&&a instanceof Element?U(a):{width:0,height:0}).width,n=document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth;B("\nhtml body {\n overflow-y: hidden;\n ".concat(n?"width: calc(100% - ".concat(e,"px);"):"","\n}"),r)}else $(r);var a;return function(){$(r)}},[t,r])}var K=!1;var Q=function(e){return!1!==e&&(u()&&e?"string"==typeof e?document.querySelector(e):"function"==typeof e?e():e:null)},Z=s.forwardRef(function(e,t){var n=e.open,r=e.autoLock,i=e.getContainer,l=(e.debug,e.autoDestroy),d=void 0===l||l,c=e.children,h=s.useState(n),m=(0,a.A)(h,2),p=m[0],f=m[1],_=p||n;s.useEffect(function(){(d||n)&&f(n)},[n,d]);var g=s.useState(function(){return Q(i)}),y=(0,a.A)(g,2),v=y[0],b=y[1];s.useEffect(function(){var e=Q(i);b(null!=e?e:null)});var M=function(e){var t=s.useState(function(){return u()?document.createElement("div"):null}),n=(0,a.A)(t,1)[0],r=s.useRef(!1),i=s.useContext(x),o=s.useState(P),l=(0,a.A)(o,2),d=l[0],c=l[1],h=i||(r.current?void 0:function(e){c(function(t){return[e].concat(O(t))})});function m(){n.parentElement||document.body.appendChild(n),r.current=!0}function p(){var e;null===(e=n.parentElement)||void 0===e||e.removeChild(n),r.current=!1}return R(function(){return e?i?i(m):m():p(),p},[e]),R(function(){d.length&&(d.forEach(function(e){return e()}),c(P))},[d]),[n,h]}(_&&!v),w=(0,a.A)(M,2),L=w[0],S=w[1],T=null!=v?v:L;J(r&&n&&u()&&(T===L||T===document.body));var Y=null;c&&D(c)&&t&&(Y=c.ref);var E=k(Y,t);if(!_||!u()||void 0===v)return null;var A,C=!1===T||("boolean"==typeof A&&(K=A),K),j=c;return t&&(j=s.cloneElement(c,{ref:E})),s.createElement(x.Provider,{value:S},C?j:(0,o.createPortal)(j,T))});const X=Z;var ee=s.createContext(null),te=s.createContext({});const ne=ee;var re=n(1705),ae=n(8102),se=n(4452),ie=n.n(se);function oe(e){return e instanceof HTMLElement||e instanceof SVGElement}function le(e){var t,n=function(e){return e&&"object"===(0,g.A)(e)&&oe(e.nativeElement)?e.nativeElement:oe(e)?e:null}(e);return n||(e instanceof i().Component?null===(t=l().findDOMNode)||void 0===t?void 0:t.call(l(),e):null)}var ue=s.createContext({});function de(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var ce=n(2162);function he(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:1),t};et.cancel=function(e){var t=Ze.get(e);return Xe(e),Ke(t)};const tt=et;var nt=[xe,Ye,Ee,Oe],rt=[xe,Ae],at=!1;function st(e){return e===Ee||e===Oe}const it=function(e,t,n){var r=we(Te),i=(0,a.A)(r,2),o=i[0],l=i[1],u=function(){var e=s.useRef(null);function t(){tt.cancel(e.current)}return s.useEffect(function(){return function(){t()}},[]),[function n(r){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;t();var s=tt(function(){a<=1?r({isCanceled:function(){return s!==e.current}}):n(r,a-1)});e.current=s},t]}(),d=(0,a.A)(u,2),c=d[0],h=d[1];var m=t?rt:nt;return Ge(function(){if(o!==Te&&o!==Oe){var e=m.indexOf(o),t=m[e+1],r=n(o);r===at?l(t,!0):t&&c(function(e){function n(){e.isCanceled()||l(t,!0)}!0===r?n():Promise.resolve(r).then(n)})}},[e,o]),s.useEffect(function(){return function(){h()}},[]),[function(){l(xe,!0)},o]};function ot(e,t,n,i){var o,l,u,d,c=i.motionEnter,h=void 0===c||c,m=i.motionAppear,p=void 0===m||m,f=i.motionLeave,_=void 0===f||f,g=i.motionDeadline,y=i.motionLeaveImmediately,v=i.onAppearPrepare,b=i.onEnterPrepare,M=i.onLeavePrepare,w=i.onAppearStart,L=i.onEnterStart,S=i.onLeaveStart,k=i.onAppearActive,D=i.onEnterActive,T=i.onLeaveActive,x=i.onAppearEnd,Y=i.onEnterEnd,E=i.onLeaveEnd,O=i.onVisibleChanged,A=we(),C=(0,a.A)(A,2),R=C[0],P=C[1],j=(o=Le,l=s.useReducer(function(e){return e+1},0),u=(0,a.A)(l,2)[1],d=s.useRef(o),[Me(function(){return d.current}),Me(function(e){d.current="function"==typeof e?e(d.current):e,u()})]),H=(0,a.A)(j,2),N=H[0],I=H[1],F=we(null),W=(0,a.A)(F,2),V=W[0],z=W[1],$=N(),B=(0,s.useRef)(!1),U=(0,s.useRef)(null);function q(){return n()}var G=(0,s.useRef)(!1);function J(){I(Le),z(null,!0)}var K=Me(function(e){var t=N();if(t!==Le){var n=q();if(!e||e.deadline||e.target===n){var r,a=G.current;t===Se&&a?r=null==x?void 0:x(n,e):t===ke&&a?r=null==Y?void 0:Y(n,e):t===De&&a&&(r=null==E?void 0:E(n,e)),a&&!1!==r&&J()}}}),Q=function(e){var t=(0,s.useRef)();function n(t){t&&(t.removeEventListener(Ue,e),t.removeEventListener(Be,e))}return s.useEffect(function(){return function(){n(t.current)}},[]),[function(r){t.current&&t.current!==r&&n(t.current),r&&r!==t.current&&(r.addEventListener(Ue,e),r.addEventListener(Be,e),t.current=r)},n]}(K),Z=(0,a.A)(Q,1)[0],X=function(e){switch(e){case Se:return(0,re.A)((0,re.A)((0,re.A)({},xe,v),Ye,w),Ee,k);case ke:return(0,re.A)((0,re.A)((0,re.A)({},xe,b),Ye,L),Ee,D);case De:return(0,re.A)((0,re.A)((0,re.A)({},xe,M),Ye,S),Ee,T);default:return{}}},ee=s.useMemo(function(){return X($)},[$]),te=it($,!e,function(e){if(e===xe){var t=ee[xe];return t?t(q()):at}var n;se in ee&&z((null===(n=ee[se])||void 0===n?void 0:n.call(ee,q(),null))||null);return se===Ee&&$!==Le&&(Z(q()),g>0&&(clearTimeout(U.current),U.current=setTimeout(function(){K({deadline:!0})},g))),se===Ae&&J(),true}),ne=(0,a.A)(te,2),ae=ne[0],se=ne[1],ie=st(se);G.current=ie;var oe=(0,s.useRef)(null);Ge(function(){if(!B.current||oe.current!==t){P(t);var n,r=B.current;B.current=!0,!r&&t&&p&&(n=Se),r&&t&&h&&(n=ke),(r&&!t&&_||!r&&y&&!t&&_)&&(n=De);var a=X(n);n&&(e||a[xe])?(I(n),ae()):I(Le),oe.current=t}},[t]),(0,s.useEffect)(function(){($===Se&&!p||$===ke&&!h||$===De&&!_)&&I(Le)},[p,h,_]),(0,s.useEffect)(function(){return function(){B.current=!1,clearTimeout(U.current)}},[]);var le=s.useRef(!1);(0,s.useEffect)(function(){R&&(le.current=!0),void 0!==R&&$===Le&&((le.current||R)&&(null==O||O(R)),le.current=!0)},[R,$]);var ue=V;return ee[xe]&&se===Ye&&(ue=(0,r.A)({transition:"none"},ue)),[$,se,ue,null!=R?R:t]}const lt=function(e){var t=e;"object"===(0,g.A)(e)&&(t=e.transitionSupport);var n=s.forwardRef(function(e,n){var i=e.visible,o=void 0===i||i,l=e.removeOnLeave,u=void 0===l||l,d=e.forceRender,c=e.children,h=e.motionName,m=e.leavedClassName,p=e.eventProps,f=function(e,n){return!(!e.motionName||!t||!1===n)}(e,s.useContext(ue).motion),_=(0,s.useRef)(),g=(0,s.useRef)();var y=ot(f,o,function(){try{return _.current instanceof HTMLElement?_.current:le(g.current)}catch(e){return null}},e),v=(0,a.A)(y,4),b=v[0],M=v[1],w=v[2],S=v[3],k=s.useRef(S);S&&(k.current=!0);var x,Y=s.useCallback(function(e){_.current=e,L(n,e)},[n]),E=(0,r.A)((0,r.A)({},p),{},{visible:o});if(c)if(b===Le)x=S?c((0,r.A)({},E),Y):!u&&k.current&&m?c((0,r.A)((0,r.A)({},E),{},{className:m}),Y):d||!u&&!m?c((0,r.A)((0,r.A)({},E),{},{style:{display:"none"}}),Y):null;else{var O;M===xe?O="prepare":st(M)?O="active":M===Ye&&(O="start");var A=qe(h,"".concat(b,"-").concat(O));x=c((0,r.A)((0,r.A)({},E),{},{className:ie()(qe(h,b),(0,re.A)((0,re.A)({},A,A&&O),h,"string"==typeof h)),style:w}),Y)}else x=null;s.isValidElement(x)&&D(x)&&(function(e){if(e&&T(e)){var t=e;return t.props.propertyIsEnumerable("ref")?t.props.ref:t.ref}return null}(x)||(x=s.cloneElement(x,{ref:Y})));return s.createElement(be,{ref:g},x)});return n.displayName="CSSMotion",n}($e);var ut=n(9644),dt="add",ct="keep",ht="remove",mt="removed";function pt(e){var t;return t=e&&"object"===(0,g.A)(e)&&"key"in e?e:{key:e},(0,r.A)((0,r.A)({},t),{},{key:String(t.key)})}function ft(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).map(pt)}var _t=["component","children","onVisibleChanged","onAllRemoved"],gt=["status"],yt=["eventProps","visible","children","motionName","motionAppear","motionEnter","motionLeave","motionLeaveImmediately","motionDeadline","removeOnLeave","leavedClassName","onAppearPrepare","onAppearStart","onAppearActive","onAppearEnd","onEnterStart","onEnterActive","onEnterEnd","onLeaveStart","onLeaveActive","onLeaveEnd"];!function(){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:lt,t=function(t){fe(a,t);var n=ve(a);function a(){var e;de(this,a);for(var t=arguments.length,s=new Array(t),i=0;i0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=[],a=0,s=t.length,i=ft(e),o=ft(t);i.forEach(function(e){for(var t=!1,i=a;i1}).forEach(function(e){(n=n.filter(function(t){var n=t.key,r=t.status;return n!==e||r!==ht})).forEach(function(t){t.key===e&&(t.status=ct)})}),n}(a,s);return{keyEntities:i.filter(function(e){var t=a.find(function(t){var n=t.key;return e.key===n});return!t||t.status!==mt||e.status!==ht})}}}]),a}(s.Component);(0,re.A)(t,"defaultProps",{component:"div"})}($e);const vt=lt;var bt={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent:function(e){var t=e.keyCode;if(e.altKey&&!e.ctrlKey||e.metaKey||t>=bt.F1&&t<=bt.F12)return!1;switch(t){case bt.ALT:case bt.CAPS_LOCK:case bt.CONTEXT_MENU:case bt.CTRL:case bt.DOWN:case bt.END:case bt.ESC:case bt.HOME:case bt.INSERT:case bt.LEFT:case bt.MAC_FF_META:case bt.META:case bt.NUMLOCK:case bt.NUM_CENTER:case bt.PAGE_DOWN:case bt.PAGE_UP:case bt.PAUSE:case bt.PRINT_SCREEN:case bt.RIGHT:case bt.SHIFT:case bt.UP:case bt.WIN_KEY:case bt.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=bt.ZERO&&e<=bt.NINE)return!0;if(e>=bt.NUM_ZERO&&e<=bt.NUM_MULTIPLY)return!0;if(e>=bt.A&&e<=bt.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case bt.SPACE:case bt.QUESTION_MARK:case bt.NUM_PLUS:case bt.NUM_MINUS:case bt.NUM_PERIOD:case bt.NUM_DIVISION:case bt.SEMICOLON:case bt.DASH:case bt.EQUALS:case bt.COMMA:case bt.PERIOD:case bt.SLASH:case bt.APOSTROPHE:case bt.SINGLE_QUOTE:case bt.OPEN_SQUARE_BRACKET:case bt.BACKSLASH:case bt.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}};const Mt=bt;var wt="".concat("accept acceptCharset accessKey action allowFullScreen allowTransparency\n alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\n charSet checked classID className colSpan cols content contentEditable contextMenu\n controls coords crossOrigin data dateTime default defer dir disabled download draggable\n encType form formAction formEncType formMethod formNoValidate formTarget frameBorder\n headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\n is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\n mediaGroup method min minLength multiple muted name noValidate nonce open\n optimum pattern placeholder poster preload radioGroup readOnly rel required\n reversed role rowSpan rows sandbox scope scoped scrolling seamless selected\n shape size sizes span spellCheck src srcDoc srcLang srcSet start step style\n summary tabIndex target title type useMap value width wmode wrap"," ").concat("onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\n onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\n onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\n onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\n onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\n onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\n onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError").split(/[\s\n]+/);function Lt(e,t){return 0===e.indexOf(t)}function St(e){var t,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t=!1===n?{aria:!0,data:!0,attr:!0}:!0===n?{aria:!0}:(0,r.A)({},n);var a={};return Object.keys(e).forEach(function(n){(t.aria&&("role"===n||Lt(n,"aria-"))||t.data&&Lt(n,"data-")||t.attr&&wt.includes(n))&&(a[n]=e[n])}),a}var kt=["prefixCls","className","containerRef"];const Dt=function(e){var t=e.prefixCls,n=e.className,r=e.containerRef,a=(0,ut.A)(e,kt),i=s.useContext(te).panel,o=k(i,r);return s.createElement("div",(0,ae.A)({className:ie()("".concat(t,"-content"),n),role:"dialog",ref:o},St(e,{aria:!0}),{"aria-modal":"true"},a))};function Tt(e){return"string"==typeof e&&String(Number(e))===e?(_(!1,"Invalid value type of `width` or `height` which should be number type instead."),Number(e)):e}var xt={width:0,height:0,overflow:"hidden",outline:"none",position:"absolute"};function Yt(e,t){var n,i,o,l=e.prefixCls,u=e.open,d=e.placement,c=e.inline,h=e.push,m=e.forceRender,p=e.autoFocus,f=e.keyboard,_=e.classNames,g=e.rootClassName,y=e.rootStyle,v=e.zIndex,b=e.className,M=e.id,w=e.style,L=e.motion,S=e.width,k=e.height,D=e.children,T=e.mask,x=e.maskClosable,Y=e.maskMotion,E=e.maskClassName,O=e.maskStyle,A=e.afterOpenChange,C=e.onClose,R=e.onMouseEnter,P=e.onMouseOver,j=e.onMouseLeave,H=e.onClick,N=e.onKeyDown,I=e.onKeyUp,F=e.styles,W=e.drawerRender,V=s.useRef(),z=s.useRef(),$=s.useRef();s.useImperativeHandle(t,function(){return V.current});s.useEffect(function(){var e;u&&p&&(null===(e=V.current)||void 0===e||e.focus({preventScroll:!0}))},[u]);var B=s.useState(!1),U=(0,a.A)(B,2),q=U[0],G=U[1],J=s.useContext(ne),K=null!==(n=null!==(i=null===(o="boolean"==typeof h?h?{}:{distance:0}:h||{})||void 0===o?void 0:o.distance)&&void 0!==i?i:null==J?void 0:J.pushDistance)&&void 0!==n?n:180,Q=s.useMemo(function(){return{pushDistance:K,push:function(){G(!0)},pull:function(){G(!1)}}},[K]);s.useEffect(function(){var e,t;u?null==J||null===(e=J.push)||void 0===e||e.call(J):null==J||null===(t=J.pull)||void 0===t||t.call(J)},[u]),s.useEffect(function(){return function(){var e;null==J||null===(e=J.pull)||void 0===e||e.call(J)}},[]);var Z=s.createElement(vt,(0,ae.A)({key:"mask"},Y,{visible:T&&u}),function(e,t){var n=e.className,a=e.style;return s.createElement("div",{className:ie()("".concat(l,"-mask"),n,null==_?void 0:_.mask,E),style:(0,r.A)((0,r.A)((0,r.A)({},a),O),null==F?void 0:F.mask),onClick:x&&u?C:void 0,ref:t})}),X="function"==typeof L?L(d):L,ee={};if(q&&K)switch(d){case"top":ee.transform="translateY(".concat(K,"px)");break;case"bottom":ee.transform="translateY(".concat(-K,"px)");break;case"left":ee.transform="translateX(".concat(K,"px)");break;default:ee.transform="translateX(".concat(-K,"px)")}"left"===d||"right"===d?ee.width=Tt(S):ee.height=Tt(k);var te={onMouseEnter:R,onMouseOver:P,onMouseLeave:j,onClick:H,onKeyDown:N,onKeyUp:I},se=s.createElement(vt,(0,ae.A)({key:"panel"},X,{visible:u,forceRender:m,onVisibleChanged:function(e){null==A||A(e)},removeOnLeave:!1,leavedClassName:"".concat(l,"-content-wrapper-hidden")}),function(t,n){var a=t.className,i=t.style,o=s.createElement(Dt,(0,ae.A)({id:M,containerRef:n,prefixCls:l,className:ie()(b,null==_?void 0:_.content),style:(0,r.A)((0,r.A)({},w),null==F?void 0:F.content)},St(e,{aria:!0}),te),D);return s.createElement("div",(0,ae.A)({className:ie()("".concat(l,"-content-wrapper"),null==_?void 0:_.wrapper,a),style:(0,r.A)((0,r.A)((0,r.A)({},ee),i),null==F?void 0:F.wrapper)},St(e,{data:!0})),W?W(o):o)}),oe=(0,r.A)({},y);return v&&(oe.zIndex=v),s.createElement(ne.Provider,{value:Q},s.createElement("div",{className:ie()(l,"".concat(l,"-").concat(d),g,(0,re.A)((0,re.A)({},"".concat(l,"-open"),u),"".concat(l,"-inline"),c)),style:oe,tabIndex:-1,ref:V,onKeyDown:function(e){var t=e.keyCode,n=e.shiftKey;switch(t){case Mt.TAB:var r;if(t===Mt.TAB)if(n||document.activeElement!==$.current){if(n&&document.activeElement===z.current){var a;null===(a=$.current)||void 0===a||a.focus({preventScroll:!0})}}else null===(r=z.current)||void 0===r||r.focus({preventScroll:!0});break;case Mt.ESC:C&&f&&(e.stopPropagation(),C(e))}}},Z,s.createElement("div",{tabIndex:0,ref:z,style:xt,"aria-hidden":"true","data-sentinel":"start"}),se,s.createElement("div",{tabIndex:0,ref:$,style:xt,"aria-hidden":"true","data-sentinel":"end"})))}const Et=s.forwardRef(Yt);const Ot=function(e){var t=e.open,n=void 0!==t&&t,i=e.prefixCls,o=void 0===i?"rc-drawer":i,l=e.placement,u=void 0===l?"right":l,d=e.autoFocus,c=void 0===d||d,h=e.keyboard,m=void 0===h||h,p=e.width,f=void 0===p?378:p,_=e.mask,g=void 0===_||_,y=e.maskClosable,v=void 0===y||y,b=e.getContainer,M=e.forceRender,w=e.afterOpenChange,L=e.destroyOnClose,S=e.onMouseEnter,k=e.onMouseOver,D=e.onMouseLeave,T=e.onClick,x=e.onKeyDown,Y=e.onKeyUp,E=e.panelRef,O=s.useState(!1),A=(0,a.A)(O,2),C=A[0],P=A[1];var j=s.useState(!1),H=(0,a.A)(j,2),N=H[0],I=H[1];R(function(){I(!0)},[]);var F=!!N&&n,W=s.useRef(),V=s.useRef();R(function(){F&&(V.current=document.activeElement)},[F]);var z=s.useMemo(function(){return{panel:E}},[E]);if(!M&&!C&&!F&&L)return null;var $={onMouseEnter:S,onMouseOver:k,onMouseLeave:D,onClick:T,onKeyDown:x,onKeyUp:Y},B=(0,r.A)((0,r.A)({},e),{},{open:F,prefixCls:o,placement:u,autoFocus:c,keyboard:m,width:f,mask:g,maskClosable:v,inline:!1===b,afterOpenChange:function(e){var t,n;(P(e),null==w||w(e),e||!V.current||null!==(t=W.current)&&void 0!==t&&t.contains(V.current))||(null===(n=V.current)||void 0===n||n.focus({preventScroll:!0}))},ref:W},$);return s.createElement(te.Provider,{value:z},s.createElement(X,{open:F||M||C,autoDestroy:!1,getContainer:b,autoLock:g&&(F||C)},s.createElement(Et,B)))},At=Ot},1546:(e,t,n)=>{"use strict";var r=n(5292),a=n.n(r),s=n(9893),i=n.n(s),o=n(9383),l=n.n(o),u=n(6884),d=n.n(u),c=n(9088),h=n.n(c),m=n(7997),p=n.n(m),f=n(4825),_={};_.styleTagTransform=p(),_.setAttributes=d(),_.insert=l().bind(null,"head"),_.domAPI=i(),_.insertStyleElement=h();a()(f.A,_),f.A&&f.A.locals&&f.A.locals},1564:function(e,t,n){!function(e){"use strict";var t={standalone:"leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),format:"ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince".split("_"),isFormat:/DD?[o.]?(\[[^\[\]]*\]|\s)+MMMM/},n="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),r=[/^led/i,/^úno/i,/^bře/i,/^dub/i,/^kvě/i,/^(čvn|červen$|června)/i,/^(čvc|červenec|července)/i,/^srp/i,/^zář/i,/^říj/i,/^lis/i,/^pro/i],a=/^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;function s(e){return e>1&&e<5&&1!=~~(e/10)}function i(e,t,n,r){var a=e+" ";switch(n){case"s":return t||r?"pár sekund":"pár sekundami";case"ss":return t||r?a+(s(e)?"sekundy":"sekund"):a+"sekundami";case"m":return t?"minuta":r?"minutu":"minutou";case"mm":return t||r?a+(s(e)?"minuty":"minut"):a+"minutami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?a+(s(e)?"hodiny":"hodin"):a+"hodinami";case"d":return t||r?"den":"dnem";case"dd":return t||r?a+(s(e)?"dny":"dní"):a+"dny";case"M":return t||r?"měsíc":"měsícem";case"MM":return t||r?a+(s(e)?"měsíce":"měsíců"):a+"měsíci";case"y":return t||r?"rok":"rokem";case"yy":return t||r?a+(s(e)?"roky":"let"):a+"lety"}}e.defineLocale("cs",{months:t,monthsShort:n,monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:i,ss:i,m:i,mm:i,h:i,hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},1570:(e,t,n)=>{"use strict";n.d(t,{Ng:()=>s,TW:()=>r,mD:()=>a});const r=e=>{var t;return null!==(t=null==e?void 0:e.ownerDocument)&&void 0!==t?t:document},a=e=>{if(e&&"window"in e&&e.window===e)return e;return r(e).defaultView||window};function s(e){return null!==(t=e)&&"object"==typeof t&&"nodeType"in t&&"number"==typeof t.nodeType&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&"host"in e;var t}},1584:function(e,t,n){!function(e){"use strict";e.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(일|월|주)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"일";case"M":return e+"월";case"w":case"W":return e+"주";default:return e}},meridiemParse:/오전|오후/,isPM:function(e){return"오후"===e},meridiem:function(e,t,n){return e<12?"오전":"오후"}})}(n(2689))},1617:(e,t,n)=>{"use strict";const r=n(7944);e.exports=(e,t)=>new r(e,t).patch},1625:(e,t,n)=>{"use strict";n.d(t,{$N:()=>s,$m:()=>l,GR:()=>a,ob:()=>i,qM:()=>o,vp:()=>u,yL:()=>r});var r=(e=>(e.Always="always",e.Auto="auto",e.Never="never",e))(r||{}),a=(e=>(e.Bars="bars",e.Line="line",e.Points="points",e))(a||{});var s=(e=>(e.Multi="multi",e.None="none",e.Single="single",e))(s||{});var i=(e=>(e.Actions="actions",e.Auto="auto",e.BasicGauge="basic",e.ColorBackground="color-background",e.ColorBackgroundSolid="color-background-solid",e.ColorText="color-text",e.Custom="custom",e.DataLinks="data-links",e.Gauge="gauge",e.GradientGauge="gradient-gauge",e.Image="image",e.JSONView="json-view",e.LcdGauge="lcd-gauge",e.Pill="pill",e.Sparkline="sparkline",e))(i||{});var o=(e=>(e.Auto="auto",e.Lg="lg",e.Md="md",e.Sm="sm",e))(o||{}),l=(e=>(e.CSV="csv",e.Date="date",e.Distributed="distributed",e.DoubleQuote="doublequote",e.Glob="glob",e.HTML="html",e.JSON="json",e.Join="join",e.Lucene="lucene",e.PercentEncode="percentencode",e.Pipe="pipe",e.QueryParam="queryparam",e.Raw="raw",e.Regex="regex",e.SQLString="sqlstring",e.SingleQuote="singlequote",e.Text="text",e.UriEncode="uriencode",e))(l||{});const u="browser"},1705:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(2162);function a(e,t,n){return(t=(0,r.A)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},1722:(e,t,n)=>{"use strict";const r=n(8395);e.exports=(e,t,n)=>{try{t=new r(t,n)}catch(e){return!1}return t.test(e)}},1792:(e,t,n)=>{"use strict";n.d(t,{A:()=>D});var r=n(5959),a=e=>"string"!=typeof e?{}:e.split(/ ?; ?/).reduce((e,t)=>{const[n,r]=t.split(/ ?: ?/).map((e,t)=>0===t?e.replace(/\s+/g,""):e.trim());if(n&&r){const t=n.replace(/(\w)-(\w)/g,(e,t,n)=>`${t}${n.toUpperCase()}`);let a=r.trim();Number.isNaN(Number(r))||(a=Number(r)),e[n.startsWith("-")?n:t]=a}return e},{});var s=["br","col","colgroup","dl","hr","iframe","img","input","link","menuitem","meta","ol","param","select","table","tbody","tfoot","thead","tr","ul","wbr"],i={"accept-charset":"acceptCharset",acceptcharset:"acceptCharset",accesskey:"accessKey",allowfullscreen:"allowFullScreen",autocapitalize:"autoCapitalize",autocomplete:"autoComplete",autocorrect:"autoCorrect",autofocus:"autoFocus",autoplay:"autoPlay",autosave:"autoSave",cellpadding:"cellPadding",cellspacing:"cellSpacing",charset:"charSet",class:"className",classid:"classID",classname:"className",colspan:"colSpan",contenteditable:"contentEditable",contextmenu:"contextMenu",controlslist:"controlsList",crossorigin:"crossOrigin",dangerouslysetinnerhtml:"dangerouslySetInnerHTML",datetime:"dateTime",defaultchecked:"defaultChecked",defaultvalue:"defaultValue",enctype:"encType",for:"htmlFor",formmethod:"formMethod",formaction:"formAction",formenctype:"formEncType",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",hreflang:"hrefLang",htmlfor:"htmlFor",httpequiv:"httpEquiv","http-equiv":"httpEquiv",icon:"icon",innerhtml:"innerHTML",inputmode:"inputMode",itemid:"itemID",itemprop:"itemProp",itemref:"itemRef",itemscope:"itemScope",itemtype:"itemType",keyparams:"keyParams",keytype:"keyType",marginwidth:"marginWidth",marginheight:"marginHeight",maxlength:"maxLength",mediagroup:"mediaGroup",minlength:"minLength",nomodule:"noModule",novalidate:"noValidate",playsinline:"playsInline",radiogroup:"radioGroup",readonly:"readOnly",referrerpolicy:"referrerPolicy",rowspan:"rowSpan",spellcheck:"spellCheck",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",tabindex:"tabIndex",typemustmatch:"typeMustMatch",usemap:"useMap",accentheight:"accentHeight","accent-height":"accentHeight",alignmentbaseline:"alignmentBaseline","alignment-baseline":"alignmentBaseline",allowreorder:"allowReorder",arabicform:"arabicForm","arabic-form":"arabicForm",attributename:"attributeName",attributetype:"attributeType",autoreverse:"autoReverse",basefrequency:"baseFrequency",baselineshift:"baselineShift","baseline-shift":"baselineShift",baseprofile:"baseProfile",calcmode:"calcMode",capheight:"capHeight","cap-height":"capHeight",clippath:"clipPath","clip-path":"clipPath",clippathunits:"clipPathUnits",cliprule:"clipRule","clip-rule":"clipRule",colorinterpolation:"colorInterpolation","color-interpolation":"colorInterpolation",colorinterpolationfilters:"colorInterpolationFilters","color-interpolation-filters":"colorInterpolationFilters",colorprofile:"colorProfile","color-profile":"colorProfile",colorrendering:"colorRendering","color-rendering":"colorRendering",contentscripttype:"contentScriptType",contentstyletype:"contentStyleType",diffuseconstant:"diffuseConstant",dominantbaseline:"dominantBaseline","dominant-baseline":"dominantBaseline",edgemode:"edgeMode",enablebackground:"enableBackground","enable-background":"enableBackground",externalresourcesrequired:"externalResourcesRequired",fillopacity:"fillOpacity","fill-opacity":"fillOpacity",fillrule:"fillRule","fill-rule":"fillRule",filterres:"filterRes",filterunits:"filterUnits",floodopacity:"floodOpacity","flood-opacity":"floodOpacity",floodcolor:"floodColor","flood-color":"floodColor",fontfamily:"fontFamily","font-family":"fontFamily",fontsize:"fontSize","font-size":"fontSize",fontsizeadjust:"fontSizeAdjust","font-size-adjust":"fontSizeAdjust",fontstretch:"fontStretch","font-stretch":"fontStretch",fontstyle:"fontStyle","font-style":"fontStyle",fontvariant:"fontVariant","font-variant":"fontVariant",fontweight:"fontWeight","font-weight":"fontWeight",glyphname:"glyphName","glyph-name":"glyphName",glyphorientationhorizontal:"glyphOrientationHorizontal","glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphorientationvertical:"glyphOrientationVertical","glyph-orientation-vertical":"glyphOrientationVertical",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",horizadvx:"horizAdvX","horiz-adv-x":"horizAdvX",horizoriginx:"horizOriginX","horiz-origin-x":"horizOriginX",imagerendering:"imageRendering","image-rendering":"imageRendering",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",letterspacing:"letterSpacing","letter-spacing":"letterSpacing",lightingcolor:"lightingColor","lighting-color":"lightingColor",limitingconeangle:"limitingConeAngle",markerend:"markerEnd","marker-end":"markerEnd",markerheight:"markerHeight",markermid:"markerMid","marker-mid":"markerMid",markerstart:"markerStart","marker-start":"markerStart",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",overlineposition:"overlinePosition","overline-position":"overlinePosition",overlinethickness:"overlineThickness","overline-thickness":"overlineThickness",paintorder:"paintOrder","paint-order":"paintOrder","panose-1":"panose1",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointerevents:"pointerEvents","pointer-events":"pointerEvents",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",renderingintent:"renderingIntent","rendering-intent":"renderingIntent",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",shaperendering:"shapeRendering","shape-rendering":"shapeRendering",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",stopcolor:"stopColor","stop-color":"stopColor",stopopacity:"stopOpacity","stop-opacity":"stopOpacity",strikethroughposition:"strikethroughPosition","strikethrough-position":"strikethroughPosition",strikethroughthickness:"strikethroughThickness","strikethrough-thickness":"strikethroughThickness",strokedasharray:"strokeDasharray","stroke-dasharray":"strokeDasharray",strokedashoffset:"strokeDashoffset","stroke-dashoffset":"strokeDashoffset",strokelinecap:"strokeLinecap","stroke-linecap":"strokeLinecap",strokelinejoin:"strokeLinejoin","stroke-linejoin":"strokeLinejoin",strokemiterlimit:"strokeMiterlimit","stroke-miterlimit":"strokeMiterlimit",strokewidth:"strokeWidth","stroke-width":"strokeWidth",strokeopacity:"strokeOpacity","stroke-opacity":"strokeOpacity",suppresscontenteditablewarning:"suppressContentEditableWarning",suppresshydrationwarning:"suppressHydrationWarning",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textanchor:"textAnchor","text-anchor":"textAnchor",textdecoration:"textDecoration","text-decoration":"textDecoration",textlength:"textLength",textrendering:"textRendering","text-rendering":"textRendering",underlineposition:"underlinePosition","underline-position":"underlinePosition",underlinethickness:"underlineThickness","underline-thickness":"underlineThickness",unicodebidi:"unicodeBidi","unicode-bidi":"unicodeBidi",unicoderange:"unicodeRange","unicode-range":"unicodeRange",unitsperem:"unitsPerEm","units-per-em":"unitsPerEm",unselectable:"unselectable",valphabetic:"vAlphabetic","v-alphabetic":"vAlphabetic",vectoreffect:"vectorEffect","vector-effect":"vectorEffect",vertadvy:"vertAdvY","vert-adv-y":"vertAdvY",vertoriginx:"vertOriginX","vert-origin-x":"vertOriginX",vertoriginy:"vertOriginY","vert-origin-y":"vertOriginY",vhanging:"vHanging","v-hanging":"vHanging",videographic:"vIdeographic","v-ideographic":"vIdeographic",viewbox:"viewBox",viewtarget:"viewTarget",vmathematical:"vMathematical","v-mathematical":"vMathematical",wordspacing:"wordSpacing","word-spacing":"wordSpacing",writingmode:"writingMode","writing-mode":"writingMode",xchannelselector:"xChannelSelector",xheight:"xHeight","x-height":"xHeight",xlinkactuate:"xlinkActuate","xlink:actuate":"xlinkActuate",xlinkarcrole:"xlinkArcrole","xlink:arcrole":"xlinkArcrole",xlinkhref:"xlinkHref","xlink:href":"xlinkHref",xlinkrole:"xlinkRole","xlink:role":"xlinkRole",xlinkshow:"xlinkShow","xlink:show":"xlinkShow",xlinktitle:"xlinkTitle","xlink:title":"xlinkTitle",xlinktype:"xlinkType","xlink:type":"xlinkType",xmlbase:"xmlBase","xml:base":"xmlBase",xmllang:"xmlLang","xml:lang":"xmlLang","xml:space":"xmlSpace",xmlnsxlink:"xmlnsXlink","xmlns:xlink":"xmlnsXlink",xmlspace:"xmlSpace",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan",onblur:"onBlur",onchange:"onChange",onclick:"onClick",oncontextmenu:"onContextMenu",ondoubleclick:"onDoubleClick",ondrag:"onDrag",ondragend:"onDragEnd",ondragenter:"onDragEnter",ondragexit:"onDragExit",ondragleave:"onDragLeave",ondragover:"onDragOver",ondragstart:"onDragStart",ondrop:"onDrop",onerror:"onError",onfocus:"onFocus",oninput:"onInput",oninvalid:"onInvalid",onkeydown:"onKeyDown",onkeypress:"onKeyPress",onkeyup:"onKeyUp",onload:"onLoad",onmousedown:"onMouseDown",onmouseenter:"onMouseEnter",onmouseleave:"onMouseLeave",onmousemove:"onMouseMove",onmouseout:"onMouseOut",onmouseover:"onMouseOver",onmouseup:"onMouseUp",onscroll:"onScroll",onsubmit:"onSubmit",ontouchcancel:"onTouchCancel",ontouchend:"onTouchEnd",ontouchmove:"onTouchMove",ontouchstart:"onTouchStart",onwheel:"onWheel"};function o(e,t){const{key:n,level:o,...u}=t;switch(e.nodeType){case 1:return r.createElement(function(e){if(/[a-z]+[A-Z]+[a-z]+/.test(e))return e;return e.toLowerCase()}(e.nodeName),function(e,t){const n={key:t};if(e instanceof Element){const t=e.getAttribute("class");t&&(n.className=t),[...e.attributes].forEach(e=>{switch(e.name){case"class":break;case"style":n[e.name]=a(e.value);break;case"allowfullscreen":case"allowpaymentrequest":case"async":case"autofocus":case"autoplay":case"checked":case"controls":case"default":case"defer":case"disabled":case"formnovalidate":case"hidden":case"ismap":case"itemscope":case"loop":case"multiple":case"muted":case"nomodule":case"novalidate":case"open":case"readonly":case"required":case"reversed":case"selected":case"typemustmatch":n[i[e.name]||e.name]=!0;break;default:n[i[e.name]||e.name]=e.value}})}return n}(e,n),l(e.childNodes,o,u));case 3:{const t=e.nodeValue?.toString()??"";if(!u.allowWhiteSpaces&&/^\s+$/.test(t)&&!/[\u00A0\u202F]/.test(t))return null;if(!e.parentNode)return t;const n=e.parentNode.nodeName.toLowerCase();return s.includes(n)?(/\S/.test(t)&&console.warn(`A textNode is not allowed inside '${n}'. Your text "${t}" will be ignored`),null):t}case 8:default:return null;case 11:return l(e.childNodes,o,t)}}function l(e,t,n){const r=[...e].map((e,r)=>d(e,{...n,index:r,level:t+1})).filter(Boolean);return r.length?r:null}function u(e,t={}){return"string"==typeof e?function(e,t={}){if(!e||"string"!=typeof e)return null;const{includeAllNodes:n=!1,nodeOnly:r=!1,selector:a="body > *",type:s="text/html"}=t;try{const i=(new DOMParser).parseFromString(e,s);if(n){const{childNodes:e}=i.body;return r?e:[...e].map(e=>d(e,t))}const o=i.querySelector(a)||i.body.childNodes[0];if(!(o instanceof Node))throw new TypeError("Error parsing input");return r?o:d(o,t)}catch(e){0}return null}(e,t):e instanceof Node?d(e,t):null}function d(e,t={}){if(!(e&&e instanceof Node))return null;const{actions:n=[],index:r=0,level:a=0,randomKey:s}=t;let i=e,l=`${a}-${r}`;const u=[];return s&&0===a&&(l=`${function(e=6){const t="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let n="";for(let r=e;r>0;--r)n+=t[Math.round(61*Math.random())];return n}()}-${l}`),Array.isArray(n)&&n.forEach(t=>{t.condition(i,l,a)&&("function"==typeof t.pre&&(i=t.pre(i,l,a),i instanceof Node||(i=e)),"function"==typeof t.post&&u.push(t.post(i,l,a)))}),u.length?u:o(i,{key:l,level:a,...t})}var c=Object.defineProperty,h=(e,t,n)=>((e,t,n)=>t in e?c(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n),m="react-inlinesvg",p={IDLE:"idle",LOADING:"loading",LOADED:"loaded",FAILED:"failed",READY:"ready",UNSUPPORTED:"unsupported"};function f(e){return e[Math.floor(Math.random()*e.length)]}function _(){return!("undefined"==typeof window||!window.document?.createElement)}function g(){return function(){if(!document)return!1;const e=document.createElement("div");e.innerHTML="";const t=e.firstChild;return!!t&&"http://www.w3.org/2000/svg"===t.namespaceURI}()&&"undefined"!=typeof window&&null!==window}async function y(e,t){const n=await fetch(e,t),r=n.headers.get("content-type"),[a]=(r??"").split(/ ?; ?/);if(n.status>299)throw new Error("Not found");if(!["image/svg+xml","text/plain"].some(e=>a.includes(e)))throw new Error(`Content type isn't valid: ${a}`);return n.text()}function v(e=1){return new Promise(t=>{setTimeout(t,1e3*e)})}var b,M=class{constructor(){h(this,"cacheApi"),h(this,"cacheStore"),h(this,"subscribers",[]),h(this,"isReady",!1),this.cacheStore=new Map;let e=m,t=!1;_()&&(e=window.REACT_INLINESVG_CACHE_NAME??m,t=!!window.REACT_INLINESVG_PERSISTENT_CACHE&&"caches"in window),t?caches.open(e).then(e=>{this.cacheApi=e}).catch(e=>{console.error(`Failed to open cache: ${e.message}`),this.cacheApi=void 0}).finally(()=>{this.isReady=!0;const e=[...this.subscribers];this.subscribers.length=0,e.forEach(e=>{try{e()}catch(e){console.error(`Error in CacheStore subscriber callback: ${e.message}`)}})}):this.isReady=!0}onReady(e){this.isReady?e():this.subscribers.push(e)}async get(e,t){return await(this.cacheApi?this.fetchAndAddToPersistentCache(e,t):this.fetchAndAddToInternalCache(e,t)),this.cacheStore.get(e)?.content??""}set(e,t){this.cacheStore.set(e,t)}isCached(e){return this.cacheStore.get(e)?.status===p.LOADED}async fetchAndAddToInternalCache(e,t){const n=this.cacheStore.get(e);if(n?.status!==p.LOADING){if(!n?.content){this.cacheStore.set(e,{content:"",status:p.LOADING});try{const n=await y(e,t);this.cacheStore.set(e,{content:n,status:p.LOADED})}catch(t){throw this.cacheStore.set(e,{content:"",status:p.FAILED}),t}}}else await this.handleLoading(e,async()=>{this.cacheStore.set(e,{content:"",status:p.IDLE}),await this.fetchAndAddToInternalCache(e,t)})}async fetchAndAddToPersistentCache(e,t){const n=this.cacheStore.get(e);if(n?.status===p.LOADED)return;if(n?.status===p.LOADING)return void await this.handleLoading(e,async()=>{this.cacheStore.set(e,{content:"",status:p.IDLE}),await this.fetchAndAddToPersistentCache(e,t)});this.cacheStore.set(e,{content:"",status:p.LOADING});const r=await(this.cacheApi?.match(e));if(r){const t=await r.text();return void this.cacheStore.set(e,{content:t,status:p.LOADED})}try{await(this.cacheApi?.add(new Request(e,t)));const n=await(this.cacheApi?.match(e)),r=await(n?.text())??"";this.cacheStore.set(e,{content:r,status:p.LOADED})}catch(t){throw this.cacheStore.set(e,{content:"",status:p.FAILED}),t}}async handleLoading(e,t){for(let t=0;t<10;t++){if(this.cacheStore.get(e)?.status!==p.LOADING)return;await v(.1)}await t()}keys(){return[...this.cacheStore.keys()]}data(){return[...this.cacheStore.entries()].map(([e,t])=>({[e]:t}))}async delete(e){this.cacheApi&&await this.cacheApi.delete(e),this.cacheStore.delete(e)}async clear(){if(this.cacheApi){const e=await this.cacheApi.keys();await Promise.allSettled(e.map(e=>this.cacheApi.delete(e)))}this.cacheStore.clear()}};function w(e){const t=(0,r.useRef)(void 0);return(0,r.useEffect)(()=>{t.current=e}),t.current}function L(e){const{baseURL:t,content:n,description:r,handleError:a,hash:s,preProcessor:i,title:o,uniquifyIDs:l=!1}=e;try{const e=function(e,t){if(t)return t(e);return e}(n,i),a=u(e,{nodeOnly:!0});if(!(a&&a instanceof SVGSVGElement))throw new Error("Could not convert the src to a DOM Node");const d=S(a,{baseURL:t,hash:s,uniquifyIDs:l});if(r){const e=d.querySelector("desc");e?.parentNode&&e.parentNode.removeChild(e);const t=document.createElementNS("http://www.w3.org/2000/svg","desc");t.innerHTML=r,d.prepend(t)}if(void 0!==o){const e=d.querySelector("title");if(e?.parentNode&&e.parentNode.removeChild(e),o){const e=document.createElementNS("http://www.w3.org/2000/svg","title");e.innerHTML=o,d.prepend(e)}}return d}catch(e){return a(e)}}function S(e,t){const{baseURL:n="",hash:r,uniquifyIDs:a}=t,s=["id","href","xlink:href","xlink:role","xlink:arcrole"],i=["href","xlink:href"];return a?([...e.children].forEach(e=>{if(e.attributes?.length){const t=Object.values(e.attributes).map(e=>{const t=e,a=/url\((.*?)\)/.exec(e.value);return a?.[1]&&(t.value=e.value.replace(a[0],`url(${n}${a[1]}__${r})`)),t});s.forEach(e=>{const n=t.find(t=>t.name===e);var a,s;n&&(a=e,s=n.value,!i.includes(a)||!s||s.includes("#"))&&(n.value=`${n.value}__${r}`)})}return e.children.length?S(e,t):e}),e):e}function k(e){const{cacheRequests:t=!0,children:n=null,description:a,fetchOptions:s,innerRef:i,loader:o=null,onError:l,onLoad:d,src:c,title:h,uniqueHash:m}=e,[v,M]=(0,r.useReducer)((e,t)=>({...e,...t}),{content:"",element:null,isCached:t&&b.isCached(e.src),status:p.IDLE}),{content:S,element:k,isCached:D,status:T}=v,x=w(e),Y=w(v),E=(0,r.useRef)(m??function(e){const t="abcdefghijklmnopqrstuvwxyz",n=`${t}${t.toUpperCase()}1234567890`;let r="";for(let t=0;t{O.current&&(M({status:"Browser does not support SVG"===e.message?p.UNSUPPORTED:p.FAILED}),l?.(e))},[l]),R=(0,r.useCallback)((e,t=!1)=>{O.current&&M({content:e,isCached:t,status:p.LOADED})},[]),P=(0,r.useCallback)(async()=>{const e=await y(c,s);R(e)},[s,R,c]),j=(0,r.useCallback)(()=>{try{const t=u(L({...e,handleError:C,hash:E.current,content:S}));if(!t||!(0,r.isValidElement)(t))throw new Error("Could not convert the src to a React element");M({element:t,status:p.READY})}catch(e){C(e)}},[S,C,e]),H=(0,r.useCallback)(async()=>{const e=/^data:image\/svg[^,]*?(;base64)?,(.*)/u.exec(c);let n;if(e?n=e[1]?window.atob(e[2]):decodeURIComponent(e[2]):c.includes("{O.current&&M({content:"",element:null,isCached:!1,status:p.LOADING})},[]);(0,r.useEffect)(()=>{if(O.current=!0,_()&&!A.current){try{if(T===p.IDLE){if(!g())throw new Error("Browser does not support SVG");if(!c)throw new Error("Missing src");N()}}catch(e){C(e)}return A.current=!0,()=>{O.current=!1}}},[]),(0,r.useEffect)(()=>{if(_()&&x&&x.src!==c){if(!c)return void C(new Error("Missing src"));N()}},[C,N,x,c]),(0,r.useEffect)(()=>{T===p.LOADED&&j()},[T,j]),(0,r.useEffect)(()=>{_()&&x&&x.src===c&&(x.title===h&&x.description===a||j())},[a,j,x,c,h]),(0,r.useEffect)(()=>{if(Y)switch(T){case p.LOADING:Y.status!==p.LOADING&&H();break;case p.LOADED:Y.status!==p.LOADED&&j();break;case p.READY:Y.status!==p.READY&&d?.(c,D)}},[H,j,D,d,Y,c,T]);const I=function(e,...t){const n={};for(const r in e)({}).hasOwnProperty.call(e,r)&&(t.includes(r)||(n[r]=e[r]));return n}(e,"baseURL","cacheRequests","children","description","fetchOptions","innerRef","loader","onError","onLoad","preProcessor","src","title","uniqueHash","uniquifyIDs");return _()?k?(0,r.cloneElement)(k,{ref:i,...I}):[p.UNSUPPORTED,p.FAILED].includes(T)?n:o:o}function D(e){b||(b=new M);const{loader:t}=e,[n,a]=(0,r.useState)(b.isReady);return(0,r.useEffect)(()=>{n||b.onReady(()=>{a(!0)})},[n]),n?r.createElement(k,{...e}):t}},1794:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var i=a?Object.getOwnPropertyDescriptor(e,s):null;i&&(i.get||i.set)?Object.defineProperty(r,s,i):r[s]=e[s]}r.default=e,n&&n.set(e,r);return r}(n(5959)),a=n(8230),s=n(9954),i=n(6333),o=["children","className","draggableOpts","width","height","handle","handleSize","lockAspectRatio","axis","minConstraints","maxConstraints","onResize","onResizeStop","onResizeStart","resizeHandles","transformScale"];function l(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;tMath.abs(l*i)?t=e/i:e=t*i}var u=e,d=t,c=this.slack||[0,0],h=c[0],m=c[1];return e+=h,t+=m,r&&(e=Math.max(r[0],e),t=Math.max(r[1],t)),a&&(e=Math.min(a[0],e),t=Math.min(a[1],t)),this.slack=[h+(u-e),m+(d-t)],[e,t]},l.resizeHandler=function(e,t){var n=this;return function(r,a){var s=a.node,i=a.deltaX,o=a.deltaY;"onResizeStart"===e&&n.resetData();var l=("both"===n.props.axis||"x"===n.props.axis)&&"n"!==t&&"s"!==t,u=("both"===n.props.axis||"y"===n.props.axis)&&"e"!==t&&"w"!==t;if(l||u){var d=t[0],c=t[t.length-1],h=s.getBoundingClientRect();if(null!=n.lastHandleRect){if("w"===c)i+=h.left-n.lastHandleRect.left;if("n"===d)o+=h.top-n.lastHandleRect.top}n.lastHandleRect=h,"w"===c&&(i=-i),"n"===d&&(o=-o);var m=n.props.width+(l?i/n.props.transformScale:0),p=n.props.height+(u?o/n.props.transformScale:0),f=n.runConstraints(m,p);m=f[0],p=f[1];var _=m!==n.props.width||p!==n.props.height,g="function"==typeof n.props[e]?n.props[e]:null;g&&!("onResize"===e&&!_)&&(null==r.persist||r.persist(),g(r,{node:s,size:{width:m,height:p},handle:t})),"onResizeStop"===e&&n.resetData()}}},l.renderResizeHandle=function(e,t){var n=this.props.handle;if(!n)return r.createElement("span",{className:"react-resizable-handle react-resizable-handle-"+e,ref:t});if("function"==typeof n)return n(e,t);var a=c({ref:t},"string"==typeof n.type?{}:{handleAxis:e});return r.cloneElement(n,a)},l.render=function(){var e=this,t=this.props,n=t.children,i=t.className,l=t.draggableOpts,d=(t.width,t.height,t.handle,t.handleSize,t.lockAspectRatio,t.axis,t.minConstraints,t.maxConstraints,t.onResize,t.onResizeStop,t.onResizeStart,t.resizeHandles),h=(t.transformScale,function(e,t){if(null==e)return{};var n,r,a={},s=Object.keys(e);for(r=0;r=0||(a[n]=e[n]);return a}(t,o));return(0,s.cloneElement)(n,c(c({},h),{},{className:(i?i+" ":"")+"react-resizable",children:[].concat(n.props.children,d.map(function(t){var n,s=null!=(n=e.handleRefs[t])?n:e.handleRefs[t]=r.createRef();return r.createElement(a.DraggableCore,u({},l,{nodeRef:s,key:"resizableHandle-"+t,onStop:e.resizeHandler("onResizeStop",t),onStart:e.resizeHandler("onResizeStart",t),onDrag:e.resizeHandler("onResize",t)}),e.renderResizeHandle(t,s))}))}))},i}(r.Component);t.default=p,p.propTypes=i.resizableProps,p.defaultProps={axis:"both",handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1}},1893:(e,t,n)=>{"use strict";n.d(t,{n1:()=>S,Pu:()=>E});var r=n(3003),a=n(9070),s=n(1570),i=n(7176);const o="undefined"!=typeof Element&&"checkVisibility"in Element.prototype;function l(e,t){return o?e.checkVisibility():"#comment"!==e.nodeName&&function(e){const t=(0,s.mD)(e);if(!(e instanceof t.HTMLElement||e instanceof t.SVGElement))return!1;let{display:n,visibility:r}=e.style,a="none"!==n&&"hidden"!==r&&"collapse"!==r;if(a){const{getComputedStyle:t}=e.ownerDocument.defaultView;let{display:n,visibility:r}=t(e);a="none"!==n&&"hidden"!==r&&"collapse"!==r}return a}(e)&&function(e,t){return!e.hasAttribute("hidden")&&!e.hasAttribute("data-react-aria-prevent-focus")&&("DETAILS"!==e.nodeName||!t||"SUMMARY"===t.nodeName||e.hasAttribute("open"))}(e,t)&&(!e.parentElement||l(e.parentElement,e))}const u=["input:not([disabled]):not([type=hidden])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","a[href]","area[href]","summary","iframe","object","embed","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable^="false"])',"permission"],d=u.join(":not([hidden]),")+",[tabindex]:not([disabled]):not([hidden])";u.push('[tabindex]:not([tabindex="-1"]):not([disabled])');const c=u.join(':not([hidden]):not([tabindex="-1"]),');function h(e){return e.matches(d)&&l(e)&&!p(e)}function m(e){return e.matches(c)&&l(e)&&!p(e)}function p(e){let t=e;for(;null!=t;){if(t instanceof t.ownerDocument.defaultView.HTMLElement&&t.inert)return!0;t=t.parentElement}return!1}var f=n(8373);class _{get currentNode(){return this._currentNode}set currentNode(e){if(!(0,a.sD)(this.root,e))throw new Error("Cannot set currentNode to a node that is not contained by the root node.");const t=[];let n=e,r=e;for(this._currentNode=e;n&&n!==this.root;)if(n.nodeType===Node.DOCUMENT_FRAGMENT_NODE){const e=n,a=this._doc.createTreeWalker(e,this.whatToShow,{acceptNode:this._acceptNode});t.push(a),a.currentNode=r,this._currentSetFor.add(a),n=r=e.host}else n=n.parentNode;const s=this._doc.createTreeWalker(this.root,this.whatToShow,{acceptNode:this._acceptNode});t.push(s),s.currentNode=r,this._currentSetFor.add(s),this._walkerStack=t}get doc(){return this._doc}firstChild(){let e=this.currentNode,t=this.nextNode();return(0,a.sD)(e,t)?(t&&(this.currentNode=t),t):(this.currentNode=e,null)}lastChild(){let e=this._walkerStack[0].lastChild();return e&&(this.currentNode=e),e}nextNode(){const e=this._walkerStack[0].nextNode();if(e){if(e.shadowRoot){var t;let n;if("function"==typeof this.filter?n=this.filter(e):(null===(t=this.filter)||void 0===t?void 0:t.acceptNode)&&(n=this.filter.acceptNode(e)),n===NodeFilter.FILTER_ACCEPT)return this.currentNode=e,e;let r=this.nextNode();return r&&(this.currentNode=r),r}return e&&(this.currentNode=e),e}if(this._walkerStack.length>1){this._walkerStack.shift();let e=this.nextNode();return e&&(this.currentNode=e),e}return null}previousNode(){const e=this._walkerStack[0];if(e.currentNode===e.root){if(this._currentSetFor.has(e)){if(this._currentSetFor.delete(e),this._walkerStack.length>1){this._walkerStack.shift();let e=this.previousNode();return e&&(this.currentNode=e),e}return null}return null}const t=e.previousNode();if(t){if(t.shadowRoot){var n;let e;if("function"==typeof this.filter?e=this.filter(t):(null===(n=this.filter)||void 0===n?void 0:n.acceptNode)&&(e=this.filter.acceptNode(t)),e===NodeFilter.FILTER_ACCEPT)return t&&(this.currentNode=t),t;let r=this.lastChild();return r&&(this.currentNode=r),r}return t&&(this.currentNode=t),t}if(this._walkerStack.length>1){this._walkerStack.shift();let e=this.previousNode();return e&&(this.currentNode=e),e}return null}nextSibling(){return null}previousSibling(){return null}parentNode(){return null}constructor(e,t,n,r){this._walkerStack=[],this._currentSetFor=new Set,this._acceptNode=e=>{if(e.nodeType===Node.ELEMENT_NODE){const n=e.shadowRoot;if(n){const e=this._doc.createTreeWalker(n,this.whatToShow,{acceptNode:this._acceptNode});return this._walkerStack.unshift(e),NodeFilter.FILTER_ACCEPT}var t;if("function"==typeof this.filter)return this.filter(e);if(null===(t=this.filter)||void 0===t?void 0:t.acceptNode)return this.filter.acceptNode(e);if(null===this.filter)return NodeFilter.FILTER_ACCEPT}return NodeFilter.FILTER_SKIP},this._doc=e,this.root=t,this.filter=null!=r?r:null,this.whatToShow=null!=n?n:NodeFilter.SHOW_ALL,this._currentNode=t,this._walkerStack.unshift(e.createTreeWalker(t,n,this._acceptNode));const a=t.shadowRoot;if(a){const e=this._doc.createTreeWalker(a,this.whatToShow,{acceptNode:this._acceptNode});this._walkerStack.unshift(e)}}}function g(e,t,n,r){return(0,f.Nf)()?new _(e,t,n,r):e.createTreeWalker(t,n,r)}var y=n(5460),v=n(5780),b=n(5959);const M=b.createContext(null),w="react-aria-focus-scope-restore";let L=null;function S(e){let{children:t,contain:n,restoreFocus:o,autoFocus:l}=e,u=(0,b.useRef)(null),d=(0,b.useRef)(null),c=(0,b.useRef)([]),{parentNode:h}=(0,b.useContext)(M)||{},m=(0,b.useMemo)(()=>new I({scopeRef:c}),[c]);(0,r.N)(()=>{let e=h||F.root;if(F.getTreeNode(e.scopeRef)&&L&&!O(L,e.scopeRef)){let t=F.getTreeNode(L);t&&(e=t)}e.addChild(m),F.addNode(m)},[m,h]),(0,r.N)(()=>{let e=F.getTreeNode(c);e&&(e.contain=!!n)},[n]),(0,r.N)(()=>{var e;let t=null===(e=u.current)||void 0===e?void 0:e.nextSibling,n=[],r=e=>e.stopPropagation();for(;t&&t!==d.current;)n.push(t),t.addEventListener(w,r),t=t.nextSibling;return c.current=n,()=>{for(let e of n)e.removeEventListener(w,r)}},[t]),function(e,t,n){(0,r.N)(()=>{if(t||n)return;let r=e.current;const i=(0,s.TW)(r?r[0]:void 0);let o=t=>{let n=(0,a.wt)(t);x(n,e.current)?L=e:T(n)||(L=null)};return i.addEventListener("focusin",o,!1),null==r||r.forEach(e=>e.addEventListener("focusin",o,!1)),()=>{i.removeEventListener("focusin",o,!1),null==r||r.forEach(e=>e.removeEventListener("focusin",o,!1))}},[e,t,n])}(c,o,n),function(e,t){let n=(0,b.useRef)(void 0),o=(0,b.useRef)(void 0);(0,r.N)(()=>{let r=e.current;if(!t)return void(o.current&&(cancelAnimationFrame(o.current),o.current=void 0));const l=(0,s.TW)(r?r[0]:void 0);let u=t=>{if("Tab"!==t.key||t.altKey||t.ctrlKey||t.metaKey||!D(e)||t.isComposing)return;let n=(0,a.bq)(l),r=e.current;if(!r||!x(n,r))return;let s=H(k(r),{tabbable:!0},r);if(!n)return;s.currentNode=n;let i=t.shiftKey?s.previousNode():s.nextNode();i||(s.currentNode=t.shiftKey?r[r.length-1].nextElementSibling:r[0].previousElementSibling,i=t.shiftKey?s.previousNode():s.nextNode()),t.preventDefault(),i&&A(i,!0)},d=t=>{L&&!O(L,e)||!x((0,a.wt)(t),e.current)?D(e)&&!Y((0,a.wt)(t),e)?n.current?n.current.focus():L&&L.current&&R(L.current):D(e)&&(n.current=(0,a.wt)(t)):(L=e,n.current=(0,a.wt)(t))},c=t=>{o.current&&cancelAnimationFrame(o.current),o.current=requestAnimationFrame(()=>{let r=(0,y.ME)(),s=("virtual"===r||null===r)&&(0,i.m0)()&&(0,i.H8)(),o=(0,a.bq)(l);if(!s&&o&&D(e)&&!Y(o,e)){L=e;let r=(0,a.wt)(t);var u;if(r&&r.isConnected)n.current=r,null===(u=n.current)||void 0===u||u.focus();else L.current&&R(L.current)}})};return l.addEventListener("keydown",u,!1),l.addEventListener("focusin",d,!1),null==r||r.forEach(e=>e.addEventListener("focusin",d,!1)),null==r||r.forEach(e=>e.addEventListener("focusout",c,!1)),()=>{l.removeEventListener("keydown",u,!1),l.removeEventListener("focusin",d,!1),null==r||r.forEach(e=>e.removeEventListener("focusin",d,!1)),null==r||r.forEach(e=>e.removeEventListener("focusout",c,!1))}},[e,t]),(0,r.N)(()=>()=>{o.current&&cancelAnimationFrame(o.current)},[o])}(c,n),function(e,t,n){const i=(0,b.useRef)("undefined"!=typeof document?(0,a.bq)((0,s.TW)(e.current?e.current[0]:void 0)):null);(0,r.N)(()=>{let r=e.current;const i=(0,s.TW)(r?r[0]:void 0);if(!t||n)return;let o=()=>{L&&!O(L,e)||!x((0,a.bq)(i),e.current)||(L=e)};return i.addEventListener("focusin",o,!1),null==r||r.forEach(e=>e.addEventListener("focusin",o,!1)),()=>{i.removeEventListener("focusin",o,!1),null==r||r.forEach(e=>e.removeEventListener("focusin",o,!1))}},[e,n]),(0,r.N)(()=>{const r=(0,s.TW)(e.current?e.current[0]:void 0);if(!t)return;let a=t=>{if("Tab"!==t.key||t.altKey||t.ctrlKey||t.metaKey||!D(e)||t.isComposing)return;let n=r.activeElement;if(!Y(n,e)||!P(e))return;let a=F.getTreeNode(e);if(!a)return;let s=a.nodeToRestore,i=H(r.body,{tabbable:!0});i.currentNode=n;let o=t.shiftKey?i.previousNode():i.nextNode();if(s&&s.isConnected&&s!==r.body||(s=void 0,a.nodeToRestore=void 0),(!o||!Y(o,e))&&s){i.currentNode=s;do{o=t.shiftKey?i.previousNode():i.nextNode()}while(Y(o,e));t.preventDefault(),t.stopPropagation(),o?A(o,!0):T(s)?A(s,!0):n.blur()}};return n||r.addEventListener("keydown",a,!0),()=>{n||r.removeEventListener("keydown",a,!0)}},[e,t,n]),(0,r.N)(()=>{const n=(0,s.TW)(e.current?e.current[0]:void 0);if(!t)return;let r=F.getTreeNode(e);var o;return r?(r.nodeToRestore=null!==(o=i.current)&&void 0!==o?o:void 0,()=>{let r=F.getTreeNode(e);if(!r)return;let s=r.nodeToRestore,i=(0,a.bq)(n);if(t&&s&&(i&&Y(i,e)||i===n.body&&P(e))){let t=F.clone();requestAnimationFrame(()=>{if(n.activeElement===n.body){let n=t.getTreeNode(e);for(;n;){if(n.nodeToRestore&&n.nodeToRestore.isConnected)return void j(n.nodeToRestore);n=n.parent}for(n=t.getTreeNode(e);n;){if(n.scopeRef&&n.scopeRef.current&&F.getTreeNode(n.scopeRef)){return void j(C(n.scopeRef.current,!0))}n=n.parent}}})}}):void 0},[e,t])}(c,o,n),function(e,t){const n=b.useRef(t);(0,b.useEffect)(()=>{if(n.current){L=e;const t=(0,s.TW)(e.current?e.current[0]:void 0);!x((0,a.bq)(t),L.current)&&e.current&&R(e.current)}n.current=!1},[e])}(c,l),(0,b.useEffect)(()=>{const e=(0,a.bq)((0,s.TW)(c.current?c.current[0]:void 0));let t=null;if(x(e,c.current)){for(let n of F.traverse())n.scopeRef&&x(e,n.scopeRef.current)&&(t=n);t===F.getTreeNode(c)&&(L=t.scopeRef)}},[c]),(0,r.N)(()=>()=>{var e,t,n;let r=null!==(n=null===(t=F.getTreeNode(c))||void 0===t||null===(e=t.parent)||void 0===e?void 0:e.scopeRef)&&void 0!==n?n:null;c!==L&&!O(c,L)||r&&!F.getTreeNode(r)||(L=r),F.removeTreeNode(c)},[c]);let p=(0,b.useMemo)(()=>function(e){return{focusNext(t={}){let n=e.current,{from:r,tabbable:i,wrap:o,accept:l}=t;var u;let d=r||(0,a.bq)((0,s.TW)(null!==(u=n[0])&&void 0!==u?u:void 0)),c=n[0].previousElementSibling,h=H(k(n),{tabbable:i,accept:l},n);h.currentNode=x(d,n)?d:c;let m=h.nextNode();return!m&&o&&(h.currentNode=c,m=h.nextNode()),m&&A(m,!0),m},focusPrevious(t={}){let n=e.current,{from:r,tabbable:i,wrap:o,accept:l}=t;var u;let d=r||(0,a.bq)((0,s.TW)(null!==(u=n[0])&&void 0!==u?u:void 0)),c=n[n.length-1].nextElementSibling,h=H(k(n),{tabbable:i,accept:l},n);h.currentNode=x(d,n)?d:c;let m=h.previousNode();return!m&&o&&(h.currentNode=c,m=h.previousNode()),m&&A(m,!0),m},focusFirst(t={}){let n=e.current,{tabbable:r,accept:a}=t,s=H(k(n),{tabbable:r,accept:a},n);s.currentNode=n[0].previousElementSibling;let i=s.nextNode();return i&&A(i,!0),i},focusLast(t={}){let n=e.current,{tabbable:r,accept:a}=t,s=H(k(n),{tabbable:r,accept:a},n);s.currentNode=n[n.length-1].nextElementSibling;let i=s.previousNode();return i&&A(i,!0),i}}}(c),[]),f=(0,b.useMemo)(()=>({focusManager:p,parentNode:m}),[m,p]);return b.createElement(M.Provider,{value:f},b.createElement("span",{"data-focus-scope-start":!0,hidden:!0,ref:u}),t,b.createElement("span",{"data-focus-scope-end":!0,hidden:!0,ref:d}))}function k(e){return e[0].parentElement}function D(e){let t=F.getTreeNode(L);for(;t&&t.scopeRef!==e;){if(t.contain)return!1;t=t.parent}return!0}function T(e){return Y(e)}function x(e,t){return!!e&&(!!t&&t.some(t=>t.contains(e)))}function Y(e,t=null){if(e instanceof Element&&e.closest("[data-react-aria-top-layer]"))return!0;for(let{scopeRef:n}of F.traverse(F.getTreeNode(t)))if(n&&x(e,n.current))return!0;return!1}function E(e){return Y(e,L)}function O(e,t){var n;let r=null===(n=F.getTreeNode(t))||void 0===n?void 0:n.parent;for(;r;){if(r.scopeRef===e)return!0;r=r.parent}return!1}function A(e,t=!1){if(null==e||t){if(null!=e)try{e.focus()}catch{}}else try{(0,v.l)(e)}catch{}}function C(e,t=!0){let n=e[0].previousElementSibling,r=k(e),a=H(r,{tabbable:t},e);a.currentNode=n;let s=a.nextNode();return t&&!s&&(r=k(e),a=H(r,{tabbable:!1},e),a.currentNode=n,s=a.nextNode()),s}function R(e,t=!0){A(C(e,t))}function P(e){let t=F.getTreeNode(L);for(;t&&t.scopeRef!==e;){if(t.nodeToRestore)return!1;t=t.parent}return(null==t?void 0:t.scopeRef)===e}function j(e){e.dispatchEvent(new CustomEvent(w,{bubbles:!0,cancelable:!0}))&&A(e)}function H(e,t,n){let r=(null==t?void 0:t.tabbable)?m:h,a=(null==e?void 0:e.nodeType)===Node.ELEMENT_NODE?e:null,i=(0,s.TW)(a),o=g(i,e||i,NodeFilter.SHOW_ELEMENT,{acceptNode(e){var a;if(null==t||null===(a=t.from)||void 0===a?void 0:a.contains(e))return NodeFilter.FILTER_REJECT;if((null==t?void 0:t.tabbable)&&"INPUT"===e.tagName&&"radio"===e.getAttribute("type")){if(!function(e){if(e.checked)return!0;let t=[];if(e.form){var n,r;let a=null===(r=e.form)||void 0===r||null===(n=r.elements)||void 0===n?void 0:n.namedItem(e.name);t=[...null!=a?a:[]]}else t=[...(0,s.TW)(e).querySelectorAll(`input[type="radio"][name="${CSS.escape(e.name)}"]`)].filter(e=>!e.form);return!!t&&!t.some(e=>e.checked)}(e))return NodeFilter.FILTER_REJECT;if("INPUT"===o.currentNode.tagName&&"radio"===o.currentNode.type&&o.currentNode.name===e.name)return NodeFilter.FILTER_REJECT}return!r(e)||n&&!x(e,n)||(null==t?void 0:t.accept)&&!t.accept(e)?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT}});return(null==t?void 0:t.from)&&(o.currentNode=t.from),o}class N{get size(){return this.fastMap.size}getTreeNode(e){return this.fastMap.get(e)}addTreeNode(e,t,n){let r=this.fastMap.get(null!=t?t:null);if(!r)return;let a=new I({scopeRef:e});r.addChild(a),a.parent=r,this.fastMap.set(e,a),n&&(a.nodeToRestore=n)}addNode(e){this.fastMap.set(e.scopeRef,e)}removeTreeNode(e){if(null===e)return;let t=this.fastMap.get(e);if(!t)return;let n=t.parent;for(let e of this.traverse())e!==t&&t.nodeToRestore&&e.nodeToRestore&&t.scopeRef&&t.scopeRef.current&&x(e.nodeToRestore,t.scopeRef.current)&&(e.nodeToRestore=t.nodeToRestore);let r=t.children;n&&(n.removeChild(t),r.size>0&&r.forEach(e=>n&&n.addChild(e))),this.fastMap.delete(t.scopeRef)}*traverse(e=this.root){if(null!=e.scopeRef&&(yield e),e.children.size>0)for(let t of e.children)yield*this.traverse(t)}clone(){var e;let t=new N;var n;for(let r of this.traverse())t.addTreeNode(r.scopeRef,null!==(n=null===(e=r.parent)||void 0===e?void 0:e.scopeRef)&&void 0!==n?n:null,r.nodeToRestore);return t}constructor(){this.fastMap=new Map,this.root=new I({scopeRef:null}),this.fastMap.set(null,this.root)}}class I{addChild(e){this.children.add(e),e.parent=this}removeChild(e){this.children.delete(e),e.parent=void 0}constructor(e){this.children=new Set,this.contain=!1,this.scopeRef=e.scopeRef}}let F=new N},1906:function(e,t,n){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},r=["کانونی دووەم","شوبات","ئازار","نیسان","ئایار","حوزەیران","تەمموز","ئاب","ئەیلوول","تشرینی یەكەم","تشرینی دووەم","كانونی یەکەم"];e.defineLocale("ku",{months:r,monthsShort:r,weekdays:"یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌".split("_"),weekdaysShort:"یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌".split("_"),weekdaysMin:"ی_د_س_چ_پ_ه_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ئێواره‌|به‌یانی/,isPM:function(e){return/ئێواره‌/.test(e)},meridiem:function(e,t,n){return e<12?"به‌یانی":"ئێواره‌"},calendar:{sameDay:"[ئه‌مرۆ كاتژمێر] LT",nextDay:"[به‌یانی كاتژمێر] LT",nextWeek:"dddd [كاتژمێر] LT",lastDay:"[دوێنێ كاتژمێر] LT",lastWeek:"dddd [كاتژمێر] LT",sameElse:"L"},relativeTime:{future:"له‌ %s",past:"%s",s:"چه‌ند چركه‌یه‌ك",ss:"چركه‌ %d",m:"یه‌ك خوله‌ك",mm:"%d خوله‌ك",h:"یه‌ك كاتژمێر",hh:"%d كاتژمێر",d:"یه‌ك ڕۆژ",dd:"%d ڕۆژ",M:"یه‌ك مانگ",MM:"%d مانگ",y:"یه‌ك ساڵ",yy:"%d ساڵ"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(e){return n[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(2689))},1944:function(e,t,n){!function(e){"use strict";var t={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var a=t.words[r];return 1===r.length?n?a[0]:a[1]:e+" "+t.correctGrammaticalCase(e,a)}};e.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mjesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},1966:function(e,t,n){!function(e){"use strict";var t={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},n={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};e.defineLocale("bn",{months:"জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[১২৩৪৫৬৭৮৯০]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t&&e>=4||"দুপুর"===t&&e<5||"বিকাল"===t?e+12:e},meridiem:function(e,t,n){return e<4?"রাত":e<10?"সকাল":e<17?"দুপুর":e<20?"বিকাল":"রাত"},week:{dow:0,doy:6}})}(n(2689))},2077:(e,t,n)=>{"use strict";const r=n(5380);e.exports=(e,t,n)=>r(e,t,n)>=0},2086:function(e,t,n){!function(e){"use strict";e.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(n(2689))},2103:function(e,t,n){!function(e){"use strict";e.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2689))},2162:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(694);function a(e){var t=function(e,t){if("object"!=(0,r.A)(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,t||"default");if("object"!=(0,r.A)(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==(0,r.A)(t)?t:t+""}},2179:function(e,t,n){!function(e){"use strict";e.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"sa":"SA":n?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần trước lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",w:"một tuần",ww:"%d tuần",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(2689))},2180:function(e,t,n){!function(e){"use strict";e.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})}(n(2689))},2192:(e,t,n)=>{"use strict";var r=n(5959),a=Symbol.for("react.element"),s=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,o=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function u(e,t,n){var r,s={},u=null,d=null;for(r in void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(d=t.ref),t)i.call(t,r)&&!l.hasOwnProperty(r)&&(s[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===s[r]&&(s[r]=t[r]);return{$$typeof:a,type:e,key:u,ref:d,props:s,_owner:o.current}}t.jsx=u},2206:function(e,t,n){!function(e){"use strict";e.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(e){return"หลังเที่ยง"===e},meridiem:function(e,t,n){return e<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",w:"1 สัปดาห์",ww:"%d สัปดาห์",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}})}(n(2689))},2231:function(e,t,n){!function(e){"use strict";e.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(\:e|\:a)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?":e":1===t||2===t?":a":":e")},week:{dow:1,doy:4}})}(n(2689))},2245:(e,t,n)=>{"use strict";n.d(t,{zL:()=>a});var r=n(6145),a=(e=>(e[e.dontHide=0]="dontHide",e[e.hideLabel=1]="hideLabel",e[e.hideVariable=2]="hideVariable",e))(a||{});r.rw},2305:function(e,t,n){!function(e){"use strict";e.defineLocale("zh-mo",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"D/M/YYYY",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(2689))},2366:function(e,t,n){!function(e){"use strict";e.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(e){var t="";return e>20?t=40===e||50===e||60===e||80===e||100===e?"fed":"ain":e>0&&(t=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][e]),e+t},week:{dow:1,doy:4}})}(n(2689))},2419:function(e,t,n){!function(e){"use strict";var t="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),n="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");e.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(2689))},2453:function(e,t,n){!function(e){"use strict";e.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},2455:function(e,t,n){!function(e){"use strict";e.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2689))},2540:(e,t,n)=>{"use strict";e.exports=n(2192)},2548:(e,t,n)=>{e.exports=n(9482).default,e.exports.utils=n(414),e.exports.Responsive=n(4636).default,e.exports.Responsive.utils=n(544),e.exports.WidthProvider=n(6805).default},2607:function(e,t,n){!function(e){"use strict";e.defineLocale("fil",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(2689))},2655:function(e,t,n){!function(e){"use strict";function t(e){return"undefined"!=typeof Function&&e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}e.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(e,t){return e?"string"==typeof t&&/D/.test(t.substring(0,t.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(e,t,n){return e>11?n?"μμ":"ΜΜ":n?"πμ":"ΠΜ"},isPM:function(e){return"μ"===(e+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){return 6===this.day()?"[το προηγούμενο] dddd [{}] LT":"[την προηγούμενη] dddd [{}] LT"},sameElse:"L"},calendar:function(e,n){var r=this._calendarEl[e],a=n&&n.hours();return t(r)&&(r=r.apply(n)),r.replace("{}",a%12==1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}})}(n(2689))},2688:(e,t,n)=>{e.exports=n(362)()},2689:function(e,t,n){(e=n.nmd(e)).exports=function(){"use strict";var t,r;function a(){return t.apply(null,arguments)}function s(e){t=e}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function o(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function l(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function u(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(l(e,t))return!1;return!0}function d(e){return void 0===e}function c(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function h(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function m(e,t){var n,r=[],a=e.length;for(n=0;n>>0;for(t=0;t0)for(n=0;n=0?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+r}var H=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,N=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,I={},F={};function W(e,t,n,r){var a=r;"string"==typeof r&&(a=function(){return this[r]()}),e&&(F[e]=a),t&&(F[t[0]]=function(){return j(a.apply(this,arguments),t[1],t[2])}),n&&(F[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)})}function V(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function z(e){var t,n,r=e.match(H);for(t=0,n=r.length;t=0&&N.test(e);)e=e.replace(N,r),N.lastIndex=0,n-=1;return e}var U={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function q(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(H).map(function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e}).join(""),this._longDateFormat[e])}var G="Invalid date";function J(){return this._invalidDate}var K="%d",Q=/\d{1,2}/;function Z(e){return this._ordinal.replace("%d",e)}var X={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function ee(e,t,n,r){var a=this._relativeTime[n];return E(a)?a(e,t,n,r):a.replace(/%d/i,e)}function te(e,t){var n=this._relativeTime[e>0?"future":"past"];return E(n)?n(t):n.replace(/%s/i,t)}var ne={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function re(e){return"string"==typeof e?ne[e]||ne[e.toLowerCase()]:void 0}function ae(e){var t,n,r={};for(n in e)l(e,n)&&(t=re(n))&&(r[t]=e[n]);return r}var se={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function ie(e){var t,n=[];for(t in e)l(e,t)&&n.push({unit:t,priority:se[t]});return n.sort(function(e,t){return e.priority-t.priority}),n}var oe,le=/\d/,ue=/\d\d/,de=/\d{3}/,ce=/\d{4}/,he=/[+-]?\d{6}/,me=/\d\d?/,pe=/\d\d\d\d?/,fe=/\d\d\d\d\d\d?/,_e=/\d{1,3}/,ge=/\d{1,4}/,ye=/[+-]?\d{1,6}/,ve=/\d+/,be=/[+-]?\d+/,Me=/Z|[+-]\d\d:?\d\d/gi,we=/Z|[+-]\d\d(?::?\d\d)?/gi,Le=/[+-]?\d+(\.\d{1,3})?/,Se=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,ke=/^[1-9]\d?/,De=/^([1-9]\d|\d)/;function Te(e,t,n){oe[e]=E(t)?t:function(e,r){return e&&n?n:t}}function xe(e,t){return l(oe,e)?oe[e](t._strict,t._locale):new RegExp(Ye(e))}function Ye(e){return Ee(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,r,a){return t||n||r||a}))}function Ee(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Oe(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function Ae(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=Oe(t)),n}oe={};var Ce={};function Re(e,t){var n,r,a=t;for("string"==typeof e&&(e=[e]),c(t)&&(a=function(e,n){n[t]=Ae(e)}),r=e.length,n=0;n68?1900:2e3)};var Ge,Je=Qe("FullYear",!0);function Ke(){return He(this.year())}function Qe(e,t){return function(n){return null!=n?(Xe(this,e,n),a.updateOffset(this,t),this):Ze(this,e)}}function Ze(e,t){if(!e.isValid())return NaN;var n=e._d,r=e._isUTC;switch(t){case"Milliseconds":return r?n.getUTCMilliseconds():n.getMilliseconds();case"Seconds":return r?n.getUTCSeconds():n.getSeconds();case"Minutes":return r?n.getUTCMinutes():n.getMinutes();case"Hours":return r?n.getUTCHours():n.getHours();case"Date":return r?n.getUTCDate():n.getDate();case"Day":return r?n.getUTCDay():n.getDay();case"Month":return r?n.getUTCMonth():n.getMonth();case"FullYear":return r?n.getUTCFullYear():n.getFullYear();default:return NaN}}function Xe(e,t,n){var r,a,s,i,o;if(e.isValid()&&!isNaN(n)){switch(r=e._d,a=e._isUTC,t){case"Milliseconds":return void(a?r.setUTCMilliseconds(n):r.setMilliseconds(n));case"Seconds":return void(a?r.setUTCSeconds(n):r.setSeconds(n));case"Minutes":return void(a?r.setUTCMinutes(n):r.setMinutes(n));case"Hours":return void(a?r.setUTCHours(n):r.setHours(n));case"Date":return void(a?r.setUTCDate(n):r.setDate(n));case"FullYear":break;default:return}s=n,i=e.month(),o=29!==(o=e.date())||1!==i||He(s)?o:28,a?r.setUTCFullYear(s,i,o):r.setFullYear(s,i,o)}}function et(e){return E(this[e=re(e)])?this[e]():this}function tt(e,t){if("object"==typeof e){var n,r=ie(e=ae(e)),a=r.length;for(n=0;n=0?(o=new Date(e+400,t,n,r,a,s,i),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,n,r,a,s,i),o}function bt(e){var t,n;return e<100&&e>=0?((n=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function Mt(e,t,n){var r=7+t-n;return-(7+bt(e,0,r).getUTCDay()-t)%7+r-1}function wt(e,t,n,r,a){var s,i,o=1+7*(t-1)+(7+n-r)%7+Mt(e,r,a);return o<=0?i=qe(s=e-1)+o:o>qe(e)?(s=e+1,i=o-qe(e)):(s=e,i=o),{year:s,dayOfYear:i}}function Lt(e,t,n){var r,a,s=Mt(e.year(),t,n),i=Math.floor((e.dayOfYear()-s-1)/7)+1;return i<1?r=i+St(a=e.year()-1,t,n):i>St(e.year(),t,n)?(r=i-St(e.year(),t,n),a=e.year()+1):(a=e.year(),r=i),{week:r,year:a}}function St(e,t,n){var r=Mt(e,t,n),a=Mt(e+1,t,n);return(qe(e)-r+a)/7}function kt(e){return Lt(e,this._week.dow,this._week.doy).week}W("w",["ww",2],"wo","week"),W("W",["WW",2],"Wo","isoWeek"),Te("w",me,ke),Te("ww",me,ue),Te("W",me,ke),Te("WW",me,ue),Pe(["w","ww","W","WW"],function(e,t,n,r){t[r.substr(0,1)]=Ae(e)});var Dt={dow:0,doy:6};function Tt(){return this._week.dow}function xt(){return this._week.doy}function Yt(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function Et(e){var t=Lt(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function Ot(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}function At(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Ct(e,t){return e.slice(t,7).concat(e.slice(0,t))}W("d",0,"do","day"),W("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),W("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),W("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),W("e",0,0,"weekday"),W("E",0,0,"isoWeekday"),Te("d",me),Te("e",me),Te("E",me),Te("dd",function(e,t){return t.weekdaysMinRegex(e)}),Te("ddd",function(e,t){return t.weekdaysShortRegex(e)}),Te("dddd",function(e,t){return t.weekdaysRegex(e)}),Pe(["dd","ddd","dddd"],function(e,t,n,r){var a=n._locale.weekdaysParse(e,r,n._strict);null!=a?t.d=a:g(n).invalidWeekday=e}),Pe(["d","e","E"],function(e,t,n,r){t[r]=Ae(e)});var Rt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Pt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),jt="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Ht=Se,Nt=Se,It=Se;function Ft(e,t){var n=i(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Ct(n,this._week.dow):e?n[e.day()]:n}function Wt(e){return!0===e?Ct(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function Vt(e){return!0===e?Ct(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function zt(e,t,n){var r,a,s,i=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)s=f([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(s,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(a=Ge.call(this._weekdaysParse,i))?a:null:"ddd"===t?-1!==(a=Ge.call(this._shortWeekdaysParse,i))?a:null:-1!==(a=Ge.call(this._minWeekdaysParse,i))?a:null:"dddd"===t?-1!==(a=Ge.call(this._weekdaysParse,i))||-1!==(a=Ge.call(this._shortWeekdaysParse,i))||-1!==(a=Ge.call(this._minWeekdaysParse,i))?a:null:"ddd"===t?-1!==(a=Ge.call(this._shortWeekdaysParse,i))||-1!==(a=Ge.call(this._weekdaysParse,i))||-1!==(a=Ge.call(this._minWeekdaysParse,i))?a:null:-1!==(a=Ge.call(this._minWeekdaysParse,i))||-1!==(a=Ge.call(this._weekdaysParse,i))||-1!==(a=Ge.call(this._shortWeekdaysParse,i))?a:null}function $t(e,t,n){var r,a,s;if(this._weekdaysParseExact)return zt.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(a=f([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(a,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(a,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(a,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(s="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[r]=new RegExp(s.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}}function Bt(e){if(!this.isValid())return null!=e?this:NaN;var t=Ze(this,"Day");return null!=e?(e=Ot(e,this.localeData()),this.add(e-t,"d")):t}function Ut(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function qt(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=At(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}function Gt(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Qt.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,"_weekdaysRegex")||(this._weekdaysRegex=Ht),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function Jt(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Qt.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Nt),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Kt(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Qt.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=It),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Qt(){function e(e,t){return t.length-e.length}var t,n,r,a,s,i=[],o=[],l=[],u=[];for(t=0;t<7;t++)n=f([2e3,1]).day(t),r=Ee(this.weekdaysMin(n,"")),a=Ee(this.weekdaysShort(n,"")),s=Ee(this.weekdays(n,"")),i.push(r),o.push(a),l.push(s),u.push(r),u.push(a),u.push(s);i.sort(e),o.sort(e),l.sort(e),u.sort(e),this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+i.join("|")+")","i")}function Zt(){return this.hours()%12||12}function Xt(){return this.hours()||24}function en(e,t){W(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function tn(e,t){return t._meridiemParse}function nn(e){return"p"===(e+"").toLowerCase().charAt(0)}W("H",["HH",2],0,"hour"),W("h",["hh",2],0,Zt),W("k",["kk",2],0,Xt),W("hmm",0,0,function(){return""+Zt.apply(this)+j(this.minutes(),2)}),W("hmmss",0,0,function(){return""+Zt.apply(this)+j(this.minutes(),2)+j(this.seconds(),2)}),W("Hmm",0,0,function(){return""+this.hours()+j(this.minutes(),2)}),W("Hmmss",0,0,function(){return""+this.hours()+j(this.minutes(),2)+j(this.seconds(),2)}),en("a",!0),en("A",!1),Te("a",tn),Te("A",tn),Te("H",me,De),Te("h",me,ke),Te("k",me,ke),Te("HH",me,ue),Te("hh",me,ue),Te("kk",me,ue),Te("hmm",pe),Te("hmmss",fe),Te("Hmm",pe),Te("Hmmss",fe),Re(["H","HH"],We),Re(["k","kk"],function(e,t,n){var r=Ae(e);t[We]=24===r?0:r}),Re(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),Re(["h","hh"],function(e,t,n){t[We]=Ae(e),g(n).bigHour=!0}),Re("hmm",function(e,t,n){var r=e.length-2;t[We]=Ae(e.substr(0,r)),t[Ve]=Ae(e.substr(r)),g(n).bigHour=!0}),Re("hmmss",function(e,t,n){var r=e.length-4,a=e.length-2;t[We]=Ae(e.substr(0,r)),t[Ve]=Ae(e.substr(r,2)),t[ze]=Ae(e.substr(a)),g(n).bigHour=!0}),Re("Hmm",function(e,t,n){var r=e.length-2;t[We]=Ae(e.substr(0,r)),t[Ve]=Ae(e.substr(r))}),Re("Hmmss",function(e,t,n){var r=e.length-4,a=e.length-2;t[We]=Ae(e.substr(0,r)),t[Ve]=Ae(e.substr(r,2)),t[ze]=Ae(e.substr(a))});var rn=/[ap]\.?m?\.?/i,an=Qe("Hours",!0);function sn(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}var on,ln={calendar:R,longDateFormat:U,invalidDate:G,ordinal:K,dayOfMonthOrdinalParse:Q,relativeTime:X,months:at,monthsShort:st,week:Dt,weekdays:Rt,weekdaysMin:jt,weekdaysShort:Pt,meridiemParse:rn},un={},dn={};function cn(e,t){var n,r=Math.min(e.length,t.length);for(n=0;n0;){if(r=fn(a.slice(0,t).join("-")))return r;if(n&&n.length>=t&&cn(a,n)>=t-1)break;t--}s++}return on}function pn(e){return!(!e||!e.match("^[^/\\\\]*$"))}function fn(t){var r=null;if(void 0===un[t]&&e&&e.exports&&pn(t))try{r=on._abbr,n(1738)("./"+t),_n(r)}catch(e){un[t]=null}return un[t]}function _n(e,t){var n;return e&&((n=d(t)?vn(e):gn(e,t))?on=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),on._abbr}function gn(e,t){if(null!==t){var n,r=ln;if(t.abbr=e,null!=un[e])Y("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=un[e]._config;else if(null!=t.parentLocale)if(null!=un[t.parentLocale])r=un[t.parentLocale]._config;else{if(null==(n=fn(t.parentLocale)))return dn[t.parentLocale]||(dn[t.parentLocale]=[]),dn[t.parentLocale].push({name:e,config:t}),null;r=n._config}return un[e]=new C(A(r,t)),dn[e]&&dn[e].forEach(function(e){gn(e.name,e.config)}),_n(e),un[e]}return delete un[e],null}function yn(e,t){if(null!=t){var n,r,a=ln;null!=un[e]&&null!=un[e].parentLocale?un[e].set(A(un[e]._config,t)):(null!=(r=fn(e))&&(a=r._config),t=A(a,t),null==r&&(t.abbr=e),(n=new C(t)).parentLocale=un[e],un[e]=n),_n(e)}else null!=un[e]&&(null!=un[e].parentLocale?(un[e]=un[e].parentLocale,e===_n()&&_n(e)):null!=un[e]&&delete un[e]);return un[e]}function vn(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return on;if(!i(e)){if(t=fn(e))return t;e=[e]}return mn(e)}function bn(){return T(un)}function Mn(e){var t,n=e._a;return n&&-2===g(e).overflow&&(t=n[Ie]<0||n[Ie]>11?Ie:n[Fe]<1||n[Fe]>rt(n[Ne],n[Ie])?Fe:n[We]<0||n[We]>24||24===n[We]&&(0!==n[Ve]||0!==n[ze]||0!==n[$e])?We:n[Ve]<0||n[Ve]>59?Ve:n[ze]<0||n[ze]>59?ze:n[$e]<0||n[$e]>999?$e:-1,g(e)._overflowDayOfYear&&(tFe)&&(t=Fe),g(e)._overflowWeeks&&-1===t&&(t=Be),g(e)._overflowWeekday&&-1===t&&(t=Ue),g(e).overflow=t),e}var wn=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Ln=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Sn=/Z|[+-]\d\d(?::?\d\d)?/,kn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],Dn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Tn=/^\/?Date\((-?\d+)/i,xn=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Yn={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function En(e){var t,n,r,a,s,i,o=e._i,l=wn.exec(o)||Ln.exec(o),u=kn.length,d=Dn.length;if(l){for(g(e).iso=!0,t=0,n=u;tqe(s)||0===e._dayOfYear)&&(g(e)._overflowDayOfYear=!0),n=bt(s,0,e._dayOfYear),e._a[Ie]=n.getUTCMonth(),e._a[Fe]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=i[t]=r[t];for(;t<7;t++)e._a[t]=i[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[We]&&0===e._a[Ve]&&0===e._a[ze]&&0===e._a[$e]&&(e._nextDay=!0,e._a[We]=0),e._d=(e._useUTC?bt:vt).apply(null,i),a=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[We]=24),e._w&&void 0!==e._w.d&&e._w.d!==a&&(g(e).weekdayMismatch=!0)}}function Wn(e){var t,n,r,a,s,i,o,l,u;null!=(t=e._w).GG||null!=t.W||null!=t.E?(s=1,i=4,n=Nn(t.GG,e._a[Ne],Lt(Kn(),1,4).year),r=Nn(t.W,1),((a=Nn(t.E,1))<1||a>7)&&(l=!0)):(s=e._locale._week.dow,i=e._locale._week.doy,u=Lt(Kn(),s,i),n=Nn(t.gg,e._a[Ne],u.year),r=Nn(t.w,u.week),null!=t.d?((a=t.d)<0||a>6)&&(l=!0):null!=t.e?(a=t.e+s,(t.e<0||t.e>6)&&(l=!0)):a=s),r<1||r>St(n,s,i)?g(e)._overflowWeeks=!0:null!=l?g(e)._overflowWeekday=!0:(o=wt(n,r,a,s,i),e._a[Ne]=o.year,e._dayOfYear=o.dayOfYear)}function Vn(e){if(e._f!==a.ISO_8601)if(e._f!==a.RFC_2822){e._a=[],g(e).empty=!0;var t,n,r,s,i,o,l,u=""+e._i,d=u.length,c=0;for(l=(r=B(e._f,e._locale).match(H)||[]).length,t=0;t0&&g(e).unusedInput.push(i),u=u.slice(u.indexOf(n)+n.length),c+=n.length),F[s]?(n?g(e).empty=!1:g(e).unusedTokens.push(s),je(s,n,e)):e._strict&&!n&&g(e).unusedTokens.push(s);g(e).charsLeftOver=d-c,u.length>0&&g(e).unusedInput.push(u),e._a[We]<=12&&!0===g(e).bigHour&&e._a[We]>0&&(g(e).bigHour=void 0),g(e).parsedDateParts=e._a.slice(0),g(e).meridiem=e._meridiem,e._a[We]=zn(e._locale,e._a[We],e._meridiem),null!==(o=g(e).era)&&(e._a[Ne]=e._locale.erasConvertYear(o,e._a[Ne])),Fn(e),Mn(e)}else jn(e);else En(e)}function zn(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((r=e.isPM(n))&&t<12&&(t+=12),r||12!==t||(t=0),t):t}function $n(e){var t,n,r,a,s,i,o=!1,l=e._f.length;if(0===l)return g(e).invalidFormat=!0,void(e._d=new Date(NaN));for(a=0;athis?this:e:v()});function Xn(e,t){var n,r;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return Kn();for(n=t[0],r=1;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Lr(){if(!d(this._isDSTShifted))return this._isDSTShifted;var e,t={};return w(t,this),(t=qn(t))._a?(e=t._isUTC?f(t._a):Kn(t._a),this._isDSTShifted=this.isValid()&&dr(t._a,e.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function Sr(){return!!this.isValid()&&!this._isUTC}function kr(){return!!this.isValid()&&this._isUTC}function Dr(){return!!this.isValid()&&this._isUTC&&0===this._offset}a.updateOffset=function(){};var Tr=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,xr=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Yr(e,t){var n,r,a,s=e,i=null;return lr(e)?s={ms:e._milliseconds,d:e._days,M:e._months}:c(e)||!isNaN(+e)?(s={},t?s[t]=+e:s.milliseconds=+e):(i=Tr.exec(e))?(n="-"===i[1]?-1:1,s={y:0,d:Ae(i[Fe])*n,h:Ae(i[We])*n,m:Ae(i[Ve])*n,s:Ae(i[ze])*n,ms:Ae(ur(1e3*i[$e]))*n}):(i=xr.exec(e))?(n="-"===i[1]?-1:1,s={y:Er(i[2],n),M:Er(i[3],n),w:Er(i[4],n),d:Er(i[5],n),h:Er(i[6],n),m:Er(i[7],n),s:Er(i[8],n)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(a=Ar(Kn(s.from),Kn(s.to)),(s={}).ms=a.milliseconds,s.M=a.months),r=new or(s),lr(e)&&l(e,"_locale")&&(r._locale=e._locale),lr(e)&&l(e,"_isValid")&&(r._isValid=e._isValid),r}function Er(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Or(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Ar(e,t){var n;return e.isValid()&&t.isValid()?(t=pr(t,e),e.isBefore(t)?n=Or(e,t):((n=Or(t,e)).milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function Cr(e,t){return function(n,r){var a;return null===r||isNaN(+r)||(Y(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),a=n,n=r,r=a),Rr(this,Yr(n,r),e),this}}function Rr(e,t,n,r){var s=t._milliseconds,i=ur(t._days),o=ur(t._months);e.isValid()&&(r=null==r||r,o&&mt(e,Ze(e,"Month")+o*n),i&&Xe(e,"Date",Ze(e,"Date")+i*n),s&&e._d.setTime(e._d.valueOf()+s*n),r&&a.updateOffset(e,i||o))}Yr.fn=or.prototype,Yr.invalid=ir;var Pr=Cr(1,"add"),jr=Cr(-1,"subtract");function Hr(e){return"string"==typeof e||e instanceof String}function Nr(e){return S(e)||h(e)||Hr(e)||c(e)||Fr(e)||Ir(e)||null==e}function Ir(e){var t,n,r=o(e)&&!u(e),a=!1,s=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],i=s.length;for(t=0;tn.valueOf():n.valueOf()9999?$(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):E(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",$(n,"Z")):$(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function ta(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,n,r,a="moment",s="";return this.isLocal()||(a=0===this.utcOffset()?"moment.utc":"moment.parseZone",s="Z"),e="["+a+'("]',t=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n="-MM-DD[T]HH:mm:ss.SSS",r=s+'[")]',this.format(e+t+n+r)}function na(e){e||(e=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var t=$(this,e);return this.localeData().postformat(t)}function ra(e,t){return this.isValid()&&(S(e)&&e.isValid()||Kn(e).isValid())?Yr({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function aa(e){return this.from(Kn(),e)}function sa(e,t){return this.isValid()&&(S(e)&&e.isValid()||Kn(e).isValid())?Yr({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function ia(e){return this.to(Kn(),e)}function oa(e){var t;return void 0===e?this._locale._abbr:(null!=(t=vn(e))&&(this._locale=t),this)}a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",a.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var la=D("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});function ua(){return this._locale}var da=1e3,ca=60*da,ha=60*ca,ma=3506328*ha;function pa(e,t){return(e%t+t)%t}function fa(e,t,n){return e<100&&e>=0?new Date(e+400,t,n)-ma:new Date(e,t,n).valueOf()}function _a(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-ma:Date.UTC(e,t,n)}function ga(e){var t,n;if(void 0===(e=re(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?_a:fa,e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=pa(t+(this._isUTC?0:this.utcOffset()*ca),ha);break;case"minute":t=this._d.valueOf(),t-=pa(t,ca);break;case"second":t=this._d.valueOf(),t-=pa(t,da)}return this._d.setTime(t),a.updateOffset(this,!0),this}function ya(e){var t,n;if(void 0===(e=re(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?_a:fa,e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=ha-pa(t+(this._isUTC?0:this.utcOffset()*ca),ha)-1;break;case"minute":t=this._d.valueOf(),t+=ca-pa(t,ca)-1;break;case"second":t=this._d.valueOf(),t+=da-pa(t,da)-1}return this._d.setTime(t),a.updateOffset(this,!0),this}function va(){return this._d.valueOf()-6e4*(this._offset||0)}function ba(){return Math.floor(this.valueOf()/1e3)}function Ma(){return new Date(this.valueOf())}function wa(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function La(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function Sa(){return this.isValid()?this.toISOString():null}function ka(){return y(this)}function Da(){return p({},g(this))}function Ta(){return g(this).overflow}function xa(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Ya(e,t){var n,r,s,i=this._eras||vn("en")._eras;for(n=0,r=i.length;n=0)return l[r]}function Oa(e,t){var n=e.since<=e.until?1:-1;return void 0===t?a(e.since).year():a(e.since).year()+(t-e.offset)*n}function Aa(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;e(s=St(e,r,a))&&(t=s),Za.call(this,e,t,n,r,a))}function Za(e,t,n,r,a){var s=wt(e,t,n,r,a),i=bt(s.year,0,s.dayOfYear);return this.year(i.getUTCFullYear()),this.month(i.getUTCMonth()),this.date(i.getUTCDate()),this}function Xa(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}W("N",0,0,"eraAbbr"),W("NN",0,0,"eraAbbr"),W("NNN",0,0,"eraAbbr"),W("NNNN",0,0,"eraName"),W("NNNNN",0,0,"eraNarrow"),W("y",["y",1],"yo","eraYear"),W("y",["yy",2],0,"eraYear"),W("y",["yyy",3],0,"eraYear"),W("y",["yyyy",4],0,"eraYear"),Te("N",Ia),Te("NN",Ia),Te("NNN",Ia),Te("NNNN",Fa),Te("NNNNN",Wa),Re(["N","NN","NNN","NNNN","NNNNN"],function(e,t,n,r){var a=n._locale.erasParse(e,r,n._strict);a?g(n).era=a:g(n).invalidEra=e}),Te("y",ve),Te("yy",ve),Te("yyy",ve),Te("yyyy",ve),Te("yo",Va),Re(["y","yy","yyy","yyyy"],Ne),Re(["yo"],function(e,t,n,r){var a;n._locale._eraYearOrdinalRegex&&(a=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[Ne]=n._locale.eraYearOrdinalParse(e,a):t[Ne]=parseInt(e,10)}),W(0,["gg",2],0,function(){return this.weekYear()%100}),W(0,["GG",2],0,function(){return this.isoWeekYear()%100}),$a("gggg","weekYear"),$a("ggggg","weekYear"),$a("GGGG","isoWeekYear"),$a("GGGGG","isoWeekYear"),Te("G",be),Te("g",be),Te("GG",me,ue),Te("gg",me,ue),Te("GGGG",ge,ce),Te("gggg",ge,ce),Te("GGGGG",ye,he),Te("ggggg",ye,he),Pe(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,r){t[r.substr(0,2)]=Ae(e)}),Pe(["gg","GG"],function(e,t,n,r){t[r]=a.parseTwoDigitYear(e)}),W("Q",0,"Qo","quarter"),Te("Q",le),Re("Q",function(e,t){t[Ie]=3*(Ae(e)-1)}),W("D",["DD",2],"Do","date"),Te("D",me,ke),Te("DD",me,ue),Te("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),Re(["D","DD"],Fe),Re("Do",function(e,t){t[Fe]=Ae(e.match(me)[0])});var es=Qe("Date",!0);function ts(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}W("DDD",["DDDD",3],"DDDo","dayOfYear"),Te("DDD",_e),Te("DDDD",de),Re(["DDD","DDDD"],function(e,t,n){n._dayOfYear=Ae(e)}),W("m",["mm",2],0,"minute"),Te("m",me,De),Te("mm",me,ue),Re(["m","mm"],Ve);var ns=Qe("Minutes",!1);W("s",["ss",2],0,"second"),Te("s",me,De),Te("ss",me,ue),Re(["s","ss"],ze);var rs,as,ss=Qe("Seconds",!1);for(W("S",0,0,function(){return~~(this.millisecond()/100)}),W(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),W(0,["SSS",3],0,"millisecond"),W(0,["SSSS",4],0,function(){return 10*this.millisecond()}),W(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),W(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),W(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),W(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),W(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),Te("S",_e,le),Te("SS",_e,ue),Te("SSS",_e,de),rs="SSSS";rs.length<=9;rs+="S")Te(rs,ve);function is(e,t){t[$e]=Ae(1e3*("0."+e))}for(rs="S";rs.length<=9;rs+="S")Re(rs,is);function os(){return this._isUTC?"UTC":""}function ls(){return this._isUTC?"Coordinated Universal Time":""}as=Qe("Milliseconds",!1),W("z",0,0,"zoneAbbr"),W("zz",0,0,"zoneName");var us=L.prototype;function ds(e){return Kn(1e3*e)}function cs(){return Kn.apply(null,arguments).parseZone()}function hs(e){return e}us.add=Pr,us.calendar=zr,us.clone=$r,us.diff=Qr,us.endOf=ya,us.format=na,us.from=ra,us.fromNow=aa,us.to=sa,us.toNow=ia,us.get=et,us.invalidAt=Ta,us.isAfter=Br,us.isBefore=Ur,us.isBetween=qr,us.isSame=Gr,us.isSameOrAfter=Jr,us.isSameOrBefore=Kr,us.isValid=ka,us.lang=la,us.locale=oa,us.localeData=ua,us.max=Zn,us.min=Qn,us.parsingFlags=Da,us.set=tt,us.startOf=ga,us.subtract=jr,us.toArray=wa,us.toObject=La,us.toDate=Ma,us.toISOString=ea,us.inspect=ta,"undefined"!=typeof Symbol&&null!=Symbol.for&&(us[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),us.toJSON=Sa,us.toString=Xr,us.unix=ba,us.valueOf=va,us.creationData=xa,us.eraName=Aa,us.eraNarrow=Ca,us.eraAbbr=Ra,us.eraYear=Pa,us.year=Je,us.isLeapYear=Ke,us.weekYear=Ba,us.isoWeekYear=Ua,us.quarter=us.quarters=Xa,us.month=pt,us.daysInMonth=ft,us.week=us.weeks=Yt,us.isoWeek=us.isoWeeks=Et,us.weeksInYear=Ja,us.weeksInWeekYear=Ka,us.isoWeeksInYear=qa,us.isoWeeksInISOWeekYear=Ga,us.date=es,us.day=us.days=Bt,us.weekday=Ut,us.isoWeekday=qt,us.dayOfYear=ts,us.hour=us.hours=an,us.minute=us.minutes=ns,us.second=us.seconds=ss,us.millisecond=us.milliseconds=as,us.utcOffset=_r,us.utc=yr,us.local=vr,us.parseZone=br,us.hasAlignedHourOffset=Mr,us.isDST=wr,us.isLocal=Sr,us.isUtcOffset=kr,us.isUtc=Dr,us.isUTC=Dr,us.zoneAbbr=os,us.zoneName=ls,us.dates=D("dates accessor is deprecated. Use date instead.",es),us.months=D("months accessor is deprecated. Use month instead",pt),us.years=D("years accessor is deprecated. Use year instead",Je),us.zone=D("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",gr),us.isDSTShifted=D("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Lr);var ms=C.prototype;function ps(e,t,n,r){var a=vn(),s=f().set(r,t);return a[n](s,e)}function fs(e,t,n){if(c(e)&&(t=e,e=void 0),e=e||"",null!=t)return ps(e,t,n,"month");var r,a=[];for(r=0;r<12;r++)a[r]=ps(e,r,n,"month");return a}function _s(e,t,n,r){"boolean"==typeof e?(c(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,c(t)&&(n=t,t=void 0),t=t||"");var a,s=vn(),i=e?s._week.dow:0,o=[];if(null!=n)return ps(t,(n+i)%7,r,"day");for(a=0;a<7;a++)o[a]=ps(t,(a+i)%7,r,"day");return o}function gs(e,t){return fs(e,t,"months")}function ys(e,t){return fs(e,t,"monthsShort")}function vs(e,t,n){return _s(e,t,n,"weekdays")}function bs(e,t,n){return _s(e,t,n,"weekdaysShort")}function Ms(e,t,n){return _s(e,t,n,"weekdaysMin")}ms.calendar=P,ms.longDateFormat=q,ms.invalidDate=J,ms.ordinal=Z,ms.preparse=hs,ms.postformat=hs,ms.relativeTime=ee,ms.pastFuture=te,ms.set=O,ms.eras=Ya,ms.erasParse=Ea,ms.erasConvertYear=Oa,ms.erasAbbrRegex=Ha,ms.erasNameRegex=ja,ms.erasNarrowRegex=Na,ms.months=ut,ms.monthsShort=dt,ms.monthsParse=ht,ms.monthsRegex=gt,ms.monthsShortRegex=_t,ms.week=kt,ms.firstDayOfYear=xt,ms.firstDayOfWeek=Tt,ms.weekdays=Ft,ms.weekdaysMin=Vt,ms.weekdaysShort=Wt,ms.weekdaysParse=$t,ms.weekdaysRegex=Gt,ms.weekdaysShortRegex=Jt,ms.weekdaysMinRegex=Kt,ms.isPM=nn,ms.meridiem=sn,_n("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===Ae(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),a.lang=D("moment.lang is deprecated. Use moment.locale instead.",_n),a.langData=D("moment.langData is deprecated. Use moment.localeData instead.",vn);var ws=Math.abs;function Ls(){var e=this._data;return this._milliseconds=ws(this._milliseconds),this._days=ws(this._days),this._months=ws(this._months),e.milliseconds=ws(e.milliseconds),e.seconds=ws(e.seconds),e.minutes=ws(e.minutes),e.hours=ws(e.hours),e.months=ws(e.months),e.years=ws(e.years),this}function Ss(e,t,n,r){var a=Yr(t,n);return e._milliseconds+=r*a._milliseconds,e._days+=r*a._days,e._months+=r*a._months,e._bubble()}function ks(e,t){return Ss(this,e,t,1)}function Ds(e,t){return Ss(this,e,t,-1)}function Ts(e){return e<0?Math.floor(e):Math.ceil(e)}function xs(){var e,t,n,r,a,s=this._milliseconds,i=this._days,o=this._months,l=this._data;return s>=0&&i>=0&&o>=0||s<=0&&i<=0&&o<=0||(s+=864e5*Ts(Es(o)+i),i=0,o=0),l.milliseconds=s%1e3,e=Oe(s/1e3),l.seconds=e%60,t=Oe(e/60),l.minutes=t%60,n=Oe(t/60),l.hours=n%24,i+=Oe(n/24),o+=a=Oe(Ys(i)),i-=Ts(Es(a)),r=Oe(o/12),o%=12,l.days=i,l.months=o,l.years=r,this}function Ys(e){return 4800*e/146097}function Es(e){return 146097*e/4800}function Os(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if("month"===(e=re(e))||"quarter"===e||"year"===e)switch(t=this._days+r/864e5,n=this._months+Ys(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Es(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}}function As(e){return function(){return this.as(e)}}var Cs=As("ms"),Rs=As("s"),Ps=As("m"),js=As("h"),Hs=As("d"),Ns=As("w"),Is=As("M"),Fs=As("Q"),Ws=As("y"),Vs=Cs;function zs(){return Yr(this)}function $s(e){return e=re(e),this.isValid()?this[e+"s"]():NaN}function Bs(e){return function(){return this.isValid()?this._data[e]:NaN}}var Us=Bs("milliseconds"),qs=Bs("seconds"),Gs=Bs("minutes"),Js=Bs("hours"),Ks=Bs("days"),Qs=Bs("months"),Zs=Bs("years");function Xs(){return Oe(this.days()/7)}var ei=Math.round,ti={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function ni(e,t,n,r,a){return a.relativeTime(t||1,!!n,e,r)}function ri(e,t,n,r){var a=Yr(e).abs(),s=ei(a.as("s")),i=ei(a.as("m")),o=ei(a.as("h")),l=ei(a.as("d")),u=ei(a.as("M")),d=ei(a.as("w")),c=ei(a.as("y")),h=s<=n.ss&&["s",s]||s0,h[4]=r,ni.apply(null,h)}function ai(e){return void 0===e?ei:"function"==typeof e&&(ei=e,!0)}function si(e,t){return void 0!==ti[e]&&(void 0===t?ti[e]:(ti[e]=t,"s"===e&&(ti.ss=t-1),!0))}function ii(e,t){if(!this.isValid())return this.localeData().invalidDate();var n,r,a=!1,s=ti;return"object"==typeof e&&(t=e,e=!1),"boolean"==typeof e&&(a=e),"object"==typeof t&&(s=Object.assign({},ti,t),null!=t.s&&null==t.ss&&(s.ss=t.s-1)),r=ri(this,!a,s,n=this.localeData()),a&&(r=n.pastFuture(+this,r)),n.postformat(r)}var oi=Math.abs;function li(e){return(e>0)-(e<0)||+e}function ui(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,r,a,s,i,o,l=oi(this._milliseconds)/1e3,u=oi(this._days),d=oi(this._months),c=this.asSeconds();return c?(e=Oe(l/60),t=Oe(e/60),l%=60,e%=60,n=Oe(d/12),d%=12,r=l?l.toFixed(3).replace(/\.?0+$/,""):"",a=c<0?"-":"",s=li(this._months)!==li(c)?"-":"",i=li(this._days)!==li(c)?"-":"",o=li(this._milliseconds)!==li(c)?"-":"",a+"P"+(n?s+n+"Y":"")+(d?s+d+"M":"")+(u?i+u+"D":"")+(t||e||l?"T":"")+(t?o+t+"H":"")+(e?o+e+"M":"")+(l?o+r+"S":"")):"P0D"}var di=or.prototype;return di.isValid=sr,di.abs=Ls,di.add=ks,di.subtract=Ds,di.as=Os,di.asMilliseconds=Cs,di.asSeconds=Rs,di.asMinutes=Ps,di.asHours=js,di.asDays=Hs,di.asWeeks=Ns,di.asMonths=Is,di.asQuarters=Fs,di.asYears=Ws,di.valueOf=Vs,di._bubble=xs,di.clone=zs,di.get=$s,di.milliseconds=Us,di.seconds=qs,di.minutes=Gs,di.hours=Js,di.days=Ks,di.weeks=Xs,di.months=Qs,di.years=Zs,di.humanize=ii,di.toISOString=ui,di.toString=ui,di.toJSON=ui,di.locale=oa,di.localeData=ua,di.toIsoString=D("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",ui),di.lang=la,W("X",0,0,"unix"),W("x",0,0,"valueOf"),Te("x",be),Te("X",Le),Re("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e))}),Re("x",function(e,t,n){n._d=new Date(Ae(e))}),a.version="2.30.1",s(Kn),a.fn=us,a.min=er,a.max=tr,a.now=nr,a.utc=f,a.unix=ds,a.months=gs,a.isDate=h,a.locale=_n,a.invalid=v,a.duration=Yr,a.isMoment=S,a.weekdays=vs,a.parseZone=cs,a.localeData=vn,a.isDuration=lr,a.monthsShort=ys,a.weekdaysMin=Ms,a.defineLocale=gn,a.updateLocale=yn,a.locales=bn,a.weekdaysShort=bs,a.normalizeUnits=re,a.relativeTimeRounding=ai,a.relativeTimeThreshold=si,a.calendarFormat=Vr,a.prototype=us,a.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},a}()},2727:function(e,t,n){!function(e){"use strict";var t={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"};e.defineLocale("tg",{months:{format:"январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри".split("_"),standalone:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_")},monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Имрӯз соати] LT",nextDay:"[Фардо соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/шаб|субҳ|рӯз|бегоҳ/,meridiemHour:function(e,t){return 12===e&&(e=0),"шаб"===t?e<4?e:e+12:"субҳ"===t?e:"рӯз"===t?e>=11?e:e+12:"бегоҳ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"шаб":e<11?"субҳ":e<16?"рӯз":e<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(ум|юм)/,ordinal:function(e){var n=e%10,r=e>=100?100:null;return e+(t[e]||t[n]||t[r])},week:{dow:1,doy:7}})}(n(2689))},2801:(e,t,n)=>{"use strict";const r=n(7944);e.exports=(e,t,n)=>{const a=new r(e,n),s=new r(t,n);return a.compare(s)||a.compareBuild(s)}},2808:function(e,t,n){!function(e){"use strict";e.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})}(n(2689))},2837:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addClassName=u,t.addEvent=function(e,t,n,r){if(!e)return;const a={capture:!0,...r};e.addEventListener?e.addEventListener(t,n,a):e.attachEvent?e.attachEvent("on"+t,n):e["on"+t]=n},t.addUserSelectStyles=function(e){if(!e)return;let t=e.getElementById("react-draggable-style-el");t||(t=e.createElement("style"),t.type="text/css",t.id="react-draggable-style-el",t.innerHTML=".react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n",t.innerHTML+=".react-draggable-transparent-selection *::selection {all: inherit;}\n",e.getElementsByTagName("head")[0].appendChild(t));e.body&&u(e.body,"react-draggable-transparent-selection")},t.createCSSTransform=function(e,t){const n=o(e,t,"px");return{[(0,a.browserPrefixToKey)("transform",a.default)]:n}},t.createSVGTransform=function(e,t){return o(e,t,"")},t.getTouch=function(e,t){return e.targetTouches&&(0,r.findInArray)(e.targetTouches,e=>t===e.identifier)||e.changedTouches&&(0,r.findInArray)(e.changedTouches,e=>t===e.identifier)},t.getTouchIdentifier=function(e){if(e.targetTouches&&e.targetTouches[0])return e.targetTouches[0].identifier;if(e.changedTouches&&e.changedTouches[0])return e.changedTouches[0].identifier},t.getTranslation=o,t.innerHeight=function(e){let t=e.clientHeight;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,r.int)(n.paddingTop),t-=(0,r.int)(n.paddingBottom),t},t.innerWidth=function(e){let t=e.clientWidth;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,r.int)(n.paddingLeft),t-=(0,r.int)(n.paddingRight),t},t.matchesSelector=i,t.matchesSelectorAndParentsTo=function(e,t,n){let r=e;do{if(i(r,t))return!0;if(r===n)return!1;r=r.parentNode}while(r);return!1},t.offsetXYFromParent=function(e,t,n){const r=t===t.ownerDocument.body?{left:0,top:0}:t.getBoundingClientRect(),a=(e.clientX+t.scrollLeft-r.left)/n,s=(e.clientY+t.scrollTop-r.top)/n;return{x:a,y:s}},t.outerHeight=function(e){let t=e.clientHeight;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,r.int)(n.borderTopWidth),t+=(0,r.int)(n.borderBottomWidth),t},t.outerWidth=function(e){let t=e.clientWidth;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,r.int)(n.borderLeftWidth),t+=(0,r.int)(n.borderRightWidth),t},t.removeClassName=d,t.removeEvent=function(e,t,n,r){if(!e)return;const a={capture:!0,...r};e.removeEventListener?e.removeEventListener(t,n,a):e.detachEvent?e.detachEvent("on"+t,n):e["on"+t]=null},t.scheduleRemoveUserSelectStyles=function(e){window.requestAnimationFrame?window.requestAnimationFrame(()=>{l(e)}):l(e)};var r=n(6732),a=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var a,s,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(a=t?r:n){if(a.has(e))return a.get(e);a.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((s=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(s.get||s.set)?a(i,t,s):i[t]=e[t]);return i}(e,t)}(n(7350));let s="";function i(e,t){return s||(s=(0,r.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(t){return(0,r.isFunction)(e[t])})),!!(0,r.isFunction)(e[s])&&e[s](t)}function o(e,t,n){let{x:r,y:a}=e,s=`translate(${r}${n},${a}${n})`;if(t){s=`translate(${`${"string"==typeof t.x?t.x:t.x+n}`}, ${`${"string"==typeof t.y?t.y:t.y+n}`})`+s}return s}function l(e){if(e)try{if(e.body&&d(e.body,"react-draggable-transparent-selection"),e.selection)e.selection.empty();else{const t=(e.defaultView||window).getSelection();t&&"Caret"!==t.type&&t.removeAllRanges()}}catch(e){}}function u(e,t){e.classList?e.classList.add(t):e.className.match(new RegExp(`(?:^|\\s)${t}(?!\\S)`))||(e.className+=` ${t}`)}function d(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp(`(?:^|\\s)${t}(?!\\S)`,"g"),"")}},2862:(e,t,n)=>{"use strict";const r=n(5380);e.exports=(e,t,n)=>r(t,e,n)},2934:function(e,t,n){!function(e){"use strict";e.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"за %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"една минута",mm:"%d минути",h:"еден час",hh:"%d часа",d:"еден ден",dd:"%d дена",M:"еден месец",MM:"%d месеци",y:"една година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":n>10&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(n(2689))},2966:(e,t,n)=>{"use strict";const r=n(7944);e.exports=(e,t)=>new r(e,t).major},3002:function(e,t,n){!function(e){"use strict";var t=["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Meitheamh","Iúil","Lúnasa","Meán Fómhair","Deireadh Fómhair","Samhain","Nollaig"],n=["Ean","Feabh","Márt","Aib","Beal","Meith","Iúil","Lún","M.F.","D.F.","Samh","Noll"],r=["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Sathairn"],a=["Domh","Luan","Máirt","Céad","Déar","Aoine","Sath"],s=["Do","Lu","Má","Cé","Dé","A","Sa"];e.defineLocale("ga",{months:t,monthsShort:n,monthsParseExact:!0,weekdays:r,weekdaysShort:a,weekdaysMin:s,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Amárach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inné ag] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s ó shin",s:"cúpla soicind",ss:"%d soicind",m:"nóiméad",mm:"%d nóiméad",h:"uair an chloig",hh:"%d uair an chloig",d:"lá",dd:"%d lá",M:"mí",MM:"%d míonna",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n(2689))},3003:(e,t,n)=>{"use strict";n.d(t,{N:()=>a});var r=n(5959);const a="undefined"!=typeof document?r.useLayoutEffect:()=>{}},3010:function(e,t,n){!function(e){"use strict";var t={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};function n(e,t,n,r){return t?"kelios sekundės":r?"kelių sekundžių":"kelias sekundes"}function r(e,t,n,r){return t?s(n)[0]:r?s(n)[1]:s(n)[2]}function a(e){return e%10==0||e>10&&e<20}function s(e){return t[e].split("_")}function i(e,t,n,i){var o=e+" ";return 1===e?o+r(e,t,n[0],i):t?o+(a(e)?s(n)[1]:s(n)[0]):i?o+s(n)[1]:o+(a(e)?s(n)[1]:s(n)[2])}e.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:n,ss:i,m:r,mm:i,h:r,hh:i,d:r,dd:i,M:r,MM:i,y:r,yy:i},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}})}(n(2689))},3049:(e,t,n)=>{"use strict";n.d(t,{A:()=>o,z:()=>l});var r=n(5959);const a=r.createContext({}),s=!0;function i({baseColor:e,highlightColor:t,width:n,height:r,borderRadius:a,circle:i,direction:o,duration:l,enableAnimation:u=s,customHighlightBackground:d}){const c={};return"rtl"===o&&(c["--animation-direction"]="reverse"),"number"==typeof l&&(c["--animation-duration"]=`${l}s`),u||(c["--pseudo-element-display"]="none"),"string"!=typeof n&&"number"!=typeof n||(c.width=n),"string"!=typeof r&&"number"!=typeof r||(c.height=r),"string"!=typeof a&&"number"!=typeof a||(c.borderRadius=a),i&&(c.borderRadius="50%"),void 0!==e&&(c["--base-color"]=e),void 0!==t&&(c["--highlight-color"]=t),"string"==typeof d&&(c["--custom-highlight-background"]=d),c}function o({count:e=1,wrapper:t,className:n,containerClassName:o,containerTestId:l,circle:u=!1,style:d,...c}){var h,m,p;const f=r.useContext(a),_={...c};for(const[e,t]of Object.entries(c))void 0===t&&delete _[e];const g={...f,..._,circle:u},y={...d,...i(g)};let v="react-loading-skeleton";n&&(v+=` ${n}`);const b=null!==(h=g.inline)&&void 0!==h&&h,M=[],w=Math.ceil(e);for(let t=0;te&&t===w-1){const t=null!==(m=n.width)&&void 0!==m?m:"100%",r=e%1,a="number"==typeof t?t*r:`calc(${t} * ${r})`;n={...n,width:a}}const a=r.createElement("span",{className:v,style:n,key:t},"‌");b?M.push(a):M.push(r.createElement(r.Fragment,{key:t},a,r.createElement("br",null)))}return r.createElement("span",{className:o,"data-testid":l,"aria-live":"polite","aria-busy":null!==(p=g.enableAnimation)&&void 0!==p?p:s},t?M.map((e,n)=>r.createElement(t,{key:n},e)):M)}function l({children:e,...t}){return r.createElement(a.Provider,{value:t},e)}},3179:function(e,t,n){!function(e){"use strict";e.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}(n(2689))},3239:function(e,t,n){!function(e){"use strict";e.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(e){return e+(/сехет$/i.exec(e)?"рен":/ҫул$/i.exec(e)?"тан":"ран")},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}})}(n(2689))},3310:function(e,t,n){!function(e){"use strict";e.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}})}(n(2689))},3315:function(e,t,n){!function(e){"use strict";function t(e,t){var n=e.split("_");return t%10==1&&t%100!=11?n[0]:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?n[1]:n[2]}function n(e,n,r){return"m"===r?n?"минута":"минуту":e+" "+t({ss:n?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:n?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",ww:"неделя_недели_недель",MM:"месяц_месяца_месяцев",yy:"год_года_лет"}[r],+e)}var r=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];e.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:r,longMonthsParse:r,shortMonthsParse:r,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:n,m:n,mm:n,h:"час",hh:n,d:"день",dd:n,w:"неделя",ww:n,M:"месяц",MM:n,y:"год",yy:n},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(e){return/^(дня|вечера)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночи":e<12?"утра":e<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-я";default:return e}},week:{dow:1,doy:4}})}(n(2689))},3350:function(e,t,n){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4},invalidDate:"Fecha inválida"})}(n(2689))},3369:function(e,t,n){!function(e){"use strict";e.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaður",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},3419:function(e,t,n){!function(e){"use strict";var t={1:"'inji",5:"'inji",8:"'inji",70:"'inji",80:"'inji",2:"'nji",7:"'nji",20:"'nji",50:"'nji",3:"'ünji",4:"'ünji",100:"'ünji",6:"'njy",9:"'unjy",10:"'unjy",30:"'unjy",60:"'ynjy",90:"'ynjy"};e.defineLocale("tk",{months:"Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr".split("_"),monthsShort:"Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek".split("_"),weekdays:"Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe".split("_"),weekdaysShort:"Ýek_Duş_Siş_Çar_Pen_Ann_Şen".split("_"),weekdaysMin:"Ýk_Dş_Sş_Çr_Pn_An_Şn".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün sagat] LT",nextDay:"[ertir sagat] LT",nextWeek:"[indiki] dddd [sagat] LT",lastDay:"[düýn] LT",lastWeek:"[geçen] dddd [sagat] LT",sameElse:"L"},relativeTime:{future:"%s soň",past:"%s öň",s:"birnäçe sekunt",m:"bir minut",mm:"%d minut",h:"bir sagat",hh:"%d sagat",d:"bir gün",dd:"%d gün",M:"bir aý",MM:"%d aý",y:"bir ýyl",yy:"%d ýyl"},ordinal:function(e,n){switch(n){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'unjy";var r=e%10,a=e%100-r,s=e>=100?100:null;return e+(t[r]||t[a]||t[s])}},week:{dow:1,doy:7}})}(n(2689))},3480:function(e,t,n){!function(e){"use strict";e.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}})}(n(2689))},3489:(e,t,n)=>{"use strict";const r=n(7944),a=n(8395),s=n(144);e.exports=(e,t)=>{e=new a(e,t);let n=new r("0.0.0");if(e.test(n))return n;if(n=new r("0.0.0-0"),e.test(n))return n;n=null;for(let t=0;t{const t=new r(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":i&&!s(t,i)||(i=t);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${e.operator}`)}}),!i||n&&!s(n,i)||(n=i)}return n&&e.test(n)?n:null}},3518:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(5959);const a=function(e){(0,r.useEffect)(e,[])};const s=function(e){a(function(){e()})}},3727:function(e,t,n){!function(e){"use strict";e.defineLocale("ja",{eras:[{since:"2019-05-01",offset:1,name:"令和",narrow:"㋿",abbr:"R"},{since:"1989-01-08",until:"2019-04-30",offset:1,name:"平成",narrow:"㍻",abbr:"H"},{since:"1926-12-25",until:"1989-01-07",offset:1,name:"昭和",narrow:"㍼",abbr:"S"},{since:"1912-07-30",until:"1926-12-24",offset:1,name:"大正",narrow:"㍽",abbr:"T"},{since:"1873-01-01",until:"1912-07-29",offset:6,name:"明治",narrow:"㍾",abbr:"M"},{since:"0001-01-01",until:"1873-12-31",offset:1,name:"西暦",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"紀元前",narrow:"BC",abbr:"BC"}],eraYearOrdinalRegex:/(元|\d+)年/,eraYearOrdinalParse:function(e,t){return"元"===t[1]?1:parseInt(t[1]||e,10)},months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiemParse:/午前|午後/i,isPM:function(e){return"午後"===e},meridiem:function(e,t,n){return e<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:function(e){return e.week()!==this.week()?"[来週]dddd LT":"dddd LT"},lastDay:"[昨日] LT",lastWeek:function(e){return this.week()!==e.week()?"[先週]dddd LT":"dddd LT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}日/,ordinal:function(e,t){switch(t){case"y":return 1===e?"元年":e+"年";case"d":case"D":case"DDD":return e+"日";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",ss:"%d秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}})}(n(2689))},3811:(e,t,n)=>{"use strict";const r=n(6909),a=n(7659),s=n(144),i=n(2077),o=n(599),l=n(7092);e.exports=(e,t,n,u)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e===n;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e!==n;case"":case"=":case"==":return r(e,n,u);case"!=":return a(e,n,u);case">":return s(e,n,u);case">=":return i(e,n,u);case"<":return o(e,n,u);case"<=":return l(e,n,u);default:throw new TypeError(`Invalid operator: ${t}`)}}},4031:e=>{"use strict";const t=/^[0-9]+$/,n=(e,n)=>{const r=t.test(e),a=t.test(n);return r&&a&&(e=+e,n=+n),e===n?0:r&&!a?-1:a&&!r?1:en(t,e)}},4197:function(e,t,n){!function(e){"use strict";var t={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},n=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},r={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},a=function(e){return function(t,a,s,i){var o=n(t),l=r[e][n(t)];return 2===o&&(l=l[a?0:1]),l.replace(/%d/i,t)}},s=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-ly",{months:s,monthsShort:s,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:a("s"),ss:a("s"),m:a("m"),mm:a("m"),h:a("h"),hh:a("h"),d:a("d"),dd:a("d"),M:a("M"),MM:a("M"),y:a("y"),yy:a("y")},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(2689))},4266:(e,t,n)=>{"use strict";const r=n(5463);e.exports=(e,t,n)=>r(e,t,"<",n)},4379:function(e,t,n){!function(e){"use strict";e.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(n(2689))},4449:function(e,t,n){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},r=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},a={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},s=function(e){return function(t,n,s,i){var o=r(t),l=a[e][r(t)];return 2===o&&(l=l[n?0:1]),l.replace(/%d/i,t)}},i=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar",{months:i,monthsShort:i,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:s("s"),ss:s("s"),m:s("m"),mm:s("m"),h:s("h"),hh:s("h"),d:s("d"),dd:s("d"),M:s("M"),MM:s("M"),y:s("y"),yy:s("y")},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(e){return n[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(2689))},4452:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function a(){for(var e="",t=0;t=3&&e%100<=10?3:e%100>=11?4:5},n={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},r=function(e){return function(r,a,s,i){var o=t(r),l=n[e][t(r)];return 2===o&&(l=l[a?0:1]),l.replace(/%d/i,r)}},a=["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-dz",{months:a,monthsShort:a,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:0,doy:4}})}(n(2689))},4568:(e,t,n)=>{"use strict";n.d(t,{e:()=>p});var r=n(1893),a=n(5959),s=n(1099),i=n(1570);function o(e){let{ref:t,onInteractOutside:n,isDisabled:r,onInteractOutsideStart:o}=e,u=(0,a.useRef)({isPointerDown:!1,ignoreEmulatedMouseEvents:!1}),d=(0,s.J)(e=>{n&&l(e,t)&&(o&&o(e),u.current.isPointerDown=!0)}),c=(0,s.J)(e=>{n&&n(e)});(0,a.useEffect)(()=>{let e=u.current;if(r)return;const n=t.current,a=(0,i.TW)(n);if("undefined"!=typeof PointerEvent){let n=n=>{e.isPointerDown&&l(n,t)&&c(n),e.isPointerDown=!1};return a.addEventListener("pointerdown",d,!0),a.addEventListener("click",n,!0),()=>{a.removeEventListener("pointerdown",d,!0),a.removeEventListener("click",n,!0)}}},[t,r,d,c])}function l(e,t){if(e.button>0)return!1;if(e.target){const t=e.target.ownerDocument;if(!t||!t.documentElement.contains(e.target))return!1;if(e.target.closest("[data-react-aria-top-layer]"))return!1}return!!t.current&&!e.composedPath().includes(t.current)}var u=n(8952);function d(){let e=(0,a.useRef)(new Map),t=(0,a.useCallback)((t,n,r,a)=>{let s=(null==a?void 0:a.once)?(...t)=>{e.current.delete(r),r(...t)}:r;e.current.set(r,{type:n,eventTarget:t,fn:s,options:a}),t.addEventListener(n,s,a)},[]),n=(0,a.useCallback)((t,n,r,a)=>{var s;let i=(null===(s=e.current.get(r))||void 0===s?void 0:s.fn)||r;t.removeEventListener(n,i,a),e.current.delete(r)},[]),r=(0,a.useCallback)(()=>{e.current.forEach((e,t)=>{n(e.eventTarget,e.type,t,e.options)})},[n]);return(0,a.useEffect)(()=>r,[r]),{addGlobalListener:t,removeGlobalListener:n,removeAllGlobalListeners:r}}var c=n(9070);function h(e){let{isDisabled:t,onBlurWithin:n,onFocusWithin:r,onFocusWithinChange:s}=e,o=(0,a.useRef)({isFocusWithin:!1}),{addGlobalListener:l,removeAllGlobalListeners:h}=d(),m=(0,a.useCallback)(e=>{e.currentTarget.contains(e.target)&&o.current.isFocusWithin&&!e.currentTarget.contains(e.relatedTarget)&&(o.current.isFocusWithin=!1,h(),n&&n(e),s&&s(!1))},[n,s,o,h]),p=(0,u.yB)(m),f=(0,a.useCallback)(e=>{if(!e.currentTarget.contains(e.target))return;const t=(0,i.TW)(e.target),n=(0,c.bq)(t);if(!o.current.isFocusWithin&&n===(0,c.wt)(e.nativeEvent)){r&&r(e),s&&s(!0),o.current.isFocusWithin=!0,p(e);let n=e.currentTarget;l(t,"focus",e=>{if(o.current.isFocusWithin&&!(0,c.sD)(n,e.target)){let r=new t.defaultView.FocusEvent("blur",{relatedTarget:e.target});(0,u.o1)(r,n);let a=(0,u.eg)(r);m(a)}},{capture:!0})}},[r,s,p,l,m]);return t?{focusWithinProps:{onFocus:void 0,onBlur:void 0}}:{focusWithinProps:{onFocus:f,onBlur:m}}}const m=[];function p(e,t){let{onClose:n,shouldCloseOnBlur:s,isOpen:i,isDismissable:l=!1,isKeyboardDismissDisabled:u=!1,shouldCloseOnInteractOutside:d}=e;(0,a.useEffect)(()=>{if(i&&!m.includes(t))return m.push(t),()=>{let e=m.indexOf(t);e>=0&&m.splice(e,1)}},[i,t]);let c=()=>{m[m.length-1]===t&&n&&n()};o({ref:t,onInteractOutside:l&&i?e=>{d&&!d(e.target)||(m[m.length-1]===t&&(e.stopPropagation(),e.preventDefault()),c())}:void 0,onInteractOutsideStart:e=>{d&&!d(e.target)||m[m.length-1]===t&&(e.stopPropagation(),e.preventDefault())}});let{focusWithinProps:p}=h({isDisabled:!s,onBlurWithin:e=>{e.relatedTarget&&!(0,r.Pu)(e.relatedTarget)&&(d&&!d(e.relatedTarget)||null==n||n())}});return{overlayProps:{onKeyDown:e=>{"Escape"!==e.key||u||e.nativeEvent.isComposing||(e.stopPropagation(),e.preventDefault(),c())},...p},underlayProps:{onPointerDown:e=>{e.target===e.currentTarget&&e.preventDefault()}}}}},4636:(e,t,n)=>{"use strict";function r(e){return r="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},r(e)}t.default=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var n=h(t);if(n&&n.has(e))return n.get(e);var a={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var o=s?Object.getOwnPropertyDescriptor(e,i):null;o&&(o.get||o.set)?Object.defineProperty(a,i,o):a[i]=e[i]}a.default=e,n&&n.set(e,a);return a}(n(5959)),s=c(n(2688)),i=c(n(7842)),o=n(414),l=n(544),u=c(n(9482)),d=["breakpoint","breakpoints","cols","layouts","margin","containerPadding","onBreakpointChange","onLayoutChange","onWidthChange"];function c(e){return e&&e.__esModule?e:{default:e}}function h(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(h=function(e){return e?n:t})(e)}function m(){return m=Object.assign||function(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _(e){for(var t=1;t=10?e:e+12:"ಸಂಜೆ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ರಾತ್ರಿ":e<10?"ಬೆಳಿಗ್ಗೆ":e<17?"ಮಧ್ಯಾಹ್ನ":e<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(ನೇ)/,ordinal:function(e){return e+"ನೇ"},week:{dow:0,doy:6}})}(n(2689))},4825:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(4942),a=n.n(r),s=n(278),i=n.n(s)()(a());i.push([e.id,".rc-drawer {\n inset: 0;\n position: fixed;\n z-index: 1050;\n pointer-events: none;\n}\n.rc-drawer-inline {\n position: absolute;\n}\n.rc-drawer-mask {\n inset: 0;\n position: absolute;\n z-index: 1050;\n background: rgba(0, 0, 0, 0.5);\n pointer-events: auto;\n}\n.rc-drawer-content-wrapper {\n position: absolute;\n z-index: 1050;\n overflow: hidden;\n transition: transform 0.3s;\n}\n.rc-drawer-content-wrapper-hidden {\n display: none;\n}\n.rc-drawer-left .rc-drawer-content-wrapper {\n top: 0;\n bottom: 0;\n left: 0;\n}\n.rc-drawer-right .rc-drawer-content-wrapper {\n top: 0;\n right: 0;\n bottom: 0;\n}\n.rc-drawer-content {\n width: 100%;\n height: 100%;\n overflow: auto;\n background: #fff;\n pointer-events: auto;\n}\n","",{version:3,sources:["webpack://./../node_modules/rc-drawer/assets/index.css"],names:[],mappings:"AAAA;EACE,QAAQ;EACR,eAAe;EACf,aAAa;EACb,oBAAoB;AACtB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,QAAQ;EACR,kBAAkB;EAClB,aAAa;EACb,8BAA8B;EAC9B,oBAAoB;AACtB;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,gBAAgB;EAChB,0BAA0B;AAC5B;AACA;EACE,aAAa;AACf;AACA;EACE,MAAM;EACN,SAAS;EACT,OAAO;AACT;AACA;EACE,MAAM;EACN,QAAQ;EACR,SAAS;AACX;AACA;EACE,WAAW;EACX,YAAY;EACZ,cAAc;EACd,gBAAgB;EAChB,oBAAoB;AACtB",sourcesContent:[".rc-drawer {\n inset: 0;\n position: fixed;\n z-index: 1050;\n pointer-events: none;\n}\n.rc-drawer-inline {\n position: absolute;\n}\n.rc-drawer-mask {\n inset: 0;\n position: absolute;\n z-index: 1050;\n background: rgba(0, 0, 0, 0.5);\n pointer-events: auto;\n}\n.rc-drawer-content-wrapper {\n position: absolute;\n z-index: 1050;\n overflow: hidden;\n transition: transform 0.3s;\n}\n.rc-drawer-content-wrapper-hidden {\n display: none;\n}\n.rc-drawer-left .rc-drawer-content-wrapper {\n top: 0;\n bottom: 0;\n left: 0;\n}\n.rc-drawer-right .rc-drawer-content-wrapper {\n top: 0;\n right: 0;\n bottom: 0;\n}\n.rc-drawer-content {\n width: 100%;\n height: 100%;\n overflow: auto;\n background: #fff;\n pointer-events: auto;\n}\n"],sourceRoot:""}]);const o=i},4914:function(e,t,n){!function(e){"use strict";var t=["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],n=["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],r=["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],a=["Did","Dil","Dim","Dic","Dia","Dih","Dis"],s=["Dò","Lu","Mà","Ci","Ar","Ha","Sa"];e.defineLocale("gd",{months:t,monthsShort:n,monthsParseExact:!0,weekdays:r,weekdaysShort:a,weekdaysMin:s,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n(2689))},4942:e=>{"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),a="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),s="/*# ".concat(a," */");return[t].concat([s]).join("\n")}return[t].join("\n")}},5027:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}e.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},5059:function(e,t,n){!function(e){"use strict";var t="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),n=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",t[7],t[8],t[9]];function r(e,t,n,r){var s="";switch(n){case"s":return r?"muutaman sekunnin":"muutama sekunti";case"ss":s=r?"sekunnin":"sekuntia";break;case"m":return r?"minuutin":"minuutti";case"mm":s=r?"minuutin":"minuuttia";break;case"h":return r?"tunnin":"tunti";case"hh":s=r?"tunnin":"tuntia";break;case"d":return r?"päivän":"päivä";case"dd":s=r?"päivän":"päivää";break;case"M":return r?"kuukauden":"kuukausi";case"MM":s=r?"kuukauden":"kuukautta";break;case"y":return r?"vuoden":"vuosi";case"yy":s=r?"vuoden":"vuotta"}return s=a(e,r)+" "+s}function a(e,r){return e<10?r?n[e]:t[e]:e}e.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},5192:function(e,t,n){!function(e){"use strict";var t={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function n(e,t,n){return n?t%10==1&&t%100!=11?e[2]:e[3]:t%10==1&&t%100!=11?e[0]:e[1]}function r(e,r,a){return e+" "+n(t[a],e,r)}function a(e,r,a){return n(t[a],e,r)}function s(e,t){return t?"dažas sekundes":"dažām sekundēm"}e.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s,ss:r,m:a,mm:r,h:a,hh:r,d:a,dd:r,M:a,MM:r,y:a,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},5198:function(e,t,n){!function(e){"use strict";e.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(e,t){return 12===e&&(e=0),"enjing"===t?e:"siyang"===t?e>=11?e:e+12:"sonten"===t||"ndalu"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"enjing":e<15?"siyang":e<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}(n(2689))},5225:(e,t,n)=>{"use strict";n.d(t,{c:()=>V});var r=n(7405),a=n(8102),s=n(9089),i=n(7850),o=n(9644);var l=n(5959),u=n(8398),d=n(8083),c=l.useLayoutEffect,h=["className","clearValue","cx","getStyles","getClassNames","getValue","hasValue","isMulti","isRtl","options","selectOption","selectProps","setValue","theme"],m=function(){};var p=function(e){e.className,e.clearValue,e.cx,e.getStyles,e.getClassNames,e.getValue,e.hasValue,e.isMulti,e.isRtl,e.options,e.selectOption,e.selectProps,e.setValue,e.theme;var t=(0,o.A)(e,h);return(0,r.A)({},t)},f=function(e,t,n){var r=e.cx,a=e.getStyles,s=e.getClassNames,i=e.className;return{css:a(t,e),className:r(null!=n?n:{},s(t,e),i)}};var _={get passive(){return!0}},g="undefined"!=typeof window?window:{};g.addEventListener&&g.removeEventListener&&(g.addEventListener("p",m,_),g.removeEventListener("p",m,!1));var y=["children","innerProps"],v=["children","innerProps"];var b,M=function(e){return"auto"===e?"bottom":e},w=(0,l.createContext)(null),L=function(e){var t=e.children,n=e.innerRef,r=e.innerProps;return(0,s.jsx)("div",(0,a.A)({},f(e,"menu",{menu:!0}),{ref:n},r),t)},S=["size"],k=["innerProps","isRtl","size"];var D,T,x={name:"8mmkcg",styles:"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0"},Y=function(e){var t=e.size,n=(0,o.A)(e,S);return(0,s.jsx)("svg",(0,a.A)({height:t,width:t,viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",css:x},n))},E=function(e){return(0,s.jsx)(Y,(0,a.A)({size:20},e),(0,s.jsx)("path",{d:"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"}))},O=function(e){return(0,s.jsx)(Y,(0,a.A)({size:20},e),(0,s.jsx)("path",{d:"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"}))},A=(0,s.keyframes)(b||(D=["\n 0%, 80%, 100% { opacity: 0; }\n 40% { opacity: 1; }\n"],T||(T=D.slice(0)),b=Object.freeze(Object.defineProperties(D,{raw:{value:Object.freeze(T)}})))),C=function(e){var t=e.delay,n=e.offset;return(0,s.jsx)("span",{css:(0,s.css)({animation:"".concat(A," 1s ease-in-out ").concat(t,"ms infinite;"),backgroundColor:"currentColor",borderRadius:"1em",display:"inline-block",marginLeft:n?"1em":void 0,height:"1em",verticalAlign:"top",width:"1em"},"","")})},R=function(e){var t=e.children,n=e.isDisabled,r=e.isFocused,i=e.innerRef,o=e.innerProps,l=e.menuIsOpen;return(0,s.jsx)("div",(0,a.A)({ref:i},f(e,"control",{control:!0,"control--is-disabled":n,"control--is-focused":r,"control--menu-is-open":l}),o,{"aria-disabled":n||void 0}),t)},P=["data"],j=function(e){var t=e.children,n=e.cx,r=e.getStyles,i=e.getClassNames,o=e.Heading,l=e.headingProps,u=e.innerProps,d=e.label,c=e.theme,h=e.selectProps;return(0,s.jsx)("div",(0,a.A)({},f(e,"group",{group:!0}),u),(0,s.jsx)(o,(0,a.A)({},l,{selectProps:h,theme:c,getStyles:r,getClassNames:i,cx:n}),d),(0,s.jsx)("div",null,t))},H=["innerRef","isDisabled","isHidden","inputClassName"],N={gridArea:"1 / 2",font:"inherit",minWidth:"2px",border:0,margin:0,outline:0,padding:0},I=((0,r.A)({content:'attr(data-value) " "',visibility:"hidden",whiteSpace:"pre"},N),function(e){return(0,r.A)({label:"input",color:"inherit",background:0,opacity:e?0:1,width:"100%"},N)}),F=function(e){var t=e.children,n=e.innerProps;return(0,s.jsx)("div",n,t)};var W=function(e){var t=e.children,n=e.components,a=e.data,i=e.innerProps,o=e.isDisabled,l=e.removeProps,u=e.selectProps,d=n.Container,c=n.Label,h=n.Remove;return(0,s.jsx)(d,{data:a,innerProps:(0,r.A)((0,r.A)({},f(e,"multiValue",{"multi-value":!0,"multi-value--is-disabled":o})),i),selectProps:u},(0,s.jsx)(c,{data:a,innerProps:(0,r.A)({},f(e,"multiValueLabel",{"multi-value__label":!0})),selectProps:u},t),(0,s.jsx)(h,{data:a,innerProps:(0,r.A)((0,r.A)({},f(e,"multiValueRemove",{"multi-value__remove":!0})),{},{"aria-label":"Remove ".concat(t||"option")},l),selectProps:u}))},V={ClearIndicator:function(e){var t=e.children,n=e.innerProps;return(0,s.jsx)("div",(0,a.A)({},f(e,"clearIndicator",{indicator:!0,"clear-indicator":!0}),n),t||(0,s.jsx)(E,null))},Control:R,DropdownIndicator:function(e){var t=e.children,n=e.innerProps;return(0,s.jsx)("div",(0,a.A)({},f(e,"dropdownIndicator",{indicator:!0,"dropdown-indicator":!0}),n),t||(0,s.jsx)(O,null))},DownChevron:O,CrossIcon:E,Group:j,GroupHeading:function(e){var t=p(e);t.data;var n=(0,o.A)(t,P);return(0,s.jsx)("div",(0,a.A)({},f(e,"groupHeading",{"group-heading":!0}),n))},IndicatorsContainer:function(e){var t=e.children,n=e.innerProps;return(0,s.jsx)("div",(0,a.A)({},f(e,"indicatorsContainer",{indicators:!0}),n),t)},IndicatorSeparator:function(e){var t=e.innerProps;return(0,s.jsx)("span",(0,a.A)({},t,f(e,"indicatorSeparator",{"indicator-separator":!0})))},Input:function(e){var t=e.cx,n=e.value,r=p(e),i=r.innerRef,l=r.isDisabled,u=r.isHidden,d=r.inputClassName,c=(0,o.A)(r,H);return(0,s.jsx)("div",(0,a.A)({},f(e,"input",{"input-container":!0}),{"data-value":n||""}),(0,s.jsx)("input",(0,a.A)({className:t({input:!0},d),ref:i,style:I(u),disabled:l},c)))},LoadingIndicator:function(e){var t=e.innerProps,n=e.isRtl,i=e.size,l=void 0===i?4:i,u=(0,o.A)(e,k);return(0,s.jsx)("div",(0,a.A)({},f((0,r.A)((0,r.A)({},u),{},{innerProps:t,isRtl:n,size:l}),"loadingIndicator",{indicator:!0,"loading-indicator":!0}),t),(0,s.jsx)(C,{delay:0,offset:n}),(0,s.jsx)(C,{delay:160,offset:!0}),(0,s.jsx)(C,{delay:320,offset:!n}))},Menu:L,MenuList:function(e){var t=e.children,n=e.innerProps,r=e.innerRef,i=e.isMulti;return(0,s.jsx)("div",(0,a.A)({},f(e,"menuList",{"menu-list":!0,"menu-list--is-multi":i}),{ref:r},n),t)},MenuPortal:function(e){var t=e.appendTo,n=e.children,o=e.controlElement,h=e.innerProps,m=e.menuPlacement,p=e.menuPosition,_=(0,l.useRef)(null),g=(0,l.useRef)(null),y=(0,l.useState)(M(m)),v=(0,i.A)(y,2),b=v[0],L=v[1],S=(0,l.useMemo)(function(){return{setPortalPlacement:L}},[]),k=(0,l.useState)(null),D=(0,i.A)(k,2),T=D[0],x=D[1],Y=(0,l.useCallback)(function(){if(o){var e=function(e){var t=e.getBoundingClientRect();return{bottom:t.bottom,height:t.height,left:t.left,right:t.right,top:t.top,width:t.width}}(o),t="fixed"===p?0:window.pageYOffset,n=e[b]+t;n===(null==T?void 0:T.offset)&&e.left===(null==T?void 0:T.rect.left)&&e.width===(null==T?void 0:T.rect.width)||x({offset:n,rect:e})}},[o,p,b,null==T?void 0:T.offset,null==T?void 0:T.rect.left,null==T?void 0:T.rect.width]);c(function(){Y()},[Y]);var E=(0,l.useCallback)(function(){"function"==typeof g.current&&(g.current(),g.current=null),o&&_.current&&(g.current=(0,d.ll)(o,_.current,Y,{elementResize:"ResizeObserver"in window}))},[o,Y]);c(function(){E()},[E]);var O=(0,l.useCallback)(function(e){_.current=e,E()},[E]);if(!t&&"fixed"!==p||!T)return null;var A=(0,s.jsx)("div",(0,a.A)({ref:O},f((0,r.A)((0,r.A)({},e),{},{offset:T.offset,position:p,rect:T.rect}),"menuPortal",{"menu-portal":!0}),h),n);return(0,s.jsx)(w.Provider,{value:S},t?(0,u.createPortal)(A,t):A)},LoadingMessage:function(e){var t=e.children,n=void 0===t?"Loading...":t,i=e.innerProps,l=(0,o.A)(e,v);return(0,s.jsx)("div",(0,a.A)({},f((0,r.A)((0,r.A)({},l),{},{children:n,innerProps:i}),"loadingMessage",{"menu-notice":!0,"menu-notice--loading":!0}),i),n)},NoOptionsMessage:function(e){var t=e.children,n=void 0===t?"No options":t,i=e.innerProps,l=(0,o.A)(e,y);return(0,s.jsx)("div",(0,a.A)({},f((0,r.A)((0,r.A)({},l),{},{children:n,innerProps:i}),"noOptionsMessage",{"menu-notice":!0,"menu-notice--no-options":!0}),i),n)},MultiValue:W,MultiValueContainer:F,MultiValueLabel:F,MultiValueRemove:function(e){var t=e.children,n=e.innerProps;return(0,s.jsx)("div",(0,a.A)({role:"button"},n),t||(0,s.jsx)(E,{size:14}))},Option:function(e){var t=e.children,n=e.isDisabled,r=e.isFocused,i=e.isSelected,o=e.innerRef,l=e.innerProps;return(0,s.jsx)("div",(0,a.A)({},f(e,"option",{option:!0,"option--is-disabled":n,"option--is-focused":r,"option--is-selected":i}),{ref:o,"aria-disabled":n},l),t)},Placeholder:function(e){var t=e.children,n=e.innerProps;return(0,s.jsx)("div",(0,a.A)({},f(e,"placeholder",{placeholder:!0}),n),t)},SelectContainer:function(e){var t=e.children,n=e.innerProps,r=e.isDisabled,i=e.isRtl;return(0,s.jsx)("div",(0,a.A)({},f(e,"container",{"--is-disabled":r,"--is-rtl":i}),n),t)},SingleValue:function(e){var t=e.children,n=e.isDisabled,r=e.innerProps;return(0,s.jsx)("div",(0,a.A)({},f(e,"singleValue",{"single-value":!0,"single-value--is-disabled":n}),r),t)},ValueContainer:function(e){var t=e.children,n=e.innerProps,r=e.isMulti,i=e.hasValue;return(0,s.jsx)("div",(0,a.A)({},f(e,"valueContainer",{"value-container":!0,"value-container--is-multi":r,"value-container--has-value":i}),n),t)}}},5251:function(e,t,n){!function(e){"use strict";e.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"siang"===t?e>=11?e:e+12:"sore"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:0,doy:6}})}(n(2689))},5292:e=>{"use strict";var t=[];function n(e){for(var n=-1,r=0;r1?e.substring(e.length-2):"";return 12==n||13==n||"2"!=t&&"3"!=t&&"50"!=n&&"70"!=t&&"80"!=t?"ê":"yê"}e.defineLocale("ku-kmr",{months:"Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar".split("_"),monthsShort:"Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber".split("_"),monthsParseExact:!0,weekdays:"Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî".split("_"),weekdaysShort:"Yek_Du_Sê_Çar_Pên_În_Şem".split("_"),weekdaysMin:"Ye_Du_Sê_Ça_Pê_În_Şe".split("_"),meridiem:function(e,t,n){return e<12?n?"bn":"BN":n?"pn":"PN"},meridiemParse:/bn|BN|pn|PN/,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"Do MMMM[a] YYYY[an]",LLL:"Do MMMM[a] YYYY[an] HH:mm",LLLL:"dddd, Do MMMM[a] YYYY[an] HH:mm",ll:"Do MMM[.] YYYY[an]",lll:"Do MMM[.] YYYY[an] HH:mm",llll:"ddd[.], Do MMM[.] YYYY[an] HH:mm"},calendar:{sameDay:"[Îro di saet] LT [de]",nextDay:"[Sibê di saet] LT [de]",nextWeek:"dddd [di saet] LT [de]",lastDay:"[Duh di saet] LT [de]",lastWeek:"dddd[a borî di saet] LT [de]",sameElse:"L"},relativeTime:{future:"di %s de",past:"berî %s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,w:t,ww:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(?:yê|ê|\.)/,ordinal:function(e,t){var r=t.toLowerCase();return r.includes("w")||r.includes("m")?e+".":e+n(e)},week:{dow:1,doy:4}})}(n(2689))},5334:(e,t,n)=>{"use strict";const r=n(7944),a=n(5860),{safeRe:s,t:i}=n(6850);e.exports=(e,t)=>{if(e instanceof r)return e;if("number"==typeof e&&(e=String(e)),"string"!=typeof e)return null;let n=null;if((t=t||{}).rtl){const r=t.includePrerelease?s[i.COERCERTLFULL]:s[i.COERCERTL];let a;for(;(a=r.exec(e))&&(!n||n.index+n[0].length!==e.length);)n&&a.index+a[0].length===n.index+n[0].length||(n=a),r.lastIndex=a.index+a[1].length+a[2].length;r.lastIndex=-1}else n=e.match(t.includePrerelease?s[i.COERCEFULL]:s[i.COERCE]);if(null===n)return null;const o=n[2],l=n[3]||"0",u=n[4]||"0",d=t.includePrerelease&&n[5]?`-${n[5]}`:"",c=t.includePrerelease&&n[6]?`+${n[6]}`:"";return a(`${o}.${l}.${u}${d}${c}`,t)}},5363:function(e,t,n){!function(e){"use strict";var t={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],d:["jedan dan","jednog dana"],dd:["dan","dana","dana"],M:["jedan mesec","jednog meseca"],MM:["mesec","meseca","meseci"],y:["jednu godinu","jedne godine"],yy:["godinu","godine","godina"]},correctGrammaticalCase:function(e,t){return e%10>=1&&e%10<=4&&(e%100<10||e%100>=20)?e%10==1?t[0]:t[1]:t[2]},translate:function(e,n,r,a){var s,i=t.words[r];return 1===r.length?"y"===r&&n?"jedna godina":a||n?i[0]:i[1]:(s=t.correctGrammaticalCase(e,i),"yy"===r&&n&&"godinu"===s?e+" godina":e+" "+s)}};e.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:t.translate,dd:t.translate,M:t.translate,MM:t.translate,y:t.translate,yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},5380:(e,t,n)=>{"use strict";const r=n(7944);e.exports=(e,t,n)=>new r(e,n).compare(new r(t,n))},5387:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={s:["thoddea sekondamni","thodde sekond"],ss:[e+" sekondamni",e+" sekond"],m:["eka mintan","ek minut"],mm:[e+" mintamni",e+" mintam"],h:["eka voran","ek vor"],hh:[e+" voramni",e+" voram"],d:["eka disan","ek dis"],dd:[e+" disamni",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineamni",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsamni",e+" vorsam"]};return r?a[n][0]:a[n][1]}e.defineLocale("gom-latn",{months:{standalone:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),format:"Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Fuddlo] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fattlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,t){return"D"===t?e+"er":e},week:{dow:0,doy:3},meridiemParse:/rati|sokallim|donparam|sanje/,meridiemHour:function(e,t){return 12===e&&(e=0),"rati"===t?e<4?e:e+12:"sokallim"===t?e:"donparam"===t?e>12?e:e+12:"sanje"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"rati":e<12?"sokallim":e<16?"donparam":e<20?"sanje":"rati"}})}(n(2689))},5460:(e,t,n)=>{"use strict";n.d(t,{ME:()=>v});var r=n(8952),a=n(7176);var s=n(1570);n(5959);let i=null,o=new Set,l=new Map,u=!1,d=!1;function c(e,t){for(let n of o)n(e,t)}function h(e){u=!0,function(e){return!(e.metaKey||!(0,a.cX)()&&e.altKey||e.ctrlKey||"Control"===e.key||"Shift"===e.key||"Meta"===e.key)}(e)&&(i="keyboard",c("keyboard",e))}function m(e){i="pointer","mousedown"!==e.type&&"pointerdown"!==e.type||(u=!0,c("pointer",e))}function p(e){var t;(0===(t=e).mozInputSource&&t.isTrusted||((0,a.m0)()&&t.pointerType?"click"===t.type&&1===t.buttons:0===t.detail&&!t.pointerType))&&(u=!0,i="virtual")}function f(e){e.target!==window&&e.target!==document&&!r.lR&&e.isTrusted&&(u||d||(i="virtual",c("virtual",e)),u=!1,d=!1)}function _(){r.lR||(u=!1,d=!0)}function g(e){if("undefined"==typeof window||"undefined"==typeof document||l.get((0,s.mD)(e)))return;const t=(0,s.mD)(e),n=(0,s.TW)(e);let r=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(){u=!0,r.apply(this,arguments)},n.addEventListener("keydown",h,!0),n.addEventListener("keyup",h,!0),n.addEventListener("click",p,!0),t.addEventListener("focus",f,!0),t.addEventListener("blur",_,!1),"undefined"!=typeof PointerEvent&&(n.addEventListener("pointerdown",m,!0),n.addEventListener("pointermove",m,!0),n.addEventListener("pointerup",m,!0)),t.addEventListener("beforeunload",()=>{y(e)},{once:!0}),l.set(t,{focus:r})}const y=(e,t)=>{const n=(0,s.mD)(e),r=(0,s.TW)(e);t&&r.removeEventListener("DOMContentLoaded",t),l.has(n)&&(n.HTMLElement.prototype.focus=l.get(n).focus,r.removeEventListener("keydown",h,!0),r.removeEventListener("keyup",h,!0),r.removeEventListener("click",p,!0),n.removeEventListener("focus",f,!0),n.removeEventListener("blur",_,!1),"undefined"!=typeof PointerEvent&&(r.removeEventListener("pointerdown",m,!0),r.removeEventListener("pointermove",m,!0),r.removeEventListener("pointerup",m,!0)),l.delete(n))};function v(){return i}"undefined"!=typeof document&&function(e){const t=(0,s.TW)(e);let n;"loading"!==t.readyState?g(e):(n=()=>{g(e)},t.addEventListener("DOMContentLoaded",n))}();new Set(["checkbox","radio","range","color","file","image","button","submit","reset"])},5463:(e,t,n)=>{"use strict";const r=n(7944),a=n(9524),{ANY:s}=a,i=n(8395),o=n(1722),l=n(144),u=n(599),d=n(7092),c=n(2077);e.exports=(e,t,n,h)=>{let m,p,f,_,g;switch(e=new r(e,h),t=new i(t,h),n){case">":m=l,p=d,f=u,_=">",g=">=";break;case"<":m=u,p=c,f=l,_="<",g="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(o(e,t,h))return!1;for(let n=0;n{e.semver===s&&(e=new a(">=0.0.0")),i=i||e,o=o||e,m(e.semver,i.semver,h)?i=e:f(e.semver,o.semver,h)&&(o=e)}),i.operator===_||i.operator===g)return!1;if((!o.operator||o.operator===_)&&p(e,o.semver))return!1;if(o.operator===g&&f(e,o.semver))return!1}return!0}},5540:(e,t,n)=>{"use strict";n.d(t,{w:()=>a});var r=n(5959);function a(e){const{ref:t,box:n,onResize:a}=e;(0,r.useEffect)(()=>{let e=null==t?void 0:t.current;if(e){if(void 0===window.ResizeObserver)return window.addEventListener("resize",a,!1),()=>{window.removeEventListener("resize",a,!1)};{const t=new window.ResizeObserver(e=>{e.length&&a()});return t.observe(e,{box:n}),()=>{e&&t.unobserve(e)}}}},[a,t,n])}},5565:function(e,t,n){!function(e){"use strict";function t(e,t,n){var r=" ";return(e%100>=20||e>=100&&e%100==0)&&(r=" de "),e+r+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",ww:"săptămâni",MM:"luni",yy:"ani"}[n]}e.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:t,m:"un minut",mm:t,h:"o oră",hh:t,d:"o zi",dd:t,w:"o săptămână",ww:t,M:"o lună",MM:t,y:"un an",yy:t},week:{dow:1,doy:7}})}(n(2689))},5662:function(e,t,n){!function(e){"use strict";e.defineLocale("oc-lnc",{months:{standalone:"genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre".split("_"),format:"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dm._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dm_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:"[uèi a] LT",nextDay:"[deman a] LT",nextWeek:"dddd [a] LT",lastDay:"[ièr a] LT",lastWeek:"dddd [passat a] LT",sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"unas segondas",ss:"%d segondas",m:"una minuta",mm:"%d minutas",h:"una ora",hh:"%d oras",d:"un jorn",dd:"%d jorns",M:"un mes",MM:"%d meses",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}})}(n(2689))},5718:function(e,t,n){!function(e){"use strict";e.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,t,n){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},5730:(e,t,n)=>{"use strict";n.d(t,{Y:()=>a});var r=n(116);const a=[{code:r.MB,name:"English"},{code:r.NY,name:"Français"},{code:r.d_,name:"Español"},{code:r.rT,name:"Deutsch"},{code:r.fY,name:"中文(简体)"},{code:r.jQ,name:"Português Brasileiro"},{code:r.AY,name:"中文(繁體)"},{code:r.bE,name:"Italiano"},{code:r.Hp,name:"日本語"},{code:r.IP,name:"Bahasa Indonesia"},{code:r.y6,name:"한국어"},{code:r.k8,name:"Русский"},{code:r.w2,name:"Čeština"},{code:r.wQ,name:"Nederlands"},{code:r.tv,name:"Magyar"},{code:r.LE,name:"Português"},{code:r.tS,name:"Polski"},{code:r.$0,name:"Svenska"},{code:r.mz,name:"Türkçe"}]},5755:(e,t,n)=>{"use strict";n.d(t,{s:()=>E});var r=n(3003),a=n(1099),s=n(5959);function i(e){let[t,n]=(0,s.useState)(e),i=(0,s.useRef)(null),o=(0,a.J)(()=>{if(!i.current)return;let e=i.current.next();e.done?i.current=null:t===e.value?o():n(e.value)});(0,r.N)(()=>{i.current&&o()});let l=(0,a.J)(e=>{i.current=e(t),o()});return[t,l]}const o={prefix:String(Math.round(1e10*Math.random())),current:0},l=s.createContext(o),u=s.createContext(!1);Boolean("undefined"!=typeof window&&window.document&&window.document.createElement);let d=new WeakMap;function c(e=!1){let t=(0,s.useContext)(l),n=(0,s.useRef)(null);if(null===n.current&&!e){var r,a;let e=null===(a=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)||void 0===a||null===(r=a.ReactCurrentOwner)||void 0===r?void 0:r.current;if(e){let n=d.get(e);null==n?d.set(e,{id:t.current,state:e.memoizedState}):e.memoizedState!==n.state&&(t.current=n.id,d.delete(e))}n.current=++t.current}return n.current}const h="function"==typeof s.useId?function(e){let t=s.useId(),[n]=(0,s.useState)("function"==typeof s.useSyncExternalStore?s.useSyncExternalStore(f,m,p):(0,s.useContext)(u));return e||`${n?"react-aria":`react-aria${o.prefix}`}-${t}`}:function(e){let t=(0,s.useContext)(l),n=c(!!e),r=`react-aria${t.prefix}`;return e||`${r}-${n}`};function m(){return!1}function p(){return!0}function f(e){return()=>{}}let _,g=Boolean("undefined"!=typeof window&&window.document&&window.document.createElement),y=new Map;function v(e=[]){let t=function(e){let[t,n]=(0,s.useState)(e),a=(0,s.useRef)(null),i=h(t),o=(0,s.useRef)(null);if(_&&_.register(o,i),g){const e=y.get(i);e&&!e.includes(a)?e.push(a):y.set(i,[a])}return(0,r.N)(()=>{let e=i;return()=>{_&&_.unregister(o),y.delete(e)}},[i]),(0,s.useEffect)(()=>{let e=a.current;return e&&n(e),()=>{e&&(a.current=null)}}),i}(),[n,a]=i(t),o=(0,s.useCallback)(()=>{a(function*(){yield t,yield document.getElementById(t)?t:void 0})},[t,a]);return(0,r.N)(o,[t,o,...e]),n}"undefined"!=typeof FinalizationRegistry&&(_=new FinalizationRegistry(e=>{y.delete(e)}));const b=new Set(["id"]),M=new Set(["aria-label","aria-labelledby","aria-describedby","aria-details"]),w=new Set(["href","hrefLang","target","rel","download","ping","referrerPolicy"]),L=new Set(["dir","lang","hidden","inert","translate"]),S=new Set(["onClick","onAuxClick","onContextMenu","onDoubleClick","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onTouchCancel","onTouchEnd","onTouchMove","onTouchStart","onPointerDown","onPointerMove","onPointerUp","onPointerCancel","onPointerEnter","onPointerLeave","onPointerOver","onPointerOut","onGotPointerCapture","onLostPointerCapture","onScroll","onWheel","onAnimationStart","onAnimationEnd","onAnimationIteration","onTransitionCancel","onTransitionEnd","onTransitionRun","onTransitionStart"]),k=/^(data-.*)$/;function D(e,t={}){let{labelable:n,isLink:r,global:a,events:s=a,propNames:i}=t,o={};for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&(b.has(t)||n&&M.has(t)||r&&w.has(t)||a&&L.has(t)||s&&S.has(t)||t.endsWith("Capture")&&S.has(t.slice(0,-7))||(null==i?void 0:i.has(t))||k.test(t))&&(o[t]=e[t]);return o}var T=n(5780);n(8398);const x=s.createContext(null);function Y(){let e=(0,s.useContext)(x),t=null==e?void 0:e.setContain;(0,r.N)(()=>{null==t||t(!0)},[t])}function E(e,t){let{role:n="dialog"}=e,r=v();r=e["aria-label"]?void 0:r;let a=(0,s.useRef)(!1);return(0,s.useEffect)(()=>{if(t.current&&!t.current.contains(document.activeElement)){(0,T.l)(t.current);let e=setTimeout(()=>{document.activeElement===t.current&&(a.current=!0,t.current&&(t.current.blur(),(0,T.l)(t.current)),a.current=!1)},500);return()=>{clearTimeout(e)}}},[t]),Y(),{dialogProps:{...D(e,{labelable:!0}),role:n,tabIndex:-1,"aria-labelledby":e["aria-labelledby"]||r,onBlur:e=>{a.current&&e.stopPropagation()}},titleProps:{id:r}}}},5780:(e,t,n)=>{"use strict";n.d(t,{l:()=>h});var r=n(5460),a=n(1570),s=n(9070);let i=new Map,o=new Set;function l(){if("undefined"==typeof window)return;function e(e){return"propertyName"in e}let t=n=>{if(!e(n)||!n.target)return;let r=i.get(n.target);if(r&&(r.delete(n.propertyName),0===r.size&&(n.target.removeEventListener("transitioncancel",t),i.delete(n.target)),0===i.size)){for(let e of o)e();o.clear()}};document.body.addEventListener("transitionrun",n=>{if(!e(n)||!n.target)return;let r=i.get(n.target);r||(r=new Set,i.set(n.target,r),n.target.addEventListener("transitioncancel",t,{once:!0})),r.add(n.propertyName)}),document.body.addEventListener("transitionend",t)}function u(e){requestAnimationFrame(()=>{!function(){for(const[e]of i)"isConnected"in e&&!e.isConnected&&i.delete(e)}(),0===i.size?e():o.add(e)})}function d(e){if(function(){if(null==c){c=!1;try{document.createElement("div").focus({get preventScroll(){return c=!0,!0}})}catch{}}return c}())e.focus({preventScroll:!0});else{let t=function(e){let t=e.parentNode,n=[],r=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==r;)(t.offsetHeight{(0,s.bq)(t)===r&&e.isConnected&&d(e)})}else d(e)}},5860:(e,t,n)=>{"use strict";const r=n(7944);e.exports=(e,t,n=!1)=>{if(e instanceof r)return e;try{return new r(e,t)}catch(e){if(!n)return null;throw e}}},5865:function(e,t,n){!function(e){"use strict";var t={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};e.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"bir neçə saniyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(e){return/^(gündüz|axşam)$/.test(e)},meridiem:function(e,t,n){return e<4?"gecə":e<12?"səhər":e<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(e){if(0===e)return e+"-ıncı";var n=e%10,r=e%100-n,a=e>=100?100:null;return e+(t[n]||t[r]||t[a])},week:{dow:1,doy:7}})}(n(2689))},5887:function(e,t,n){!function(e){"use strict";e.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[Għada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},5955:(e,t,n)=>{"use strict";const r=n(7944);e.exports=(e,t,n,a,s)=>{"string"==typeof n&&(s=a,a=n,n=void 0);try{return new r(e instanceof r?e.version:e,n).inc(t,a,s).version}catch(e){return null}}},5961:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){if("m"===n)return t?"jedna minuta":r?"jednu minutu":"jedne minute"}function n(e,t,n){var r=e+" ";switch(n){case"ss":return r+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"mm":return r+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return"jedan sat";case"hh":return r+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return r+=1===e?"dan":"dana";case"MM":return r+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return r+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}e.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:n,m:t,mm:n,h:n,hh:n,d:"dan",dd:n,M:"mjesec",MM:n,y:"godinu",yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},5964:function(e,t,n){!function(e){"use strict";e.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2689))},5986:(e,t,n)=>{"use strict";const r=n(7944);e.exports=(e,t)=>new r(e,t).minor},6033:(e,t,n)=>{"use strict";const r=n(2801);e.exports=(e,t)=>e.sort((e,n)=>r(n,e,t))},6080:function(e,t,n){!function(e){"use strict";var t=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],n=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];e.defineLocale("dv",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(e){return"މފ"===e},meridiem:function(e,t,n){return e<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:7,doy:12}})}(n(2689))},6087:(e,t)=>{"use strict";var n,r=Symbol.for("react.element"),a=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),u=Symbol.for("react.context"),d=Symbol.for("react.server_context"),c=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),m=Symbol.for("react.suspense_list"),p=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),_=Symbol.for("react.offscreen");function g(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case s:case o:case i:case h:case m:return e;default:switch(e=e&&e.$$typeof){case d:case u:case c:case f:case p:case l:return e;default:return t}}case a:return t}}}n=Symbol.for("react.module.reference"),t.ForwardRef=c,t.isMemo=function(e){return g(e)===p}},6118:function(e,t,n){!function(e){"use strict";var t="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),n="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_"),r=[/^sty/i,/^lut/i,/^mar/i,/^kwi/i,/^maj/i,/^cze/i,/^lip/i,/^sie/i,/^wrz/i,/^paź/i,/^lis/i,/^gru/i];function a(e){return e%10<5&&e%10>1&&~~(e/10)%10!=1}function s(e,t,n){var r=e+" ";switch(n){case"ss":return r+(a(e)?"sekundy":"sekund");case"m":return t?"minuta":"minutę";case"mm":return r+(a(e)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return r+(a(e)?"godziny":"godzin");case"ww":return r+(a(e)?"tygodnie":"tygodni");case"MM":return r+(a(e)?"miesiące":"miesięcy");case"yy":return r+(a(e)?"lata":"lat")}}e.defineLocale("pl",{months:function(e,r){return e?/D MMMM/.test(r)?n[e.month()]:t[e.month()]:t},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:s,m:s,mm:s,h:s,hh:s,d:"1 dzień",dd:"%d dni",w:"tydzień",ww:s,M:"miesiąc",MM:s,y:"rok",yy:s},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},6145:(e,t,n)=>{"use strict";n.d(t,{CO:()=>a,rw:()=>r,yV:()=>s});const r={allowCustomValue:!0,includeAll:!1,multi:!1,options:[],skipUrlSync:!1};var a=(e=>(e[e.never=0]="never",e[e.onDashboardLoad=1]="onDashboardLoad",e[e.onTimeRangeChanged=2]="onTimeRangeChanged",e))(a||{});var s=(e=>(e[e.Crosshair=1]="Crosshair",e[e.Off=0]="Off",e[e.Tooltip=2]="Tooltip",e))(s||{})},6152:function(e,t,n){!function(e){"use strict";e.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(n(2689))},6317:function(e,t,n){!function(e){"use strict";var t={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},n={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};e.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12".split("_"),monthsShortRegex:/^(ཟླ་\d{1,2})/,monthsParseExact:!0,weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(e){return e.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(e,t){return 12===e&&(e=0),"མཚན་མོ"===t&&e>=4||"ཉིན་གུང"===t&&e<5||"དགོང་དག"===t?e+12:e},meridiem:function(e,t,n){return e<4?"མཚན་མོ":e<10?"ཞོགས་ཀས":e<17?"ཉིན་གུང":e<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}})}(n(2689))},6333:(e,t,n)=>{"use strict";t.__esModule=!0,t.resizableProps=void 0;var r,a=(r=n(2688))&&r.__esModule?r:{default:r};n(8230);var s={axis:a.default.oneOf(["both","x","y","none"]),className:a.default.string,children:a.default.element.isRequired,draggableOpts:a.default.shape({allowAnyClick:a.default.bool,cancel:a.default.string,children:a.default.node,disabled:a.default.bool,enableUserSelectHack:a.default.bool,offsetParent:a.default.node,grid:a.default.arrayOf(a.default.number),handle:a.default.string,nodeRef:a.default.object,onStart:a.default.func,onDrag:a.default.func,onStop:a.default.func,onMouseDown:a.default.func,scale:a.default.number}),height:function(){for(var e=arguments.length,t=new Array(e),n=0;n1&&e<5}function a(e,t,n,a){var s=e+" ";switch(n){case"s":return t||a?"pár sekúnd":"pár sekundami";case"ss":return t||a?s+(r(e)?"sekundy":"sekúnd"):s+"sekundami";case"m":return t?"minúta":a?"minútu":"minútou";case"mm":return t||a?s+(r(e)?"minúty":"minút"):s+"minútami";case"h":return t?"hodina":a?"hodinu":"hodinou";case"hh":return t||a?s+(r(e)?"hodiny":"hodín"):s+"hodinami";case"d":return t||a?"deň":"dňom";case"dd":return t||a?s+(r(e)?"dni":"dní"):s+"dňami";case"M":return t||a?"mesiac":"mesiacom";case"MM":return t||a?s+(r(e)?"mesiace":"mesiacov"):s+"mesiacmi";case"y":return t||a?"rok":"rokom";case"yy":return t||a?s+(r(e)?"roky":"rokov"):s+"rokmi"}}e.defineLocale("sk",{months:t,monthsShort:n,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:case 4:case 5:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},6438:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(7451);function a(e,t){if(e){if("string"==typeof e)return(0,r.A)(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.A)(e,t):void 0}}},6441:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},6474:function(e,t,n){!function(e){"use strict";function t(e,t,n){return e+" "+a({mm:"munutenn",MM:"miz",dd:"devezh"}[n],e)}function n(e){switch(r(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}function r(e){return e>9?r(e%10):e}function a(e,t){return 2===t?s(e):e}function s(e){var t={m:"v",b:"v",d:"z"};return void 0===t[e.charAt(0)]?e:t[e.charAt(0)]+e.substring(1)}var i=[/^gen/i,/^c[ʼ\']hwe/i,/^meu/i,/^ebr/i,/^mae/i,/^(mez|eve)/i,/^gou/i,/^eos/i,/^gwe/i,/^her/i,/^du/i,/^ker/i],o=/^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,l=/^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,u=/^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,d=[/^sul/i,/^lun/i,/^meurzh/i,/^merc[ʼ\']her/i,/^yaou/i,/^gwener/i,/^sadorn/i],c=[/^Sul/i,/^Lun/i,/^Meu/i,/^Mer/i,/^Yao/i,/^Gwe/i,/^Sad/i],h=[/^Su/i,/^Lu/i,/^Me([^r]|$)/i,/^Mer/i,/^Ya/i,/^Gw/i,/^Sa/i];e.defineLocale("br",{months:"Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParse:h,fullWeekdaysParse:d,shortWeekdaysParse:c,minWeekdaysParse:h,monthsRegex:o,monthsShortRegex:o,monthsStrictRegex:l,monthsShortStrictRegex:u,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY HH:mm",LLLL:"dddd, D [a viz] MMMM YYYY HH:mm"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warcʼhoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Decʼh da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s ʼzo",s:"un nebeud segondennoù",ss:"%d eilenn",m:"ur vunutenn",mm:t,h:"un eur",hh:"%d eur",d:"un devezh",dd:t,M:"ur miz",MM:t,y:"ur bloaz",yy:n},dayOfMonthOrdinalParse:/\d{1,2}(añ|vet)/,ordinal:function(e){return e+(1===e?"añ":"vet")},week:{dow:1,doy:4},meridiemParse:/a.m.|g.m./,isPM:function(e){return"g.m."===e},meridiem:function(e,t,n){return e<12?"a.m.":"g.m."}})}(n(2689))},6492:function(e,t,n){!function(e){"use strict";e.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",ss:"%d hēkona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},6544:function(e,t,n){!function(e){"use strict";function t(e,t,n){var r=e+" ";switch(n){case"ss":return r+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return t?"jedna minuta":"jedne minute";case"mm":return r+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return t?"jedan sat":"jednog sata";case"hh":return r+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return r+=1===e?"dan":"dana";case"MM":return r+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return r+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}e.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"Do MMMM YYYY",LLL:"Do MMMM YYYY H:mm",LLLL:"dddd, Do MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:return"[prošlu] [nedjelju] [u] LT";case 3:return"[prošlu] [srijedu] [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},6557:function(e,t,n){!function(e){"use strict";e.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return 0===e.indexOf("un")?"n"+e:"en "+e},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},6601:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}e.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},6609:(e,t,n)=>{"use strict";t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var i=a?Object.getOwnPropertyDescriptor(e,s):null;i&&(i.get||i.set)?Object.defineProperty(r,s,i):r[s]=e[s]}r.default=e,n&&n.set(e,r);return r}(n(5959)),a=l(n(2688)),s=l(n(1794)),i=n(6333),o=["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles","style","transformScale"];function l(e){return e&&e.__esModule?e:{default:e}}function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,o);return r.createElement(s.default,{axis:p,draggableOpts:l,handle:t,handleSize:n,height:this.state.height,lockAspectRatio:m,maxConstraints:c,minConstraints:u,onResizeStart:a,onResize:this.onResize,onResizeStop:i,resizeHandles:f,transformScale:g,width:this.state.width},r.createElement("div",d({},y,{style:h(h({},_),{},{width:this.state.width+"px",height:this.state.height+"px"})})))},a}(r.Component);t.default=f,f.propTypes=h(h({},i.resizableProps),{},{children:a.default.element})},6627:function(e,t,n){!function(e){"use strict";function t(e,t){var n=e.split("_");return t%10==1&&t%100!=11?n[0]:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?n[1]:n[2]}function n(e,n,r){return"m"===r?n?"хвіліна":"хвіліну":"h"===r?n?"гадзіна":"гадзіну":e+" "+t({ss:n?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:n?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:n?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"}[r],+e)}e.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:n,mm:n,h:n,hh:n,d:"дзень",dd:n,M:"месяц",MM:n,y:"год",yy:n},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(e){return/^(дня|вечара)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночы":e<12?"раніцы":e<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-ы":e+"-і";case"D":return e+"-га";default:return e}},week:{dow:1,doy:7}})}(n(2689))},6711:function(e,t,n){!function(e){"use strict";e.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}}})}(n(2689))},6732:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.dontSetMe=function(e,t,n){if(e[t])return new Error(`Invalid prop ${t} passed to ${n} - do not set this, set it on the child.`)},t.findInArray=function(e,t){for(let n=0,r=e.length;n{"use strict";function r(e){return r="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},r(e)}t.default=function(e){var t;return t=function(t){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&h(e,t)}(u,t);var n,s,l=(n=u,s=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}(),function(){var e,t=p(n);if(s){var a=p(this).constructor;e=Reflect.construct(t,arguments,a)}else e=t.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return m(e)}(this,e)});function u(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,u);for(var t=arguments.length,n=new Array(t),r=0;r=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(t,o);return n&&!this.mounted?a.createElement("div",{className:(0,i.default)(this.props.className,_),style:this.props.style,ref:this.elementRef}):a.createElement(e,d({innerRef:this.elementRef},r,this.state))}}]),u}(a.Component),f(t,"defaultProps",{measureBeforeMount:!1}),f(t,"propTypes",{measureBeforeMount:s.default.bool}),t};var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var a={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var o=s?Object.getOwnPropertyDescriptor(e,i):null;o&&(o.get||o.set)?Object.defineProperty(a,i,o):a[i]=e[i]}a.default=e,n&&n.set(e,a);return a}(n(5959)),s=l(n(2688)),i=l(n(7256)),o=["measureBeforeMount"];function l(e){return e&&e.__esModule?e:{default:e}}function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function d(){return d=Object.assign||function(e){for(var t=1;t{"use strict";const{MAX_SAFE_COMPONENT_LENGTH:r,MAX_SAFE_BUILD_LENGTH:a,MAX_LENGTH:s}=n(9630),i=n(9796),o=(t=e.exports={}).re=[],l=t.safeRe=[],u=t.src=[],d=t.safeSrc=[],c=t.t={};let h=0;const m="[a-zA-Z0-9-]",p=[["\\s",1],["\\d",s],[m,a]],f=(e,t,n)=>{const r=(e=>{for(const[t,n]of p)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e})(t),a=h++;i(e,a,t),c[e]=a,u[a]=t,d[a]=r,o[a]=new RegExp(t,n?"g":void 0),l[a]=new RegExp(r,n?"g":void 0)};f("NUMERICIDENTIFIER","0|[1-9]\\d*"),f("NUMERICIDENTIFIERLOOSE","\\d+"),f("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${m}*`),f("MAINVERSION",`(${u[c.NUMERICIDENTIFIER]})\\.(${u[c.NUMERICIDENTIFIER]})\\.(${u[c.NUMERICIDENTIFIER]})`),f("MAINVERSIONLOOSE",`(${u[c.NUMERICIDENTIFIERLOOSE]})\\.(${u[c.NUMERICIDENTIFIERLOOSE]})\\.(${u[c.NUMERICIDENTIFIERLOOSE]})`),f("PRERELEASEIDENTIFIER",`(?:${u[c.NONNUMERICIDENTIFIER]}|${u[c.NUMERICIDENTIFIER]})`),f("PRERELEASEIDENTIFIERLOOSE",`(?:${u[c.NONNUMERICIDENTIFIER]}|${u[c.NUMERICIDENTIFIERLOOSE]})`),f("PRERELEASE",`(?:-(${u[c.PRERELEASEIDENTIFIER]}(?:\\.${u[c.PRERELEASEIDENTIFIER]})*))`),f("PRERELEASELOOSE",`(?:-?(${u[c.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${u[c.PRERELEASEIDENTIFIERLOOSE]})*))`),f("BUILDIDENTIFIER",`${m}+`),f("BUILD",`(?:\\+(${u[c.BUILDIDENTIFIER]}(?:\\.${u[c.BUILDIDENTIFIER]})*))`),f("FULLPLAIN",`v?${u[c.MAINVERSION]}${u[c.PRERELEASE]}?${u[c.BUILD]}?`),f("FULL",`^${u[c.FULLPLAIN]}$`),f("LOOSEPLAIN",`[v=\\s]*${u[c.MAINVERSIONLOOSE]}${u[c.PRERELEASELOOSE]}?${u[c.BUILD]}?`),f("LOOSE",`^${u[c.LOOSEPLAIN]}$`),f("GTLT","((?:<|>)?=?)"),f("XRANGEIDENTIFIERLOOSE",`${u[c.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),f("XRANGEIDENTIFIER",`${u[c.NUMERICIDENTIFIER]}|x|X|\\*`),f("XRANGEPLAIN",`[v=\\s]*(${u[c.XRANGEIDENTIFIER]})(?:\\.(${u[c.XRANGEIDENTIFIER]})(?:\\.(${u[c.XRANGEIDENTIFIER]})(?:${u[c.PRERELEASE]})?${u[c.BUILD]}?)?)?`),f("XRANGEPLAINLOOSE",`[v=\\s]*(${u[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[c.XRANGEIDENTIFIERLOOSE]})(?:${u[c.PRERELEASELOOSE]})?${u[c.BUILD]}?)?)?`),f("XRANGE",`^${u[c.GTLT]}\\s*${u[c.XRANGEPLAIN]}$`),f("XRANGELOOSE",`^${u[c.GTLT]}\\s*${u[c.XRANGEPLAINLOOSE]}$`),f("COERCEPLAIN",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?`),f("COERCE",`${u[c.COERCEPLAIN]}(?:$|[^\\d])`),f("COERCEFULL",u[c.COERCEPLAIN]+`(?:${u[c.PRERELEASE]})?`+`(?:${u[c.BUILD]})?(?:$|[^\\d])`),f("COERCERTL",u[c.COERCE],!0),f("COERCERTLFULL",u[c.COERCEFULL],!0),f("LONETILDE","(?:~>?)"),f("TILDETRIM",`(\\s*)${u[c.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",f("TILDE",`^${u[c.LONETILDE]}${u[c.XRANGEPLAIN]}$`),f("TILDELOOSE",`^${u[c.LONETILDE]}${u[c.XRANGEPLAINLOOSE]}$`),f("LONECARET","(?:\\^)"),f("CARETTRIM",`(\\s*)${u[c.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",f("CARET",`^${u[c.LONECARET]}${u[c.XRANGEPLAIN]}$`),f("CARETLOOSE",`^${u[c.LONECARET]}${u[c.XRANGEPLAINLOOSE]}$`),f("COMPARATORLOOSE",`^${u[c.GTLT]}\\s*(${u[c.LOOSEPLAIN]})$|^$`),f("COMPARATOR",`^${u[c.GTLT]}\\s*(${u[c.FULLPLAIN]})$|^$`),f("COMPARATORTRIM",`(\\s*)${u[c.GTLT]}\\s*(${u[c.LOOSEPLAIN]}|${u[c.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",f("HYPHENRANGE",`^\\s*(${u[c.XRANGEPLAIN]})\\s+-\\s+(${u[c.XRANGEPLAIN]})\\s*$`),f("HYPHENRANGELOOSE",`^\\s*(${u[c.XRANGEPLAINLOOSE]})\\s+-\\s+(${u[c.XRANGEPLAINLOOSE]})\\s*$`),f("STAR","(<|>)?=?\\s*\\*"),f("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),f("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")},6884:(e,t,n)=>{"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},6909:(e,t,n)=>{"use strict";const r=n(5380);e.exports=(e,t,n)=>0===r(e,t,n)},7020:function(e,t,n){!function(e){"use strict";var t={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};e.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pzt_Sal_Çar_Per_Cum_Cmt".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),meridiem:function(e,t,n){return e<12?n?"öö":"ÖÖ":n?"ös":"ÖS"},meridiemParse:/öö|ÖÖ|ös|ÖS/,isPM:function(e){return"ös"===e||"ÖS"===e},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",w:"bir hafta",ww:"%d hafta",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(e,n){switch(n){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'ıncı";var r=e%10,a=e%100-r,s=e>=100?100:null;return e+(t[r]||t[a]||t[s])}},week:{dow:1,doy:7}})}(n(2689))},7023:(e,t,n)=>{"use strict";const r=n(5380);e.exports=(e,t)=>r(e,t,!0)},7057:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a=e+" ";switch(n){case"s":return t||r?"nekaj sekund":"nekaj sekundami";case"ss":return a+=1===e?t?"sekundo":"sekundi":2===e?t||r?"sekundi":"sekundah":e<5?t||r?"sekunde":"sekundah":"sekund";case"m":return t?"ena minuta":"eno minuto";case"mm":return a+=1===e?t?"minuta":"minuto":2===e?t||r?"minuti":"minutama":e<5?t||r?"minute":"minutami":t||r?"minut":"minutami";case"h":return t?"ena ura":"eno uro";case"hh":return a+=1===e?t?"ura":"uro":2===e?t||r?"uri":"urama":e<5?t||r?"ure":"urami":t||r?"ur":"urami";case"d":return t||r?"en dan":"enim dnem";case"dd":return a+=1===e?t||r?"dan":"dnem":2===e?t||r?"dni":"dnevoma":t||r?"dni":"dnevi";case"M":return t||r?"en mesec":"enim mesecem";case"MM":return a+=1===e?t||r?"mesec":"mesecem":2===e?t||r?"meseca":"mesecema":e<5?t||r?"mesece":"meseci":t||r?"mesecev":"meseci";case"y":return t||r?"eno leto":"enim letom";case"yy":return a+=1===e?t||r?"leto":"letom":2===e?t||r?"leti":"letoma":e<5?t||r?"leta":"leti":t||r?"let":"leti"}}e.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},7092:(e,t,n)=>{"use strict";const r=n(5380);e.exports=(e,t,n)=>r(e,t,n)<=0},7095:e=>{"use strict";const t=Object.freeze({loose:!0}),n=Object.freeze({});e.exports=e=>e?"object"!=typeof e?t:e:n},7101:function(e,t,n){!function(e){"use strict";var t={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},n={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};e.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"[ਅਗਲਾ] dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",ss:"%d ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(e){return e.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ਰਾਤ"===t?e<4?e:e+12:"ਸਵੇਰ"===t?e:"ਦੁਪਹਿਰ"===t?e>=10?e:e+12:"ਸ਼ਾਮ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ਰਾਤ":e<10?"ਸਵੇਰ":e<17?"ਦੁਪਹਿਰ":e<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}})}(n(2689))},7104:function(e,t,n){!function(e){"use strict";e.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"hh:mm A",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"siku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})}(n(2689))},7151:e=>{e.exports={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}},7176:(e,t,n)=>{"use strict";function r(e){var t;if("undefined"==typeof window||null==window.navigator)return!1;let n=null===(t=window.navigator.userAgentData)||void 0===t?void 0:t.brands;return Array.isArray(n)&&n.some(t=>e.test(t.brand))||e.test(window.navigator.userAgent)}function a(e){var t;return"undefined"!=typeof window&&null!=window.navigator&&e.test((null===(t=window.navigator.userAgentData)||void 0===t?void 0:t.platform)||window.navigator.platform)}function s(e){let t=null;return()=>(null==t&&(t=e()),t)}n.d(t,{H8:()=>d,cX:()=>i,m0:()=>c});const i=s(function(){return a(/^Mac/i)}),o=s(function(){return a(/^iPhone/i)}),l=s(function(){return a(/^iPad/i)||i()&&navigator.maxTouchPoints>1}),u=s(function(){return o()||l()}),d=(s(function(){return i()||u()}),s(function(){return r(/AppleWebKit/i)&&!d()}),s(function(){return r(/Chrome/i)})),c=s(function(){return r(/Android/i)});s(function(){return r(/Firefox/i)})},7186:(e,t,n)=>{"use strict";n.d(t,{Tp:()=>c});var r=n(8449);function a(e,t="latest"){return s(e,t.replace(/\-.*/,""))}function s(e,t){const n={};for(const[r,a]of Object.entries(e))i(a)?n[r]=s(a,t):(l(a,r),n[r]=o(a,t));return n}function i(e){if("object"==typeof e){const[t]=Object.keys(e);return!(0,r.valid)(t)}return!1}function o(e,t){let n,a=Object.keys(e).sort(r.compare);if("latest"===t)return e[a[a.length-1]];for(const e of a)(0,r.gte)(t,e)&&(n=e);return n||(n=a[a.length-1]),e[n]}function l(e,t){if(!Object.keys(e).every(e=>(0,r.valid)(e)))throw new Error(`Invalid semver version: '${t}'`)}const u="8.5.0",d={RadioButton:{container:{"10.2.3":"data-testid radio-button"}},Breadcrumbs:{breadcrumb:{"9.4.0":e=>`data-testid ${e} breadcrumb`}},CanvasGridAddActions:{addPanel:{"12.1.0":"data-testid CanvasGridAddActions add-panel"},groupPanels:{"12.1.0":"data-testid CanvasGridAddActions group-panels"},ungroup:{"12.1.0":"data-testid CanvasGridAddActions ungroup"},addRow:{"12.1.0":"data-testid CanvasGridAddActions add-row"},pasteRow:{"12.1.0":"data-testid CanvasGridAddActions paste-row"},addTab:{"12.1.0":"data-testid CanvasGridAddActions add-tab"},pasteTab:{"12.1.0":"data-testid CanvasGridAddActions paste-tab"}},DashboardEditPaneSplitter:{primaryBody:{"12.1.0":"data-testid DashboardEditPaneSplitter primary body"}},EditPaneHeader:{deleteButton:{"12.1.0":"data-testid EditPaneHeader delete panel"},copyDropdown:{"12.1.0":"data-testid EditPaneHeader copy dropdown"},copy:{"12.1.0":"data-testid EditPaneHeader copy"},duplicate:{"12.1.0":"data-testid EditPaneHeader duplicate"},backButton:{"12.1.0":"data-testid EditPaneHeader back"}},TimePicker:{openButton:{[u]:"data-testid TimePicker Open Button"},overlayContent:{"10.2.3":"data-testid TimePicker Overlay Content"},fromField:{"10.2.3":"data-testid Time Range from field",[u]:"Time Range from field"},toField:{"10.2.3":"data-testid Time Range to field",[u]:"Time Range to field"},applyTimeRange:{[u]:"data-testid TimePicker submit button"},copyTimeRange:{"10.4.0":"data-testid TimePicker copy button"},pasteTimeRange:{"10.4.0":"data-testid TimePicker paste button"},calendar:{label:{"10.2.3":"data-testid Time Range calendar",[u]:"Time Range calendar"},openButton:{"10.2.3":"data-testid Open time range calendar",[u]:"Open time range calendar"},closeButton:{"10.2.3":"data-testid Close time range Calendar",[u]:"Close time range Calendar"}},absoluteTimeRangeTitle:{[u]:"data-testid-absolute-time-range-narrow"}},DataSourcePermissions:{form:{"9.5.0":()=>'form[name="addPermission"]'},roleType:{"9.5.0":"Role to add new permission to"},rolePicker:{"9.5.0":"Built-in role picker"},permissionLevel:{"12.0.0":"Permission level","9.5.0":"Permission Level"}},DateTimePicker:{input:{"10.2.3":"data-testid date-time-input"}},DataSource:{TestData:{QueryTab:{scenarioSelectContainer:{[u]:"Test Data Query scenario select container"},scenarioSelect:{[u]:"Test Data Query scenario select"},max:{[u]:"TestData max"},min:{[u]:"TestData min"},noise:{[u]:"TestData noise"},seriesCount:{[u]:"TestData series count"},spread:{[u]:"TestData spread"},startValue:{[u]:"TestData start value"},drop:{[u]:"TestData drop values"}}},DataSourceHttpSettings:{urlInput:{"10.4.0":"data-testid Datasource HTTP settings url",[u]:"Datasource HTTP settings url"}},Jaeger:{traceIDInput:{[u]:"Trace ID"}},Prometheus:{configPage:{connectionSettings:{[u]:"Data source connection URL"},manageAlerts:{"10.4.0":"prometheus-alerts-manager"},allowAsRecordingRulesTarget:{"12.1.0":"prometheus-recording-rules-target"},scrapeInterval:{"10.4.0":"data-testid scrape interval"},queryTimeout:{"10.4.0":"data-testid query timeout"},defaultEditor:{"10.4.0":"data-testid default editor"},disableMetricLookup:{"10.4.0":"disable-metric-lookup"},prometheusType:{"10.4.0":"data-testid prometheus type"},prometheusVersion:{"10.4.0":"data-testid prometheus version"},cacheLevel:{"10.4.0":"data-testid cache level"},incrementalQuerying:{"10.4.0":"prometheus-incremental-querying"},queryOverlapWindow:{"10.4.0":"data-testid query overlap window"},disableRecordingRules:{"10.4.0":"disable-recording-rules"},customQueryParameters:{"10.4.0":"data-testid custom query parameters"},httpMethod:{"10.4.0":"data-testid http method"},exemplarsAddButton:{"10.3.0":"data-testid Add exemplar config button",[u]:"Add exemplar config button"},internalLinkSwitch:{"10.3.0":"data-testid Internal link switch",[u]:"Internal link switch"},codeModeMetricNamesSuggestionLimit:{"11.1.0":"data-testid code mode metric names suggestion limit"},seriesLimit:{"12.0.2":"data-testid maximum series limit"}},queryEditor:{explain:{"10.4.0":"data-testid prometheus explain switch wrapper"},editorToggle:{"10.4.0":"data-testid QueryEditorModeToggle"},options:{"10.4.0":"data-testid prometheus options"},legend:{"10.4.0":"data-testid prometheus legend wrapper"},format:{"10.4.0":"data-testid prometheus format"},step:{"10.4.0":"data-testid prometheus-step"},type:{"10.4.0":"data-testid prometheus type"},exemplars:{"10.4.0":"data-testid prometheus-exemplars"},builder:{metricSelect:{"10.4.0":"data-testid metric select"},hints:{"10.4.0":"data-testid prometheus hints"},metricsExplorer:{"10.4.0":"data-testid metrics explorer"},queryAdvisor:{"10.4.0":"data-testid query advisor"}},code:{queryField:{"10.4.0":"data-testid prometheus query field"},metricsCountInfo:{"11.1.0":"data-testid metrics count disclaimer"},metricsBrowser:{openButton:{"10.4.0":"data-testid open metrics browser"},selectMetric:{"10.4.0":"data-testid select a metric"},seriesLimit:{"10.3.1":"data-testid series limit"},metricList:{"10.4.0":"data-testid metric list"},labelNamesFilter:{"10.4.0":"data-testid label names filter"},labelValuesFilter:{"10.4.0":"data-testid label values filter"},useQuery:{"10.4.0":"data-testid use query"},useAsRateQuery:{"10.4.0":"data-testid use as rate query"},validateSelector:{"10.4.0":"data-testid validate selector"},clear:{"10.4.0":"data-testid clear"}}}},exemplarMarker:{"10.3.0":"data-testid Exemplar marker",[u]:"Exemplar marker"},variableQueryEditor:{queryType:{"10.4.0":"data-testid query type"},labelnames:{metricRegex:{"10.4.0":"data-testid label names metric regex"}},labelValues:{labelSelect:{"10.4.0":"data-testid label values label select"}},metricNames:{metricRegex:{"10.4.0":"data-testid metric names metric regex"}},varQueryResult:{"10.4.0":"data-testid variable query result"},seriesQuery:{"10.4.0":"data-testid prometheus series query"},classicQuery:{"10.4.0":"data-testid prometheus classic query"}},annotations:{minStep:{"10.4.0":"data-testid prometheus-annotation-min-step"},title:{"10.4.0":"data-testid prometheus annotation title"},tags:{"10.4.0":"data-testid prometheus annotation tags"},text:{"10.4.0":"data-testid prometheus annotation text"},seriesValueAsTimestamp:{"10.4.0":"data-testid prometheus annotation series value as timestamp"}}}},Menu:{MenuComponent:{[u]:e=>`${e} menu`},MenuGroup:{[u]:e=>`${e} menu group`},MenuItem:{[u]:e=>`${e} menu item`},SubMenu:{container:{"10.3.0":"data-testid SubMenu container",[u]:"SubMenu container"},icon:{"10.3.0":"data-testid SubMenu icon",[u]:"SubMenu icon"}}},Panels:{Panel:{title:{[u]:e=>`data-testid Panel header ${e}`},content:{"11.1.0":"data-testid panel content"},headerContainer:{"9.5.0":"data-testid header-container"},headerItems:{"10.2.0":e=>`data-testid Panel header item ${e}`},menuItems:{"9.5.0":e=>`data-testid Panel menu item ${e}`},menu:{"9.5.0":e=>`data-testid Panel menu ${e}`},containerByTitle:{[u]:e=>`${e} panel`},headerCornerInfo:{[u]:e=>`Panel header ${e}`},status:{"10.2.0":e=>`data-testid Panel status ${e}`,[u]:e=>"Panel status"},loadingBar:{"10.0.0":()=>"Panel loading bar"},HoverWidget:{container:{"10.1.0":"data-testid hover-header-container",[u]:"hover-header-container"},dragIcon:{"10.0.0":"data-testid drag-icon"}},PanelDataErrorMessage:{"10.4.0":"data-testid Panel data error message"}},Visualization:{Graph:{container:{"9.5.0":"Graph container"},VisualizationTab:{legendSection:{[u]:"Legend section"}},Legend:{legendItemAlias:{[u]:e=>`gpl alias ${e}`},showLegendSwitch:{[u]:"gpl show legend"}},xAxis:{labels:{[u]:()=>"div.flot-x-axis > div.flot-tick-label"}}},BarGauge:{valueV2:{[u]:"data-testid Bar gauge value"}},PieChart:{svgSlice:{"10.3.0":"data testid Pie Chart Slice"}},Text:{container:{[u]:()=>".markdown-html"}},Table:{header:{[u]:"table header"},footer:{[u]:"table-footer"},body:{"10.2.0":"data-testid table body"}}}},VizLegend:{seriesName:{"10.3.0":e=>`data-testid VizLegend series ${e}`}},Drawer:{General:{title:{[u]:e=>`Drawer title ${e}`},expand:{[u]:"Drawer expand"},contract:{[u]:"Drawer contract"},close:{"10.3.0":"data-testid Drawer close",[u]:"Drawer close"},rcContentWrapper:{"9.4.0":()=>".rc-drawer-content-wrapper"},subtitle:{"10.4.0":"data-testid drawer subtitle"}},DashboardSaveDrawer:{saveButton:{"11.1.0":"data-testid Save dashboard drawer button"},saveAsButton:{"11.1.0":"data-testid Save as dashboard drawer button"},saveAsTitleInput:{"11.1.0":"Save dashboard title field"}}},PanelEditor:{General:{content:{"11.1.0":"data-testid Panel editor content","8.0.0":"Panel editor content"}},OptionsPane:{content:{"11.1.0":"data-testid Panel editor option pane content",[u]:"Panel editor option pane content"},select:{[u]:"Panel editor option pane select"},fieldLabel:{[u]:e=>`${e} field property editor`},fieldInput:{"11.0.0":e=>`data-testid Panel editor option pane field input ${e}`}},DataPane:{content:{"11.1.0":"data-testid Panel editor data pane content",[u]:"Panel editor data pane content"}},applyButton:{"9.2.0":"data-testid Apply changes and go back to dashboard","9.1.0":"Apply changes and go back to dashboard","8.0.0":"panel editor apply"},toggleVizPicker:{"10.0.0":"data-testid toggle-viz-picker","8.0.0":"toggle-viz-picker"},toggleVizOptions:{"10.1.0":"data-testid toggle-viz-options",[u]:"toggle-viz-options"},toggleTableView:{"11.1.0":"data-testid toggle-table-view",[u]:"toggle-table-view"},showZoomField:{"10.2.0":"Map controls Show zoom control field property editor"},showAttributionField:{"10.2.0":"Map controls Show attribution field property editor"},showScaleField:{"10.2.0":"Map controls Show scale field property editor"},showMeasureField:{"10.2.0":"Map controls Show measure tools field property editor"},showDebugField:{"10.2.0":"Map controls Show debug field property editor"},measureButton:{"12.1.0":"data-testid panel-editor-measure-button","9.2.0":"show measure tools"},Outline:{section:{"12.0.0":"data-testid Outline section"},node:{"12.0.0":e=>`data-testid outline node ${e}`},item:{"12.0.0":e=>`data-testid outline item ${e}`}},ElementEditPane:{variableType:{"12.0.0":e=>`data-testid variable type ${e}`},addVariableButton:{"12.0.0":"data-testid add variable button"},variableNameInput:{"12.0.0":"data-testid variable name input"},variableLabelInput:{"12.0.0":"data-testid variable label input"},AutoGridLayout:{minColumnWidth:{"12.1.0":"data-testid min column width selector"},customMinColumnWidth:{"12.1.0":"data-testid custom min column width input"},clearCustomMinColumnWidth:{"12.1.0":"data-testid clear custom min column width input"},maxColumns:{"12.1.0":"data-testid max columns selector"},rowHeight:{"12.1.0":"data-testid row height selector"},customRowHeight:{"12.1.0":"data-testid custom row height input"},clearCustomRowHeight:{"12.1.0":"data-testid clear custom row height input"},fillScreen:{"12.1.0":"data-testid fill screen switch"}}}},PanelInspector:{Data:{content:{[u]:"Panel inspector Data content"}},Stats:{content:{[u]:"Panel inspector Stats content"}},Json:{content:{"11.1.0":"data-testid Panel inspector Json content",[u]:"Panel inspector Json content"}},Query:{content:{[u]:"Panel inspector Query content"},refreshButton:{[u]:"Panel inspector Query refresh button"},jsonObjectKeys:{[u]:()=>".json-formatter-key"}}},Tab:{title:{"11.2.0":e=>`data-testid Tab ${e}`},active:{[u]:()=>'[class*="-activeTabStyle"]'}},RefreshPicker:{runButtonV2:{[u]:"data-testid RefreshPicker run button"},intervalButtonV2:{[u]:"data-testid RefreshPicker interval button"}},QueryTab:{content:{[u]:"Query editor tab content"},queryInspectorButton:{[u]:"Query inspector button"},queryHistoryButton:{"10.2.0":"data-testid query-history-button",[u]:"query-history-button"},addQuery:{"10.2.0":"data-testid query-tab-add-query",[u]:"Query editor add query button"},addQueryFromLibrary:{"11.5.0":"data-testid query-tab-add-query-from-library"},queryGroupTopSection:{"11.2.0":"data-testid query group top section"},addExpression:{"11.2.0":"data-testid query-tab-add-expression"}},QueryHistory:{queryText:{"9.0.0":"Query text"}},QueryEditorRows:{rows:{[u]:"Query editor row"}},QueryEditorRow:{actionButton:{"10.4.0":e=>`data-testid ${e}`},title:{[u]:e=>`Query editor row title ${e}`},container:{[u]:e=>`Query editor row ${e}`}},AlertTab:{content:{"10.2.3":"data-testid Alert editor tab content",[u]:"Alert editor tab content"}},AlertRules:{groupToggle:{"11.0.0":"data-testid group-collapse-toggle"},toggle:{"11.0.0":"data-testid collapse-toggle"},expandedContent:{"11.0.0":"data-testid expanded-content"},previewButton:{"11.1.0":"data-testid alert-rule preview-button"},ruleNameField:{"11.1.0":"data-testid alert-rule name-field"},newFolderButton:{"11.1.0":"data-testid alert-rule new-folder-button"},newFolderNameField:{"11.1.0":"data-testid alert-rule name-folder-name-field"},newFolderNameCreateButton:{"11.1.0":"data-testid alert-rule name-folder-name-create-button"},newEvaluationGroupButton:{"11.1.0":"data-testid alert-rule new-evaluation-group-button"},newEvaluationGroupName:{"11.1.0":"data-testid alert-rule new-evaluation-group-name"},newEvaluationGroupInterval:{"11.1.0":"data-testid alert-rule new-evaluation-group-interval"},newEvaluationGroupCreate:{"11.1.0":"data-testid alert-rule new-evaluation-group-create-button"},step:{"11.5.0":e=>`data-testid alert-rule step-${e}`},stepAdvancedModeSwitch:{"11.5.0":e=>`data-testid advanced-mode-switch step-${e}`}},Alert:{alertV2:{[u]:e=>`data-testid Alert ${e}`}},TransformTab:{content:{"10.1.0":"data-testid Transform editor tab content",[u]:"Transform editor tab content"},newTransform:{"10.1.0":e=>`data-testid New transform ${e}`},transformationEditor:{"10.1.0":e=>`data-testid Transformation editor ${e}`},transformationEditorDebugger:{"10.1.0":e=>`data-testid Transformation editor debugger ${e}`}},Transforms:{card:{"10.1.0":e=>`data-testid New transform ${e}`},disableTransformationButton:{"10.4.0":"data-testid Disable transformation button"},Reduce:{modeLabel:{"10.2.3":"data-testid Transform mode label",[u]:"Transform mode label"},calculationsLabel:{"10.2.3":"data-testid Transform calculations label",[u]:"Transform calculations label"}},SpatialOperations:{actionLabel:{"9.1.2":"root Action field property editor"},locationLabel:{"10.2.0":"root Location Mode field property editor"},location:{autoOption:{"9.1.2":"Auto location option"},coords:{option:{"9.1.2":"Coords location option"},latitudeFieldLabel:{"9.1.2":"root Latitude field field property editor"},longitudeFieldLabel:{"9.1.2":"root Longitude field field property editor"}},geohash:{option:{"9.1.2":"Geohash location option"},geohashFieldLabel:{"9.1.2":"root Geohash field field property editor"}},lookup:{option:{"9.1.2":"Lookup location option"},lookupFieldLabel:{"9.1.2":"root Lookup field field property editor"},gazetteerFieldLabel:{"9.1.2":"root Gazetteer field property editor"}}}},searchInput:{"10.2.3":"data-testid search transformations",[u]:"search transformations"},noTransformationsMessage:{"10.2.3":"data-testid no transformations message"},addTransformationButton:{"10.1.0":"data-testid add transformation button",[u]:"add transformation button"},removeAllTransformationsButton:{"10.4.0":"data-testid remove all transformations button"}},NavBar:{Configuration:{button:{"9.5.0":"Configuration"}},Toggle:{button:{"10.2.3":"data-testid Toggle menu",[u]:"Toggle menu"}},Reporting:{button:{"9.5.0":"Reporting"}}},NavMenu:{Menu:{"10.2.3":"data-testid navigation mega-menu"},item:{"9.5.0":"data-testid Nav menu item"}},NavToolbar:{container:{"9.4.0":"data-testid Nav toolbar"},commandPaletteTrigger:{"11.5.0":"data-testid Command palette trigger"},shareDashboard:{"11.1.0":"data-testid Share dashboard"},markAsFavorite:{"11.1.0":"data-testid Mark as favorite"},editDashboard:{editButton:{"11.1.0":"data-testid Edit dashboard button"},saveButton:{"11.1.0":"data-testid Save dashboard button"},exitButton:{"11.1.0":"data-testid Exit edit mode button"},settingsButton:{"11.1.0":"data-testid Dashboard settings"},addRowButton:{"11.1.0":"data-testid Add row button"},addLibraryPanelButton:{"11.1.0":"data-testid Add a panel from the panel library button"},addVisualizationButton:{"11.1.0":"data-testid Add new visualization menu item"},pastePanelButton:{"11.1.0":"data-testid Paste panel button"},discardChangesButton:{"11.1.0":"data-testid Discard changes button"},discardLibraryPanelButton:{"11.1.0":"data-testid Discard library panel button"},unlinkLibraryPanelButton:{"11.1.0":"data-testid Unlink library panel button"},saveLibraryPanelButton:{"11.1.0":"data-testid Save library panel button"},backToDashboardButton:{"11.1.0":"data-testid Back to dashboard button"}}},PageToolbar:{container:{[u]:()=>".page-toolbar"},item:{[u]:e=>`${e}`},itemButton:{"9.5.0":e=>`data-testid ${e}`}},QueryEditorToolbarItem:{button:{[u]:e=>`QueryEditor toolbar item button ${e}`}},BackButton:{backArrow:{"10.3.0":"data-testid Go Back",[u]:"Go Back"}},OptionsGroup:{group:{"11.1.0":e=>e?`data-testid Options group ${e}`:"data-testid Options group",[u]:e=>e?`Options group ${e}`:"Options group"},toggle:{"11.1.0":e=>e?`data-testid Options group ${e} toggle`:"data-testid Options group toggle",[u]:e=>e?`Options group ${e} toggle`:"Options group toggle"}},PluginVisualization:{item:{[u]:e=>`Plugin visualization item ${e}`},current:{[u]:()=>'[class*="-currentVisualizationItem"]'}},Select:{menu:{"11.5.0":"data-testid Select menu",[u]:"Select options menu"},option:{"11.1.0":"data-testid Select option",[u]:"Select option"},toggleAllOptions:{"11.3.0":"data-testid toggle all options"},input:{[u]:()=>'input[id*="time-options-input"]'},singleValue:{[u]:()=>'div[class*="-singleValue"]'}},FieldConfigEditor:{content:{[u]:"Field config editor content"}},OverridesConfigEditor:{content:{[u]:"Field overrides editor content"}},FolderPicker:{containerV2:{[u]:"data-testid Folder picker select container"},input:{"10.4.0":"data-testid folder-picker-input"}},ReadonlyFolderPicker:{container:{[u]:"data-testid Readonly folder picker select container"}},DataSourcePicker:{container:{"10.0.0":"data-testid Data source picker select container","8.0.0":"Data source picker select container"},inputV2:{"10.1.0":"data-testid Select a data source",[u]:"Select a data source"},dataSourceList:{"10.4.0":"data-testid Data source list dropdown"},advancedModal:{dataSourceList:{"10.4.0":"data-testid Data source list"},builtInDataSourceList:{"10.4.0":"data-testid Built in data source list"}}},TimeZonePicker:{containerV2:{[u]:"data-testid Time zone picker select container"},changeTimeSettingsButton:{"11.0.0":"data-testid Time zone picker Change time settings button"}},WeekStartPicker:{containerV2:{[u]:"data-testid Choose starting day of the week"},placeholder:{[u]:"Choose starting day of the week"}},TraceViewer:{spanBar:{"9.0.0":"data-testid SpanBar--wrapper"}},QueryField:{container:{"10.3.0":"data-testid Query field",[u]:"Query field"}},QueryBuilder:{queryPatterns:{"10.3.0":"data-testid Query patterns",[u]:"Query patterns"},labelSelect:{"10.3.0":"data-testid Select label",[u]:"Select label"},inputSelect:{"11.1.0":"data-testid Select label-input"},valueSelect:{"10.3.0":"data-testid Select value",[u]:"Select value"},matchOperatorSelect:{"10.3.0":"data-testid Select match operator",[u]:"Select match operator"}},ValuePicker:{button:{"10.3.0":e=>`data-testid Value picker button ${e}`},select:{"10.3.0":e=>`data-testid Value picker select ${e}`}},Search:{sectionV2:{[u]:"data-testid Search section"},itemsV2:{[u]:"data-testid Search items"},cards:{[u]:"data-testid Search cards"},collapseFolder:{[u]:e=>`data-testid Collapse folder ${e}`},expandFolder:{[u]:e=>`data-testid Expand folder ${e}`},dashboardItem:{[u]:e=>`data-testid Dashboard search item ${e}`},dashboardCard:{[u]:e=>`data-testid Search card ${e}`},folderHeader:{"9.3.0":e=>`data-testid Folder header ${e}`},folderContent:{"9.3.0":e=>`data-testid Folder content ${e}`},dashboardItems:{[u]:"data-testid Dashboard search item"}},DashboardLinks:{container:{[u]:"data-testid Dashboard link container"},dropDown:{[u]:"data-testid Dashboard link dropdown"},link:{[u]:"data-testid Dashboard link"}},LoadingIndicator:{icon:{"10.4.0":"data-testid Loading indicator",[u]:"Loading indicator"}},CallToActionCard:{buttonV2:{[u]:e=>`data-testid Call to action button ${e}`}},DataLinksContextMenu:{singleLink:{"10.3.0":"data-testid Data link",[u]:"Data link"}},DataLinksActionsTooltip:{tooltipWrapper:{"12.1.0":"data-testid Data links actions tooltip wrapper"}},CodeEditor:{container:{"10.2.3":"data-testid Code editor container",[u]:"Code editor container"}},ReactMonacoEditor:{editorLazy:{"11.1.0":"data-testid ReactMonacoEditor editorLazy"}},DashboardImportPage:{textarea:{[u]:"data-testid-import-dashboard-textarea"},submit:{[u]:"data-testid-load-dashboard"}},ImportDashboardForm:{name:{[u]:"data-testid-import-dashboard-title"},submit:{[u]:"data-testid-import-dashboard-submit"}},PanelAlertTabContent:{content:{"10.2.3":"data-testid Unified alert editor tab content",[u]:"Unified alert editor tab content"}},VisualizationPreview:{card:{[u]:e=>`data-testid suggestion-${e}`}},ColorSwatch:{name:{[u]:"data-testid-colorswatch"}},DashboardRow:{title:{[u]:e=>`data-testid dashboard-row-title-${e}`}},UserProfile:{profileSaveButton:{[u]:"data-testid-user-profile-save"},preferencesSaveButton:{[u]:"data-testid-shared-prefs-save"},orgsTable:{[u]:"data-testid-user-orgs-table"},sessionsTable:{[u]:"data-testid-user-sessions-table"},extensionPointTabs:{"10.2.3":"data-testid-extension-point-tabs"},extensionPointTab:{"10.2.3":e=>`data-testid-extension-point-tab-${e}`}},FileUpload:{inputField:{"9.0.0":"data-testid-file-upload-input-field"},fileNameSpan:{"9.0.0":"data-testid-file-upload-file-name"}},DebugOverlay:{wrapper:{"9.2.0":"debug-overlay"}},OrgRolePicker:{input:{"9.5.0":"Role"}},AnalyticsToolbarButton:{button:{"9.5.0":"Dashboard insights"}},Variables:{variableOption:{"9.5.0":"data-testid variable-option"},variableLinkWrapper:{"11.1.1":"data-testid variable-link-wrapper"}},Annotations:{annotationsTypeInput:{"11.1.0":"data-testid annotations-type-input",[u]:"annotations-type-input"},annotationsChoosePanelInput:{"11.1.0":"data-testid choose-panels-input",[u]:"choose-panels-input"},editor:{testButton:{"11.0.0":"data-testid annotations-test-button"},resultContainer:{"11.0.0":"data-testid annotations-query-result-container"}}},Tooltip:{container:{"10.2.0":"data-testid tooltip"}},ReturnToPrevious:{buttonGroup:{"11.0.0":"data-testid dismissable button group"},backButton:{"11.0.0":"data-testid back"},dismissButton:{"11.0.0":"data-testid dismiss"}},SQLQueryEditor:{selectColumn:{"11.0.0":"data-testid select-column"},selectColumnInput:{"11.0.0":"data-testid select-column-input"},selectFunctionParameter:{"11.0.0":e=>`data-testid select-function-parameter-${e}`},selectAggregation:{"11.0.0":"data-testid select-aggregation"},selectAggregationInput:{"11.0.0":"data-testid select-aggregation-input"},selectAlias:{"11.0.0":"data-testid select-alias"},selectAliasInput:{"11.0.0":"data-testid select-alias-input"},selectInputParameter:{"11.0.0":"data-testid select-input-parameter"},filterConjunction:{"11.0.0":"data-testid filter-conjunction"},filterField:{"11.0.0":"data-testid filter-field"},filterOperator:{"11.0.0":"data-testid filter-operator"},headerTableSelector:{"11.0.0":"data-testid header-table-selector"},headerFilterSwitch:{"11.0.0":"data-testid header-filter-switch"},headerGroupSwitch:{"11.0.0":"data-testid header-group-switch"},headerOrderSwitch:{"11.0.0":"data-testid header-order-switch"},headerPreviewSwitch:{"11.0.0":"data-testid header-preview-switch"}},EntityNotFound:{container:{"11.2.0":"data-testid entity-not-found"}},Portal:{container:{"11.5.0":"data-testid portal-container"}}},c={pages:a({Alerting:{AddAlertRule:{url:{"10.1.0":"/alerting/new/alerting",[u]:"/alerting/new"}},EditAlertRule:{url:{[u]:e=>`alerting/${e}/edit`}}},Login:{url:{[u]:"/login"},username:{"10.2.3":"data-testid Username input field",[u]:"Username input field"},password:{"10.2.3":"data-testid Password input field",[u]:"Password input field"},submit:{"10.2.3":"data-testid Login button",[u]:"Login button"},skip:{"10.2.3":"data-testid Skip change password button"}},PasswordlessLogin:{url:{[u]:"/login/passwordless/authenticate"},email:{"10.2.3":"data-testid Email input field",[u]:"Email input field"},submit:{"10.2.3":"data-testid PasswordlessLogin button",[u]:"PasswordlessLogin button"}},Home:{url:{[u]:"/"}},DataSource:{name:{"10.3.0":"data-testid Data source settings page name input field",[u]:"Data source settings page name input field"},delete:{[u]:"Data source settings page Delete button"},readOnly:{"10.3.0":"data-testid Data source settings page read only message",[u]:"Data source settings page read only message"},saveAndTest:{"10.0.0":"data-testid Data source settings page Save and Test button",[u]:"Data source settings page Save and Test button"},alert:{"10.3.0":"data-testid Data source settings page Alert",[u]:"Data source settings page Alert"}},DataSources:{url:{[u]:"/datasources"},dataSources:{[u]:e=>`Data source list item ${e}`}},EditDataSource:{url:{"9.5.0":e=>`/datasources/edit/${e}`},settings:{"9.5.0":"Datasource settings page basic settings"}},AddDataSource:{url:{[u]:"/datasources/new"},dataSourcePluginsV2:{"9.3.1":e=>`Add new data source ${e}`,[u]:e=>`Data source plugin item ${e}`}},ConfirmModal:{delete:{"10.0.0":"data-testid Confirm Modal Danger Button",[u]:"Confirm Modal Danger Button"}},AddDashboard:{url:{[u]:"/dashboard/new"},itemButton:{"9.5.0":e=>`data-testid ${e}`},addNewPanel:{"11.1.0":"data-testid Add new panel","8.0.0":"Add new panel",[u]:"Add new panel"},itemButtonAddViz:{[u]:"Add new visualization menu item"},addNewRow:{"11.1.0":"data-testid Add new row",[u]:"Add new row"},addNewPanelLibrary:{"11.1.0":"data-testid Add new panel from panel library",[u]:"Add new panel from panel library"},Settings:{Annotations:{List:{url:{[u]:"/dashboard/new?orgId=1&editview=annotations"}},Edit:{url:{[u]:e=>`/dashboard/new?editview=annotations&editIndex=${e}`}}},Variables:{List:{url:{"11.3.0":"/dashboard/new?orgId=1&editview=variables",[u]:"/dashboard/new?orgId=1&editview=templating"}},Edit:{url:{"11.3.0":e=>`/dashboard/new?orgId=1&editview=variables&editIndex=${e}`,[u]:e=>`/dashboard/new?orgId=1&editview=templating&editIndex=${e}`}}}}},ImportDashboard:{url:{[u]:"/dashboard/import"}},Dashboard:{url:{[u]:e=>`/d/${e}`},DashNav:{nav:{[u]:"Dashboard navigation"},navV2:{[u]:"data-testid Dashboard navigation"},publicDashboardTag:{"9.1.0":"data-testid public dashboard tag"},shareButton:{"10.4.0":"data-testid share-button"},scrollContainer:{"11.1.0":"data-testid Dashboard canvas scroll container"},newShareButton:{container:{"11.1.0":"data-testid new share button"},shareLink:{"11.1.0":"data-testid new share link-button"},arrowMenu:{"11.1.0":"data-testid new share button arrow menu"},menu:{container:{"11.1.0":"data-testid new share button menu"},shareInternally:{"11.1.0":"data-testid new share button share internally"},shareExternally:{"11.1.1":"data-testid new share button share externally"},shareSnapshot:{"11.2.0":"data-testid new share button share snapshot"}}},NewExportButton:{container:{"11.2.0":"data-testid new export button"},arrowMenu:{"11.2.0":"data-testid new export button arrow menu"},Menu:{container:{"11.2.0":"data-testid new export button menu"},exportAsJson:{"11.2.0":"data-testid new export button export as json"}}},playlistControls:{prev:{"11.0.0":"data-testid playlist previous dashboard button"},stop:{"11.0.0":"data-testid playlist stop dashboard button"},next:{"11.0.0":"data-testid playlist next dashboard button"}}},Controls:{"11.1.0":"data-testid dashboard controls"},SubMenu:{submenu:{[u]:"Dashboard submenu"},submenuItem:{[u]:"data-testid template variable"},submenuItemLabels:{[u]:e=>`data-testid Dashboard template variables submenu Label ${e}`},submenuItemValueDropDownValueLinkTexts:{[u]:e=>`data-testid Dashboard template variables Variable Value DropDown value link text ${e}`},submenuItemValueDropDownDropDown:{[u]:"Variable options"},submenuItemValueDropDownOptionTexts:{[u]:e=>`data-testid Dashboard template variables Variable Value DropDown option text ${e}`},Annotations:{annotationsWrapper:{"10.0.0":"data-testid annotation-wrapper"},annotationLabel:{"10.0.0":e=>`data-testid Dashboard annotations submenu Label ${e}`},annotationToggle:{"10.0.0":e=>`data-testid Dashboard annotations submenu Toggle ${e}`}}},Settings:{Actions:{close:{"9.5.0":"data-testid dashboard-settings-close"}},General:{deleteDashBoard:{"11.1.0":"data-testid Dashboard settings page delete dashboard button"},sectionItems:{[u]:e=>`Dashboard settings section item ${e}`},saveDashBoard:{[u]:"Dashboard settings aside actions Save button"},saveAsDashBoard:{[u]:"Dashboard settings aside actions Save As button"},title:{"11.2.0":"General"}},Annotations:{Edit:{urlParams:{[u]:e=>`editview=annotations&editIndex=${e}`}},List:{url:{[u]:e=>`/d/${e}?editview=annotations`},addAnnotationCTAV2:{[u]:"data-testid Call to action button Add annotation query"},annotations:{"10.4.0":"data-testid list-annotations"}},Settings:{name:{"11.1.0":"data-testid Annotations settings name input",[u]:"Annotations settings name input"}},NewAnnotation:{panelFilterSelect:{"10.0.0":"data-testid annotations-panel-filter"},showInLabel:{"11.1.0":"data-testid show-in-label"},previewInDashboard:{"10.0.0":"data-testid annotations-preview"},delete:{"10.4.0":"data-testid annotations-delete"},apply:{"10.4.0":"data-testid annotations-apply"},enable:{"10.4.0":"data-testid annotation-enable"},hide:{"10.4.0":"data-testid annotation-hide"}}},Variables:{List:{url:{"11.3.0":e=>`/d/${e}?editview=variables`,[u]:e=>`/d/${e}?editview=templating`},addVariableCTAV2:{[u]:"data-testid Call to action button Add variable"},newButton:{[u]:"Variable editor New variable button"},table:{[u]:"Variable editor Table"},tableRowNameFields:{[u]:e=>`Variable editor Table Name field ${e}`},tableRowDefinitionFields:{"10.1.0":e=>`Variable editor Table Definition field ${e}`},tableRowArrowUpButtons:{[u]:e=>`Variable editor Table ArrowUp button ${e}`},tableRowArrowDownButtons:{[u]:e=>`Variable editor Table ArrowDown button ${e}`},tableRowDuplicateButtons:{[u]:e=>`Variable editor Table Duplicate button ${e}`},tableRowRemoveButtons:{[u]:e=>`Variable editor Table Remove button ${e}`}},Edit:{urlParams:{"11.3.0":e=>`editview=variables&editIndex=${e}`,[u]:e=>`editview=templating&editIndex=${e}`},General:{headerLink:{[u]:"Variable editor Header link"},modeLabelNew:{[u]:"Variable editor Header mode New"},modeLabelEdit:{[u]:"Variable editor Header mode Edit"},generalNameInput:{[u]:"Variable editor Form Name field"},generalNameInputV2:{[u]:"data-testid Variable editor Form Name field"},generalTypeSelect:{[u]:"Variable editor Form Type select"},generalTypeSelectV2:{[u]:"data-testid Variable editor Form Type select"},generalLabelInput:{[u]:"Variable editor Form Label field"},generalLabelInputV2:{[u]:"data-testid Variable editor Form Label field"},generalHideSelect:{[u]:"Variable editor Form Hide select"},generalHideSelectV2:{[u]:"data-testid Variable editor Form Hide select"},selectionOptionsAllowCustomValueSwitch:{[u]:"data-testid Variable editor Form Allow Custom Value switch"},selectionOptionsMultiSwitch:{"10.4.0":"data-testid Variable editor Form Multi switch",[u]:"Variable editor Form Multi switch"},selectionOptionsIncludeAllSwitch:{"10.4.0":"data-testid Variable editor Form IncludeAll switch",[u]:"Variable editor Form IncludeAll switch"},selectionOptionsCustomAllInput:{"10.4.0":"data-testid Variable editor Form IncludeAll field",[u]:"Variable editor Form IncludeAll field"},previewOfValuesOption:{"10.4.0":"data-testid Variable editor Preview of Values option",[u]:"Variable editor Preview of Values option"},submitButton:{"10.4.0":"data-testid Variable editor Run Query button",[u]:"Variable editor Submit button"},applyButton:{"9.3.0":"data-testid Variable editor Apply button"}},QueryVariable:{closeButton:{[u]:"data-testid Query Variable editor close button"},editor:{[u]:"data-testid Query Variable editor"},previewButton:{[u]:"data-testid Query Variable editor preview button"},queryOptionsDataSourceSelect:{"10.4.0":"data-testid Select a data source","10.0.0":"data-testid Data source picker select container",[u]:"Data source picker select container"},queryOptionsOpenButton:{[u]:"data-testid Query Variable editor open button"},queryOptionsRefreshSelect:{[u]:"Variable editor Form Query Refresh select"},queryOptionsRefreshSelectV2:{[u]:"data-testid Variable editor Form Query Refresh select"},queryOptionsRegExInput:{[u]:"Variable editor Form Query RegEx field"},queryOptionsRegExInputV2:{[u]:"data-testid Variable editor Form Query RegEx field"},queryOptionsSortSelect:{[u]:"Variable editor Form Query Sort select"},queryOptionsSortSelectV2:{[u]:"data-testid Variable editor Form Query Sort select"},queryOptionsQueryInput:{"10.4.0":"data-testid Variable editor Form Default Variable Query Editor textarea"},valueGroupsTagsEnabledSwitch:{[u]:"Variable editor Form Query UseTags switch"},valueGroupsTagsTagsQueryInput:{[u]:"Variable editor Form Query TagsQuery field"},valueGroupsTagsTagsValuesQueryInput:{[u]:"Variable editor Form Query TagsValuesQuery field"}},ConstantVariable:{constantOptionsQueryInput:{[u]:"Variable editor Form Constant Query field"},constantOptionsQueryInputV2:{[u]:"data-testid Variable editor Form Constant Query field"}},DatasourceVariable:{datasourceSelect:{[u]:"data-testid datasource variable datasource type"},nameFilter:{[u]:"data-testid datasource variable datasource name filter"}},TextBoxVariable:{textBoxOptionsQueryInput:{[u]:"Variable editor Form TextBox Query field"},textBoxOptionsQueryInputV2:{[u]:"data-testid Variable editor Form TextBox Query field"}},CustomVariable:{customValueInput:{[u]:"data-testid custom-variable-input"}},IntervalVariable:{intervalsValueInput:{[u]:"data-testid interval variable intervals input"},autoEnabledCheckbox:{"10.4.0":"data-testid interval variable auto value checkbox"},stepCountIntervalSelect:{"10.4.0":"data-testid interval variable step count input"},minIntervalInput:{"10.4.0":"data-testid interval variable mininum interval input"}},GroupByVariable:{dataSourceSelect:{"10.4.0":"data-testid Select a data source"},infoText:{"10.4.0":"data-testid group by variable info text"},modeToggle:{"10.4.0":"data-testid group by variable mode toggle"}},AdHocFiltersVariable:{datasourceSelect:{"10.4.0":"data-testid Select a data source"},infoText:{"10.4.0":"data-testid ad-hoc filters variable info text"},modeToggle:{"11.0.0":"data-testid ad-hoc filters variable mode toggle"}}}}},Annotations:{marker:{"10.0.0":"data-testid annotation-marker"}},Rows:{Repeated:{ConfigSection:{warningMessage:{"10.2.0":"data-testid Repeated rows warning message"}}}}},Dashboards:{url:{[u]:"/dashboards"},dashboards:{"10.2.0":e=>`Dashboard search item ${e}`},toggleView:{[u]:"data-testid radio-button"}},SaveDashboardAsModal:{newName:{"10.2.0":"Save dashboard title field"},save:{"10.2.0":"Save dashboard button"}},SaveDashboardModal:{save:{"10.2.0":"Dashboard settings Save Dashboard Modal Save button"},saveVariables:{"10.2.0":"Dashboard settings Save Dashboard Modal Save variables checkbox"},saveTimerange:{"10.2.0":"Dashboard settings Save Dashboard Modal Save timerange checkbox"},saveRefresh:{"11.1.0":"Dashboard settings Save Dashboard Modal Save refresh checkbox"}},SharePanelModal:{linkToRenderedImage:{[u]:"Link to rendered image"}},ShareDashboardModal:{PublicDashboard:{WillBePublicCheckbox:{"9.1.0":"data-testid public dashboard will be public checkbox"},LimitedDSCheckbox:{"9.1.0":"data-testid public dashboard limited datasources checkbox"},CostIncreaseCheckbox:{"9.1.0":"data-testid public dashboard cost may increase checkbox"},PauseSwitch:{"9.5.0":"data-testid public dashboard pause switch"},EnableAnnotationsSwitch:{"9.3.0":"data-testid public dashboard on off switch for annotations"},CreateButton:{"9.5.0":"data-testid public dashboard create button"},DeleteButton:{"9.3.0":"data-testid public dashboard delete button"},CopyUrlInput:{"9.1.0":"data-testid public dashboard copy url input"},CopyUrlButton:{"9.1.0":"data-testid public dashboard copy url button"},SettingsDropdown:{"10.1.0":"data-testid public dashboard settings dropdown"},TemplateVariablesWarningAlert:{"9.1.0":"data-testid public dashboard disabled template variables alert"},UnsupportedDataSourcesWarningAlert:{"9.5.0":"data-testid public dashboard unsupported data sources alert"},NoUpsertPermissionsWarningAlert:{"9.5.0":"data-testid public dashboard no upsert permissions alert"},EnableTimeRangeSwitch:{"9.4.0":"data-testid public dashboard on off switch for time range"},EmailSharingConfiguration:{Container:{"9.5.0":"data-testid email sharing config container"},ShareType:{"9.5.0":"data-testid public dashboard share type"},EmailSharingInput:{"9.5.0":"data-testid public dashboard email sharing input"},EmailSharingInviteButton:{"9.5.0":"data-testid public dashboard email sharing invite button"},EmailSharingList:{"9.5.0":"data-testid public dashboard email sharing list"},DeleteEmail:{"9.5.0":"data-testid public dashboard delete email button"},ReshareLink:{"9.5.0":"data-testid public dashboard reshare link button"}}},SnapshotScene:{url:{"11.1.0":e=>`/dashboard/snapshot/${e}`},PublishSnapshot:{"11.1.0":"data-testid publish snapshot button"},CopyUrlButton:{"11.1.0":"data-testid snapshot copy url button"},CopyUrlInput:{"11.1.0":"data-testid snapshot copy url input"}}},ShareDashboardDrawer:{ShareInternally:{container:{"11.3.0":"data-testid share internally drawer container"},lockTimeRangeSwitch:{"11.3.0":"data-testid share internally lock time range switch"},shortenUrlSwitch:{"11.3.0":"data-testid share internally shorten url switch"},copyUrlButton:{"11.3.0":"data-testid share internally copy url button"},SharePanel:{preview:{"11.5.0":"data-testid share panel internally image generation preview"},widthInput:{"11.5.0":"data-testid share panel internally width input"},heightInput:{"11.5.0":"data-testid share panel internally height input"},scaleFactorInput:{"11.5.0":"data-testid share panel internally scale factor input"},generateImageButton:{"11.5.0":"data-testid share panel internally generate image button"},downloadImageButton:{"11.5.0":"data-testid share panel internally download image button"}}},ShareExternally:{container:{"11.3.0":"data-testid share externally drawer container"},publicAlert:{"11.3.0":"data-testid public share alert"},emailSharingAlert:{"11.3.0":"data-testid email share alert"},shareTypeSelect:{"11.3.0":"data-testid share externally share type select"},Creation:{PublicShare:{createButton:{"11.3.0":"data-testid public share dashboard create button"},cancelButton:{"11.3.0":"data-testid public share dashboard cancel button"}},EmailShare:{createButton:{"11.3.0":"data-testid email share dashboard create button"},cancelButton:{"11.3.0":"data-testid email share dashboard cancel button"}},willBePublicCheckbox:{"11.3.0":"data-testid share dashboard will be public checkbox"}},Configuration:{enableTimeRangeSwitch:{"11.3.0":"data-testid share externally enable time range switch"},enableAnnotationsSwitch:{"11.3.0":"data-testid share externally enable annotations switch"},copyUrlButton:{"11.3.0":"data-testid share externally copy url button"},revokeAccessButton:{"11.3.0":"data-testid share externally revoke access button"},toggleAccessButton:{"11.3.0":"data-testid share externally pause or resume access button"}}},ShareSnapshot:{url:{"11.3.0":e=>`/dashboard/snapshot/${e}`},container:{"11.3.0":"data-testid share snapshot drawer container"},publishSnapshot:{"11.3.0":"data-testid share snapshot publish button"},copyUrlButton:{"11.3.0":"data-testid share snapshot copy url button"}}},ExportDashboardDrawer:{ExportAsJson:{container:{"11.3.0":"data-testid export as json drawer container"},codeEditor:{"11.3.0":"data-testid export as json code editor"},exportExternallyToggle:{"11.3.0":"data-testid export as json externally switch"},saveToFileButton:{"11.3.0":"data-testid export as json save to file button"},copyToClipboardButton:{"11.3.0":"data-testid export as json copy to clipboard button"},cancelButton:{"11.3.0":"data-testid export as json cancel button"}}},PublicDashboard:{page:{"9.5.0":"public-dashboard-page"},NotAvailable:{container:{"9.5.0":"public-dashboard-not-available"},title:{"9.5.0":"public-dashboard-title"},pausedDescription:{"9.5.0":"public-dashboard-paused-description"}},footer:{"11.0.0":"public-dashboard-footer"}},PublicDashboardScene:{loadingPage:{"11.0.0":"public-dashboard-scene-loading-page"},page:{"11.0.0":"public-dashboard-scene-page"},controls:{"11.0.0":"public-dashboard-controls"}},RequestViewAccess:{form:{"9.5.0":"request-view-access-form"},recipientInput:{"9.5.0":"request-view-access-recipient-input"},submitButton:{"9.5.0":"request-view-access-submit-button"}},PublicDashboardConfirmAccess:{submitButton:{"10.2.0":"data-testid confirm-access-submit-button"}},Explore:{url:{[u]:"/explore"},General:{container:{[u]:"data-testid Explore"},graph:{[u]:"Explore Graph"},table:{[u]:"Explore Table"},scrollView:{"9.0.0":"data-testid explorer scroll view"},addFromQueryLibrary:{"11.5.0":"data-testid explore add from query library button"}},QueryHistory:{container:{"11.1.0":"data-testid QueryHistory"}}},SoloPanel:{url:{[u]:e=>`/d-solo/${e}`}},PluginsList:{page:{[u]:"Plugins list page"},list:{[u]:"Plugins list"},listItem:{[u]:"Plugins list item"},signatureErrorNotice:{"10.3.0":"data-testid Unsigned plugins notice",[u]:"Unsigned plugins notice"}},PluginPage:{page:{[u]:"Plugin page"},signatureInfo:{"10.3.0":"data-testid Plugin signature info",[u]:"Plugin signature info"},disabledInfo:{"10.3.0":"data-testid Plugin disabled info",[u]:"Plugin disabled info"}},PlaylistForm:{name:{[u]:"Playlist name"},interval:{[u]:"Playlist interval"},itemDelete:{"10.2.0":"data-testid playlist-form-delete-item"}},BrowseDashboards:{table:{body:{"10.2.0":"data-testid browse-dashboards-table"},row:{"10.2.0":e=>`data-testid browse dashboards row ${e}`},checkbox:{"10.0.0":e=>`data-testid ${e} checkbox`}},NewFolderForm:{form:{"10.2.0":"data-testid new folder form"},nameInput:{"10.2.0":"data-testid new-folder-name-input"},createButton:{"10.2.0":"data-testid new-folder-create-button"}}},SearchDashboards:{table:{"10.2.0":"Search results table"}},Search:{url:{"9.3.0":"/?search=openn"},FolderView:{url:{"9.3.0":"/?search=open&layout=folders"}}},PublicDashboards:{ListItem:{linkButton:{"9.3.0":"public-dashboard-link-button"},configButton:{"9.3.0":"public-dashboard-configuration-button"},trashcanButton:{"9.3.0":"public-dashboard-remove-button"},pauseSwitch:{"10.1.0":"data-testid public dashboard pause switch"}}},UserListPage:{tabs:{allUsers:{"10.0.0":"data-testid all-users-tab"},orgUsers:{"10.0.0":"data-testid org-users-tab"},anonUserDevices:{"10.2.3":"data-testid anon-user-devices-tab"},publicDashboardsUsers:{"10.0.0":"data-testid public-dashboards-users-tab"},users:{"10.0.0":"data-testid users-tab"}},org:{url:{"10.2.0":"/admin/users","9.5.0":"/org/users"}},admin:{url:{"9.5.0":"/admin/users"}},publicDashboards:{container:{"11.1.0":"data-testid public-dashboards-users-list"}},UserListAdminPage:{container:{"10.0.0":"data-testid user-list-admin-page"}},UsersListPage:{container:{"10.0.0":"data-testid users-list-page"}},UserAnonListPage:{container:{"10.4.0":"data-testid user-anon-list-page"}},UsersListPublicDashboardsPage:{container:{"10.0.0":"data-testid users-list-public-dashboards-page"},DashboardsListModal:{listItem:{"10.0.0":e=>`data-testid dashboards-list-item-${e}`}}}},ProfilePage:{url:{"10.2.0":"/profile"}},Plugin:{url:{[u]:e=>`/plugins/${e}`}},MigrateToCloud:{url:{"11.2.0":"/admin/migrate-to-cloud"}}}),components:a(d)}},7203:function(e,t,n){!function(e){"use strict";e.defineLocale("pt-br",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"do_2ª_3ª_4ª_5ª_6ª_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",invalidDate:"Data inválida"})}(n(2689))},7222:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.resizeHandleType=t.resizeHandleAxesType=t.default=void 0;var r=s(n(2688)),a=s(n(5959));function s(e){return e&&e.__esModule?e:{default:e}}var i=r.default.arrayOf(r.default.oneOf(["s","w","e","n","sw","nw","se","ne"]));t.resizeHandleAxesType=i;var o=r.default.oneOfType([r.default.node,r.default.func]);t.resizeHandleType=o;var l={className:r.default.string,style:r.default.object,width:r.default.number,autoSize:r.default.bool,cols:r.default.number,draggableCancel:r.default.string,draggableHandle:r.default.string,verticalCompact:function(e){e.verticalCompact,0},compactType:r.default.oneOf(["vertical","horizontal"]),layout:function(e){var t=e.layout;void 0!==t&&n(414).validateLayout(t,"layout")},margin:r.default.arrayOf(r.default.number),containerPadding:r.default.arrayOf(r.default.number),rowHeight:r.default.number,maxRows:r.default.number,isBounded:r.default.bool,isDraggable:r.default.bool,isResizable:r.default.bool,allowOverlap:r.default.bool,preventCollision:r.default.bool,useCSSTransforms:r.default.bool,transformScale:r.default.number,isDroppable:r.default.bool,resizeHandles:i,resizeHandle:o,onLayoutChange:r.default.func,onDragStart:r.default.func,onDrag:r.default.func,onDragStop:r.default.func,onResizeStart:r.default.func,onResize:r.default.func,onResizeStop:r.default.func,onDrop:r.default.func,droppingItem:r.default.shape({i:r.default.string.isRequired,w:r.default.number.isRequired,h:r.default.number.isRequired}),children:function(e,t){var n=e[t],r={};a.default.Children.forEach(n,function(e){if(null!=(null==e?void 0:e.key)){if(r[e.key])throw new Error('Duplicate child key "'+e.key+'" found! This will cause problems in ReactGridLayout.');r[e.key]=!0}})},innerRef:r.default.any};t.default=l},7228:function(e,t,n){!function(e){"use strict";var t={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},n={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};e.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(e){return e.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},week:{dow:1,doy:4}})}(n(2689))},7243:function(e,t,n){!function(e){"use strict";e.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(2689))},7244:function(e,t,n){!function(e){"use strict";e.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"下午"===t||"晚上"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:function(e){return e.week()!==this.week()?"[下]dddLT":"[本]dddLT"},lastDay:"[昨天]LT",lastWeek:function(e){return this.week()!==e.week()?"[上]dddLT":"[本]dddLT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s后",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",w:"1 周",ww:"%d 周",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}})}(n(2689))},7256:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta,default:()=>s});const s=a},7260:function(e,t,n){!function(e){"use strict";e.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(e,t,n){return e<11?"ekuseni":e<15?"emini":e<19?"entsambama":"ebusuku"},meridiemHour:function(e,t){return 12===e&&(e=0),"ekuseni"===t?e:"emini"===t?e>=11?e:e+12:"entsambama"===t||"ebusuku"===t?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(n(2689))},7270:function(e,t,n){!function(e){"use strict";e.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}})}(n(2689))},7308:function(e,t,n){!function(e){"use strict";var t={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};e.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",ss:"%d секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(e){var n=e%10,r=e>=100?100:null;return e+(t[e]||t[n]||t[r])},week:{dow:1,doy:7}})}(n(2689))},7350:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.browserPrefixToKey=a,t.browserPrefixToStyle=function(e,t){return t?`-${t.toLowerCase()}-${e}`:e},t.default=void 0,t.getPrefix=r;const n=["Moz","Webkit","O","ms"];function r(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window)return"";const t=window.document?.documentElement?.style;if(!t)return"";if(e in t)return"";for(let r=0;r=10;)e/=10;return a(e)}return a(e/=1e3)}e.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:n,past:r,s:"e puer Sekonnen",ss:"%d Sekonnen",m:t,mm:"%d Minutten",h:t,hh:"%d Stonnen",d:t,dd:"%d Deeg",M:t,MM:"%d Méint",y:t,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},7405:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1705);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function s(e){for(var t=1;t{e.exports=function(e,t,n){return e===t||e.className===t.className&&n(e.style,t.style)&&e.width===t.width&&e.autoSize===t.autoSize&&e.cols===t.cols&&e.draggableCancel===t.draggableCancel&&e.draggableHandle===t.draggableHandle&&n(e.verticalCompact,t.verticalCompact)&&n(e.compactType,t.compactType)&&n(e.layout,t.layout)&&n(e.margin,t.margin)&&n(e.containerPadding,t.containerPadding)&&e.rowHeight===t.rowHeight&&e.maxRows===t.maxRows&&e.isBounded===t.isBounded&&e.isDraggable===t.isDraggable&&e.isResizable===t.isResizable&&e.allowOverlap===t.allowOverlap&&e.preventCollision===t.preventCollision&&e.useCSSTransforms===t.useCSSTransforms&&e.transformScale===t.transformScale&&e.isDroppable===t.isDroppable&&n(e.resizeHandles,t.resizeHandles)&&n(e.resizeHandle,t.resizeHandle)&&e.onLayoutChange===t.onLayoutChange&&e.onDragStart===t.onDragStart&&e.onDrag===t.onDrag&&e.onDragStop===t.onDragStop&&e.onResizeStart===t.onResizeStart&&e.onResize===t.onResize&&e.onResizeStop===t.onResizeStop&&e.onDrop===t.onDrop&&n(e.droppingItem,t.droppingItem)&&n(e.innerRef,t.innerRef)}},7451:(e,t,n)=>{"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);nr})},7462:function(e,t,n){!function(e){"use strict";var t={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},n={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"};e.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".split("_"),longDateFormat:{LT:"A h:mm વાગ્યે",LTS:"A h:mm:ss વાગ્યે",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm વાગ્યે",LLLL:"dddd, D MMMM YYYY, A h:mm વાગ્યે"},calendar:{sameDay:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પહેલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(e){return e.replace(/[૧૨૩૪૫૬૭૮૯૦]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/રાત|બપોર|સવાર|સાંજ/,meridiemHour:function(e,t){return 12===e&&(e=0),"રાત"===t?e<4?e:e+12:"સવાર"===t?e:"બપોર"===t?e>=10?e:e+12:"સાંજ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"રાત":e<10?"સવાર":e<17?"બપોર":e<20?"સાંજ":"રાત"},week:{dow:0,doy:6}})}(n(2689))},7493:function(e,t,n){!function(e){"use strict";var t={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},n={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};e.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}வது/,ordinal:function(e){return e+"வது"},preparse:function(e){return e.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(e,t,n){return e<2?" யாமம்":e<6?" வைகறை":e<10?" காலை":e<14?" நண்பகல்":e<18?" எற்பாடு":e<22?" மாலை":" யாமம்"},meridiemHour:function(e,t){return 12===e&&(e=0),"யாமம்"===t?e<2?e:e+12:"வைகறை"===t||"காலை"===t||"நண்பகல்"===t&&e>=10?e:e+12},week:{dow:0,doy:6}})}(n(2689))},7494:(e,t,n)=>{"use strict";const r=n(8395);e.exports=(e,t)=>{try{return new r(e,t).range||"*"}catch(e){return null}}},7645:(e,t,n)=>{"use strict";const r=n(5860);e.exports=(e,t)=>{const n=r(e,t);return n?n.version:null}},7659:(e,t,n)=>{"use strict";const r=n(5380);e.exports=(e,t,n)=>0!==r(e,t,n)},7705:function(e,t,n){!function(e){"use strict";e.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",ss:"%d సెకన్లు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(e,t){return 12===e&&(e=0),"రాత్రి"===t?e<4?e:e+12:"ఉదయం"===t?e:"మధ్యాహ్నం"===t?e>=10?e:e+12:"సాయంత్రం"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"రాత్రి":e<10?"ఉదయం":e<17?"మధ్యాహ్నం":e<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}})}(n(2689))},7786:function(e,t,n){!function(e){"use strict";var t={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},n={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"};e.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ព្រឹក|ល្ងាច/,isPM:function(e){return"ល្ងាច"===e},meridiem:function(e,t,n){return e<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/ទី\d{1,2}/,ordinal:"ទី%d",preparse:function(e){return e.replace(/[១២៣៤៥៦៧៨៩០]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},week:{dow:1,doy:4}})}(n(2689))},7840:(e,t,n)=>{"use strict";const r=n(7944),a=n(8395);e.exports=(e,t,n)=>{let s=null,i=null,o=null;try{o=new a(t,n)}catch(e){return null}return e.forEach(e=>{o.test(e)&&(s&&-1!==i.compare(e)||(s=e,i=new r(s,n)))}),s}},7842:(e,t,n)=>{e=n.nmd(e);var r="__lodash_hash_undefined__",a=9007199254740991,s="[object Arguments]",i="[object Array]",o="[object Boolean]",l="[object Date]",u="[object Error]",d="[object Function]",c="[object Map]",h="[object Number]",m="[object Object]",p="[object Promise]",f="[object RegExp]",_="[object Set]",g="[object String]",y="[object Symbol]",v="[object WeakMap]",b="[object ArrayBuffer]",M="[object DataView]",w=/^\[object .+?Constructor\]$/,L=/^(?:0|[1-9]\d*)$/,S={};S["[object Float32Array]"]=S["[object Float64Array]"]=S["[object Int8Array]"]=S["[object Int16Array]"]=S["[object Int32Array]"]=S["[object Uint8Array]"]=S["[object Uint8ClampedArray]"]=S["[object Uint16Array]"]=S["[object Uint32Array]"]=!0,S[s]=S[i]=S[b]=S[o]=S[M]=S[l]=S[u]=S[d]=S[c]=S[h]=S[m]=S[f]=S[_]=S[g]=S[v]=!1;var k="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,D="object"==typeof self&&self&&self.Object===Object&&self,T=k||D||Function("return this")(),x=t&&!t.nodeType&&t,Y=x&&e&&!e.nodeType&&e,E=Y&&Y.exports===x,O=E&&k.process,A=function(){try{return O&&O.binding&&O.binding("util")}catch(e){}}(),C=A&&A.isTypedArray;function R(e,t){for(var n=-1,r=null==e?0:e.length;++no))return!1;var u=s.get(e);if(u&&s.get(t))return u==t;var d=-1,c=!0,h=2&n?new be:void 0;for(s.set(e,t),s.set(t,e);++d-1},ye.prototype.set=function(e,t){var n=this.__data__,r=Le(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},ve.prototype.clear=function(){this.size=0,this.__data__={hash:new ge,map:new(se||ye),string:new ge}},ve.prototype.delete=function(e){var t=Oe(this,e).delete(e);return this.size-=t?1:0,t},ve.prototype.get=function(e){return Oe(this,e).get(e)},ve.prototype.has=function(e){return Oe(this,e).has(e)},ve.prototype.set=function(e,t){var n=Oe(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},be.prototype.add=be.prototype.push=function(e){return this.__data__.set(e,r),this},be.prototype.has=function(e){return this.__data__.has(e)},Me.prototype.clear=function(){this.__data__=new ye,this.size=0},Me.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Me.prototype.get=function(e){return this.__data__.get(e)},Me.prototype.has=function(e){return this.__data__.has(e)},Me.prototype.set=function(e,t){var n=this.__data__;if(n instanceof ye){var r=n.__data__;if(!se||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new ve(r)}return n.set(e,t),this.size=n.size,this};var Ce=te?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,r=null==e?0:e.length,a=0,s=[];++n-1&&e%1==0&&e-1&&e%1==0&&e<=a}function ze(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function $e(e){return null!=e&&"object"==typeof e}var Be=C?function(e){return function(t){return e(t)}}(C):function(e){return $e(e)&&Ve(e.length)&&!!S[Se(e)]};function Ue(e){return null!=(t=e)&&Ve(t.length)&&!We(t)?we(e):xe(e);var t}e.exports=function(e,t){return De(e,t)}},7850:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6438);function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,s,i,o=[],l=!0,u=!1;try{if(s=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=s.call(n)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return o}}(e,t)||(0,r.A)(e,t)||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.")}()}},7871:(e,t,n)=>{"use strict";const r=n(5463);e.exports=(e,t,n)=>r(e,t,">",n)},7891:function(e,t,n){!function(e){"use strict";e.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:function(){return"[Oggi a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextDay:function(){return"[Domani a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextWeek:function(){return"dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastDay:function(){return"[Ieri a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastWeek:function(){return 0===this.day()?"[La scorsa] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT":"[Lo scorso] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},sameElse:"L"},relativeTime:{future:"tra %s",past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",w:"una settimana",ww:"%d settimane",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},7893:function(e,t,n){!function(e){"use strict";var t=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],n=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];e.defineLocale("ur",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n(2689))},7899:function(e,t,n){!function(e){"use strict";e.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(n(2689))},7930:(e,t,n)=>{"use strict";const r=n(7944),a=n(8395);e.exports=(e,t,n)=>{let s=null,i=null,o=null;try{o=new a(t,n)}catch(e){return null}return e.forEach(e=>{o.test(e)&&(s&&1!==i.compare(e)||(s=e,i=new r(s,n)))}),s}},7944:(e,t,n)=>{"use strict";const r=n(9796),{MAX_LENGTH:a,MAX_SAFE_INTEGER:s}=n(9630),{safeRe:i,t:o}=n(6850),l=n(7095),{compareIdentifiers:u}=n(4031);class d{constructor(e,t){if(t=l(t),e instanceof d){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>a)throw new TypeError(`version is longer than ${a} characters`);r("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const n=e.trim().match(t.loose?i[o.LOOSE]:i[o.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>s||this.major<0)throw new TypeError("Invalid major version");if(this.minor>s||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>s||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);if(-1===r){if(t===this.prerelease.join(".")&&!1===n)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(e)}}if(t){let r=[t,e];!1===n&&(r=[t]),0===u(this.prerelease[0],t)?isNaN(this.prerelease[1])&&(this.prerelease=r):this.prerelease=r}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}e.exports=d},7988:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){0}},7994:(e,t,n)=>{"use strict";const r=n(5860);e.exports=(e,t)=>{const n=r(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null}},7997:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},8015:(e,t,n)=>{"use strict";n.d(t,{B1:()=>T,C0:()=>c,Dz:()=>_,Jx:()=>o,LI:()=>s,RI:()=>i,Sg:()=>h,T9:()=>a,TV:()=>f,WJ:()=>y,_3:()=>d,bV:()=>k,jk:()=>r,lP:()=>S,nI:()=>D,sq:()=>m,w7:()=>g});const r=Math.min,a=Math.max,s=Math.round,i=Math.floor,o=e=>({x:e,y:e}),l={left:"right",right:"left",bottom:"top",top:"bottom"},u={start:"end",end:"start"};function d(e,t){return"function"==typeof e?e(t):e}function c(e){return e.split("-")[0]}function h(e){return e.split("-")[1]}function m(e){return"y"===e?"height":"width"}const p=new Set(["top","bottom"]);function f(e){return p.has(c(e))?"y":"x"}function _(e){return"x"===f(e)?"y":"x"}function g(e,t,n){void 0===n&&(n=!1);const r=h(e),a=_(e),s=m(a);let i="x"===a?r===(n?"end":"start")?"right":"left":"start"===r?"bottom":"top";return t.reference[s]>t.floating[s]&&(i=k(i)),[i,k(i)]}function y(e){const t=k(e);return[v(e),t,v(t)]}function v(e){return e.replace(/start|end/g,e=>u[e])}const b=["left","right"],M=["right","left"],w=["top","bottom"],L=["bottom","top"];function S(e,t,n,r){const a=h(e);let s=function(e,t,n){switch(e){case"top":case"bottom":return n?t?M:b:t?b:M;case"left":case"right":return t?w:L;default:return[]}}(c(e),"start"===n,r);return a&&(s=s.map(e=>e+"-"+a),t&&(s=s.concat(s.map(v)))),s}function k(e){return e.replace(/left|right|bottom|top/g,e=>l[e])}function D(e){return"number"!=typeof e?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(e):{top:e,right:e,bottom:e,left:e}}function T(e){const{x:t,y:n,width:r,height:a}=e;return{width:r,height:a,top:n,left:t,right:t+r,bottom:n+a,x:t,y:n}}},8026:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",e+" secunds"],m:["'n míut","'iens míut"],mm:[e+" míuts",e+" míuts"],h:["'n þora","'iensa þora"],hh:[e+" þoras",e+" þoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",e+" ars"]};return r||t?a[n][0]:a[n][1]}e.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,t,n){return e>11?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},8030:function(e,t,n){!function(e){"use strict";e.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(2689))},8083:(e,t,n)=>{"use strict";n.d(t,{ll:()=>k,rD:()=>Y,UU:()=>T,cY:()=>D,Ej:()=>x});var r=n(8015);function a(e,t,n){let{reference:a,floating:s}=e;const i=(0,r.TV)(t),o=(0,r.Dz)(t),l=(0,r.sq)(o),u=(0,r.C0)(t),d="y"===i,c=a.x+a.width/2-s.width/2,h=a.y+a.height/2-s.height/2,m=a[l]/2-s[l]/2;let p;switch(u){case"top":p={x:c,y:a.y-s.height};break;case"bottom":p={x:c,y:a.y+a.height};break;case"right":p={x:a.x+a.width,y:h};break;case"left":p={x:a.x-s.width,y:h};break;default:p={x:a.x,y:a.y}}switch((0,r.Sg)(t)){case"start":p[o]-=m*(n&&d?-1:1);break;case"end":p[o]+=m*(n&&d?-1:1)}return p}async function s(e,t){var n;void 0===t&&(t={});const{x:a,y:s,platform:i,rects:o,elements:l,strategy:u}=e,{boundary:d="clippingAncestors",rootBoundary:c="viewport",elementContext:h="floating",altBoundary:m=!1,padding:p=0}=(0,r._3)(t,e),f=(0,r.nI)(p),_=l[m?"floating"===h?"reference":"floating":h],g=(0,r.B1)(await i.getClippingRect({element:null==(n=await(null==i.isElement?void 0:i.isElement(_)))||n?_:_.contextElement||await(null==i.getDocumentElement?void 0:i.getDocumentElement(l.floating)),boundary:d,rootBoundary:c,strategy:u})),y="floating"===h?{x:a,y:s,width:o.floating.width,height:o.floating.height}:o.reference,v=await(null==i.getOffsetParent?void 0:i.getOffsetParent(l.floating)),b=await(null==i.isElement?void 0:i.isElement(v))&&await(null==i.getScale?void 0:i.getScale(v))||{x:1,y:1},M=(0,r.B1)(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:y,offsetParent:v,strategy:u}):y);return{top:(g.top-M.top+f.top)/b.y,bottom:(M.bottom-g.bottom+f.bottom)/b.y,left:(g.left-M.left+f.left)/b.x,right:(M.right-g.right+f.right)/b.x}}const i=new Set(["left","top"]);var o=n(977);function l(e){const t=(0,o.L9)(e);let n=parseFloat(t.width)||0,a=parseFloat(t.height)||0;const s=(0,o.sb)(e),i=s?e.offsetWidth:n,l=s?e.offsetHeight:a,u=(0,r.LI)(n)!==i||(0,r.LI)(a)!==l;return u&&(n=i,a=l),{width:n,height:a,$:u}}function u(e){return(0,o.vq)(e)?e:e.contextElement}function d(e){const t=u(e);if(!(0,o.sb)(t))return(0,r.Jx)(1);const n=t.getBoundingClientRect(),{width:a,height:s,$:i}=l(t);let d=(i?(0,r.LI)(n.width):n.width)/a,c=(i?(0,r.LI)(n.height):n.height)/s;return d&&Number.isFinite(d)||(d=1),c&&Number.isFinite(c)||(c=1),{x:d,y:c}}const c=(0,r.Jx)(0);function h(e){const t=(0,o.zk)(e);return(0,o.Tc)()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:c}function m(e,t,n,a){void 0===t&&(t=!1),void 0===n&&(n=!1);const s=e.getBoundingClientRect(),i=u(e);let l=(0,r.Jx)(1);t&&(a?(0,o.vq)(a)&&(l=d(a)):l=d(e));const c=function(e,t,n){return void 0===t&&(t=!1),!(!n||t&&n!==(0,o.zk)(e))&&t}(i,n,a)?h(i):(0,r.Jx)(0);let m=(s.left+c.x)/l.x,p=(s.top+c.y)/l.y,f=s.width/l.x,_=s.height/l.y;if(i){const e=(0,o.zk)(i),t=a&&(0,o.vq)(a)?(0,o.zk)(a):a;let n=e,r=(0,o._m)(n);for(;r&&a&&t!==n;){const e=d(r),t=r.getBoundingClientRect(),a=(0,o.L9)(r),s=t.left+(r.clientLeft+parseFloat(a.paddingLeft))*e.x,i=t.top+(r.clientTop+parseFloat(a.paddingTop))*e.y;m*=e.x,p*=e.y,f*=e.x,_*=e.y,m+=s,p+=i,n=(0,o.zk)(r),r=(0,o._m)(n)}}return(0,r.B1)({width:f,height:_,x:m,y:p})}function p(e,t){const n=(0,o.CP)(e).scrollLeft;return t?t.left+n:m((0,o.ep)(e)).left+n}function f(e,t,n){void 0===n&&(n=!1);const r=e.getBoundingClientRect();return{x:r.left+t.scrollLeft-(n?0:p(e,r)),y:r.top+t.scrollTop}}const _=new Set(["absolute","fixed"]);function g(e,t,n){let a;if("viewport"===t)a=function(e,t){const n=(0,o.zk)(e),r=(0,o.ep)(e),a=n.visualViewport;let s=r.clientWidth,i=r.clientHeight,l=0,u=0;if(a){s=a.width,i=a.height;const e=(0,o.Tc)();(!e||e&&"fixed"===t)&&(l=a.offsetLeft,u=a.offsetTop)}return{width:s,height:i,x:l,y:u}}(e,n);else if("document"===t)a=function(e){const t=(0,o.ep)(e),n=(0,o.CP)(e),a=e.ownerDocument.body,s=(0,r.T9)(t.scrollWidth,t.clientWidth,a.scrollWidth,a.clientWidth),i=(0,r.T9)(t.scrollHeight,t.clientHeight,a.scrollHeight,a.clientHeight);let l=-n.scrollLeft+p(e);const u=-n.scrollTop;return"rtl"===(0,o.L9)(a).direction&&(l+=(0,r.T9)(t.clientWidth,a.clientWidth)-s),{width:s,height:i,x:l,y:u}}((0,o.ep)(e));else if((0,o.vq)(t))a=function(e,t){const n=m(e,!0,"fixed"===t),a=n.top+e.clientTop,s=n.left+e.clientLeft,i=(0,o.sb)(e)?d(e):(0,r.Jx)(1);return{width:e.clientWidth*i.x,height:e.clientHeight*i.y,x:s*i.x,y:a*i.y}}(t,n);else{const n=h(e);a={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return(0,r.B1)(a)}function y(e,t){const n=(0,o.$4)(e);return!(n===t||!(0,o.vq)(n)||(0,o.eu)(n))&&("fixed"===(0,o.L9)(n).position||y(n,t))}function v(e,t,n){const a=(0,o.sb)(t),s=(0,o.ep)(t),i="fixed"===n,l=m(e,!0,i,t);let u={scrollLeft:0,scrollTop:0};const d=(0,r.Jx)(0);function c(){d.x=p(s)}if(a||!a&&!i)if(("body"!==(0,o.mq)(t)||(0,o.ZU)(s))&&(u=(0,o.CP)(t)),a){const e=m(t,!0,i,t);d.x=e.x+t.clientLeft,d.y=e.y+t.clientTop}else s&&c();i&&!a&&s&&c();const h=!s||a||i?(0,r.Jx)(0):f(s,u);return{x:l.left+u.scrollLeft-d.x-h.x,y:l.top+u.scrollTop-d.y-h.y,width:l.width,height:l.height}}function b(e){return"static"===(0,o.L9)(e).position}function M(e,t){if(!(0,o.sb)(e)||"fixed"===(0,o.L9)(e).position)return null;if(t)return t(e);let n=e.offsetParent;return(0,o.ep)(e)===n&&(n=n.ownerDocument.body),n}function w(e,t){const n=(0,o.zk)(e);if((0,o.Tf)(e))return n;if(!(0,o.sb)(e)){let t=(0,o.$4)(e);for(;t&&!(0,o.eu)(t);){if((0,o.vq)(t)&&!b(t))return t;t=(0,o.$4)(t)}return n}let r=M(e,t);for(;r&&(0,o.Lv)(r)&&b(r);)r=M(r,t);return r&&(0,o.eu)(r)&&b(r)&&!(0,o.sQ)(r)?n:r||(0,o.gJ)(e)||n}const L={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:a,strategy:s}=e;const i="fixed"===s,l=(0,o.ep)(a),u=!!t&&(0,o.Tf)(t.floating);if(a===l||u&&i)return n;let c={scrollLeft:0,scrollTop:0},h=(0,r.Jx)(1);const p=(0,r.Jx)(0),_=(0,o.sb)(a);if((_||!_&&!i)&&(("body"!==(0,o.mq)(a)||(0,o.ZU)(l))&&(c=(0,o.CP)(a)),(0,o.sb)(a))){const e=m(a);h=d(a),p.x=e.x+a.clientLeft,p.y=e.y+a.clientTop}const g=!l||_||i?(0,r.Jx)(0):f(l,c,!0);return{width:n.width*h.x,height:n.height*h.y,x:n.x*h.x-c.scrollLeft*h.x+p.x+g.x,y:n.y*h.y-c.scrollTop*h.y+p.y+g.y}},getDocumentElement:o.ep,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:a,strategy:s}=e;const i=[..."clippingAncestors"===n?(0,o.Tf)(t)?[]:function(e,t){const n=t.get(e);if(n)return n;let r=(0,o.v9)(e,[],!1).filter(e=>(0,o.vq)(e)&&"body"!==(0,o.mq)(e)),a=null;const s="fixed"===(0,o.L9)(e).position;let i=s?(0,o.$4)(e):e;for(;(0,o.vq)(i)&&!(0,o.eu)(i);){const t=(0,o.L9)(i),n=(0,o.sQ)(i);n||"fixed"!==t.position||(a=null),(s?!n&&!a:!n&&"static"===t.position&&a&&_.has(a.position)||(0,o.ZU)(i)&&!n&&y(e,i))?r=r.filter(e=>e!==i):a=t,i=(0,o.$4)(i)}return t.set(e,r),r}(t,this._c):[].concat(n),a],l=i[0],u=i.reduce((e,n)=>{const a=g(t,n,s);return e.top=(0,r.T9)(a.top,e.top),e.right=(0,r.jk)(a.right,e.right),e.bottom=(0,r.jk)(a.bottom,e.bottom),e.left=(0,r.T9)(a.left,e.left),e},g(t,l,s));return{width:u.right-u.left,height:u.bottom-u.top,x:u.left,y:u.top}},getOffsetParent:w,getElementRects:async function(e){const t=this.getOffsetParent||w,n=this.getDimensions,r=await n(e.floating);return{reference:v(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}},getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){const{width:t,height:n}=l(e);return{width:t,height:n}},getScale:d,isElement:o.vq,isRTL:function(e){return"rtl"===(0,o.L9)(e).direction}};function S(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function k(e,t,n,a){void 0===a&&(a={});const{ancestorScroll:s=!0,ancestorResize:i=!0,elementResize:l="function"==typeof ResizeObserver,layoutShift:d="function"==typeof IntersectionObserver,animationFrame:c=!1}=a,h=u(e),p=s||i?[...h?(0,o.v9)(h):[],...(0,o.v9)(t)]:[];p.forEach(e=>{s&&e.addEventListener("scroll",n,{passive:!0}),i&&e.addEventListener("resize",n)});const f=h&&d?function(e,t){let n,a=null;const s=(0,o.ep)(e);function i(){var e;clearTimeout(n),null==(e=a)||e.disconnect(),a=null}return function o(l,u){void 0===l&&(l=!1),void 0===u&&(u=1),i();const d=e.getBoundingClientRect(),{left:c,top:h,width:m,height:p}=d;if(l||t(),!m||!p)return;const f={rootMargin:-(0,r.RI)(h)+"px "+-(0,r.RI)(s.clientWidth-(c+m))+"px "+-(0,r.RI)(s.clientHeight-(h+p))+"px "+-(0,r.RI)(c)+"px",threshold:(0,r.T9)(0,(0,r.jk)(1,u))||1};let _=!0;function g(t){const r=t[0].intersectionRatio;if(r!==u){if(!_)return o();r?o(!1,r):n=setTimeout(()=>{o(!1,1e-7)},1e3)}1!==r||S(d,e.getBoundingClientRect())||o(),_=!1}try{a=new IntersectionObserver(g,{...f,root:s.ownerDocument})}catch(e){a=new IntersectionObserver(g,f)}a.observe(e)}(!0),i}(h,n):null;let _,g=-1,y=null;l&&(y=new ResizeObserver(e=>{let[r]=e;r&&r.target===h&&y&&(y.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{var e;null==(e=y)||e.observe(t)})),n()}),h&&!c&&y.observe(h),y.observe(t));let v=c?m(e):null;return c&&function t(){const r=m(e);v&&!S(v,r)&&n();v=r,_=requestAnimationFrame(t)}(),n(),()=>{var e;p.forEach(e=>{s&&e.removeEventListener("scroll",n),i&&e.removeEventListener("resize",n)}),null==f||f(),null==(e=y)||e.disconnect(),y=null,c&&cancelAnimationFrame(_)}}const D=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var n,a;const{x:s,y:o,placement:l,middlewareData:u}=t,d=await async function(e,t){const{placement:n,platform:a,elements:s}=e,o=await(null==a.isRTL?void 0:a.isRTL(s.floating)),l=(0,r.C0)(n),u=(0,r.Sg)(n),d="y"===(0,r.TV)(n),c=i.has(l)?-1:1,h=o&&d?-1:1,m=(0,r._3)(t,e);let{mainAxis:p,crossAxis:f,alignmentAxis:_}="number"==typeof m?{mainAxis:m,crossAxis:0,alignmentAxis:null}:{mainAxis:m.mainAxis||0,crossAxis:m.crossAxis||0,alignmentAxis:m.alignmentAxis};return u&&"number"==typeof _&&(f="end"===u?-1*_:_),d?{x:f*h,y:p*c}:{x:p*c,y:f*h}}(t,e);return l===(null==(n=u.offset)?void 0:n.placement)&&null!=(a=u.arrow)&&a.alignmentOffset?{}:{x:s+d.x,y:o+d.y,data:{...d,placement:l}}}}},T=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,a;const{placement:i,middlewareData:o,rects:l,initialPlacement:u,platform:d,elements:c}=t,{mainAxis:h=!0,crossAxis:m=!0,fallbackPlacements:p,fallbackStrategy:f="bestFit",fallbackAxisSideDirection:_="none",flipAlignment:g=!0,...y}=(0,r._3)(e,t);if(null!=(n=o.arrow)&&n.alignmentOffset)return{};const v=(0,r.C0)(i),b=(0,r.TV)(u),M=(0,r.C0)(u)===u,w=await(null==d.isRTL?void 0:d.isRTL(c.floating)),L=p||(M||!g?[(0,r.bV)(u)]:(0,r.WJ)(u)),S="none"!==_;!p&&S&&L.push(...(0,r.lP)(u,g,_,w));const k=[u,...L],D=await s(t,y),T=[];let x=(null==(a=o.flip)?void 0:a.overflows)||[];if(h&&T.push(D[v]),m){const e=(0,r.w7)(i,l,w);T.push(D[e[0]],D[e[1]])}if(x=[...x,{placement:i,overflows:T}],!T.every(e=>e<=0)){var Y,E;const e=((null==(Y=o.flip)?void 0:Y.index)||0)+1,t=k[e];if(t){if(!("alignment"===m&&b!==(0,r.TV)(t))||x.every(e=>e.overflows[0]>0&&(0,r.TV)(e.placement)===b))return{data:{index:e,overflows:x},reset:{placement:t}}}let n=null==(E=x.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:E.placement;if(!n)switch(f){case"bestFit":{var O;const e=null==(O=x.filter(e=>{if(S){const t=(0,r.TV)(e.placement);return t===b||"y"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:O[0];e&&(n=e);break}case"initialPlacement":n=u}if(i!==n)return{reset:{placement:n}}}return{}}}},x=function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var n,a;const{placement:i,rects:o,platform:l,elements:u}=t,{apply:d=()=>{},...c}=(0,r._3)(e,t),h=await s(t,c),m=(0,r.C0)(i),p=(0,r.Sg)(i),f="y"===(0,r.TV)(i),{width:_,height:g}=o.floating;let y,v;"top"===m||"bottom"===m?(y=m,v=p===(await(null==l.isRTL?void 0:l.isRTL(u.floating))?"start":"end")?"left":"right"):(v=m,y="end"===p?"top":"bottom");const b=g-h.top-h.bottom,M=_-h.left-h.right,w=(0,r.jk)(g-h[y],b),L=(0,r.jk)(_-h[v],M),S=!t.middlewareData.shift;let k=w,D=L;if(null!=(n=t.middlewareData.shift)&&n.enabled.x&&(D=M),null!=(a=t.middlewareData.shift)&&a.enabled.y&&(k=b),S&&!p){const e=(0,r.T9)(h.left,0),t=(0,r.T9)(h.right,0),n=(0,r.T9)(h.top,0),a=(0,r.T9)(h.bottom,0);f?D=_-2*(0!==e||0!==t?e+t:(0,r.T9)(h.left,h.right)):k=g-2*(0!==n||0!==a?n+a:(0,r.T9)(h.top,h.bottom))}await d({...t,availableWidth:D,availableHeight:k});const T=await l.getDimensions(u.floating);return _!==T.width||g!==T.height?{reset:{rects:!0}}:{}}}},Y=(e,t,n)=>{const r=new Map,s={platform:L,...n},i={...s.platform,_c:r};return(async(e,t,n)=>{const{placement:r="bottom",strategy:s="absolute",middleware:i=[],platform:o}=n,l=i.filter(Boolean),u=await(null==o.isRTL?void 0:o.isRTL(t));let d=await o.getElementRects({reference:e,floating:t,strategy:s}),{x:c,y:h}=a(d,r,u),m=r,p={},f=0;for(let n=0;n{"use strict";function r(e){return r="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},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=h(n(5959)),s=h(n(2688)),i=n(8230),o=n(936),l=n(414),u=n(906),d=n(7222),c=h(n(7256));function h(e){return e&&e.__esModule?e:{default:e}}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function p(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:this.props;return{cols:e.cols,containerPadding:e.containerPadding,containerWidth:e.containerWidth,margin:e.margin,maxRows:e.maxRows,rowHeight:e.rowHeight}}},{key:"createStyle",value:function(e){var t,n=this.props,r=n.usePercentages,a=n.containerWidth;return n.useCSSTransforms?t=(0,l.setTransform)(e):(t=(0,l.setTopLeft)(e),r&&(t.left=(0,l.perc)(e.left/a),t.width=(0,l.perc)(e.width/a))),t}},{key:"mixinDraggable",value:function(e,t){return a.default.createElement(i.DraggableCore,{disabled:!t,onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop,handle:this.props.handle,cancel:".react-resizable-handle"+(this.props.cancel?","+this.props.cancel:""),scale:this.props.transformScale,nodeRef:this.elementRef},e)}},{key:"mixinResizable",value:function(e,t,n){var r=this.props,s=r.cols,i=r.x,l=r.minW,d=r.minH,c=r.maxW,h=r.maxH,m=r.transformScale,p=r.resizeHandles,f=r.resizeHandle,_=this.getPositionParams(),g=(0,u.calcGridItemPosition)(_,0,0,s-i,0).width,y=(0,u.calcGridItemPosition)(_,0,0,l,d),v=(0,u.calcGridItemPosition)(_,0,0,c,h),b=[y.width,y.height],M=[Math.min(v.width,g),Math.min(v.height,1/0)];return a.default.createElement(o.Resizable,{draggableOpts:{disabled:!n},className:n?void 0:"react-resizable-hide",width:t.width,height:t.height,minConstraints:b,maxConstraints:M,onResizeStop:this.onResizeStop,onResizeStart:this.onResizeStart,onResize:this.onResize,transformScale:m,resizeHandles:p,handle:f},e)}},{key:"onResizeHandler",value:function(e,t,n){var r=t.node,a=t.size,s=this.props[n];if(s){var i=this.props,o=i.cols,l=i.x,d=i.y,c=i.i,h=i.maxH,m=i.minH,p=this.props,f=p.minW,_=p.maxW,g=(0,u.calcWH)(this.getPositionParams(),a.width,a.height,l,d),y=g.w,v=g.h;f=Math.max(f,1),_=Math.min(_,o-l),y=(0,u.clamp)(y,f,_),v=(0,u.clamp)(v,m,h),this.setState({resizing:"onResizeStop"===n?null:a}),s.call(this,c,y,v,{e,node:r,size:a})}}},{key:"render",value:function(){var e=this.props,t=e.x,n=e.y,r=e.w,s=e.h,i=e.isDraggable,o=e.isResizable,l=e.droppingPosition,d=e.useCSSTransforms,h=(0,u.calcGridItemPosition)(this.getPositionParams(),t,n,r,s,this.state),m=a.default.Children.only(this.props.children),f=a.default.cloneElement(m,{ref:this.elementRef,className:(0,c.default)("react-grid-item",m.props.className,this.props.className,{static:this.props.static,resizing:Boolean(this.state.resizing),"react-draggable":i,"react-draggable-dragging":Boolean(this.state.dragging),dropping:Boolean(l),cssTransforms:d}),style:p(p(p({},this.props.style),m.props.style),this.createStyle(h))});return f=this.mixinResizable(f,h,o),f=this.mixinDraggable(f,i)}}],n&&f(t.prototype,n),r&&f(t,r),Object.defineProperty(t,"prototype",{writable:!1}),d}(a.default.Component);t.default=M,b(M,"propTypes",{children:s.default.element,cols:s.default.number.isRequired,containerWidth:s.default.number.isRequired,rowHeight:s.default.number.isRequired,margin:s.default.array.isRequired,maxRows:s.default.number.isRequired,containerPadding:s.default.array.isRequired,x:s.default.number.isRequired,y:s.default.number.isRequired,w:s.default.number.isRequired,h:s.default.number.isRequired,minW:function(e,t){var n=e[t];return"number"!=typeof n?new Error("minWidth not Number"):n>e.w||n>e.maxW?new Error("minWidth larger than item width/maxWidth"):void 0},maxW:function(e,t){var n=e[t];return"number"!=typeof n?new Error("maxWidth not Number"):ne.h||n>e.maxH?new Error("minHeight larger than item height/maxHeight"):void 0},maxH:function(e,t){var n=e[t];return"number"!=typeof n?new Error("maxHeight not Number"):n{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;tr})},8230:(e,t,n)=>{"use strict";const{default:r,DraggableCore:a}=n(9111);e.exports=r,e.exports.default=r,e.exports.DraggableCore=a},8231:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["ühe minuti","üks minut"],mm:[e+" minuti",e+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[e+" tunni",e+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[e+" kuu",e+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[e+" aasta",e+" aastat"]};return t?a[n][2]?a[n][2]:a[n][1]:r?a[n][0]:a[n][1]}e.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:"%d päeva",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},8294:function(e,t,n){!function(e){"use strict";e.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"én time",hh:"%d timer",d:"én dag",dd:"%d dager",w:"én uke",ww:"%d uker",M:"én måned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},8373:(e,t,n)=>{"use strict";n.d(t,{Nf:()=>a});let r=!1;function a(){return r}},8377:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){switch(n){case"s":return t?"хэдхэн секунд":"хэдхэн секундын";case"ss":return e+(t?" секунд":" секундын");case"m":case"mm":return e+(t?" минут":" минутын");case"h":case"hh":return e+(t?" цаг":" цагийн");case"d":case"dd":return e+(t?" өдөр":" өдрийн");case"M":case"MM":return e+(t?" сар":" сарын");case"y":case"yy":return e+(t?" жил":" жилийн");default:return e}}e.defineLocale("mn",{months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),monthsParseExact:!0,weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},meridiemParse:/ҮӨ|ҮХ/i,isPM:function(e){return"ҮХ"===e},meridiem:function(e,t,n){return e<12?"ҮӨ":"ҮХ"},calendar:{sameDay:"[Өнөөдөр] LT",nextDay:"[Маргааш] LT",nextWeek:"[Ирэх] dddd LT",lastDay:"[Өчигдөр] LT",lastWeek:"[Өнгөрсөн] dddd LT",sameElse:"L"},relativeTime:{future:"%s дараа",past:"%s өмнө",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2} өдөр/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+" өдөр";default:return e}}})}(n(2689))},8395:(e,t,n)=>{"use strict";const r=/\s+/g;class a{constructor(e,t){if(t=i(t),e instanceof a)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new a(e.raw,t);if(e instanceof o)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().replace(r," "),this.set=this.raw.split("||").map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const e=this.set[0];if(this.set=this.set.filter(e=>!g(e[0])),0===this.set.length)this.set=[e];else if(this.set.length>1)for(const e of this.set)if(1===e.length&&y(e[0])){this.set=[e];break}}this.formatted=void 0}get range(){if(void 0===this.formatted){this.formatted="";for(let e=0;e0&&(this.formatted+="||");const t=this.set[e];for(let e=0;e0&&(this.formatted+=" "),this.formatted+=t[e].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){const t=((this.options.includePrerelease&&f)|(this.options.loose&&_))+":"+e,n=s.get(t);if(n)return n;const r=this.options.loose,a=r?d[c.HYPHENRANGELOOSE]:d[c.HYPHENRANGE];e=e.replace(a,E(this.options.includePrerelease)),l("hyphen replace",e),e=e.replace(d[c.COMPARATORTRIM],h),l("comparator trim",e),e=e.replace(d[c.TILDETRIM],m),l("tilde trim",e),e=e.replace(d[c.CARETTRIM],p),l("caret trim",e);let i=e.split(" ").map(e=>b(e,this.options)).join(" ").split(/\s+/).map(e=>Y(e,this.options));r&&(i=i.filter(e=>(l("loose invalid filter",e,this.options),!!e.match(d[c.COMPARATORLOOSE])))),l("range list",i);const u=new Map,y=i.map(e=>new o(e,this.options));for(const e of y){if(g(e))return[e];u.set(e.value,e)}u.size>1&&u.has("")&&u.delete("");const v=[...u.values()];return s.set(t,v),v}intersects(e,t){if(!(e instanceof a))throw new TypeError("a Range is required");return this.set.some(n=>v(n,t)&&e.set.some(e=>v(e,t)&&n.every(n=>e.every(e=>n.intersects(e,t)))))}test(e){if(!e)return!1;if("string"==typeof e)try{e=new u(e,this.options)}catch(e){return!1}for(let t=0;t"<0.0.0-0"===e.value,y=e=>""===e.value,v=(e,t)=>{let n=!0;const r=e.slice();let a=r.pop();for(;n&&r.length;)n=r.every(e=>a.intersects(e,t)),a=r.pop();return n},b=(e,t)=>(l("comp",e,t),e=S(e,t),l("caret",e),e=w(e,t),l("tildes",e),e=D(e,t),l("xrange",e),e=x(e,t),l("stars",e),e),M=e=>!e||"x"===e.toLowerCase()||"*"===e,w=(e,t)=>e.trim().split(/\s+/).map(e=>L(e,t)).join(" "),L=(e,t)=>{const n=t.loose?d[c.TILDELOOSE]:d[c.TILDE];return e.replace(n,(t,n,r,a,s)=>{let i;return l("tilde",e,t,n,r,a,s),M(n)?i="":M(r)?i=`>=${n}.0.0 <${+n+1}.0.0-0`:M(a)?i=`>=${n}.${r}.0 <${n}.${+r+1}.0-0`:s?(l("replaceTilde pr",s),i=`>=${n}.${r}.${a}-${s} <${n}.${+r+1}.0-0`):i=`>=${n}.${r}.${a} <${n}.${+r+1}.0-0`,l("tilde return",i),i})},S=(e,t)=>e.trim().split(/\s+/).map(e=>k(e,t)).join(" "),k=(e,t)=>{l("caret",e,t);const n=t.loose?d[c.CARETLOOSE]:d[c.CARET],r=t.includePrerelease?"-0":"";return e.replace(n,(t,n,a,s,i)=>{let o;return l("caret",e,t,n,a,s,i),M(n)?o="":M(a)?o=`>=${n}.0.0${r} <${+n+1}.0.0-0`:M(s)?o="0"===n?`>=${n}.${a}.0${r} <${n}.${+a+1}.0-0`:`>=${n}.${a}.0${r} <${+n+1}.0.0-0`:i?(l("replaceCaret pr",i),o="0"===n?"0"===a?`>=${n}.${a}.${s}-${i} <${n}.${a}.${+s+1}-0`:`>=${n}.${a}.${s}-${i} <${n}.${+a+1}.0-0`:`>=${n}.${a}.${s}-${i} <${+n+1}.0.0-0`):(l("no pr"),o="0"===n?"0"===a?`>=${n}.${a}.${s}${r} <${n}.${a}.${+s+1}-0`:`>=${n}.${a}.${s}${r} <${n}.${+a+1}.0-0`:`>=${n}.${a}.${s} <${+n+1}.0.0-0`),l("caret return",o),o})},D=(e,t)=>(l("replaceXRanges",e,t),e.split(/\s+/).map(e=>T(e,t)).join(" ")),T=(e,t)=>{e=e.trim();const n=t.loose?d[c.XRANGELOOSE]:d[c.XRANGE];return e.replace(n,(n,r,a,s,i,o)=>{l("xRange",e,n,r,a,s,i,o);const u=M(a),d=u||M(s),c=d||M(i),h=c;return"="===r&&h&&(r=""),o=t.includePrerelease?"-0":"",u?n=">"===r||"<"===r?"<0.0.0-0":"*":r&&h?(d&&(s=0),i=0,">"===r?(r=">=",d?(a=+a+1,s=0,i=0):(s=+s+1,i=0)):"<="===r&&(r="<",d?a=+a+1:s=+s+1),"<"===r&&(o="-0"),n=`${r+a}.${s}.${i}${o}`):d?n=`>=${a}.0.0${o} <${+a+1}.0.0-0`:c&&(n=`>=${a}.${s}.0${o} <${a}.${+s+1}.0-0`),l("xRange return",n),n})},x=(e,t)=>(l("replaceStars",e,t),e.trim().replace(d[c.STAR],"")),Y=(e,t)=>(l("replaceGTE0",e,t),e.trim().replace(d[t.includePrerelease?c.GTE0PRE:c.GTE0],"")),E=e=>(t,n,r,a,s,i,o,l,u,d,c,h)=>`${n=M(r)?"":M(a)?`>=${r}.0.0${e?"-0":""}`:M(s)?`>=${r}.${a}.0${e?"-0":""}`:i?`>=${n}`:`>=${n}${e?"-0":""}`} ${l=M(u)?"":M(d)?`<${+u+1}.0.0-0`:M(c)?`<${u}.${+d+1}.0-0`:h?`<=${u}.${d}.${c}-${h}`:e?`<${u}.${d}.${+c+1}-0`:`<=${l}`}`.trim(),O=(e,t,n)=>{for(let n=0;n0){const r=e[n].semver;if(r.major===t.major&&r.minor===t.minor&&r.patch===t.patch)return!0}return!1}return!0}},8449:(e,t,n)=>{"use strict";const r=n(6850),a=n(9630),s=n(7944),i=n(4031),o=n(5860),l=n(7645),u=n(7994),d=n(5955),c=n(660),h=n(2966),m=n(5986),p=n(1617),f=n(9613),_=n(5380),g=n(2862),y=n(7023),v=n(2801),b=n(603),M=n(6033),w=n(144),L=n(599),S=n(6909),k=n(7659),D=n(2077),T=n(7092),x=n(3811),Y=n(5334),E=n(9524),O=n(8395),A=n(1722),C=n(651),R=n(7840),P=n(7930),j=n(3489),H=n(7494),N=n(5463),I=n(7871),F=n(4266),W=n(1112),V=n(1465),z=n(9252);e.exports={parse:o,valid:l,clean:u,inc:d,diff:c,major:h,minor:m,patch:p,prerelease:f,compare:_,rcompare:g,compareLoose:y,compareBuild:v,sort:b,rsort:M,gt:w,lt:L,eq:S,neq:k,gte:D,lte:T,cmp:x,coerce:Y,Comparator:E,Range:O,satisfies:A,toComparators:C,maxSatisfying:R,minSatisfying:P,minVersion:j,validRange:H,outside:N,gtr:I,ltr:F,intersects:W,simplifyRange:V,subset:z,SemVer:s,re:r.re,src:r.src,tokens:r.t,SEMVER_SPEC_VERSION:a.SEMVER_SPEC_VERSION,RELEASE_TYPES:a.RELEASE_TYPES,compareIdentifiers:i.compareIdentifiers,rcompareIdentifiers:i.rcompareIdentifiers}},8473:function(e,t,n){!function(e){"use strict";var t=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],n=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];e.defineLocale("sd",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n(2689))},8478:function(e,t,n){!function(e){"use strict";function t(e,t){var n=e.split("_");return t%10==1&&t%100!=11?n[0]:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?n[1]:n[2]}function n(e,n,r){return"m"===r?n?"хвилина":"хвилину":"h"===r?n?"година":"годину":e+" "+t({ss:n?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:n?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:n?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"}[r],+e)}function r(e,t){var n={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};return!0===e?n.nominative.slice(1,7).concat(n.nominative.slice(0,1)):e?n[/(\[[ВвУу]\]) ?dddd/.test(t)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(t)?"genitive":"nominative"][e.day()]:n.nominative}function a(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}e.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:r,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:a("[Сьогодні "),nextDay:a("[Завтра "),lastDay:a("[Вчора "),nextWeek:a("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return a("[Минулої] dddd [").call(this);case 1:case 2:case 4:return a("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:n,m:n,mm:n,h:"годину",hh:n,d:"день",dd:n,M:"місяць",MM:n,y:"рік",yy:n},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(e){return/^(дня|вечора)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночі":e<12?"ранку":e<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}})}(n(2689))},8503:function(e,t,n){!function(e){"use strict";e.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(e){return"ຕອນແລງ"===e},meridiem:function(e,t,n){return e<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",ss:"%d ວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},dayOfMonthOrdinalParse:/(ທີ່)\d{1,2}/,ordinal:function(e){return"ທີ່"+e}})}(n(2689))},8512:function(e,t,n){!function(e){"use strict";e.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},8537:function(e,t,n){!function(e){"use strict";e.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})}(n(2689))},8588:function(e,t,n){!function(e){"use strict";e.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(2689))},8733:function(e,t,n){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function r(e,t,n,r){var a="";if(t)switch(n){case"s":a="काही सेकंद";break;case"ss":a="%d सेकंद";break;case"m":a="एक मिनिट";break;case"mm":a="%d मिनिटे";break;case"h":a="एक तास";break;case"hh":a="%d तास";break;case"d":a="एक दिवस";break;case"dd":a="%d दिवस";break;case"M":a="एक महिना";break;case"MM":a="%d महिने";break;case"y":a="एक वर्ष";break;case"yy":a="%d वर्षे"}else switch(n){case"s":a="काही सेकंदां";break;case"ss":a="%d सेकंदां";break;case"m":a="एका मिनिटा";break;case"mm":a="%d मिनिटां";break;case"h":a="एका तासा";break;case"hh":a="%d तासां";break;case"d":a="एका दिवसा";break;case"dd":a="%d दिवसां";break;case"M":a="एका महिन्या";break;case"MM":a="%d महिन्यां";break;case"y":a="एका वर्षा";break;case"yy":a="%d वर्षां"}return a.replace(/%d/i,e)}e.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,meridiemHour:function(e,t){return 12===e&&(e=0),"पहाटे"===t||"सकाळी"===t?e:"दुपारी"===t||"सायंकाळी"===t||"रात्री"===t?e>=12?e:e+12:void 0},meridiem:function(e,t,n){return e>=0&&e<6?"पहाटे":e<12?"सकाळी":e<17?"दुपारी":e<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})}(n(2689))},8784:e=>{function t(e){var n,r,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e)){var s=e.length;for(n=0;n=20?"ste":"de")},week:{dow:1,doy:4}})}(n(2689))},8798:function(e,t,n){!function(e){"use strict";e.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} වැනි/,ordinal:function(e){return e+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(e){return"ප.ව."===e||"පස් වරු"===e},meridiem:function(e,t,n){return e>11?n?"ප.ව.":"පස් වරු":n?"පෙ.ව.":"පෙර වරු"}})}(n(2689))},8944:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={s:["थोडया सॅकंडांनी","थोडे सॅकंड"],ss:[e+" सॅकंडांनी",e+" सॅकंड"],m:["एका मिणटान","एक मिनूट"],mm:[e+" मिणटांनी",e+" मिणटां"],h:["एका वरान","एक वर"],hh:[e+" वरांनी",e+" वरां"],d:["एका दिसान","एक दीस"],dd:[e+" दिसांनी",e+" दीस"],M:["एका म्हयन्यान","एक म्हयनो"],MM:[e+" म्हयन्यानी",e+" म्हयने"],y:["एका वर्सान","एक वर्स"],yy:[e+" वर्सांनी",e+" वर्सां"]};return r?a[n][0]:a[n][1]}e.defineLocale("gom-deva",{months:{standalone:"जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),format:"जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार".split("_"),weekdaysShort:"आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.".split("_"),weekdaysMin:"आ_सो_मं_बु_ब्रे_सु_शे".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [वाजतां]",LTS:"A h:mm:ss [वाजतां]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [वाजतां]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [वाजतां]",llll:"ddd, D MMM YYYY, A h:mm [वाजतां]"},calendar:{sameDay:"[आयज] LT",nextDay:"[फाल्यां] LT",nextWeek:"[फुडलो] dddd[,] LT",lastDay:"[काल] LT",lastWeek:"[फाटलो] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s आदीं",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(वेर)/,ordinal:function(e,t){return"D"===t?e+"वेर":e},week:{dow:0,doy:3},meridiemParse:/राती|सकाळीं|दनपारां|सांजे/,meridiemHour:function(e,t){return 12===e&&(e=0),"राती"===t?e<4?e:e+12:"सकाळीं"===t?e:"दनपारां"===t?e>12?e:e+12:"सांजे"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"राती":e<12?"सकाळीं":e<16?"दनपारां":e<20?"सांजे":"राती"}})}(n(2689))},8952:(e,t,n)=>{"use strict";n.d(t,{eg:()=>i,lR:()=>u,o1:()=>o,yB:()=>l});var r=n(3003),a=n(1099),s=n(5959);function i(e){let t=e;return t.nativeEvent=e,t.isDefaultPrevented=()=>t.defaultPrevented,t.isPropagationStopped=()=>t.cancelBubble,t.persist=()=>{},t}function o(e,t){Object.defineProperty(e,"target",{value:t}),Object.defineProperty(e,"currentTarget",{value:t})}function l(e){let t=(0,s.useRef)({isFocused:!1,observer:null});(0,r.N)(()=>{const e=t.current;return()=>{e.observer&&(e.observer.disconnect(),e.observer=null)}},[]);let n=(0,a.J)(t=>{null==e||e(t)});return(0,s.useCallback)(e=>{if(e.target instanceof HTMLButtonElement||e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLSelectElement){t.current.isFocused=!0;let r=e.target,a=e=>{if(t.current.isFocused=!1,r.disabled){let t=i(e);n(t)}t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)};r.addEventListener("focusout",a,{once:!0}),t.current.observer=new MutationObserver(()=>{if(t.current.isFocused&&r.disabled){var e;null===(e=t.current.observer)||void 0===e||e.disconnect();let n=r===document.activeElement?null:document.activeElement;r.dispatchEvent(new FocusEvent("blur",{relatedTarget:n})),r.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:n}))}}),t.current.observer.observe(r,{attributes:!0,attributeFilter:["disabled"]})}},[n])}let u=!1},8974:function(e,t,n){!function(e){"use strict";e.defineLocale("ka",{months:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(e){return e.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,function(e,t,n){return"ი"===n?t+"ში":t+n+"ში"})},past:function(e){return/(წამი|წუთი|საათი|დღე|თვე)/.test(e)?e.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(e)?e.replace(/წელი$/,"წლის წინ"):e},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(e){return 0===e?e:1===e?e+"-ლი":e<20||e<=100&&e%20==0||e%100==0?"მე-"+e:e+"-ე"},week:{dow:1,doy:7}})}(n(2689))},9070:(e,t,n)=>{"use strict";n.d(t,{bq:()=>i,sD:()=>s,wt:()=>o});var r=n(1570),a=n(8373);function s(e,t){if(!(0,a.Nf)())return!(!t||!e)&&e.contains(t);if(!e||!t)return!1;let n=t;for(;null!==n;){if(n===e)return!0;n="SLOT"===n.tagName&&n.assignedSlot?n.assignedSlot.parentNode:(0,r.Ng)(n)?n.host:n.parentNode}return!1}const i=(e=document)=>{var t;if(!(0,a.Nf)())return e.activeElement;let n=e.activeElement;for(;n&&"shadowRoot"in n&&(null===(t=n.shadowRoot)||void 0===t?void 0:t.activeElement);)n=n.shadowRoot.activeElement;return n};function o(e){return(0,a.Nf)()&&e.target.shadowRoot&&e.composedPath?e.composedPath()[0]:e.target}},9083:function(e,t,n){!function(e){"use strict";var t={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},n={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};e.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(e){return/بعد از ظهر/.test(e)},meridiem:function(e,t,n){return e<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"%d ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[۰-۹]/g,function(e){return n[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}})}(n(2689))},9088:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},9111:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"DraggableCore",{enumerable:!0,get:function(){return d.default}}),t.default=void 0;var r=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var a,s,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(a=t?r:n){if(a.has(e))return a.get(e);a.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((s=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(s.get||s.set)?a(i,t,s):i[t]=e[t]);return i}(e,t)}(n(5959)),a=h(n(2688)),s=h(n(8398)),i=n(8784),o=n(2837),l=n(402),u=n(6732),d=h(n(1060)),c=h(n(7988));function h(e){return e&&e.__esModule?e:{default:e}}function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t{(0,c.default)("Draggable: onDragStart: %j",t);if(!1===this.props.onStart(e,(0,l.createDraggableData)(this,t)))return!1;this.setState({dragging:!0,dragged:!0})}),p(this,"onDrag",(e,t)=>{if(!this.state.dragging)return!1;(0,c.default)("Draggable: onDrag: %j",t);const n=(0,l.createDraggableData)(this,t),r={x:n.x,y:n.y,slackX:0,slackY:0};if(this.props.bounds){const{x:e,y:t}=r;r.x+=this.state.slackX,r.y+=this.state.slackY;const[a,s]=(0,l.getBoundPosition)(this,r.x,r.y);r.x=a,r.y=s,r.slackX=this.state.slackX+(e-r.x),r.slackY=this.state.slackY+(t-r.y),n.x=r.x,n.y=r.y,n.deltaX=r.x-this.state.x,n.deltaY=r.y-this.state.y}if(!1===this.props.onDrag(e,n))return!1;this.setState(r)}),p(this,"onDragStop",(e,t)=>{if(!this.state.dragging)return!1;if(!1===this.props.onStop(e,(0,l.createDraggableData)(this,t)))return!1;(0,c.default)("Draggable: onDragStop: %j",t);const n={dragging:!1,slackX:0,slackY:0};if(Boolean(this.props.position)){const{x:e,y:t}=this.props.position;n.x=e,n.y=t}this.setState(n)}),this.state={dragging:!1,dragged:!1,x:e.position?e.position.x:e.defaultPosition.x,y:e.position?e.position.y:e.defaultPosition.y,prevPropsPosition:{...e.position},slackX:0,slackY:0,isElementSVG:!1},!e.position||e.onDrag||e.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}componentDidMount(){void 0!==window.SVGElement&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.state.dragging&&this.setState({dragging:!1})}findDOMNode(){return this.props?.nodeRef?.current??s.default.findDOMNode(this)}render(){const{axis:e,bounds:t,children:n,defaultPosition:a,defaultClassName:s,defaultClassNameDragging:u,defaultClassNameDragged:c,position:h,positionOffset:p,scale:f,..._}=this.props;let g={},y=null;const v=!Boolean(h)||this.state.dragging,b=h||a,M={x:(0,l.canDragX)(this)&&v?this.state.x:b.x,y:(0,l.canDragY)(this)&&v?this.state.y:b.y};this.state.isElementSVG?y=(0,o.createSVGTransform)(M,p):g=(0,o.createCSSTransform)(M,p);const w=(0,i.clsx)(n.props.className||"",s,{[u]:this.state.dragging,[c]:this.state.dragged});return r.createElement(d.default,m({},_,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),r.cloneElement(r.Children.only(n),{className:w,style:{...n.props.style,...g},transform:y}))}}t.default=f,p(f,"displayName","Draggable"),p(f,"propTypes",{...d.default.propTypes,axis:a.default.oneOf(["both","x","y","none"]),bounds:a.default.oneOfType([a.default.shape({left:a.default.number,right:a.default.number,top:a.default.number,bottom:a.default.number}),a.default.string,a.default.oneOf([!1])]),defaultClassName:a.default.string,defaultClassNameDragging:a.default.string,defaultClassNameDragged:a.default.string,defaultPosition:a.default.shape({x:a.default.number,y:a.default.number}),positionOffset:a.default.shape({x:a.default.oneOfType([a.default.number,a.default.string]),y:a.default.oneOfType([a.default.number,a.default.string])}),position:a.default.shape({x:a.default.number,y:a.default.number}),className:u.dontSetMe,style:u.dontSetMe,transform:u.dontSetMe}),p(f,"defaultProps",{...d.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})},9133:function(e,t,n){!function(e){"use strict";e.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}})}(n(2689))},9190:function(e,t,n){!function(e){"use strict";var t={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};e.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(e){var n=e%10,r=e>=100?100:null;return e+(t[e]||t[n]||t[r])},week:{dow:1,doy:7}})}(n(2689))},9198:function(e,t,n){!function(e){"use strict";e.defineLocale("pt",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",w:"uma semana",ww:"%d semanas",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},9237:function(e,t,n){!function(e){"use strict";e.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(e){return 2===e?"שעתיים":e+" שעות"},d:"יום",dd:function(e){return 2===e?"יומיים":e+" ימים"},M:"חודש",MM:function(e){return 2===e?"חודשיים":e+" חודשים"},y:"שנה",yy:function(e){return 2===e?"שנתיים":e%10==0&&10!==e?e+" שנה":e+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(e){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(e)},meridiem:function(e,t,n){return e<5?"לפנות בוקר":e<10?"בבוקר":e<12?n?'לפנה"צ':"לפני הצהריים":e<18?n?'אחה"צ':"אחרי הצהריים":"בערב"}})}(n(2689))},9252:(e,t,n)=>{"use strict";const r=n(8395),a=n(9524),{ANY:s}=a,i=n(1722),o=n(5380),l=[new a(">=0.0.0-0")],u=[new a(">=0.0.0")],d=(e,t,n)=>{if(e===t)return!0;if(1===e.length&&e[0].semver===s){if(1===t.length&&t[0].semver===s)return!0;e=n.includePrerelease?l:u}if(1===t.length&&t[0].semver===s){if(n.includePrerelease)return!0;t=u}const r=new Set;let a,d,m,p,f,_,g;for(const t of e)">"===t.operator||">="===t.operator?a=c(a,t,n):"<"===t.operator||"<="===t.operator?d=h(d,t,n):r.add(t.semver);if(r.size>1)return null;if(a&&d){if(m=o(a.semver,d.semver,n),m>0)return null;if(0===m&&(">="!==a.operator||"<="!==d.operator))return null}for(const e of r){if(a&&!i(e,String(a),n))return null;if(d&&!i(e,String(d),n))return null;for(const r of t)if(!i(e,String(r),n))return!1;return!0}let y=!(!d||n.includePrerelease||!d.semver.prerelease.length)&&d.semver,v=!(!a||n.includePrerelease||!a.semver.prerelease.length)&&a.semver;y&&1===y.prerelease.length&&"<"===d.operator&&0===y.prerelease[0]&&(y=!1);for(const e of t){if(g=g||">"===e.operator||">="===e.operator,_=_||"<"===e.operator||"<="===e.operator,a)if(v&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===v.major&&e.semver.minor===v.minor&&e.semver.patch===v.patch&&(v=!1),">"===e.operator||">="===e.operator){if(p=c(a,e,n),p===e&&p!==a)return!1}else if(">="===a.operator&&!i(a.semver,String(e),n))return!1;if(d)if(y&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===y.major&&e.semver.minor===y.minor&&e.semver.patch===y.patch&&(y=!1),"<"===e.operator||"<="===e.operator){if(f=h(d,e,n),f===e&&f!==d)return!1}else if("<="===d.operator&&!i(d.semver,String(e),n))return!1;if(!e.operator&&(d||a)&&0!==m)return!1}return!(a&&_&&!d&&0!==m)&&(!(d&&g&&!a&&0!==m)&&(!v&&!y))},c=(e,t,n)=>{if(!e)return t;const r=o(e.semver,t.semver,n);return r>0?e:r<0||">"===t.operator&&">="===e.operator?t:e},h=(e,t,n)=>{if(!e)return t;const r=o(e.semver,t.semver,n);return r<0?e:r>0||"<"===t.operator&&"<="===e.operator?t:e};e.exports=(e,t,n={})=>{if(e===t)return!0;e=new r(e,n),t=new r(t,n);let a=!1;e:for(const r of e.set){for(const e of t.set){const t=d(r,e,n);if(a=a||null!==t,t)continue e}if(a)return!1}return!0}},9338:function(e,t,n){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},9343:function(e,t,n){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};e.defineLocale("ar-ps",{months:"كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل".split("_"),monthsShort:"ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[٣٤٥٦٧٨٩٠]/g,function(e){return n[e]}).split("").reverse().join("").replace(/[١٢](?![\u062a\u0643])/g,function(e){return n[e]}).split("").reverse().join("").replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},week:{dow:0,doy:6}})}(n(2689))},9383:e=>{"use strict";var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},9445:function(e,t,n){!function(e){"use strict";e.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(2689))},9482:(e,t,n)=>{"use strict";function r(e){return r="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},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var n=h(t);if(n&&n.has(e))return n.get(e);var a={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var o=s?Object.getOwnPropertyDescriptor(e,i):null;o&&(o.get||o.set)?Object.defineProperty(a,i,o):a[i]=e[i]}a.default=e,n&&n.set(e,a);return a}(n(5959)),s=c(n(7842)),i=c(n(7256)),o=n(414),l=n(906),u=c(n(8100)),d=c(n(7222));function c(e){return e&&e.__esModule?e:{default:e}}function h(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(h=function(e){return e?n:t})(e)}function m(e){return function(e){if(Array.isArray(e))return y(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||g(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function f(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0){var s=1/0,i=1/0;a.forEach(function(t){t.x>e.x&&(s=Math.min(s,t.x)),t.y>e.y&&(i=Math.min(i,t.y))}),Number.isFinite(s)&&(e.w=s-e.x),Number.isFinite(i)&&(e.h=i-e.y)}}return t||(e.w=n,e.h=r),e}),y=_(g,2),v=y[0],b=y[1];if(b){var M={w:b.w,h:b.h,x:b.x,y:b.y,static:!0,i:t};e.props.onResize(v,d,b,M,s,i),e.setState({layout:p?v:(0,o.compact)(v,(0,o.compactType)(e.props),h),activeDrag:M})}}),S(w(e),"onResizeStop",function(t,n,r,a){var s=a.e,i=a.node,l=e.state,u=l.layout,d=l.oldResizeItem,c=e.props,h=c.cols,m=c.allowOverlap,p=(0,o.getLayoutItem)(u,t);e.props.onResizeStop(u,d,p,null,s,i);var f=m?u:(0,o.compact)(u,(0,o.compactType)(e.props),h),_=e.state.oldLayout;e.setState({activeDrag:null,layout:f,oldResizeItem:null,oldLayout:null}),e.onLayoutMaybeChanged(f,_)}),S(w(e),"onDragOver",function(t){var n;if(t.preventDefault(),t.stopPropagation(),D&&(null===(n=t.nativeEvent.target)||void 0===n||!n.classList.contains(k)))return!1;var r=e.props,s=r.droppingItem,i=r.onDropDragOver,o=r.margin,u=r.cols,d=r.rowHeight,c=r.maxRows,h=r.width,p=r.containerPadding,_=r.transformScale,g=null==i?void 0:i(t);if(!1===g)return e.state.droppingDOMNode&&e.removeDroppingPlaceholder(),!1;var y=f(f({},s),g),v=e.state.layout,b=t.nativeEvent,M=b.layerX,w=b.layerY,L={left:M/_,top:w/_,e:t};if(e.state.droppingDOMNode){if(e.state.droppingPosition){var S=e.state.droppingPosition,T=S.left,x=S.top;(T!=M||x!=w)&&e.setState({droppingPosition:L})}}else{var Y={cols:u,margin:o,maxRows:c,rowHeight:d,containerWidth:h,containerPadding:p||o},E=(0,l.calcXY)(Y,w,M,y.w,y.h);e.setState({droppingDOMNode:a.createElement("div",{key:y.i}),droppingPosition:L,layout:[].concat(m(v),[f(f({},y),{},{x:E.x,y:E.y,static:!1,isDraggable:!0})])})}}),S(w(e),"removeDroppingPlaceholder",function(){var t=e.props,n=t.droppingItem,r=t.cols,a=e.state.layout,s=(0,o.compact)(a.filter(function(e){return e.i!==n.i}),(0,o.compactType)(e.props),r);e.setState({layout:s,droppingDOMNode:null,activeDrag:null,droppingPosition:void 0})}),S(w(e),"onDragLeave",function(t){t.preventDefault(),t.stopPropagation(),e.dragEnterCounter--,0===e.dragEnterCounter&&e.removeDroppingPlaceholder()}),S(w(e),"onDragEnter",function(t){t.preventDefault(),t.stopPropagation(),e.dragEnterCounter++}),S(w(e),"onDrop",function(t){t.preventDefault(),t.stopPropagation();var n=e.props.droppingItem,r=e.state.layout,a=r.find(function(e){return e.i===n.i});e.dragEnterCounter=0,e.removeDroppingPlaceholder(),e.props.onDrop(r,a,t)}),e}return t=c,r=[{key:"getDerivedStateFromProps",value:function(e,t){var n;return t.activeDrag?null:((0,s.default)(e.layout,t.propsLayout)&&e.compactType===t.compactType?(0,o.childrenEqual)(e.children,t.children)||(n=t.layout):n=e.layout,n?{layout:(0,o.synchronizeLayoutWithChildren)(n,e.children,e.cols,(0,o.compactType)(e),e.allowOverlap),compactType:e.compactType,children:e.children,propsLayout:e.layout}:null)}}],(n=[{key:"componentDidMount",value:function(){this.setState({mounted:!0}),this.onLayoutMaybeChanged(this.state.layout,this.props.layout)}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.children!==e.children||!(0,o.fastRGLPropsEqual)(this.props,e,s.default)||this.state.activeDrag!==t.activeDrag||this.state.mounted!==t.mounted||this.state.droppingPosition!==t.droppingPosition}},{key:"componentDidUpdate",value:function(e,t){if(!this.state.activeDrag){var n=this.state.layout,r=t.layout;this.onLayoutMaybeChanged(n,r)}}},{key:"containerHeight",value:function(){if(this.props.autoSize){var e=(0,o.bottom)(this.state.layout),t=this.props.containerPadding?this.props.containerPadding[1]:this.props.margin[1];return e*this.props.rowHeight+(e-1)*this.props.margin[1]+2*t+"px"}}},{key:"onLayoutMaybeChanged",value:function(e,t){t||(t=this.state.layout),(0,s.default)(t,e)||this.props.onLayoutChange(e)}},{key:"placeholder",value:function(){var e=this.state.activeDrag;if(!e)return null;var t=this.props,n=t.width,r=t.cols,s=t.margin,i=t.containerPadding,o=t.rowHeight,l=t.maxRows,d=t.useCSSTransforms,c=t.transformScale;return a.createElement(u.default,{w:e.w,h:e.h,x:e.x,y:e.y,i:e.i,className:"react-grid-placeholder",containerWidth:n,cols:r,margin:s,containerPadding:i||s,maxRows:l,rowHeight:o,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:d,transformScale:c},a.createElement("div",null))}},{key:"processGridItem",value:function(e,t){if(e&&e.key){var n=(0,o.getLayoutItem)(this.state.layout,String(e.key));if(!n)return null;var r=this.props,s=r.width,i=r.cols,l=r.margin,d=r.containerPadding,c=r.rowHeight,h=r.maxRows,m=r.isDraggable,p=r.isResizable,f=r.isBounded,_=r.useCSSTransforms,g=r.transformScale,y=r.draggableCancel,v=r.draggableHandle,b=r.resizeHandles,M=r.resizeHandle,w=this.state,L=w.mounted,S=w.droppingPosition,k="boolean"==typeof n.isDraggable?n.isDraggable:!n.static&&m,D="boolean"==typeof n.isResizable?n.isResizable:!n.static&&p,T=n.resizeHandles||b,x=k&&f&&!1!==n.isBounded;return a.createElement(u.default,{containerWidth:s,cols:i,margin:l,containerPadding:d||l,maxRows:h,rowHeight:c,cancel:y,handle:v,onDragStop:this.onDragStop,onDragStart:this.onDragStart,onDrag:this.onDrag,onResizeStart:this.onResizeStart,onResize:this.onResize,onResizeStop:this.onResizeStop,isDraggable:k,isResizable:D,isBounded:x,useCSSTransforms:_&&L,usePercentages:!L,transformScale:g,w:n.w,h:n.h,x:n.x,y:n.y,i:n.i,minH:n.minH,minW:n.minW,maxH:n.maxH,maxW:n.maxW,static:n.static,droppingPosition:t?S:void 0,resizeHandles:T,resizeHandle:M},e)}}},{key:"render",value:function(){var e=this,t=this.props,n=t.className,r=t.style,s=t.isDroppable,l=t.innerRef,u=(0,i.default)(k,n),d=f({height:this.containerHeight()},r);return a.createElement("div",{ref:l,className:u,style:d,onDrop:s?this.onDrop:o.noop,onDragLeave:s?this.onDragLeave:o.noop,onDragEnter:s?this.onDragEnter:o.noop,onDragOver:s?this.onDragOver:o.noop},a.Children.map(this.props.children,function(t){return e.processGridItem(t)}),s&&this.state.droppingDOMNode&&this.processGridItem(this.state.droppingDOMNode,!0),this.placeholder())}}])&&v(t.prototype,n),r&&v(t,r),Object.defineProperty(t,"prototype",{writable:!1}),c}(a.Component);t.default=T,S(T,"displayName","ReactGridLayout"),S(T,"propTypes",d.default),S(T,"defaultProps",{autoSize:!0,cols:12,className:"",style:{},draggableHandle:"",draggableCancel:"",containerPadding:null,rowHeight:150,maxRows:1/0,layout:[],margin:[10,10],isBounded:!1,isDraggable:!0,isResizable:!0,allowOverlap:!1,isDroppable:!1,useCSSTransforms:!0,transformScale:1,verticalCompact:!0,compactType:"vertical",preventCollision:!1,droppingItem:{i:"__dropping-elem__",h:1,w:1},resizeHandles:["se"],onLayoutChange:o.noop,onDragStart:o.noop,onDrag:o.noop,onDragStop:o.noop,onResizeStart:o.noop,onResize:o.noop,onResizeStop:o.noop,onDrop:o.noop,onDropDragOver:o.noop})},9524:(e,t,n)=>{"use strict";const r=Symbol("SemVer ANY");class a{static get ANY(){return r}constructor(e,t){if(t=s(t),e instanceof a){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),u("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===r?this.value="":this.value=this.operator+this.semver.version,u("comp",this)}parse(e){const t=this.options.loose?i[o.COMPARATORLOOSE]:i[o.COMPARATOR],n=e.match(t);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=void 0!==n[1]?n[1]:"","="===this.operator&&(this.operator=""),n[2]?this.semver=new d(n[2],this.options.loose):this.semver=r}toString(){return this.value}test(e){if(u("Comparator.test",e,this.options.loose),this.semver===r||e===r)return!0;if("string"==typeof e)try{e=new d(e,this.options)}catch(e){return!1}return l(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof a))throw new TypeError("a Comparator is required");return""===this.operator?""===this.value||new c(e.value,t).test(this.value):""===e.operator?""===e.value||new c(this.value,t).test(e.semver):(!(t=s(t)).includePrerelease||"<0.0.0-0"!==this.value&&"<0.0.0-0"!==e.value)&&(!(!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0")))&&(!(!this.operator.startsWith(">")||!e.operator.startsWith(">"))||(!(!this.operator.startsWith("<")||!e.operator.startsWith("<"))||(!(this.semver.version!==e.semver.version||!this.operator.includes("=")||!e.operator.includes("="))||(!!(l(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<"))||!!(l(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))))))}}e.exports=a;const s=n(7095),{safeRe:i,t:o}=n(6850),l=n(3811),u=n(9796),d=n(7944),c=n(8395)},9555:(e,t,n)=>{"use strict";e.exports=n(6087)},9559:function(e,t,n){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};e.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(e,t){return 12===e&&(e=0),"राति"===t?e<4?e:e+12:"बिहान"===t?e:"दिउँसो"===t?e>=10?e:e+12:"साँझ"===t?e+12:void 0},meridiem:function(e,t,n){return e<3?"राति":e<12?"बिहान":e<16?"दिउँसो":e<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}})}(n(2689))},9570:function(e,t,n){!function(e){"use strict";e.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"su._må._ty._on._to._fr._lau.".split("_"),weekdaysMin:"su_må_ty_on_to_fr_la".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",w:"ei veke",ww:"%d veker",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},9613:(e,t,n)=>{"use strict";const r=n(5860);e.exports=(e,t)=>{const n=r(e,t);return n&&n.prerelease.length?n.prerelease:null}},9617:function(e,t,n){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},r=[/^जन/i,/^फ़र|फर/i,/^मार्च/i,/^अप्रै/i,/^मई/i,/^जून/i,/^जुल/i,/^अग/i,/^सितं|सित/i,/^अक्टू/i,/^नव|नवं/i,/^दिसं|दिस/i],a=[/^जन/i,/^फ़र/i,/^मार्च/i,/^अप्रै/i,/^मई/i,/^जून/i,/^जुल/i,/^अग/i,/^सित/i,/^अक्टू/i,/^नव/i,/^दिस/i];e.defineLocale("hi",{months:{format:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),standalone:"जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर".split("_")},monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},monthsParse:r,longMonthsParse:r,shortMonthsParse:a,monthsRegex:/^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,monthsShortRegex:/^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,monthsStrictRegex:/^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,monthsShortStrictRegex:/^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i,calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात"===t?e<4?e:e+12:"सुबह"===t?e:"दोपहर"===t?e>=10?e:e+12:"शाम"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"रात":e<10?"सुबह":e<17?"दोपहर":e<20?"शाम":"रात"},week:{dow:0,doy:6}})}(n(2689))},9630:e=>{"use strict";const t=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:t,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}},9644:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;rr})},9796:e=>{"use strict";const t="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=t},9805:function(e,t,n){!function(e){"use strict";e.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"vm":"VM":n?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(2689))},9814:(e,t,n)=>{"use strict";n.d(t,{x6:()=>je,t:()=>Pe});var r=n(2540);const a=e=>"string"==typeof e,s=()=>{let e,t;const n=new Promise((n,r)=>{e=n,t=r});return n.resolve=e,n.reject=t,n},i=e=>null==e?"":""+e,o=/###/g,l=e=>e&&e.indexOf("###")>-1?e.replace(o,"."):e,u=e=>!e||a(e),d=(e,t,n)=>{const r=a(t)?t.split("."):t;let s=0;for(;s{const{obj:r,k:a}=d(e,t,Object);if(void 0!==r||1===t.length)return void(r[a]=n);let s=t[t.length-1],i=t.slice(0,t.length-1),o=d(e,i,Object);for(;void 0===o.obj&&i.length;)s=`${i[i.length-1]}.${s}`,i=i.slice(0,i.length-1),o=d(e,i,Object),o?.obj&&void 0!==o.obj[`${o.k}.${s}`]&&(o.obj=void 0);o.obj[`${o.k}.${s}`]=n},h=(e,t)=>{const{obj:n,k:r}=d(e,t);if(n&&Object.prototype.hasOwnProperty.call(n,r))return n[r]},m=(e,t,n)=>{for(const r in t)"__proto__"!==r&&"constructor"!==r&&(r in e?a(e[r])||e[r]instanceof String||a(t[r])||t[r]instanceof String?n&&(e[r]=t[r]):m(e[r],t[r],n):e[r]=t[r]);return e},p=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var f={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const _=e=>a(e)?e.replace(/[&<>"'\/]/g,e=>f[e]):e;const g=[" ",",","?","!",";"],y=new class{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const t=this.regExpMap.get(e);if(void 0!==t)return t;const n=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,n),this.regExpQueue.push(e),n}}(20),v=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";if(!e)return;if(e[t]){if(!Object.prototype.hasOwnProperty.call(e,t))return;return e[t]}const r=t.split(n);let a=e;for(let e=0;e-1&&ie?.replace("_","-"),M={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){console?.[e]?.apply?.(console,t)}};class w{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.init(e,t)}init(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||M,this.options=t,this.debug=t.debug}log(){for(var e=arguments.length,t=new Array(e),n=0;n{this.observers[e]||(this.observers[e]=new Map);const n=this.observers[e].get(t)||0;this.observers[e].set(t,n+1)}),this}off(e,t){this.observers[e]&&(t?this.observers[e].delete(t):delete this.observers[e])}emit(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{let[t,r]=e;for(let e=0;e{let[r,a]=t;for(let t=0;t1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=e||{},this.options=t,void 0===this.options.keySeparator&&(this.options.keySeparator="."),void 0===this.options.ignoreJSONStructure&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){const t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const s=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,i=void 0!==r.ignoreJSONStructure?r.ignoreJSONStructure:this.options.ignoreJSONStructure;let o;e.indexOf(".")>-1?o=e.split("."):(o=[e,t],n&&(Array.isArray(n)?o.push(...n):a(n)&&s?o.push(...n.split(s)):o.push(n)));const l=h(this.data,o);return!l&&!t&&!n&&e.indexOf(".")>-1&&(e=o[0],t=o[1],n=o.slice(2).join(".")),!l&&i&&a(n)?v(this.data?.[e]?.[t],n,s):l}addResource(e,t,n,r){let a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1};const s=void 0!==a.keySeparator?a.keySeparator:this.options.keySeparator;let i=[e,t];n&&(i=i.concat(s?n.split(s):n)),e.indexOf(".")>-1&&(i=e.split("."),r=t,t=i[1]),this.addNamespaces(t),c(this.data,i,r),a.silent||this.emit("added",e,t,n,r)}addResources(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(const r in n)(a(n[r])||Array.isArray(n[r]))&&this.addResource(e,t,r,n[r],{silent:!0});r.silent||this.emit("added",e,t,n)}addResourceBundle(e,t,n,r,a){let s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1,skipCopy:!1},i=[e,t];e.indexOf(".")>-1&&(i=e.split("."),r=n,n=t,t=i[1]),this.addNamespaces(t);let o=h(this.data,i)||{};s.skipCopy||(n=JSON.parse(JSON.stringify(n))),r?m(o,n,a):o={...o,...n},c(this.data,i,o),s.silent||this.emit("added",e,t,n)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}hasResourceBundle(e,t){return void 0!==this.getResource(e,t)}getResourceBundle(e,t){return t||(t=this.options.defaultNS),this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(e=>t[e]&&Object.keys(t[e]).length>0)}toJSON(){return this.data}}var D={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,r,a){return e.forEach(e=>{t=this.processors[e]?.process(t,n,r,a)??t}),t}};const T={},x=e=>!a(e)&&"boolean"!=typeof e&&"number"!=typeof e;class Y extends S{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),((e,t,n)=>{e.forEach(e=>{t[e]&&(n[e]=t[e])})})(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=t,void 0===this.options.keySeparator&&(this.options.keySeparator="."),this.logger=L.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};if(null==e)return!1;const n=this.resolve(e,t);return void 0!==n?.res}extractFromKey(e,t){let n=void 0!==t.nsSeparator?t.nsSeparator:this.options.nsSeparator;void 0===n&&(n=":");const r=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator;let s=t.ns||this.options.defaultNS||[];const i=n&&e.indexOf(n)>-1,o=!(this.options.userDefinedKeySeparator||t.keySeparator||this.options.userDefinedNsSeparator||t.nsSeparator||((e,t,n)=>{t=t||"",n=n||"";const r=g.filter(e=>t.indexOf(e)<0&&n.indexOf(e)<0);if(0===r.length)return!0;const a=y.getRegExp(`(${r.map(e=>"?"===e?"\\?":e).join("|")})`);let s=!a.test(e);if(!s){const t=e.indexOf(n);t>0&&!a.test(e.substring(0,t))&&(s=!0)}return s})(e,n,r));if(i&&!o){const t=e.match(this.interpolator.nestingRegexp);if(t&&t.length>0)return{key:e,namespaces:a(s)?[s]:s};const i=e.split(n);(n!==r||n===r&&this.options.ns.indexOf(i[0])>-1)&&(s=i.shift()),e=i.join(r)}return{key:e,namespaces:a(s)?[s]:s}}translate(e,t,n){if("object"!=typeof t&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),"object"==typeof t&&(t={...t}),t||(t={}),null==e)return"";Array.isArray(e)||(e=[String(e)]);const r=void 0!==t.returnDetails?t.returnDetails:this.options.returnDetails,s=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,{key:i,namespaces:o}=this.extractFromKey(e[e.length-1],t),l=o[o.length-1],u=t.lng||this.language,d=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if("cimode"===u?.toLowerCase()){if(d){const e=t.nsSeparator||this.options.nsSeparator;return r?{res:`${l}${e}${i}`,usedKey:i,exactUsedKey:i,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(t)}:`${l}${e}${i}`}return r?{res:i,usedKey:i,exactUsedKey:i,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(t)}:i}const c=this.resolve(e,t);let h=c?.res;const m=c?.usedKey||i,p=c?.exactUsedKey||i,f=void 0!==t.joinArrays?t.joinArrays:this.options.joinArrays,_=!this.i18nFormat||this.i18nFormat.handleAsObject,g=void 0!==t.count&&!a(t.count),y=Y.hasDefaultValue(t),v=g?this.pluralResolver.getSuffix(u,t.count,t):"",b=t.ordinal&&g?this.pluralResolver.getSuffix(u,t.count,{ordinal:!1}):"",M=g&&!t.ordinal&&0===t.count,w=M&&t[`defaultValue${this.options.pluralSeparator}zero`]||t[`defaultValue${v}`]||t[`defaultValue${b}`]||t.defaultValue;let L=h;_&&!h&&y&&(L=w);const S=x(L),k=Object.prototype.toString.apply(L);if(!(_&&L&&S&&["[object Number]","[object Function]","[object RegExp]"].indexOf(k)<0)||a(f)&&Array.isArray(L))if(_&&a(f)&&Array.isArray(h))h=h.join(f),h&&(h=this.extendTranslation(h,e,t,n));else{let r=!1,a=!1;!this.isValidLookup(h)&&y&&(r=!0,h=w),this.isValidLookup(h)||(a=!0,h=i);const o=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&a?void 0:h,d=y&&w!==h&&this.options.updateMissing;if(a||r||d){if(this.logger.log(d?"updateKey":"missingKey",u,l,i,d?w:h),s){const e=this.resolve(i,{...t,keySeparator:!1});e&&e.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let e=[];const n=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if("fallback"===this.options.saveMissingTo&&n&&n[0])for(let t=0;t{const a=y&&r!==h?r:o;this.options.missingKeyHandler?this.options.missingKeyHandler(e,l,n,a,d,t):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(e,l,n,a,d,t),this.emit("missingKey",e,l,n,h)};this.options.saveMissing&&(this.options.saveMissingPlurals&&g?e.forEach(e=>{const n=this.pluralResolver.getSuffixes(e,t);M&&t[`defaultValue${this.options.pluralSeparator}zero`]&&n.indexOf(`${this.options.pluralSeparator}zero`)<0&&n.push(`${this.options.pluralSeparator}zero`),n.forEach(n=>{r([e],i+n,t[`defaultValue${n}`]||w)})}):r(e,i,w))}h=this.extendTranslation(h,e,t,c,n),a&&h===i&&this.options.appendNamespaceToMissingKey&&(h=`${l}:${i}`),(a||r)&&this.options.parseMissingKeyHandler&&(h=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}:${i}`:i,r?h:void 0))}else{if(!t.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const e=this.options.returnedObjectHandler?this.options.returnedObjectHandler(m,L,{...t,ns:o}):`key '${i} (${this.language})' returned an object instead of string.`;return r?(c.res=e,c.usedParams=this.getUsedParamsDetails(t),c):e}if(s){const e=Array.isArray(L),n=e?[]:{},r=e?p:m;for(const e in L)if(Object.prototype.hasOwnProperty.call(L,e)){const a=`${r}${s}${e}`;n[e]=y&&!h?this.translate(a,{...t,defaultValue:x(w)?w[e]:void 0,joinArrays:!1,ns:o}):this.translate(a,{...t,joinArrays:!1,ns:o}),n[e]===a&&(n[e]=L[e])}h=n}}return r?(c.res=h,c.usedParams=this.getUsedParamsDetails(t),c):h}extendTranslation(e,t,n,r,s){var i=this;if(this.i18nFormat?.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});const o=a(e)&&(void 0!==n?.interpolation?.skipOnVariables?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let l;if(o){const t=e.match(this.interpolator.nestingRegexp);l=t&&t.length}let u=n.replace&&!a(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(u={...this.options.interpolation.defaultVariables,...u}),e=this.interpolator.interpolate(e,u,n.lng||this.language||r.usedLng,n),o){const t=e.match(this.interpolator.nestingRegexp);l<(t&&t.length)&&(n.nest=!1)}!n.lng&&r&&r.res&&(n.lng=this.language||r.usedLng),!1!==n.nest&&(e=this.interpolator.nest(e,function(){for(var e=arguments.length,r=new Array(e),a=0;a1&&void 0!==arguments[1]?arguments[1]:{};return a(e)&&(e=[e]),e.forEach(e=>{if(this.isValidLookup(t))return;const l=this.extractFromKey(e,o),u=l.key;n=u;let d=l.namespaces;this.options.fallbackNS&&(d=d.concat(this.options.fallbackNS));const c=void 0!==o.count&&!a(o.count),h=c&&!o.ordinal&&0===o.count,m=void 0!==o.context&&(a(o.context)||"number"==typeof o.context)&&""!==o.context,p=o.lngs?o.lngs:this.languageUtils.toResolveHierarchy(o.lng||this.language,o.fallbackLng);d.forEach(e=>{this.isValidLookup(t)||(i=e,T[`${p[0]}-${e}`]||!this.utils?.hasLoadedNamespace||this.utils?.hasLoadedNamespace(i)||(T[`${p[0]}-${e}`]=!0,this.logger.warn(`key "${n}" for languages "${p.join(", ")}" won't get resolved as namespace "${i}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),p.forEach(n=>{if(this.isValidLookup(t))return;s=n;const a=[u];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(a,u,n,e,o);else{let e;c&&(e=this.pluralResolver.getSuffix(n,o.count,o));const t=`${this.options.pluralSeparator}zero`,r=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(c&&(a.push(u+e),o.ordinal&&0===e.indexOf(r)&&a.push(u+e.replace(r,this.options.pluralSeparator)),h&&a.push(u+t)),m){const n=`${u}${this.options.contextSeparator}${o.context}`;a.push(n),c&&(a.push(n+e),o.ordinal&&0===e.indexOf(r)&&a.push(n+e.replace(r,this.options.pluralSeparator)),h&&a.push(n+t))}}let i;for(;i=a.pop();)this.isValidLookup(t)||(r=i,t=this.getResource(n,e,i,o))}))})}),{res:t,usedKey:n,exactUsedKey:r,usedLng:s,usedNS:i}}isValidLookup(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}getResource(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}getUsedParamsDetails(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],n=e.replace&&!a(e.replace);let r=n?e.replace:e;if(n&&void 0!==e.count&&(r.count=e.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!n){r={...r};for(const e of t)delete r[e]}return r}static hasDefaultValue(e){const t="defaultValue";for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t===n.substring(0,12)&&void 0!==e[n])return!0;return!1}}class E{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=L.create("languageUtils")}getScriptPartFromCode(e){if(!(e=b(e))||e.indexOf("-")<0)return null;const t=e.split("-");return 2===t.length?null:(t.pop(),"x"===t[t.length-1].toLowerCase()?null:this.formatLanguageCode(t.join("-")))}getLanguagePartFromCode(e){if(!(e=b(e))||e.indexOf("-")<0)return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(a(e)&&e.indexOf("-")>-1){let t;try{t=Intl.getCanonicalLocales(e)[0]}catch(e){}return t&&this.options.lowerCaseLng&&(t=t.toLowerCase()),t||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(e=>{if(t)return;const n=this.formatLanguageCode(e);this.options.supportedLngs&&!this.isSupportedCode(n)||(t=n)}),!t&&this.options.supportedLngs&&e.forEach(e=>{if(t)return;const n=this.getLanguagePartFromCode(e);if(this.isSupportedCode(n))return t=n;t=this.options.supportedLngs.find(e=>e===n?e:e.indexOf("-")<0&&n.indexOf("-")<0?void 0:e.indexOf("-")>0&&n.indexOf("-")<0&&e.substring(0,e.indexOf("-"))===n||0===e.indexOf(n)&&n.length>1?e:void 0)}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(e,t){if(!e)return[];if("function"==typeof e&&(e=e(t)),a(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}toResolveHierarchy(e,t){const n=this.getFallbackCodes(t||this.options.fallbackLng||[],e),r=[],s=e=>{e&&(this.isSupportedCode(e)?r.push(e):this.logger.warn(`rejecting language code not found in supportedLngs: ${e}`))};return a(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?("languageOnly"!==this.options.load&&s(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&s(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&s(this.getLanguagePartFromCode(e))):a(e)&&s(this.formatLanguageCode(e)),n.forEach(e=>{r.indexOf(e)<0&&s(this.formatLanguageCode(e))}),r}}const O={zero:0,one:1,two:2,few:3,many:4,other:5},A={select:e=>1===e?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class C{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.languageUtils=e,this.options=t,this.logger=L.create("pluralResolver"),this.pluralRulesCache={}}addRule(e,t){this.rules[e]=t}clearCache(){this.pluralRulesCache={}}getRule(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=b("dev"===e?"en":e),r=t.ordinal?"ordinal":"cardinal",a=JSON.stringify({cleanedCode:n,type:r});if(a in this.pluralRulesCache)return this.pluralRulesCache[a];let s;try{s=new Intl.PluralRules(n,{type:r})}catch(n){if(!Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),A;if(!e.match(/-|_/))return A;const r=this.languageUtils.getLanguagePartFromCode(e);s=this.getRule(r,t)}return this.pluralRulesCache[a]=s,s}needsPlural(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.getRule(e,t);return n||(n=this.getRule("dev",t)),n?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.getSuffixes(e,n).map(e=>`${t}${e}`)}getSuffixes(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.getRule(e,t);return n||(n=this.getRule("dev",t)),n?n.resolvedOptions().pluralCategories.sort((e,t)=>O[e]-O[t]).map(e=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${e}`):[]}getSuffix(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=this.getRule(e,n);return r?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${r.select(t)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix("dev",t,n))}}const R=function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:".",s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=((e,t,n)=>{const r=h(e,n);return void 0!==r?r:h(t,n)})(e,t,n);return!i&&s&&a(n)&&(i=v(e,n,r),void 0===i&&(i=v(t,n,r))),i},P=e=>e.replace(/\$/g,"$$$$");class j{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.logger=L.create("interpolator"),this.options=e,this.format=e?.interpolation?.format||(e=>e),this.init(e)}init(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});const{escape:t,escapeValue:n,useRawValueToEscape:r,prefix:a,prefixEscaped:s,suffix:i,suffixEscaped:o,formatSeparator:l,unescapeSuffix:u,unescapePrefix:d,nestingPrefix:c,nestingPrefixEscaped:h,nestingSuffix:m,nestingSuffixEscaped:f,nestingOptionsSeparator:g,maxReplaces:y,alwaysFormat:v}=e.interpolation;this.escape=void 0!==t?t:_,this.escapeValue=void 0===n||n,this.useRawValueToEscape=void 0!==r&&r,this.prefix=a?p(a):s||"{{",this.suffix=i?p(i):o||"}}",this.formatSeparator=l||",",this.unescapePrefix=u?"":d||"-",this.unescapeSuffix=this.unescapePrefix?"":u||"",this.nestingPrefix=c?p(c):h||p("$t("),this.nestingSuffix=m?p(m):f||p(")"),this.nestingOptionsSeparator=g||",",this.maxReplaces=y||1e3,this.alwaysFormat=void 0!==v&&v,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(e,t)=>e?.source===t?(e.lastIndex=0,e):new RegExp(t,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(e,t,n,r){let s,o,l;const u=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},d=e=>{if(e.indexOf(this.formatSeparator)<0){const a=R(t,u,e,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(a,void 0,n,{...r,...t,interpolationkey:e}):a}const a=e.split(this.formatSeparator),s=a.shift().trim(),i=a.join(this.formatSeparator).trim();return this.format(R(t,u,s,this.options.keySeparator,this.options.ignoreJSONStructure),i,n,{...r,...t,interpolationkey:s})};this.resetRegExp();const c=r?.missingInterpolationHandler||this.options.missingInterpolationHandler,h=void 0!==r?.interpolation?.skipOnVariables?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:e=>P(e)},{regex:this.regexp,safeValue:e=>this.escapeValue?P(this.escape(e)):P(e)}].forEach(t=>{for(l=0;s=t.regex.exec(e);){const n=s[1].trim();if(o=d(n),void 0===o)if("function"==typeof c){const t=c(e,s,r);o=a(t)?t:""}else if(r&&Object.prototype.hasOwnProperty.call(r,n))o="";else{if(h){o=s[0];continue}this.logger.warn(`missed to pass in variable ${n} for interpolating ${e}`),o=""}else a(o)||this.useRawValueToEscape||(o=i(o));const u=t.safeValue(o);if(e=e.replace(s[0],u),h?(t.regex.lastIndex+=o.length,t.regex.lastIndex-=s[0].length):t.regex.lastIndex=0,l++,l>=this.maxReplaces)break}}),e}nest(e,t){let n,r,s,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const l=(e,t)=>{const n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;const r=e.split(new RegExp(`${n}[ ]*{`));let a=`{${r[1]}`;e=r[0],a=this.interpolate(a,s);const i=a.match(/'/g),o=a.match(/"/g);((i?.length??0)%2==0&&!o||o.length%2!=0)&&(a=a.replace(/'/g,'"'));try{s=JSON.parse(a),t&&(s={...t,...s})}catch(t){return this.logger.warn(`failed parsing options string in nesting for key ${e}`,t),`${e}${n}${a}`}return s.defaultValue&&s.defaultValue.indexOf(this.prefix)>-1&&delete s.defaultValue,e};for(;n=this.nestingRegexp.exec(e);){let u=[];s={...o},s=s.replace&&!a(s.replace)?s.replace:s,s.applyPostProcessor=!1,delete s.defaultValue;let d=!1;if(-1!==n[0].indexOf(this.formatSeparator)&&!/{.*}/.test(n[1])){const e=n[1].split(this.formatSeparator).map(e=>e.trim());n[1]=e.shift(),u=e,d=!0}if(r=t(l.call(this,n[1].trim(),s),s),r&&n[0]===e&&!a(r))return r;a(r)||(r=i(r)),r||(this.logger.warn(`missed to resolve ${n[1]} for nesting ${e}`),r=""),d&&(r=u.reduce((e,t)=>this.format(e,t,o.lng,{...o,interpolationkey:n[1].trim()}),r.trim())),e=e.replace(n[0],r),this.regexp.lastIndex=0}return e}}const H=e=>{const t={};return(n,r,a)=>{let s=a;a&&a.interpolationkey&&a.formatParams&&a.formatParams[a.interpolationkey]&&a[a.interpolationkey]&&(s={...s,[a.interpolationkey]:void 0});const i=r+JSON.stringify(s);let o=t[i];return o||(o=e(b(r),a),t[i]=o),o(n)}};class N{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.logger=L.create("formatter"),this.options=e,this.formats={number:H((e,t)=>{const n=new Intl.NumberFormat(e,{...t});return e=>n.format(e)}),currency:H((e,t)=>{const n=new Intl.NumberFormat(e,{...t,style:"currency"});return e=>n.format(e)}),datetime:H((e,t)=>{const n=new Intl.DateTimeFormat(e,{...t});return e=>n.format(e)}),relativetime:H((e,t)=>{const n=new Intl.RelativeTimeFormat(e,{...t});return e=>n.format(e,t.range||"day")}),list:H((e,t)=>{const n=new Intl.ListFormat(e,{...t});return e=>n.format(e)})},this.init(e)}init(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};this.formatSeparator=t.interpolation.formatSeparator||","}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=H(t)}format(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const a=t.split(this.formatSeparator);if(a.length>1&&a[0].indexOf("(")>1&&a[0].indexOf(")")<0&&a.find(e=>e.indexOf(")")>-1)){const e=a.findIndex(e=>e.indexOf(")")>-1);a[0]=[a[0],...a.splice(1,e)].join(this.formatSeparator)}return a.reduce((e,t)=>{const{formatName:a,formatOptions:s}=(e=>{let t=e.toLowerCase().trim();const n={};if(e.indexOf("(")>-1){const r=e.split("(");t=r[0].toLowerCase().trim();const a=r[1].substring(0,r[1].length-1);"currency"===t&&a.indexOf(":")<0?n.currency||(n.currency=a.trim()):"relativetime"===t&&a.indexOf(":")<0?n.range||(n.range=a.trim()):a.split(";").forEach(e=>{if(e){const[t,...r]=e.split(":"),a=r.join(":").trim().replace(/^'+|'+$/g,""),s=t.trim();n[s]||(n[s]=a),"false"===a&&(n[s]=!1),"true"===a&&(n[s]=!0),isNaN(a)||(n[s]=parseInt(a,10))}})}return{formatName:t,formatOptions:n}})(t);if(this.formats[a]){let t=e;try{const i=r?.formatParams?.[r.interpolationkey]||{},o=i.locale||i.lng||r.locale||r.lng||n;t=this.formats[a](e,o,{...s,...r,...i})}catch(e){this.logger.warn(e)}return t}return this.logger.warn(`there was no format function for ${a}`),e},e)}}class I extends S{constructor(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};super(),this.backend=e,this.store=t,this.services=n,this.languageUtils=n.languageUtils,this.options=r,this.logger=L.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(n,r.backend,r)}queueLoad(e,t,n,r){const a={},s={},i={},o={};return e.forEach(e=>{let r=!0;t.forEach(t=>{const i=`${e}|${t}`;!n.reload&&this.store.hasResourceBundle(e,t)?this.state[i]=2:this.state[i]<0||(1===this.state[i]?void 0===s[i]&&(s[i]=!0):(this.state[i]=1,r=!1,void 0===s[i]&&(s[i]=!0),void 0===a[i]&&(a[i]=!0),void 0===o[t]&&(o[t]=!0)))}),r||(i[e]=!0)}),(Object.keys(a).length||Object.keys(s).length)&&this.queue.push({pending:s,pendingCount:Object.keys(s).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(a),pending:Object.keys(s),toLoadLanguages:Object.keys(i),toLoadNamespaces:Object.keys(o)}}loaded(e,t,n){const r=e.split("|"),a=r[0],s=r[1];t&&this.emit("failedLoading",a,s,t),!t&&n&&this.store.addResourceBundle(a,s,n,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&n&&(this.state[e]=0);const i={};this.queue.forEach(n=>{((e,t,n)=>{const{obj:r,k:a}=d(e,t,Object);r[a]=r[a]||[],r[a].push(n)})(n.loaded,[a],s),((e,t)=>{void 0!==e.pending[t]&&(delete e.pending[t],e.pendingCount--)})(n,e),t&&n.errors.push(t),0!==n.pendingCount||n.done||(Object.keys(n.loaded).forEach(e=>{i[e]||(i[e]={});const t=n.loaded[e];t.length&&t.forEach(t=>{void 0===i[e][t]&&(i[e][t]=!0)})}),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())}),this.emit("loaded",i),this.queue=this.queue.filter(e=>!e.done)}read(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:this.retryTimeout,s=arguments.length>5?arguments[5]:void 0;if(!e.length)return s(null,{});if(this.readingCalls>=this.maxParallelReads)return void this.waitingReads.push({lng:e,ns:t,fcName:n,tried:r,wait:a,callback:s});this.readingCalls++;const i=(i,o)=>{if(this.readingCalls--,this.waitingReads.length>0){const e=this.waitingReads.shift();this.read(e.lng,e.ns,e.fcName,e.tried,e.wait,e.callback)}i&&o&&r{this.read.call(this,e,t,n,r+1,2*a,s)},a):s(i,o)},o=this.backend[n].bind(this.backend);if(2!==o.length)return o(e,t,i);try{const n=o(e,t);n&&"function"==typeof n.then?n.then(e=>i(null,e)).catch(i):i(null,n)}catch(e){i(e)}}prepareLoading(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();a(e)&&(e=this.languageUtils.toResolveHierarchy(e)),a(t)&&(t=[t]);const s=this.queueLoad(e,t,n,r);if(!s.toLoad.length)return s.pending.length||r(),null;s.toLoad.forEach(e=>{this.loadOne(e)})}load(e,t,n){this.prepareLoading(e,t,{},n)}reload(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}loadOne(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";const n=e.split("|"),r=n[0],a=n[1];this.read(r,a,"read",void 0,void 0,(n,s)=>{n&&this.logger.warn(`${t}loading namespace ${a} for language ${r} failed`,n),!n&&s&&this.logger.log(`${t}loaded namespace ${a} for language ${r}`,s),this.loaded(e,n,s)})}saveMissing(e,t,n,r,a){let s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:()=>{};if(!this.services?.utils?.hasLoadedNamespace||this.services?.utils?.hasLoadedNamespace(t)){if(null!=n&&""!==n){if(this.backend?.create){const o={...s,isUpdate:a},l=this.backend.create.bind(this.backend);if(l.length<6)try{let a;a=5===l.length?l(e,t,n,r,o):l(e,t,n,r),a&&"function"==typeof a.then?a.then(e=>i(null,e)).catch(i):i(null,a)}catch(e){i(e)}else l(e,t,n,r,i,o)}e&&e[0]&&this.store.addResource(e[0],t,n,r)}}else this.logger.warn(`did not save key "${n}" as the namespace "${t}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")}}const F=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if("object"==typeof e[1]&&(t=e[1]),a(e[1])&&(t.defaultValue=e[1]),a(e[2])&&(t.tDescription=e[2]),"object"==typeof e[2]||"object"==typeof e[3]){const n=e[3]||e[2];Object.keys(n).forEach(e=>{t[e]=n[e]})}return t},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),W=e=>(a(e.ns)&&(e.ns=[e.ns]),a(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),a(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs?.indexOf?.("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),"boolean"==typeof e.initImmediate&&(e.initAsync=e.initImmediate),e),V=()=>{};class z extends S{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;var n;if(super(),this.options=W(e),this.services={},this.logger=L,this.modules={external:[]},n=this,Object.getOwnPropertyNames(Object.getPrototypeOf(n)).forEach(e=>{"function"==typeof n[e]&&(n[e]=n[e].bind(n))}),t&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,"function"==typeof t&&(n=t,t={}),null==t.defaultNS&&t.ns&&(a(t.ns)?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));const r=F();this.options={...r,...this.options,...W(t)},this.options.interpolation={...r.interpolation,...this.options.interpolation},void 0!==t.keySeparator&&(this.options.userDefinedKeySeparator=t.keySeparator),void 0!==t.nsSeparator&&(this.options.userDefinedNsSeparator=t.nsSeparator);const i=e=>e?"function"==typeof e?new e:e:null;if(!this.options.isClone){let t;this.modules.logger?L.init(i(this.modules.logger),this.options):L.init(null,this.options),t=this.modules.formatter?this.modules.formatter:N;const n=new E(this.options);this.store=new k(this.options.resources,this.options);const a=this.services;a.logger=L,a.resourceStore=this.store,a.languageUtils=n,a.pluralResolver=new C(n,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),!t||this.options.interpolation.format&&this.options.interpolation.format!==r.interpolation.format||(a.formatter=i(t),a.formatter.init(a,this.options),this.options.interpolation.format=a.formatter.format.bind(a.formatter)),a.interpolator=new j(this.options),a.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},a.backendConnector=new I(i(this.modules.backend),a.resourceStore,a,this.options),a.backendConnector.on("*",function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a1?n-1:0),a=1;a{e.init&&e.init(this)})}if(this.format=this.options.interpolation.format,n||(n=V),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const e=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);e.length>0&&"dev"!==e[0]&&(this.options.lng=e[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(t=>{this[t]=function(){return e.store[t](...arguments)}});["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(t=>{this[t]=function(){return e.store[t](...arguments),e}});const o=s(),l=()=>{const e=(e,t)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),o.resolve(t),n(e,t)};if(this.languages&&!this.isInitialized)return e(null,this.t.bind(this));this.changeLanguage(this.options.lng,e)};return this.options.resources||!this.options.initAsync?l():setTimeout(l,0),o}loadResources(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:V;const n=a(e)?e:this.language;if("function"==typeof e&&(t=e),!this.options.resources||this.options.partialBundledLanguages){if("cimode"===n?.toLowerCase()&&(!this.options.preload||0===this.options.preload.length))return t();const e=[],r=t=>{if(!t)return;if("cimode"===t)return;this.services.languageUtils.toResolveHierarchy(t).forEach(t=>{"cimode"!==t&&e.indexOf(t)<0&&e.push(t)})};if(n)r(n);else{this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(e=>r(e))}this.options.preload?.forEach?.(e=>r(e)),this.services.backendConnector.load(e,this.options.ns,e=>{e||this.resolvedLanguage||!this.language||this.setResolvedLanguage(this.language),t(e)})}else t(null)}reloadResources(e,t,n){const r=s();return"function"==typeof e&&(n=e,e=void 0),"function"==typeof t&&(n=t,t=void 0),e||(e=this.languages),t||(t=this.options.ns),n||(n=V),this.services.backendConnector.reload(e,t,e=>{r.resolve(),n(e)}),r}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&D.addPostProcessor(e),"formatter"===e.type&&(this.modules.formatter=e),"3rdParty"===e.type&&this.modules.external.push(e),this}setResolvedLanguage(e){if(e&&this.languages&&!(["cimode","dev"].indexOf(e)>-1))for(let e=0;e-1)&&this.store.hasLanguageSomeTranslations(t)){this.resolvedLanguage=t;break}}}changeLanguage(e,t){var n=this;this.isLanguageChangingTo=e;const r=s();this.emit("languageChanging",e);const i=e=>{this.language=e,this.languages=this.services.languageUtils.toResolveHierarchy(e),this.resolvedLanguage=void 0,this.setResolvedLanguage(e)},o=(e,a)=>{a?(i(a),this.translator.changeLanguage(a),this.isLanguageChangingTo=void 0,this.emit("languageChanged",a),this.logger.log("languageChanged",a)):this.isLanguageChangingTo=void 0,r.resolve(function(){return n.t(...arguments)}),t&&t(e,function(){return n.t(...arguments)})},l=t=>{e||t||!this.services.languageDetector||(t=[]);const n=a(t)?t:this.services.languageUtils.getBestMatchFromCodes(t);n&&(this.language||i(n),this.translator.language||this.translator.changeLanguage(n),this.services.languageDetector?.cacheUserLanguage?.(n)),this.loadResources(n,e=>{o(e,n)})};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?0===this.services.languageDetector.detect.length?this.services.languageDetector.detect().then(l):this.services.languageDetector.detect(l):l(e):l(this.services.languageDetector.detect()),r}getFixedT(e,t,n){var r=this;const s=function(e,t){let a;if("object"!=typeof t){for(var i=arguments.length,o=new Array(i>2?i-2:0),l=2;l`${a.keyPrefix}${u}${e}`):a.keyPrefix?`${a.keyPrefix}${u}${e}`:e,r.t(d,a)};return a(e)?s.lng=e:s.lngs=e,s.ns=t,s.keyPrefix=n,s}t(){for(var e=arguments.length,t=new Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const n=t.lng||this.resolvedLanguage||this.languages[0],r=!!this.options&&this.options.fallbackLng,a=this.languages[this.languages.length-1];if("cimode"===n.toLowerCase())return!0;const s=(e,t)=>{const n=this.services.backendConnector.state[`${e}|${t}`];return-1===n||0===n||2===n};if(t.precheck){const e=t.precheck(this,s);if(void 0!==e)return e}return!!this.hasResourceBundle(n,e)||(!(this.services.backendConnector.backend&&(!this.options.resources||this.options.partialBundledLanguages))||!(!s(n,e)||r&&!s(a,e)))}loadNamespaces(e,t){const n=s();return this.options.ns?(a(e)&&(e=[e]),e.forEach(e=>{this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}loadLanguages(e,t){const n=s();a(e)&&(e=[e]);const r=this.options.preload||[],i=e.filter(e=>r.indexOf(e)<0&&this.services.languageUtils.isSupportedCode(e));return i.length?(this.options.preload=r.concat(i),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!e)return"rtl";const t=this.services?.languageUtils||new E(F());return["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(t.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){return new z(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},arguments.length>1?arguments[1]:void 0)}cloneInstance(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:V;const n=e.forkResourceStore;n&&delete e.forkResourceStore;const r={...this.options,...e,isClone:!0},a=new z(r);void 0===e.debug&&void 0===e.prefix||(a.logger=a.logger.clone(e));if(["store","services","language"].forEach(e=>{a[e]=this[e]}),a.services={...this.services},a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},n){const e=Object.keys(this.store.data).reduce((e,t)=>(e[t]={...this.store.data[t]},Object.keys(e[t]).reduce((n,r)=>(n[r]={...e[t][r]},n),{})),{});a.store=new k(e,r),a.services.resourceStore=a.store}return a.translator=new Y(a.services,r),a.translator.on("*",function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function X(e){var t={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},n=e.match(/<\/?([^\s]+?)[/\s>]/);if(n&&(t.name=n[1],(Q()[n[1]]||"/"===e.charAt(e.length-2))&&(t.voidElement=!0),t.name.startsWith("!--"))){var r=e.indexOf("--\x3e");return{type:"comment",comment:-1!==r?e.slice(4,r):""}}for(var a=new RegExp(Z),s=null;null!==(s=a.exec(e));)if(s[0].trim())if(s[1]){var i=s[1].trim(),o=[i,""];i.indexOf("=")>-1&&(o=i.split("=")),t.attrs[o[0]]=o[1],a.lastIndex--}else s[2]&&(t.attrs[s[2]]=s[3].trim().substring(1,s[3].length-1));return t}var ee=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,te=/^\s*$/,ne=Object.create(null);function re(e,t){switch(t.type){case"text":return e+t.content;case"tag":return e+="<"+t.name+(t.attrs?function(e){var t=[];for(var n in e)t.push(n+'="'+e[n]+'"');return t.length?" "+t.join(" "):""}(t.attrs):"")+(t.voidElement?"/>":">"),t.voidElement?e:e+t.children.reduce(re,"")+"";case"comment":return e+"\x3c!--"+t.comment+"--\x3e"}}var ae={parse:function(e,t){t||(t={}),t.components||(t.components=ne);var n,r=[],a=[],s=-1,i=!1;if(0!==e.indexOf("<")){var o=e.indexOf("<");r.push({type:"text",content:-1===o?e:e.substring(0,o)})}return e.replace(ee,function(o,l){if(i){if(o!=="")return;i=!1}var u,d="/"!==o.charAt(1),c=o.startsWith("\x3c!--"),h=l+o.length,m=e.charAt(h);if(c){var p=X(o);return s<0?(r.push(p),r):((u=a[s]).children.push(p),r)}if(d&&(s++,"tag"===(n=X(o)).type&&t.components[n.name]&&(n.type="component",i=!0),n.voidElement||i||!m||"<"===m||n.children.push({type:"text",content:e.slice(h,e.indexOf("<",h))}),0===s&&r.push(n),(u=a[s-1])&&u.children.push(n),a[s]=n),(!d||n.voidElement)&&(s>-1&&(n.voidElement||n.name===o.slice(2,-1))&&(s--,n=-1===s?r:a[s]),!i&&"<"!==m&&m)){u=-1===s?r:a[s].children;var f=e.indexOf("<",h),_=e.slice(h,-1===f?void 0:f);te.test(_)&&(_=" "),(f>-1&&s+u.length>=0||" "!==_)&&u.push({type:"text",content:_})}}),r},stringify:function(e){return e.reduce(function(e,t){return e+re("",t)},"")}};const se=ae,ie=(e,t,n,r)=>{const a=[n,{code:t,...r||{}}];if(e?.services?.logger?.forward)return e.services.logger.forward(a,"warn","react-i18next::",!0);ue(a[0])&&(a[0]=`react-i18next:: ${a[0]}`),e?.services?.logger?.warn?e.services.logger.warn(...a):console?.warn&&console.warn(...a)},oe={},le=(e,t,n,r)=>{ue(n)&&oe[n]||(ue(n)&&(oe[n]=new Date),ie(e,t,n,r))},ue=e=>"string"==typeof e,de=e=>"object"==typeof e&&null!==e,ce=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,he={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},me=e=>he[e];let pe={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:e=>e.replace(ce,me)};const fe=()=>pe;let _e;const ge=()=>_e,ye=(e,t)=>{if(!e)return!1;const n=e.props?.children??e.children;return t?n.length>0:!!n},ve=e=>{if(!e)return[];const t=e.props?.children??e.children;return e.props?.i18nIsDynamicList?be(t):t},be=e=>Array.isArray(e)?e:[e],Me=(e,t,n,r)=>{if(!e)return"";let a="";const s=be(e),i=t?.transSupportBasicHtmlNodes?t.transKeepBasicHtmlNodesFor??[]:[];return s.forEach((e,s)=>{if(ue(e))a+=`${e}`;else{if((0,J.isValidElement)(e)){const{props:o,type:l}=e,u=Object.keys(o).length,d=i.indexOf(l)>-1,c=o.children;if(!c&&d&&!u)return void(a+=`<${l}/>`);if(!c&&(!d||u)||o.i18nIsDynamicList)return void(a+=`<${s}>`);if(d&&1===u&&ue(c))return void(a+=`<${l}>${c}`);const h=Me(c,t,n,r);return void(a+=`<${s}>${h}`)}if(null!==e){if(de(e)){const{format:t,...s}=e,i=Object.keys(s);if(1===i.length){const e=t?`${i[0]}, ${t}`:i[0];return void(a+=`{{${e}}}`)}return void ie(n,"TRANS_INVALID_OBJ","Invalid child - Object should only have keys {{ value, format }} (format is optional).",{i18nKey:r,child:e})}ie(n,"TRANS_INVALID_VAR","Passed in a variable like {number} - pass variables for interpolation as full objects like {{number}}.",{i18nKey:r,child:e})}else ie(n,"TRANS_NULL_VALUE","Passed in a null value as child",{i18nKey:r})}}),a},we=(e,t,n,r,a,s,i)=>{if(""===n)return[];const o=a.transKeepBasicHtmlNodesFor||[],l=n&&new RegExp(o.map(e=>`<${e}`).join("|")).test(n);if(!(e||t||l||i))return[n];const u=t??{},d=e=>{be(e).forEach(e=>{ue(e)||(ye(e)?d(ve(e)):de(e)&&!(0,J.isValidElement)(e)&&Object.assign(u,e))})};d(e);const c=se.parse(`<0>${n}`),h={...u,...s},m=(e,t,n)=>{const r=ve(e),a=f(r,t.children,n);return(e=>Array.isArray(e)&&e.every(J.isValidElement))(r)&&0===a.length||e.props?.i18nIsDynamicList?r:a},p=(e,t,n,r,a)=>{e.dummy?(e.children=t,n.push((0,J.cloneElement)(e,{key:r},a?void 0:t))):n.push(...J.Children.map([e],e=>{const n={...e.props};return delete n.i18nIsDynamicList,(0,J.createElement)(e.type,{...n,key:r,ref:e.props.ref??e.ref},a?null:t)}))},f=(e,n,s)=>{const u=be(e);return be(n).reduce((e,n,d)=>{const c=n.children?.[0]?.content&&r.services.interpolator.interpolate(n.children[0].content,h,r.language);if("tag"===n.type){let i=u[parseInt(n.name,10)];!i&&t&&(i=t[n.name]),1!==s.length||i||(i=s[0][n.name]),i||(i={});const _=0!==Object.keys(n.attrs).length?((e,t)=>{const n={...t};return n.props=Object.assign(e.props,t.props),n})({props:n.attrs},i):i,g=(0,J.isValidElement)(_),y=g&&ye(n,!0)&&!n.voidElement,v=l&&de(_)&&_.dummy&&!g,b=de(t)&&Object.hasOwnProperty.call(t,n.name);if(ue(_)){const t=r.services.interpolator.interpolate(_,h,r.language);e.push(t)}else if(ye(_)||y){const t=m(_,n,s);p(_,t,e,d)}else if(v){const t=f(u,n.children,s);p(_,t,e,d)}else if(Number.isNaN(parseFloat(n.name)))if(b){const t=m(_,n,s);p(_,t,e,d,n.voidElement)}else if(a.transSupportBasicHtmlNodes&&o.indexOf(n.name)>-1)if(n.voidElement)e.push((0,J.createElement)(n.name,{key:`${n.name}-${d}`}));else{const t=f(u,n.children,s);e.push((0,J.createElement)(n.name,{key:`${n.name}-${d}`},t))}else if(n.voidElement)e.push(`<${n.name} />`);else{const t=f(u,n.children,s);e.push(`<${n.name}>${t}`)}else if(de(_)&&!g){const t=n.children[0]?c:null;t&&e.push(t)}else p(_,c,e,d,1!==n.children.length||!c)}else if("text"===n.type){const t=a.transWrapTextNodes,s=i?a.unescape(r.services.interpolator.interpolate(n.content,h,r.language)):r.services.interpolator.interpolate(n.content,h,r.language);t?e.push((0,J.createElement)(t,{key:`${n.name}-${d}`},s)):e.push(s)}return e},[])},_=f([{dummy:!0,children:e||[]}],c,be(e||[]));return ve(_[0])},Le=(e,t,n)=>{const r=e.key||t,a=(0,J.cloneElement)(e,{key:r});if(!a.props||!a.props.children||n.indexOf(`${t}/>`)<0&&n.indexOf(`${t} />`)<0)return a;return(0,J.createElement)(function(){return(0,J.createElement)(J.Fragment,null,a)},{key:r})},Se=(e,t,n,r)=>e?Array.isArray(e)?((e,t)=>e.map((e,n)=>Le(e,n,t)))(e,t):de(e)?((e,t)=>{const n={};return Object.keys(e).forEach(r=>{Object.assign(n,{[r]:Le(e[r],r,t)})}),n})(e,t):(le(n,"TRANS_INVALID_COMPONENTS",' "components" prop expects an object or array',{i18nKey:r}),null):null,ke=e=>!!de(e)&&(!Array.isArray(e)&&Object.keys(e).reduce((e,t)=>e&&Number.isNaN(Number.parseFloat(t)),!0));const De={type:"3rdParty",init(e){((e={})=>{pe={...pe,...e}})(e.options.react),(e=>{_e=e})(e)}},Te=(0,J.createContext)();function xe({children:e,count:t,parent:n,i18nKey:r,context:a,tOptions:s={},values:i,defaults:o,components:l,ns:u,i18n:d,t:c,shouldUnescape:h,...m}){const{i18n:p,defaultNS:f}=(0,J.useContext)(Te)||{},_=d||p||ge(),g=c||_?.t.bind(_);return function({children:e,count:t,parent:n,i18nKey:r,context:a,tOptions:s={},values:i,defaults:o,components:l,ns:u,i18n:d,t:c,shouldUnescape:h,...m}){const p=d||ge();if(!p)return le(p,"NO_I18NEXT_INSTANCE","Trans: You need to pass in an i18next instance using i18nextReactModule",{i18nKey:r}),e;const f=c||p.t.bind(p)||(e=>e),_={...fe(),...p.options?.react};let g=u||f.ns||p.options?.defaultNS;g=ue(g)?[g]:g||["translation"];const y=Me(e,_,p,r),v=o||y||_.transEmptyNodeValue||r,{hashTransKey:b}=_,M=r||(b?b(y||v):y||v);p.options?.interpolation?.defaultVariables&&(i=i&&Object.keys(i).length>0?{...i,...p.options.interpolation.defaultVariables}:{...p.options.interpolation.defaultVariables});const w=i||void 0!==t&&!p.options?.interpolation?.alwaysFormat||!e?s.interpolation:{interpolation:{...s.interpolation,prefix:"#$?",suffix:"?$#"}},L={...s,context:a||s.context,count:t,...i,...w,defaultValue:v,ns:g},S=M?f(M,L):v,k=Se(l,S,p,r);let D=k||e,T=null;ke(k)&&(T=k,D=e);const x=we(D,T,S,p,_,L,h),Y=n??_.defaultTransParent;return Y?(0,J.createElement)(Y,m,x):x}({children:e,count:t,parent:n,i18nKey:r,context:a,tOptions:s,values:i,defaults:o,components:l,ns:u||g?.ns||f||_?.options?.defaultNS,i18n:_,t:c,shouldUnescape:h,...m})}var Ye=n(116);let Ee,Oe;function Ae({id:e,ns:t}={}){if(e)return Ee=Re().getFixedT(null,e),void(Oe=t=>(0,r.jsx)(xe,{shouldUnescape:!0,ns:e,...t}));Ee=Re().t,Oe=e=>(0,r.jsx)(xe,{shouldUnescape:!0,ns:t,...e})}function Ce(){var e;if((null==(e=Re().options)?void 0:e.resources)&&"object"==typeof Re().options.resources)return;const t=Re().use(De).init({resources:{},returnEmptyString:!1,lng:Ye.Nm});return Ae(),t}function Re(){return $}n(5730).Y,Ye.wi;const Pe=(e,t,n)=>(Ce(),Ee||(console.warn("t() was called before i18n was initialized. This is probably caused by calling t() in the root module scope, instead of lazily on render"),Ee=Re().t),Ee(e,t,n));function je(e){Ce();const t=null!=Oe?Oe:xe;return(0,r.jsx)(t,{shouldUnescape:!0,...e})}},9893:e=>{"use strict";e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var a=void 0!==n.layer;a&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,a&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var s=n.sourceMap;s&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(s))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},9947:function(e,t,n){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:6}})}(n(2689))},9954:(e,t,n)=>{"use strict";t.__esModule=!0,t.cloneElement=function(e,t){t.style&&e.props.style&&(t.style=i(i({},e.props.style),t.style));t.className&&e.props.className&&(t.className=e.props.className+" "+t.className);return a.default.cloneElement(e,t)};var r,a=(r=n(5959))&&r.__esModule?r:{default:r};function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function i(e){for(var t=1;t 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort:\n 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n","const ENGLISH_US = \"en-US\";\nconst FRENCH_FRANCE = \"fr-FR\";\nconst SPANISH_SPAIN = \"es-ES\";\nconst GERMAN_GERMANY = \"de-DE\";\nconst BRAZILIAN_PORTUGUESE = \"pt-BR\";\nconst CHINESE_SIMPLIFIED = \"zh-Hans\";\nconst ITALIAN_ITALY = \"it-IT\";\nconst JAPANESE_JAPAN = \"ja-JP\";\nconst INDONESIAN_INDONESIA = \"id-ID\";\nconst KOREAN_KOREA = \"ko-KR\";\nconst RUSSIAN_RUSSIA = \"ru-RU\";\nconst CZECH_CZECHIA = \"cs-CZ\";\nconst DUTCH_NETHERLANDS = \"nl-NL\";\nconst HUNGARIAN_HUNGARY = \"hu-HU\";\nconst PORTUGUESE_PORTUGAL = \"pt-PT\";\nconst POLISH_POLAND = \"pl-PL\";\nconst SWEDISH_SWEDEN = \"sv-SE\";\nconst TURKISH_TURKEY = \"tr-TR\";\nconst CHINESE_TRADITIONAL = \"zh-Hant\";\nconst DEFAULT_LANGUAGE = ENGLISH_US;\nconst PSEUDO_LOCALE = \"pseudo\";\n\nexport { BRAZILIAN_PORTUGUESE, CHINESE_SIMPLIFIED, CHINESE_TRADITIONAL, CZECH_CZECHIA, DEFAULT_LANGUAGE, DUTCH_NETHERLANDS, ENGLISH_US, FRENCH_FRANCE, GERMAN_GERMANY, HUNGARIAN_HUNGARY, INDONESIAN_INDONESIA, ITALIAN_ITALY, JAPANESE_JAPAN, KOREAN_KOREA, POLISH_POLAND, PORTUGUESE_PORTUGAL, PSEUDO_LOCALE, RUSSIAN_RUSSIA, SPANISH_SPAIN, SWEDISH_SWEDEN, TURKISH_TURKEY };\n//# sourceMappingURL=constants.mjs.map\n","import { useParams, useLocation, matchPath } from 'react-router-dom';\nimport { urlUtil, locationUtil } from '@grafana/data';\nimport { locationSearchToObject } from '@grafana/runtime';\n\nfunction useAppQueryParams() {\n const location = useLocation();\n return locationSearchToObject(location.search || \"\");\n}\nfunction getUrlWithAppState(path, searchObject, preserveParams) {\n const paramsCopy = { ...searchObject };\n if (preserveParams) {\n for (const key of Object.keys(paramsCopy)) {\n if (!preserveParams.includes(key)) {\n delete paramsCopy[key];\n }\n }\n }\n return urlUtil.renderUrl(locationUtil.assureBaseUrl(path), paramsCopy);\n}\nfunction useSceneRouteMatch(path) {\n const params = useParams();\n const location = useLocation();\n const isExact = matchPath(\n {\n path,\n caseSensitive: false,\n end: true\n },\n location.pathname\n );\n const match = {\n params,\n isExact: isExact !== null,\n path: location.pathname,\n url: location.pathname\n };\n return match;\n}\n\nexport { getUrlWithAppState, useAppQueryParams, useSceneRouteMatch };\n//# sourceMappingURL=utils.js.map\n","import { getPluginImportUtils } from '@grafana/runtime';\n\nconst runtimePanelPlugins = /* @__PURE__ */ new Map();\nfunction registerRuntimePanelPlugin({ pluginId, plugin }) {\n if (runtimePanelPlugins.has(pluginId)) {\n throw new Error(`A runtime panel plugin with id ${pluginId} has already been registered`);\n }\n plugin.meta = {\n ...plugin.meta,\n id: pluginId,\n name: pluginId,\n module: \"runtime plugin\",\n baseUrl: \"runtime plugin\",\n info: {\n author: {\n name: \"Runtime plugin \" + pluginId\n },\n description: \"\",\n links: [],\n logos: {\n large: \"\",\n small: \"\"\n },\n screenshots: [],\n updated: \"\",\n version: \"\"\n }\n };\n runtimePanelPlugins.set(pluginId, plugin);\n}\nfunction loadPanelPluginSync(pluginId) {\n var _a;\n const { getPanelPluginFromCache } = getPluginImportUtils();\n return (_a = getPanelPluginFromCache(pluginId)) != null ? _a : runtimePanelPlugins.get(pluginId);\n}\n\nexport { loadPanelPluginSync, registerRuntimePanelPlugin, runtimePanelPlugins };\n//# sourceMappingURL=registerRuntimePanelPlugin.js.map\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import React, { useState, useEffect } from 'react';\n\nfunction SceneComponentWrapperWithoutMemo({ model, ...otherProps }) {\n var _a;\n const Component = (_a = model.constructor[\"Component\"]) != null ? _a : EmptyRenderer;\n const [_, setValue] = useState(0);\n useEffect(() => {\n const unsub = model.activate();\n setValue((prevState) => prevState + 1);\n return unsub;\n }, [model]);\n if (!model.isActive && !model.renderBeforeActivation) {\n return null;\n }\n return /* @__PURE__ */ React.createElement(Component, { ...otherProps, model });\n}\nconst SceneComponentWrapper = React.memo(SceneComponentWrapperWithoutMemo);\nfunction EmptyRenderer(_) {\n return null;\n}\n\nexport { SceneComponentWrapper };\n//# sourceMappingURL=SceneComponentWrapper.js.map\n","import { BusEventWithPayload } from '@grafana/data';\n\nclass SceneObjectStateChangedEvent extends BusEventWithPayload {\n}\nSceneObjectStateChangedEvent.type = \"scene-object-state-change\";\nclass UserActionEvent extends BusEventWithPayload {\n}\nUserActionEvent.type = \"scene-object-user-action\";\n\nexport { SceneObjectStateChangedEvent, UserActionEvent };\n//# sourceMappingURL=events.js.map\n","var __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), member.set(obj, value), value);\nvar _ref;\nclass SceneObjectRef {\n constructor(ref) {\n __privateAdd(this, _ref);\n __privateSet(this, _ref, ref);\n }\n resolve() {\n return __privateGet(this, _ref);\n }\n}\n_ref = new WeakMap();\n\nexport { SceneObjectRef };\n//# sourceMappingURL=SceneObjectRef.js.map\n","import { useState, useEffect } from 'react';\nimport { Subscription } from 'rxjs';\nimport { v4 } from 'uuid';\nimport { EventBusSrv } from '@grafana/data';\nimport { SceneComponentWrapper } from './SceneComponentWrapper.js';\nimport { SceneObjectStateChangedEvent } from './events.js';\nimport { cloneSceneObject } from './sceneGraph/cloneSceneObject.js';\nimport { SceneObjectRef } from './SceneObjectRef.js';\n\nclass SceneObjectBase {\n constructor(state) {\n this._isActive = false;\n this._activationHandlers = [];\n this._deactivationHandlers = /* @__PURE__ */ new Map();\n this._subs = new Subscription();\n this._refCount = 0;\n this._renderBeforeActivation = false;\n if (!state.key) {\n state.key = v4();\n }\n this._events = new EventBusSrv();\n this._state = Object.freeze(state);\n this._setParent(this._state);\n }\n /** Current state */\n get state() {\n return this._state;\n }\n /** True if currently being active (ie displayed for visual objects) */\n get isActive() {\n return this._isActive;\n }\n get renderBeforeActivation() {\n return this._renderBeforeActivation;\n }\n /** Returns the parent, undefined for root object */\n get parent() {\n return this._parent;\n }\n /** Returns variable dependency config */\n get variableDependency() {\n return this._variableDependency;\n }\n /** Returns url sync config */\n get urlSync() {\n return this._urlSync;\n }\n /**\n * Used in render functions when rendering a SceneObject.\n * Wraps the component in an EditWrapper that handles edit mode\n */\n get Component() {\n return SceneComponentWrapper;\n }\n _setParent(state) {\n forEachChild(state, (child) => {\n if (child._parent && child._parent !== this) {\n console.warn(\n \"SceneObject already has a parent set that is different from the new parent. You cannot share the same SceneObject instance in multiple scenes or in multiple different places of the same scene graph. Use SceneObject.clone() to duplicate a SceneObject or store a state key reference and use sceneGraph.findObject to locate it.\",\n child,\n this\n );\n }\n child._parent = this;\n });\n }\n /**\n * Sometimes you want to move one instance to another parent.\n * This is a way to do that without getting the console warning.\n */\n clearParent() {\n this._parent = void 0;\n }\n /**\n * Subscribe to the scene state subject\n **/\n subscribeToState(handler) {\n return this._events.subscribe(SceneObjectStateChangedEvent, (event) => {\n if (event.payload.changedObject === this) {\n handler(event.payload.newState, event.payload.prevState);\n }\n });\n }\n /**\n * Subscribe to the scene event\n **/\n subscribeToEvent(eventType, handler) {\n return this._events.subscribe(eventType, handler);\n }\n setState(update) {\n const prevState = this._state;\n const newState = {\n ...this._state,\n ...update\n };\n this._state = Object.freeze(newState);\n this._setParent(update);\n this._handleActivationOfChangedStateProps(prevState, newState);\n this.publishEvent(\n new SceneObjectStateChangedEvent({\n prevState,\n newState,\n partialUpdate: update,\n changedObject: this\n }),\n true\n );\n }\n /**\n * This handles activation and deactivation of $data, $timeRange and $variables when they change\n * during the active phase of the scene object.\n */\n _handleActivationOfChangedStateProps(prevState, newState) {\n if (!this.isActive) {\n return;\n }\n if (prevState.$behaviors !== newState.$behaviors) {\n this._handleChangedBehaviors(prevState.$behaviors, newState.$behaviors);\n }\n if (prevState.$data !== newState.$data) {\n this._handleChangedStateActivation(prevState.$data, newState.$data);\n }\n if (prevState.$variables !== newState.$variables) {\n this._handleChangedStateActivation(prevState.$variables, newState.$variables);\n }\n if (prevState.$timeRange !== newState.$timeRange) {\n this._handleChangedStateActivation(prevState.$timeRange, newState.$timeRange);\n }\n }\n _handleChangedStateActivation(oldValue, newValue) {\n if (oldValue) {\n const deactivationHandler = this._deactivationHandlers.get(oldValue);\n if (deactivationHandler) {\n deactivationHandler();\n this._deactivationHandlers.delete(oldValue);\n }\n }\n if (newValue) {\n this._deactivationHandlers.set(newValue, newValue.activate());\n }\n }\n _handleChangedBehaviors(oldValue, newValue) {\n if (oldValue) {\n for (const oldBehavior of oldValue) {\n if (!newValue || !newValue.includes(oldBehavior)) {\n const deactivationHandler = this._deactivationHandlers.get(oldBehavior);\n if (deactivationHandler) {\n deactivationHandler();\n this._deactivationHandlers.delete(oldBehavior);\n }\n }\n }\n }\n if (newValue) {\n for (const newBehavior of newValue) {\n if (!oldValue || !oldValue.includes(newBehavior)) {\n this._activateBehavior(newBehavior);\n }\n }\n }\n }\n /*\n * Publish an event and optionally bubble it up the scene\n **/\n publishEvent(event, bubble) {\n this._events.publish(event);\n if (bubble && this.parent) {\n this.parent.publishEvent(event, bubble);\n }\n }\n getRoot() {\n return !this._parent ? this : this._parent.getRoot();\n }\n _internalActivate() {\n this._isActive = true;\n const { $data, $variables, $timeRange, $behaviors } = this.state;\n this._activationHandlers.forEach((handler) => {\n const result = handler();\n if (result) {\n this._deactivationHandlers.set(result, result);\n }\n });\n if ($timeRange && !$timeRange.isActive) {\n this._deactivationHandlers.set($timeRange, $timeRange.activate());\n }\n if ($variables && !$variables.isActive) {\n this._deactivationHandlers.set($variables, $variables.activate());\n }\n if ($data && !$data.isActive) {\n this._deactivationHandlers.set($data, $data.activate());\n }\n if ($behaviors) {\n for (const behavior of $behaviors) {\n this._activateBehavior(behavior);\n }\n }\n }\n _activateBehavior(behavior) {\n if (behavior instanceof SceneObjectBase) {\n this._deactivationHandlers.set(behavior, behavior.activate());\n } else if (typeof behavior === \"function\") {\n const deactivate = behavior(this);\n if (deactivate) {\n this._deactivationHandlers.set(behavior, deactivate);\n }\n }\n }\n /**\n * This is primarily called from SceneComponentWrapper when the SceneObject's Component is mounted.\n * But in some scenarios this can also be called directly from another scene object. When called manually from another scene object\n * make sure to call the returned function when the source scene object is deactivated.\n */\n activate() {\n if (!this.isActive) {\n this._internalActivate();\n }\n this._refCount++;\n let called = false;\n return () => {\n this._refCount--;\n if (called) {\n const msg = `SceneObject cancelation handler returned by activate() called a second time`;\n throw new Error(msg);\n }\n called = true;\n if (this._refCount === 0) {\n this._internalDeactivate();\n }\n };\n }\n /**\n * Called by the SceneComponentWrapper when the react component is unmounted.\n * Don't override this, instead use addActivationHandler. The activation handler can return a deactivation handler.\n */\n _internalDeactivate() {\n this._isActive = false;\n for (let handler of this._deactivationHandlers.values()) {\n handler();\n }\n this._deactivationHandlers.clear();\n this._events.removeAllListeners();\n this._subs.unsubscribe();\n this._subs = new Subscription();\n }\n /**\n * Utility hook to get and subscribe to state\n */\n useState() {\n return useSceneObjectState(this);\n }\n /** Force a re-render, should only be needed when variable values change */\n forceRender() {\n this.setState({});\n }\n /**\n * Will create new SceneObject with shallow-cloned state, but all state items of type SceneObject are deep cloned\n */\n clone(withState) {\n return cloneSceneObject(this, withState);\n }\n /**\n * Allows external code to register code that is executed on activate and deactivate. This allow you\n * to wire up scene objects that need to respond to state changes in other objects from the outside.\n **/\n addActivationHandler(handler) {\n this._activationHandlers.push(handler);\n }\n /**\n * Loop through state and call callback for each direct child scene object.\n * Checks 1 level deep properties and arrays. So a scene object hidden in a nested plain object will not be detected.\n * Return false to exit loop early.\n */\n forEachChild(callback) {\n forEachChild(this.state, callback);\n }\n /** Returns a SceneObjectRef that will resolve to this object */\n getRef() {\n if (!this._ref) {\n this._ref = new SceneObjectRef(this);\n }\n return this._ref;\n }\n toJSON() {\n return {\n type: Object.getPrototypeOf(this).constructor.name,\n isActive: this.isActive,\n state: this.state\n };\n }\n}\nfunction useSceneObjectState(model, options) {\n var _a;\n const [_, setState] = useState(model.state);\n const stateAtFirstRender = model.state;\n const shouldActivateOrKeepAlive = (_a = options == null ? void 0 : options.shouldActivateOrKeepAlive) != null ? _a : false;\n useEffect(() => {\n let unactivate;\n if (shouldActivateOrKeepAlive) {\n unactivate = model.activate();\n }\n const s = model.subscribeToState((state) => {\n setState(state);\n });\n if (model.state !== stateAtFirstRender) {\n setState(model.state);\n }\n return () => {\n s.unsubscribe();\n if (unactivate) {\n unactivate();\n }\n };\n }, [model, shouldActivateOrKeepAlive]);\n return model.state;\n}\nfunction forEachChild(state, callback) {\n for (const propValue of Object.values(state)) {\n if (propValue instanceof SceneObjectBase) {\n const result = callback(propValue);\n if (result === false) {\n break;\n }\n }\n if (Array.isArray(propValue)) {\n let exitEarly = false;\n for (const child of propValue) {\n if (child instanceof SceneObjectBase) {\n const result = callback(child);\n if (result === false) {\n exitEarly = true;\n break;\n }\n }\n }\n if (exitEarly) {\n break;\n }\n }\n }\n}\n\nexport { SceneObjectBase, useSceneObjectState };\n//# sourceMappingURL=SceneObjectBase.js.map\n","import { SceneObjectBase } from '../SceneObjectBase.js';\nimport { SceneObjectRef } from '../SceneObjectRef.js';\nimport { cloneDeep } from 'lodash';\n\nfunction cloneSceneObject(sceneObject, withState) {\n const clonedState = cloneSceneObjectState(sceneObject.state, withState);\n return new sceneObject.constructor(clonedState);\n}\nfunction cloneSceneObjectState(sceneState, withState) {\n const clonedState = { ...sceneState };\n Object.assign(clonedState, withState);\n for (const key in clonedState) {\n if (withState && withState[key] !== void 0) {\n continue;\n }\n const propValue = clonedState[key];\n if (propValue instanceof SceneObjectRef) {\n console.warn(\"Cloning object with SceneObjectRef\");\n continue;\n }\n if (propValue instanceof SceneObjectBase) {\n clonedState[key] = propValue.clone();\n } else if (Array.isArray(propValue)) {\n const newArray = [];\n for (const child of propValue) {\n if (child instanceof SceneObjectBase) {\n newArray.push(child.clone());\n } else if (typeof child === \"object\") {\n newArray.push(cloneDeep(child));\n } else {\n newArray.push(child);\n }\n }\n clonedState[key] = newArray;\n } else if (typeof propValue === \"object\") {\n clonedState[key] = cloneDeep(propValue);\n } else {\n clonedState[key] = propValue;\n }\n }\n return clonedState;\n}\n\nexport { cloneSceneObject, cloneSceneObjectState };\n//# sourceMappingURL=cloneSceneObject.js.map\n","import { DataSourceApi, PluginType } from '@grafana/data';\n\nclass RuntimeDataSource extends DataSourceApi {\n constructor(pluginId, uid) {\n super({\n name: \"RuntimeDataSource-\" + pluginId,\n uid,\n type: pluginId,\n id: 1,\n readOnly: true,\n jsonData: {},\n access: \"direct\",\n meta: {\n id: pluginId,\n name: \"RuntimeDataSource-\" + pluginId,\n type: PluginType.datasource,\n info: {\n author: {\n name: \"\"\n },\n description: \"\",\n links: [],\n logos: {\n large: \"\",\n small: \"\"\n },\n screenshots: [],\n updated: \"\",\n version: \"\"\n },\n module: \"\",\n baseUrl: \"\"\n }\n });\n }\n testDatasource() {\n return Promise.resolve({});\n }\n}\nconst runtimeDataSources = /* @__PURE__ */ new Map();\nfunction registerRuntimeDataSource({ dataSource }) {\n if (runtimeDataSources.has(dataSource.uid)) {\n throw new Error(`A runtime data source with uid ${dataSource.uid} has already been registered`);\n }\n runtimeDataSources.set(dataSource.uid, dataSource);\n}\n\nexport { RuntimeDataSource, registerRuntimeDataSource, runtimeDataSources };\n//# sourceMappingURL=RuntimeDataSource.js.map\n","function lookupVariable(name, sceneObject) {\n const variables = sceneObject.state.$variables;\n if (!variables) {\n if (sceneObject.parent) {\n return lookupVariable(name, sceneObject.parent);\n } else {\n return null;\n }\n }\n const found = variables.getByName(name);\n if (found) {\n return found;\n } else if (sceneObject.parent) {\n return lookupVariable(name, sceneObject.parent);\n }\n return null;\n}\n\nexport { lookupVariable };\n//# sourceMappingURL=lookupVariable.js.map\n","function writeSceneLog(logger, message, ...rest) {\n let loggingEnabled = false;\n if (typeof window !== \"undefined\") {\n loggingEnabled = localStorage.getItem(\"grafana.debug.scenes\") === \"true\";\n }\n if (loggingEnabled) {\n console.log(`${logger}: `, message, ...rest);\n }\n}\n\nexport { writeSceneLog };\n//# sourceMappingURL=writeSceneLog.js.map\n","import { SceneObjectBase } from '../core/SceneObjectBase.js';\nimport { writeSceneLog } from '../utils/writeSceneLog.js';\n\nvar __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), member.set(obj, value), value);\nvar _running, _tryCompleteProfileFrameId;\nfunction isQueryController(s) {\n return \"isQueryController\" in s;\n}\nclass SceneQueryController extends SceneObjectBase {\n constructor(state = {}, profiler) {\n super({ ...state, isRunning: false });\n this.profiler = profiler;\n this.isQueryController = true;\n __privateAdd(this, _running, /* @__PURE__ */ new Set());\n __privateAdd(this, _tryCompleteProfileFrameId, null);\n this.runningQueriesCount = () => {\n return __privateGet(this, _running).size;\n };\n if (profiler) {\n this.profiler = profiler;\n profiler.setQueryController(this);\n }\n this.addActivationHandler(() => {\n var _a;\n (_a = this.profiler) == null ? void 0 : _a.setQueryController(this);\n return () => __privateGet(this, _running).clear();\n });\n }\n startProfile(name) {\n var _a;\n if (!this.state.enableProfiling) {\n return;\n }\n (_a = this.profiler) == null ? void 0 : _a.startProfile(name);\n }\n cancelProfile() {\n var _a;\n (_a = this.profiler) == null ? void 0 : _a.cancelProfile();\n }\n queryStarted(entry) {\n __privateGet(this, _running).add(entry);\n this.changeRunningQueryCount(1, entry);\n if (!this.state.isRunning) {\n this.setState({ isRunning: true });\n }\n }\n queryCompleted(entry) {\n if (!__privateGet(this, _running).has(entry)) {\n return;\n }\n __privateGet(this, _running).delete(entry);\n this.changeRunningQueryCount(-1);\n if (__privateGet(this, _running).size === 0) {\n this.setState({ isRunning: false });\n }\n }\n changeRunningQueryCount(dir, entry) {\n var _a, _b, _c, _d;\n window.__grafanaRunningQueryCount = ((_a = window.__grafanaRunningQueryCount) != null ? _a : 0) + dir;\n if (dir === 1 && this.state.enableProfiling) {\n if (entry) {\n (_b = this.profiler) == null ? void 0 : _b.addCrumb(`${entry.type}`);\n }\n if ((_c = this.profiler) == null ? void 0 : _c.isTailRecording()) {\n writeSceneLog(\"SceneQueryController\", \"New query started, cancelling tail recording\");\n (_d = this.profiler) == null ? void 0 : _d.cancelTailRecording();\n }\n }\n if (this.state.enableProfiling) {\n if (__privateGet(this, _tryCompleteProfileFrameId)) {\n cancelAnimationFrame(__privateGet(this, _tryCompleteProfileFrameId));\n }\n __privateSet(this, _tryCompleteProfileFrameId, requestAnimationFrame(() => {\n var _a2;\n (_a2 = this.profiler) == null ? void 0 : _a2.tryCompletingProfile();\n }));\n }\n }\n cancelAll() {\n var _a;\n for (const entry of __privateGet(this, _running).values()) {\n (_a = entry.cancel) == null ? void 0 : _a.call(entry);\n }\n }\n}\n_running = new WeakMap();\n_tryCompleteProfileFrameId = new WeakMap();\n\nexport { SceneQueryController, isQueryController };\n//# sourceMappingURL=SceneQueryController.js.map\n","import { isQueryController } from '../../behaviors/SceneQueryController.js';\n\nfunction getQueryController(sceneObject) {\n let parent = sceneObject;\n while (parent) {\n if (parent.state.$behaviors) {\n for (const behavior of parent.state.$behaviors) {\n if (isQueryController(behavior)) {\n return behavior;\n }\n }\n }\n parent = parent.parent;\n }\n return void 0;\n}\n\nexport { getQueryController };\n//# sourceMappingURL=getQueryController.js.map\n","import { TableCellDisplayMode } from '../common/common.gen.mjs';\nexport { AxisColorMode, AxisPlacement, BarAlignment, BarGaugeDisplayMode, BarGaugeNamePlacement, BarGaugeSizing, BarGaugeValueMode, BigValueColorMode, BigValueGraphMode, BigValueJustifyMode, BigValueTextMode, ComparisonOperation, DataTopic, FrameGeometrySourceMode, GraphDrawStyle, GraphGradientMode, GraphThresholdsStyleMode, GraphTransform, HeatmapCalculationMode, HeatmapCellLayout, LegendDisplayMode, LineInterpolation, LogsDedupStrategy, LogsSortOrder, PercentChangeColorMode, ResourceDimensionMode, ScalarDimensionMode, ScaleDimensionMode, ScaleDirection, ScaleDistribution, ScaleOrientation, SortOrder, StackingMode, TableCellBackgroundDisplayMode, TableCellHeight, TextDimensionMode, TooltipDisplayMode, VariableFormatID, VisibilityMode, VizOrientation, defaultLineStyle, defaultOptionsWithTimezones, defaultReduceDataOptions, defaultTableFooterOptions, defaultTimeZone, defaultVizLegendOptions } from '../common/common.gen.mjs';\n\nconst defaultTableFieldOptions = {\n align: \"auto\",\n inspect: false,\n wrapHeaderText: false,\n cellOptions: {\n type: TableCellDisplayMode.Auto\n }\n};\nvar LoadingState = /* @__PURE__ */ ((LoadingState2) => {\n LoadingState2[\"NotStarted\"] = \"NotStarted\";\n LoadingState2[\"Loading\"] = \"Loading\";\n LoadingState2[\"Streaming\"] = \"Streaming\";\n LoadingState2[\"Done\"] = \"Done\";\n LoadingState2[\"Error\"] = \"Error\";\n return LoadingState2;\n})(LoadingState || {});\n\nexport { LoadingState, TableCellDisplayMode, defaultTableFieldOptions };\n//# sourceMappingURL=common.types.mjs.map\n","import { getDefaultTimeRange } from '@grafana/data';\nimport { LoadingState } from '@grafana/schema';\nimport { of } from 'rxjs';\nimport { SceneObjectBase } from './SceneObjectBase.js';\n\nclass SceneDataNode extends SceneObjectBase {\n constructor(state) {\n super({\n data: emptyPanelData,\n ...state\n });\n }\n getResultsStream() {\n const result = {\n origin: this,\n data: this.state.data\n };\n return of(result);\n }\n}\nconst emptyPanelData = {\n state: LoadingState.Done,\n series: [],\n timeRange: getDefaultTimeRange()\n};\n\nexport { SceneDataNode, emptyPanelData };\n//# sourceMappingURL=SceneDataNode.js.map\n","class SceneObjectUrlSyncConfig {\n constructor(_sceneObject, _options) {\n this._sceneObject = _sceneObject;\n this._nextChangeShouldAddHistoryStep = false;\n this._keys = _options.keys;\n }\n getKeys() {\n if (typeof this._keys === \"function\") {\n return this._keys();\n }\n return this._keys;\n }\n getUrlState() {\n return this._sceneObject.getUrlState();\n }\n updateFromUrl(values) {\n this._sceneObject.updateFromUrl(values);\n }\n shouldCreateHistoryStep(values) {\n return this._nextChangeShouldAddHistoryStep;\n }\n performBrowserHistoryAction(callback) {\n this._nextChangeShouldAddHistoryStep = true;\n callback();\n this._nextChangeShouldAddHistoryStep = false;\n }\n}\n\nexport { SceneObjectUrlSyncConfig };\n//# sourceMappingURL=SceneObjectUrlSyncConfig.js.map\n","function getClosest(sceneObject, extract) {\n let curSceneObject = sceneObject;\n let extracted = void 0;\n while (curSceneObject && !extracted) {\n extracted = extract(curSceneObject);\n curSceneObject = curSceneObject.parent;\n }\n return extracted;\n}\n\nexport { getClosest };\n//# sourceMappingURL=utils.js.map\n","import { toUtc } from '@grafana/data';\n\nconst INTERVAL_STRING_REGEX = /^\\d+[yYmMsSwWhHdD]$/;\nfunction parseUrlParam(value) {\n if (typeof value !== \"string\") {\n return null;\n }\n if (value.indexOf(\"now\") !== -1) {\n return value;\n }\n if (INTERVAL_STRING_REGEX.test(value)) {\n return value;\n }\n if (value.length === 8) {\n const utcValue = toUtc(value, \"YYYYMMDD\");\n if (utcValue.isValid()) {\n return utcValue.toISOString();\n }\n } else if (value.length === 15) {\n const utcValue = toUtc(value, \"YYYYMMDDTHHmmss\");\n if (utcValue.isValid()) {\n return utcValue.toISOString();\n }\n } else if (value.length === 19) {\n const utcValue = toUtc(value, \"YYYY-MM-DD HH:mm:ss\");\n if (utcValue.isValid()) {\n return utcValue.toISOString();\n }\n } else if (value.length === 24) {\n const utcValue = toUtc(value);\n return utcValue.toISOString();\n }\n const epoch = parseInt(value, 10);\n if (!isNaN(epoch)) {\n return toUtc(epoch).toISOString();\n }\n return null;\n}\n\nexport { parseUrlParam };\n//# sourceMappingURL=parseUrlParam.js.map\n","import { setWeekStart, dateMath } from '@grafana/data';\n\nfunction evaluateTimeRange(from, to, timeZone, fiscalYearStartMonth, delay, weekStart) {\n const hasDelay = delay && to === \"now\";\n const now = Date.now();\n if (weekStart) {\n setWeekStartIfDifferent(weekStart);\n }\n const parseOrToDateTime = (val, options) => {\n if (dateMath.toDateTime) {\n return dateMath.toDateTime(val, options);\n } else {\n return dateMath.parse(val, options.roundUp, options.timezone, options.fiscalYearStartMonth);\n }\n };\n return {\n to: parseOrToDateTime(hasDelay ? \"now-\" + delay : to, {\n roundUp: true,\n timezone: timeZone,\n fiscalYearStartMonth,\n now\n }),\n from: parseOrToDateTime(from, {\n roundUp: false,\n timezone: timeZone,\n fiscalYearStartMonth,\n now\n }),\n raw: {\n from,\n to\n }\n };\n}\nlet prevWeekStart;\nfunction setWeekStartIfDifferent(weekStart) {\n if (weekStart !== prevWeekStart) {\n prevWeekStart = weekStart;\n setWeekStart(weekStart);\n }\n}\n\nexport { evaluateTimeRange };\n//# sourceMappingURL=evaluateTimeRange.js.map\n","import { isDateTime, dateMath, dateTimeParse } from '@grafana/data';\n\nfunction isValid(value, roundUp, timeZone) {\n if (isDateTime(value)) {\n return value.isValid();\n }\n if (dateMath.isMathString(value)) {\n return dateMath.isValid(value);\n }\n const parsed = dateTimeParse(value, { roundUp, timeZone });\n return parsed.isValid();\n}\n\nexport { isValid };\n//# sourceMappingURL=date.js.map\n","import { writeSceneLog } from '../utils/writeSceneLog.js';\n\nvar __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), member.set(obj, value), value);\nvar _profileInProgress, _profileStartTs, _trailAnimationFrameId, _recordedTrailingSpans, _visibilityChangeHandler;\nconst POST_STORM_WINDOW = 2e3;\nconst SPAN_THRESHOLD = 30;\nconst TAB_INACTIVE_THRESHOLD = 1e3;\nclass SceneRenderProfiler {\n constructor(queryController) {\n this.queryController = queryController;\n __privateAdd(this, _profileInProgress, null);\n __privateAdd(this, _profileStartTs, null);\n __privateAdd(this, _trailAnimationFrameId, null);\n // Will keep measured lengths trailing frames\n __privateAdd(this, _recordedTrailingSpans, []);\n this.lastFrameTime = 0;\n __privateAdd(this, _visibilityChangeHandler, null);\n this.measureTrailingFrames = (measurementStartTs, lastFrameTime, profileStartTs) => {\n var _a;\n const currentFrameTime = performance.now();\n const frameLength = currentFrameTime - lastFrameTime;\n if (frameLength > TAB_INACTIVE_THRESHOLD) {\n writeSceneLog(\"SceneRenderProfiler\", \"Tab was inactive, cancelling profile measurement\");\n this.cancelProfile();\n return;\n }\n __privateGet(this, _recordedTrailingSpans).push(frameLength);\n if (currentFrameTime - measurementStartTs < POST_STORM_WINDOW) {\n if (__privateGet(this, _profileInProgress)) {\n __privateSet(this, _trailAnimationFrameId, requestAnimationFrame(\n () => this.measureTrailingFrames(measurementStartTs, currentFrameTime, profileStartTs)\n ));\n }\n } else {\n const slowFrames = processRecordedSpans(__privateGet(this, _recordedTrailingSpans));\n const slowFramesTime = slowFrames.reduce((acc, val) => acc + val, 0);\n writeSceneLog(\n this.constructor.name,\n \"Profile tail recorded, slow frames duration:\",\n slowFramesTime,\n slowFrames,\n __privateGet(this, _profileInProgress)\n );\n __privateSet(this, _recordedTrailingSpans, []);\n const profileDuration = measurementStartTs - profileStartTs;\n writeSceneLog(\n this.constructor.name,\n \"Stoped recording, total measured time (network included):\",\n profileDuration + slowFramesTime\n );\n __privateSet(this, _trailAnimationFrameId, null);\n const profileEndTs = profileStartTs + profileDuration + slowFramesTime;\n if (!__privateGet(this, _profileInProgress)) {\n return;\n }\n performance.measure(`DashboardInteraction ${__privateGet(this, _profileInProgress).origin}`, {\n start: profileStartTs,\n end: profileEndTs\n });\n const networkDuration = captureNetwork(profileStartTs, profileEndTs);\n if (((_a = this.queryController) == null ? void 0 : _a.state.onProfileComplete) && __privateGet(this, _profileInProgress)) {\n this.queryController.state.onProfileComplete({\n origin: __privateGet(this, _profileInProgress).origin,\n crumbs: __privateGet(this, _profileInProgress).crumbs,\n duration: profileDuration + slowFramesTime,\n networkDuration,\n startTs: profileStartTs,\n endTs: profileEndTs,\n // @ts-ignore\n jsHeapSizeLimit: performance.memory ? performance.memory.jsHeapSizeLimit : 0,\n // @ts-ignore\n usedJSHeapSize: performance.memory ? performance.memory.usedJSHeapSize : 0,\n // @ts-ignore\n totalJSHeapSize: performance.memory ? performance.memory.totalJSHeapSize : 0\n });\n __privateSet(this, _profileInProgress, null);\n __privateSet(this, _trailAnimationFrameId, null);\n }\n if (window.__runs) {\n window.__runs += `${Date.now()}, ${profileDuration + slowFramesTime}\n`;\n } else {\n window.__runs = `${Date.now()}, ${profileDuration + slowFramesTime}\n`;\n }\n }\n };\n this.setupVisibilityChangeHandler();\n }\n setQueryController(queryController) {\n this.queryController = queryController;\n }\n setupVisibilityChangeHandler() {\n if (__privateGet(this, _visibilityChangeHandler)) {\n return;\n }\n __privateSet(this, _visibilityChangeHandler, () => {\n if (document.hidden && __privateGet(this, _profileInProgress)) {\n writeSceneLog(\"SceneRenderProfiler\", \"Tab became inactive, cancelling profile\");\n this.cancelProfile();\n }\n });\n if (typeof document !== \"undefined\") {\n document.addEventListener(\"visibilitychange\", __privateGet(this, _visibilityChangeHandler));\n }\n }\n cleanup() {\n if (__privateGet(this, _visibilityChangeHandler) && typeof document !== \"undefined\") {\n document.removeEventListener(\"visibilitychange\", __privateGet(this, _visibilityChangeHandler));\n __privateSet(this, _visibilityChangeHandler, null);\n }\n this.cancelProfile();\n }\n startProfile(name) {\n if (document.hidden) {\n writeSceneLog(\"SceneRenderProfiler\", \"Tab is inactive, skipping profile\", name);\n return;\n }\n if (__privateGet(this, _profileInProgress)) {\n if (__privateGet(this, _trailAnimationFrameId)) {\n this.cancelProfile();\n this._startNewProfile(name, true);\n } else {\n this.addCrumb(name);\n }\n } else {\n this._startNewProfile(name);\n }\n }\n /**\n * Starts a new profile for performance measurement.\n *\n * @param name - The origin/trigger of the profile (e.g., 'time_range_change', 'variable_value_changed')\n * @param force - Whether this is a \"forced\" profile (true) or \"clean\" profile (false)\n * - \"forced\": Started by canceling an existing profile that was recording trailing frames\n * This happens when a new user interaction occurs before the previous one\n * finished measuring its performance impact\n * - \"clean\": Started when no profile is currently active\n */\n _startNewProfile(name, force = false) {\n __privateSet(this, _profileInProgress, { origin: name, crumbs: [] });\n __privateSet(this, _profileStartTs, performance.now());\n writeSceneLog(\n \"SceneRenderProfiler\",\n `Profile started[${force ? \"forced\" : \"clean\"}]`,\n __privateGet(this, _profileInProgress),\n __privateGet(this, _profileStartTs)\n );\n }\n recordProfileTail(measurementStartTime, profileStartTs) {\n __privateSet(this, _trailAnimationFrameId, requestAnimationFrame(\n () => this.measureTrailingFrames(measurementStartTime, measurementStartTime, profileStartTs)\n ));\n }\n tryCompletingProfile() {\n var _a;\n writeSceneLog(\"SceneRenderProfiler\", \"Trying to complete profile\", __privateGet(this, _profileInProgress));\n if (((_a = this.queryController) == null ? void 0 : _a.runningQueriesCount()) === 0 && __privateGet(this, _profileInProgress)) {\n writeSceneLog(\"SceneRenderProfiler\", \"All queries completed, stopping profile\");\n this.recordProfileTail(performance.now(), __privateGet(this, _profileStartTs));\n }\n }\n isTailRecording() {\n return Boolean(__privateGet(this, _trailAnimationFrameId));\n }\n cancelTailRecording() {\n if (__privateGet(this, _trailAnimationFrameId)) {\n cancelAnimationFrame(__privateGet(this, _trailAnimationFrameId));\n __privateSet(this, _trailAnimationFrameId, null);\n writeSceneLog(\"SceneRenderProfiler\", \"Cancelled recording frames, new profile started\");\n }\n }\n // cancel profile\n cancelProfile() {\n if (__privateGet(this, _profileInProgress)) {\n writeSceneLog(\"SceneRenderProfiler\", \"Cancelling profile\", __privateGet(this, _profileInProgress));\n __privateSet(this, _profileInProgress, null);\n if (__privateGet(this, _trailAnimationFrameId)) {\n cancelAnimationFrame(__privateGet(this, _trailAnimationFrameId));\n __privateSet(this, _trailAnimationFrameId, null);\n }\n __privateSet(this, _recordedTrailingSpans, []);\n }\n }\n addCrumb(crumb) {\n if (__privateGet(this, _profileInProgress)) {\n writeSceneLog(\"SceneRenderProfiler\", \"Adding crumb:\", crumb);\n __privateGet(this, _profileInProgress).crumbs.push(crumb);\n }\n }\n}\n_profileInProgress = new WeakMap();\n_profileStartTs = new WeakMap();\n_trailAnimationFrameId = new WeakMap();\n_recordedTrailingSpans = new WeakMap();\n_visibilityChangeHandler = new WeakMap();\nfunction processRecordedSpans(spans) {\n for (let i = spans.length - 1; i >= 0; i--) {\n if (spans[i] > SPAN_THRESHOLD) {\n return spans.slice(0, i + 1);\n }\n }\n return [spans[0]];\n}\nfunction captureNetwork(startTs, endTs) {\n const entries = performance.getEntriesByType(\"resource\");\n performance.clearResourceTimings();\n const networkEntries = entries.filter(\n (entry) => entry.startTime >= startTs && entry.startTime <= endTs && entry.responseEnd >= startTs && entry.responseEnd <= endTs\n );\n for (const entry of networkEntries) {\n performance.measure(\"Network entry \" + entry.name, {\n start: entry.startTime,\n end: entry.responseEnd\n });\n }\n return calculateNetworkTime(networkEntries);\n}\nfunction calculateNetworkTime(requests) {\n if (requests.length === 0) {\n return 0;\n }\n requests.sort((a, b) => a.startTime - b.startTime);\n let totalNetworkTime = 0;\n let currentStart = requests[0].startTime;\n let currentEnd = requests[0].responseEnd;\n for (let i = 1; i < requests.length; i++) {\n if (requests[i].startTime <= currentEnd) {\n currentEnd = Math.max(currentEnd, requests[i].responseEnd);\n } else {\n totalNetworkTime += currentEnd - currentStart;\n currentStart = requests[i].startTime;\n currentEnd = requests[i].responseEnd;\n }\n }\n totalNetworkTime += currentEnd - currentStart;\n return totalNetworkTime;\n}\nconst REFRESH_INTERACTION = \"refresh\";\nconst TIME_RANGE_CHANGE_INTERACTION = \"time_range_change\";\nconst FILTER_REMOVED_INTERACTION = \"filter_removed\";\nconst FILTER_CHANGED_INTERACTION = \"filter_changed\";\nconst FILTER_RESTORED_INTERACTION = \"filter_restored\";\nconst VARIABLE_VALUE_CHANGED_INTERACTION = \"variable_value_changed\";\nconst SCOPES_CHANGED_INTERACTION = \"scopes_changed\";\n\nexport { FILTER_CHANGED_INTERACTION, FILTER_REMOVED_INTERACTION, FILTER_RESTORED_INTERACTION, REFRESH_INTERACTION, SCOPES_CHANGED_INTERACTION, SceneRenderProfiler, TIME_RANGE_CHANGE_INTERACTION, VARIABLE_VALUE_CHANGED_INTERACTION, calculateNetworkTime, captureNetwork, processRecordedSpans };\n//# sourceMappingURL=SceneRenderProfiler.js.map\n","import { getTimeZone, rangeUtil, setWeekStart, getZone, toUtc } from '@grafana/data';\nimport { defaultTimeZone } from '@grafana/schema';\nimport { SceneObjectUrlSyncConfig } from '../services/SceneObjectUrlSyncConfig.js';\nimport { SceneObjectBase } from './SceneObjectBase.js';\nimport { getClosest } from './sceneGraph/utils.js';\nimport { parseUrlParam } from '../utils/parseUrlParam.js';\nimport { evaluateTimeRange } from '../utils/evaluateTimeRange.js';\nimport { RefreshEvent, config, locationService } from '@grafana/runtime';\nimport { isValid } from '../utils/date.js';\nimport { getQueryController } from './sceneGraph/getQueryController.js';\nimport { writeSceneLog } from '../utils/writeSceneLog.js';\nimport { isEmpty } from 'lodash';\nimport { TIME_RANGE_CHANGE_INTERACTION } from '../behaviors/SceneRenderProfiler.js';\n\nclass SceneTimeRange extends SceneObjectBase {\n constructor(state = {}) {\n var _a;\n const from = state.from && isValid(state.from) ? state.from : \"now-6h\";\n const to = state.to && isValid(state.to) ? state.to : \"now\";\n const timeZone = getValidTimeZone(state.timeZone);\n const value = evaluateTimeRange(\n from,\n to,\n timeZone || getTimeZone(),\n state.fiscalYearStartMonth,\n state.UNSAFE_nowDelay,\n state.weekStart\n );\n const refreshOnActivate = (_a = state.refreshOnActivate) != null ? _a : { percent: 10 };\n super({ from, to, timeZone, value, refreshOnActivate, ...state });\n this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: [\"from\", \"to\", \"timezone\", \"time\", \"time.window\"] });\n this.onTimeRangeChange = (timeRange) => {\n const update = {};\n if (typeof timeRange.raw.from === \"string\") {\n update.from = timeRange.raw.from;\n } else {\n update.from = timeRange.raw.from.toISOString();\n }\n if (typeof timeRange.raw.to === \"string\") {\n update.to = timeRange.raw.to;\n } else {\n update.to = timeRange.raw.to.toISOString();\n }\n update.value = evaluateTimeRange(\n update.from,\n update.to,\n this.getTimeZone(),\n this.state.fiscalYearStartMonth,\n this.state.UNSAFE_nowDelay,\n this.state.weekStart\n );\n if (update.from !== this.state.from || update.to !== this.state.to) {\n const queryController = getQueryController(this);\n queryController == null ? void 0 : queryController.startProfile(TIME_RANGE_CHANGE_INTERACTION);\n this._urlSync.performBrowserHistoryAction(() => {\n this.setState(update);\n });\n }\n };\n this.onTimeZoneChange = (timeZone) => {\n this._urlSync.performBrowserHistoryAction(() => {\n var _a;\n const validTimeZone = (_a = getValidTimeZone(timeZone)) != null ? _a : defaultTimeZone;\n const updatedValue = evaluateTimeRange(\n this.state.from,\n this.state.to,\n validTimeZone,\n this.state.fiscalYearStartMonth,\n this.state.UNSAFE_nowDelay,\n this.state.weekStart\n );\n this.setState({ timeZone: validTimeZone, value: updatedValue });\n });\n };\n this.onRefresh = () => {\n this.refreshRange(0);\n this.publishEvent(new RefreshEvent(), true);\n };\n this.addActivationHandler(this._onActivate.bind(this));\n }\n _onActivate() {\n if (!this.state.timeZone) {\n const timeZoneSource = this.getTimeZoneSource();\n if (timeZoneSource !== this) {\n this._subs.add(\n timeZoneSource.subscribeToState((n, p) => {\n if (n.timeZone !== void 0 && n.timeZone !== p.timeZone) {\n this.refreshRange(0);\n }\n })\n );\n }\n }\n if (rangeUtil.isRelativeTimeRange(this.state.value.raw)) {\n this.refreshIfStale();\n }\n return () => {\n if (this.state.weekStart) {\n setWeekStart(config.bootData.user.weekStart);\n }\n };\n }\n refreshIfStale() {\n var _a, _b, _c, _d;\n let ms;\n if (((_b = (_a = this.state) == null ? void 0 : _a.refreshOnActivate) == null ? void 0 : _b.percent) !== void 0) {\n ms = this.calculatePercentOfInterval(this.state.refreshOnActivate.percent);\n }\n if (((_d = (_c = this.state) == null ? void 0 : _c.refreshOnActivate) == null ? void 0 : _d.afterMs) !== void 0) {\n ms = Math.min(this.state.refreshOnActivate.afterMs, ms != null ? ms : Infinity);\n }\n if (ms !== void 0) {\n this.refreshRange(ms);\n }\n }\n /**\n * Will traverse up the scene graph to find the closest SceneTimeRangeLike with time zone set\n */\n getTimeZoneSource() {\n if (!this.parent || !this.parent.parent) {\n return this;\n }\n const source = getClosest(this.parent.parent, (o) => {\n if (o.state.$timeRange && o.state.$timeRange.state.timeZone) {\n return o.state.$timeRange;\n }\n return void 0;\n });\n if (!source) {\n return this;\n }\n return source;\n }\n /**\n * Refreshes time range if it is older than the invalidation interval\n * @param refreshAfterMs invalidation interval (milliseconds)\n * @private\n */\n refreshRange(refreshAfterMs) {\n var _a;\n const value = evaluateTimeRange(\n this.state.from,\n this.state.to,\n (_a = this.state.timeZone) != null ? _a : getTimeZone(),\n this.state.fiscalYearStartMonth,\n this.state.UNSAFE_nowDelay,\n this.state.weekStart\n );\n const diff = value.to.diff(this.state.value.to, \"milliseconds\");\n if (diff >= refreshAfterMs) {\n this.setState({ value });\n }\n }\n calculatePercentOfInterval(percent) {\n const intervalMs = this.state.value.to.diff(this.state.value.from, \"milliseconds\");\n return Math.ceil(intervalMs / 100 * percent);\n }\n getTimeZone() {\n if (this.state.timeZone && getValidTimeZone(this.state.timeZone)) {\n return this.state.timeZone;\n }\n const timeZoneSource = this.getTimeZoneSource();\n if (timeZoneSource !== this && getValidTimeZone(timeZoneSource.state.timeZone)) {\n return timeZoneSource.state.timeZone;\n }\n return getTimeZone();\n }\n getUrlState() {\n const params = locationService.getSearchObject();\n const urlValues = { from: this.state.from, to: this.state.to, timezone: this.getTimeZone() };\n if (params.time && params[\"time.window\"]) {\n urlValues.time = null;\n urlValues[\"time.window\"] = null;\n }\n return urlValues;\n }\n updateFromUrl(values) {\n var _a, _b, _c;\n const update = {};\n let from = parseUrlParam(values.from);\n let to = parseUrlParam(values.to);\n if (values.time && values[\"time.window\"]) {\n const time = Array.isArray(values.time) ? values.time[0] : values.time;\n const timeWindow = Array.isArray(values[\"time.window\"]) ? values[\"time.window\"][0] : values[\"time.window\"];\n const timeRange = getTimeWindow(time, timeWindow);\n if (timeRange.from && isValid(timeRange.from)) {\n from = timeRange.from;\n }\n if (timeRange.to && isValid(timeRange.to)) {\n to = timeRange.to;\n }\n }\n if (from && isValid(from)) {\n update.from = from;\n }\n if (to && isValid(to)) {\n update.to = to;\n }\n if (typeof values.timezone === \"string\") {\n update.timeZone = values.timezone !== \"\" ? values.timezone : void 0;\n }\n if (Object.keys(update).length === 0) {\n return;\n }\n update.value = evaluateTimeRange(\n (_a = update.from) != null ? _a : this.state.from,\n (_b = update.to) != null ? _b : this.state.to,\n (_c = update.timeZone) != null ? _c : this.getTimeZone(),\n this.state.fiscalYearStartMonth,\n this.state.UNSAFE_nowDelay,\n this.state.weekStart\n );\n return this.setState(update);\n }\n}\nfunction getTimeWindow(time, timeWindow) {\n const valueTime = isNaN(Date.parse(time)) ? parseInt(time, 10) : Date.parse(time);\n let timeWindowMs;\n if (timeWindow.match(/^\\d+$/) && parseInt(timeWindow, 10)) {\n timeWindowMs = parseInt(timeWindow, 10);\n } else {\n timeWindowMs = rangeUtil.intervalToMs(timeWindow);\n }\n return {\n from: toUtc(valueTime - timeWindowMs / 2).toISOString(),\n to: toUtc(valueTime + timeWindowMs / 2).toISOString()\n };\n}\nfunction getValidTimeZone(timeZone) {\n if (timeZone === void 0) {\n return void 0;\n }\n if (isEmpty(timeZone)) {\n return config.bootData.user.timezone;\n }\n if (timeZone === defaultTimeZone) {\n return timeZone;\n }\n if (getZone(timeZone)) {\n return timeZone;\n }\n writeSceneLog(\"SceneTimeRange\", `Invalid timeZone \"${timeZone}\" provided.`);\n return;\n}\n\nexport { SceneTimeRange };\n//# sourceMappingURL=SceneTimeRange.js.map\n","import { SceneDataNode } from '../../core/SceneDataNode.js';\nimport { SceneObjectBase } from '../../core/SceneObjectBase.js';\nimport { SceneTimeRange } from '../../core/SceneTimeRange.js';\n\nconst EmptyDataNode = new SceneDataNode();\nconst DefaultTimeRange = new SceneTimeRange();\nclass EmptyVariableSetImpl extends SceneObjectBase {\n constructor() {\n super({ variables: [] });\n }\n getByName(name) {\n return void 0;\n }\n isVariableLoadingOrWaitingToUpdate(variable) {\n return false;\n }\n}\nconst EmptyVariableSet = new EmptyVariableSetImpl();\n\nexport { DefaultTimeRange, EmptyDataNode, EmptyVariableSet, EmptyVariableSetImpl };\n//# sourceMappingURL=defaults.js.map\n","import { DefaultTimeRange } from '../../variables/interpolation/defaults.js';\nimport { getClosest } from './utils.js';\n\nfunction getTimeRange(sceneObject) {\n var _a;\n return (_a = getClosest(sceneObject, (s) => s.state.$timeRange)) != null ? _a : DefaultTimeRange;\n}\n\nexport { getTimeRange };\n//# sourceMappingURL=getTimeRange.js.map\n","import { BusEventWithPayload } from '@grafana/data';\n\nclass SceneVariableValueChangedEvent extends BusEventWithPayload {\n}\nSceneVariableValueChangedEvent.type = \"scene-variable-changed-value\";\nfunction isCustomVariableValue(value) {\n return typeof value === \"object\" && \"formatter\" in value;\n}\n\nexport { SceneVariableValueChangedEvent, isCustomVariableValue };\n//# sourceMappingURL=types.js.map\n","import { property } from 'lodash';\n\nlet fieldAccessorCache = {};\nfunction getFieldAccessor(fieldPath) {\n const accessor = fieldAccessorCache[fieldPath];\n if (accessor) {\n return accessor;\n }\n return fieldAccessorCache[fieldPath] = property(fieldPath);\n}\n\nexport { getFieldAccessor };\n//# sourceMappingURL=fieldAccessorCache.js.map\n","import { getFieldAccessor } from './fieldAccessorCache.js';\n\nclass ScopedVarsVariable {\n constructor(name, value) {\n this.state = { name, value, type: \"scopedvar\" };\n }\n getValue(fieldPath) {\n let { value } = this.state;\n let realValue = value.value;\n if (fieldPath) {\n realValue = getFieldAccessor(fieldPath)(value.value);\n } else {\n realValue = value.value;\n }\n if (realValue === \"string\" || realValue === \"number\" || realValue === \"boolean\") {\n return realValue;\n }\n return String(realValue);\n }\n getValueText() {\n const { value } = this.state;\n if (value.text != null) {\n return String(value.text);\n }\n return String(value);\n }\n}\nlet scopedVarsVariable;\nfunction getSceneVariableForScopedVar(name, value) {\n if (!scopedVarsVariable) {\n scopedVarsVariable = new ScopedVarsVariable(name, value);\n } else {\n scopedVarsVariable.state.name = name;\n scopedVarsVariable.state.value = value;\n }\n return scopedVarsVariable;\n}\n\nexport { ScopedVarsVariable, getSceneVariableForScopedVar };\n//# sourceMappingURL=ScopedVarsVariable.js.map\n","import { t } from '@grafana/i18n';\nimport { map, isArray, replace } from 'lodash';\nimport { Registry, escapeRegex, textUtil, dateTime, urlUtil } from '@grafana/data';\nimport { VariableFormatID } from '@grafana/schema';\n\nconst formatRegistry = new Registry(() => {\n const formats = [\n {\n id: VariableFormatID.Lucene,\n name: \"Lucene\",\n description: \"Values are lucene escaped and multi-valued variables generate an OR expression\",\n formatter: (value) => {\n if (typeof value === \"string\") {\n return luceneEscape(value);\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return \"__empty__\";\n }\n const quotedValues = map(value, (val) => {\n return '\"' + luceneEscape(val) + '\"';\n });\n return \"(\" + quotedValues.join(\" OR \") + \")\";\n } else {\n return luceneEscape(`${value}`);\n }\n }\n },\n {\n id: VariableFormatID.Raw,\n name: \"raw\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.keep-value-as-is\",\n \"Keep value as is\"\n ),\n formatter: (value) => String(value)\n },\n {\n id: VariableFormatID.Regex,\n name: \"Regex\",\n description: \"Values are regex escaped and multi-valued variables generate a (|) expression\",\n formatter: (value) => {\n if (typeof value === \"string\") {\n return escapeRegex(value);\n }\n if (Array.isArray(value)) {\n const escapedValues = value.map((item) => {\n if (typeof item === \"string\") {\n return escapeRegex(item);\n } else {\n return escapeRegex(String(item));\n }\n });\n if (escapedValues.length === 1) {\n return escapedValues[0];\n }\n return \"(\" + escapedValues.join(\"|\") + \")\";\n }\n return escapeRegex(`${value}`);\n }\n },\n {\n id: VariableFormatID.Pipe,\n name: \"Pipe\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.values-are-separated-by-character\",\n \"Values are separated by | character\"\n ),\n formatter: (value) => {\n if (typeof value === \"string\") {\n return value;\n }\n if (Array.isArray(value)) {\n return value.join(\"|\");\n }\n return `${value}`;\n }\n },\n {\n id: VariableFormatID.Distributed,\n name: \"Distributed\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.multiple-values-are-formatted-like-variablevalue\",\n \"Multiple values are formatted like variable=value\"\n ),\n formatter: (value, args, variable) => {\n if (typeof value === \"string\") {\n return value;\n }\n if (Array.isArray(value)) {\n value = map(value, (val, index) => {\n if (index !== 0) {\n return variable.state.name + \"=\" + val;\n } else {\n return val;\n }\n });\n return value.join(\",\");\n }\n return `${value}`;\n }\n },\n {\n id: VariableFormatID.CSV,\n name: \"Csv\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.commaseparated-values\",\n \"Comma-separated values\"\n ),\n formatter: (value) => {\n if (typeof value === \"string\") {\n return value;\n }\n if (isArray(value)) {\n return value.join(\",\");\n }\n return String(value);\n }\n },\n {\n id: VariableFormatID.HTML,\n name: \"HTML\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.html-escaping-of-values\",\n \"HTML escaping of values\"\n ),\n formatter: (value) => {\n if (typeof value === \"string\") {\n return textUtil.escapeHtml(value);\n }\n if (isArray(value)) {\n return textUtil.escapeHtml(value.join(\", \"));\n }\n return textUtil.escapeHtml(String(value));\n }\n },\n {\n id: VariableFormatID.JSON,\n name: \"JSON\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.json-stringify-value\",\n \"JSON stringify value\"\n ),\n formatter: (value) => {\n if (typeof value === \"string\") {\n return value;\n }\n return JSON.stringify(value);\n }\n },\n {\n id: VariableFormatID.PercentEncode,\n name: \"Percent encode\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.useful-for-url-escaping-values\",\n \"Useful for URL escaping values\"\n ),\n formatter: (value) => {\n if (isArray(value)) {\n return encodeURIComponentStrict(\"{\" + value.join(\",\") + \"}\");\n }\n return encodeURIComponentStrict(value);\n }\n },\n {\n id: VariableFormatID.SingleQuote,\n name: \"Single quote\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.single-quoted-values\",\n \"Single quoted values\"\n ),\n formatter: (value) => {\n const regExp = new RegExp(`'`, \"g\");\n if (isArray(value)) {\n return map(value, (v) => `'${replace(v, regExp, `\\\\'`)}'`).join(\",\");\n }\n let strVal = typeof value === \"string\" ? value : String(value);\n return `'${replace(strVal, regExp, `\\\\'`)}'`;\n }\n },\n {\n id: VariableFormatID.DoubleQuote,\n name: \"Double quote\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.double-quoted-values\",\n \"Double quoted values\"\n ),\n formatter: (value) => {\n const regExp = new RegExp('\"', \"g\");\n if (isArray(value)) {\n return map(value, (v) => `\"${replace(v, regExp, '\\\\\"')}\"`).join(\",\");\n }\n let strVal = typeof value === \"string\" ? value : String(value);\n return `\"${replace(strVal, regExp, '\\\\\"')}\"`;\n }\n },\n {\n id: VariableFormatID.SQLString,\n name: \"SQL string\",\n description: \"SQL string quoting and commas for use in IN statements and other scenarios\",\n formatter: sqlStringFormatter\n },\n {\n id: \"join\",\n // join not yet available in depended @grafana/schema version\n name: \"Join\",\n description: \"Join values with a comma\",\n formatter: (value, args) => {\n var _a;\n if (isArray(value)) {\n const separator = (_a = args[0]) != null ? _a : \",\";\n return value.join(separator);\n }\n return String(value);\n }\n },\n {\n id: VariableFormatID.Date,\n name: \"Date\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.format-date-in-different-ways\",\n \"Format date in different ways\"\n ),\n formatter: (value, args) => {\n var _a;\n let nrValue = NaN;\n if (typeof value === \"number\") {\n nrValue = value;\n } else if (typeof value === \"string\") {\n nrValue = parseInt(value, 10);\n }\n if (isNaN(nrValue)) {\n return \"NaN\";\n }\n const arg = (_a = args[0]) != null ? _a : \"iso\";\n switch (arg) {\n case \"ms\":\n return String(value);\n case \"seconds\":\n return `${Math.round(nrValue / 1e3)}`;\n case \"iso\":\n return dateTime(nrValue).toISOString();\n default:\n if ((args || []).length > 1) {\n return dateTime(nrValue).format(args.join(\":\"));\n }\n return dateTime(nrValue).format(arg);\n }\n }\n },\n {\n id: VariableFormatID.Glob,\n name: \"Glob\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.format-multivalued-variables-using-syntax-example\",\n \"Format multi-valued variables using glob syntax, example {value1,value2}\"\n ),\n formatter: (value) => {\n if (isArray(value) && value.length > 1) {\n return \"{\" + value.join(\",\") + \"}\";\n }\n return String(value);\n }\n },\n {\n id: VariableFormatID.Text,\n name: \"Text\",\n description: \"Format variables in their text representation. Example in multi-variable scenario A + B + C.\",\n formatter: (value, _args, variable) => {\n if (variable.getValueText) {\n return variable.getValueText();\n }\n return String(value);\n }\n },\n {\n id: VariableFormatID.QueryParam,\n name: \"Query parameter\",\n description: \"Format variables as URL parameters. Example in multi-variable scenario A + B + C => var-foo=A&var-foo=B&var-foo=C.\",\n formatter: (value, _args, variable) => {\n if (variable.urlSync) {\n const urlParam = variable.urlSync.getUrlState();\n return urlUtil.toUrlParams(urlParam);\n }\n if (Array.isArray(value)) {\n return value.map((v) => formatQueryParameter(variable.state.name, v)).join(\"&\");\n }\n return formatQueryParameter(variable.state.name, value);\n }\n },\n {\n id: \"customqueryparam\",\n name: \"Custom query parameter\",\n description: \"Format variables as URL parameters with custom name and value prefix. Example in multi-variable scenario A + B + C => p-foo=x-A&p-foo=x-B&p-foo=x-C.\",\n formatter: (value, args, variable) => {\n const name = encodeURIComponentStrict(args[0] || variable.state.name);\n const valuePrefix = encodeURIComponentStrict(args[1] || \"\");\n if (Array.isArray(value)) {\n return value.map((v) => customFormatQueryParameter(name, v, valuePrefix)).join(\"&\");\n }\n return customFormatQueryParameter(name, value, valuePrefix);\n }\n },\n {\n id: VariableFormatID.UriEncode,\n name: \"Percent encode as URI\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.useful-escaping-values-taking-syntax-characters\",\n \"Useful for URL escaping values, taking into URI syntax characters\"\n ),\n formatter: (value) => {\n if (isArray(value)) {\n return encodeURIStrict(\"{\" + value.join(\",\") + \"}\");\n }\n return encodeURIStrict(value);\n }\n }\n ];\n return formats;\n});\nfunction luceneEscape(value) {\n if (isNaN(+value) === false) {\n return value;\n }\n return value.replace(/([\\!\\*\\+\\-\\=<>\\s\\&\\|\\(\\)\\[\\]\\{\\}\\^\\~\\?\\:\\\\/\"])/g, \"\\\\$1\");\n}\nfunction encodeURIComponentStrict(str) {\n if (typeof str === \"object\") {\n str = String(str);\n }\n return replaceSpecialCharactersToASCII(encodeURIComponent(str));\n}\nconst encodeURIStrict = (str) => replaceSpecialCharactersToASCII(encodeURI(String(str)));\nconst replaceSpecialCharactersToASCII = (value) => value.replace(/[!'()*]/g, (c) => {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n});\nfunction formatQueryParameter(name, value) {\n return `var-${name}=${encodeURIComponentStrict(value)}`;\n}\nfunction customFormatQueryParameter(name, value, valuePrefix = \"\") {\n return `${name}=${valuePrefix}${encodeURIComponentStrict(value)}`;\n}\nconst SQL_ESCAPE_MAP = {\n \"'\": \"''\",\n '\"': '\\\\\"'\n};\nfunction sqlStringFormatter(value) {\n const regExp = new RegExp(`'|\"`, \"g\");\n if (isArray(value)) {\n return map(value, (v) => `'${replace(v, regExp, (match) => {\n var _a;\n return (_a = SQL_ESCAPE_MAP[match]) != null ? _a : \"\";\n })}'`).join(\",\");\n }\n let strVal = typeof value === \"string\" ? value : String(value);\n return `'${replace(strVal, regExp, (match) => {\n var _a;\n return (_a = SQL_ESCAPE_MAP[match]) != null ? _a : \"\";\n })}'`;\n}\n\nexport { formatRegistry };\n//# sourceMappingURL=formatRegistry.js.map\n","const ALL_VARIABLE_TEXT = \"All\";\nconst ALL_VARIABLE_VALUE = \"$__all\";\nconst AUTO_VARIABLE_TEXT = \"Auto\";\nconst AUTO_VARIABLE_VALUE = \"$__auto\";\nconst VARIABLE_REGEX = /\\$(\\w+)|\\[\\[(\\w+?)(?::(\\w+))?\\]\\]|\\${(\\w+)(?:\\.([^:^\\}]+))?(?::([^\\}]+))?}/g;\nconst SEARCH_FILTER_VARIABLE = \"__searchFilter\";\nconst SCOPES_VARIABLE_NAME = \"__scopes\";\n\nexport { ALL_VARIABLE_TEXT, ALL_VARIABLE_VALUE, AUTO_VARIABLE_TEXT, AUTO_VARIABLE_VALUE, SCOPES_VARIABLE_NAME, SEARCH_FILTER_VARIABLE, VARIABLE_REGEX };\n//# sourceMappingURL=constants.js.map\n","class SkipFormattingValue {\n constructor(_value) {\n this._value = _value;\n }\n formatter() {\n return this._value;\n }\n}\n\nexport { SkipFormattingValue };\n//# sourceMappingURL=types.js.map\n","import { urlUtil, dateTimeFormat } from '@grafana/data';\nimport { getTimeRange } from '../../core/sceneGraph/getTimeRange.js';\nimport { getData } from '../../core/sceneGraph/sceneGraph.js';\nimport { SkipFormattingValue } from './types.js';\n\nclass UrlTimeRangeMacro {\n constructor(name, sceneObject) {\n this.state = { name, type: \"url_variable\" };\n this._sceneObject = sceneObject;\n }\n getValue() {\n var _a;\n const timeRange = getTimeRange(this._sceneObject);\n const urlState = (_a = timeRange.urlSync) == null ? void 0 : _a.getUrlState();\n if ((urlState == null ? void 0 : urlState.timezone) === \"browser\") {\n urlState.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n return new SkipFormattingValue(urlUtil.toUrlParams(urlState));\n }\n getValueText() {\n return \"\";\n }\n}\nclass TimeFromAndToMacro {\n constructor(name, sceneObject) {\n this.state = { name, type: \"time_macro\" };\n this._sceneObject = sceneObject;\n }\n getValue() {\n const timeRange = getTimeRange(this._sceneObject);\n if (this.state.name === \"__from\") {\n return timeRange.state.value.from.valueOf();\n } else {\n return timeRange.state.value.to.valueOf();\n }\n }\n getValueText() {\n const timeRange = getTimeRange(this._sceneObject);\n if (this.state.name === \"__from\") {\n return dateTimeFormat(timeRange.state.value.from, { timeZone: timeRange.getTimeZone() });\n } else {\n return dateTimeFormat(timeRange.state.value.to, { timeZone: timeRange.getTimeZone() });\n }\n }\n}\nclass TimezoneMacro {\n constructor(name, sceneObject) {\n this.state = { name, type: \"time_macro\" };\n this._sceneObject = sceneObject;\n }\n getValue() {\n const timeRange = getTimeRange(this._sceneObject);\n const timeZone = timeRange.getTimeZone();\n if (timeZone === \"browser\") {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n return timeZone;\n }\n getValueText() {\n return this.getValue();\n }\n}\nclass IntervalMacro {\n constructor(name, sceneObject, match) {\n this.state = { name, type: \"time_macro\", match };\n this._sceneObject = sceneObject;\n }\n getValue() {\n var _a;\n const data = getData(this._sceneObject);\n if (data) {\n const request = (_a = data.state.data) == null ? void 0 : _a.request;\n if (!request) {\n return this.state.match;\n }\n if (this.state.name === \"__interval_ms\") {\n return request.intervalMs;\n }\n return request.interval;\n }\n return this.state.match;\n }\n}\n\nexport { IntervalMacro, TimeFromAndToMacro, TimezoneMacro, UrlTimeRangeMacro };\n//# sourceMappingURL=timeMacros.js.map\n","import { useLocationService, locationService } from '@grafana/runtime';\n\nfunction setBaseClassState(sceneObject, newState) {\n sceneObject.setState(newState);\n}\nfunction useLocationServiceSafe() {\n return useLocationService ? useLocationService() : locationService;\n}\nfunction isRepeatCloneOrChildOf(scene) {\n let obj = scene;\n do {\n if (\"repeatSourceKey\" in obj.state && obj.state.repeatSourceKey) {\n return true;\n }\n obj = obj.parent;\n } while (obj);\n return false;\n}\n\nexport { isRepeatCloneOrChildOf, setBaseClassState, useLocationServiceSafe };\n//# sourceMappingURL=utils.js.map\n","import { isEqual, isArray } from 'lodash';\nimport { map } from 'rxjs';\nimport { ALL_VARIABLE_VALUE, ALL_VARIABLE_TEXT } from '../constants.js';\nimport { SceneObjectBase } from '../../core/SceneObjectBase.js';\nimport { SceneVariableValueChangedEvent } from '../types.js';\nimport { formatRegistry } from '../interpolation/formatRegistry.js';\nimport { VariableFormatID } from '@grafana/schema';\nimport { setBaseClassState } from '../../utils/utils.js';\nimport { VARIABLE_VALUE_CHANGED_INTERACTION } from '../../behaviors/SceneRenderProfiler.js';\nimport { getQueryController } from '../../core/sceneGraph/getQueryController.js';\n\nclass MultiValueVariable extends SceneObjectBase {\n constructor() {\n super(...arguments);\n this._urlSync = new MultiValueUrlSyncHandler(this);\n }\n /**\n * This function is called on when SceneVariableSet is activated or when a dependency changes.\n */\n validateAndUpdate() {\n return this.getValueOptions({}).pipe(\n map((options) => {\n this.updateValueGivenNewOptions(options);\n return {};\n })\n );\n }\n onCancel() {\n this.setStateHelper({ loading: false });\n const sceneVarSet = this.parent;\n sceneVarSet == null ? void 0 : sceneVarSet.cancel(this);\n }\n /**\n * Check if current value is valid given new options. If not update the value.\n */\n updateValueGivenNewOptions(options) {\n const { value: currentValue, text: currentText, options: oldOptions } = this.state;\n const stateUpdate = this.getStateUpdateGivenNewOptions(options, currentValue, currentText);\n this.interceptStateUpdateAfterValidation(stateUpdate);\n this.setStateHelper(stateUpdate);\n if (stateUpdate.value !== currentValue || stateUpdate.text !== currentText || this.hasAllValue() && !isEqual(options, oldOptions)) {\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n }\n }\n getStateUpdateGivenNewOptions(options, currentValue, currentText) {\n const stateUpdate = {\n options,\n loading: false,\n value: currentValue,\n text: currentText\n };\n if (options.length === 0) {\n if (this.state.defaultToAll || this.state.includeAll) {\n stateUpdate.value = ALL_VARIABLE_VALUE;\n stateUpdate.text = ALL_VARIABLE_TEXT;\n } else if (this.state.isMulti) {\n stateUpdate.value = [];\n stateUpdate.text = [];\n } else {\n stateUpdate.value = \"\";\n stateUpdate.text = \"\";\n }\n return stateUpdate;\n }\n if (this.hasAllValue()) {\n if (this.state.includeAll) {\n stateUpdate.text = ALL_VARIABLE_TEXT;\n } else {\n stateUpdate.value = options[0].value;\n stateUpdate.text = options[0].label;\n if (this.state.isMulti) {\n stateUpdate.value = [stateUpdate.value];\n stateUpdate.text = [stateUpdate.text];\n }\n }\n return stateUpdate;\n }\n if (this.state.isMulti) {\n const currentValues = Array.isArray(currentValue) ? currentValue : [currentValue];\n const validValues = currentValues.filter((v) => options.find((o) => o.value === v));\n const validTexts = validValues.map((v) => options.find((o) => o.value === v).label);\n if (validValues.length === 0) {\n const defaultState = this.getDefaultMultiState(options);\n stateUpdate.value = defaultState.value;\n stateUpdate.text = defaultState.text;\n } else {\n if (!isEqual(validValues, currentValue)) {\n stateUpdate.value = validValues;\n }\n if (!isEqual(validTexts, currentText)) {\n stateUpdate.text = validTexts;\n }\n }\n return stateUpdate;\n }\n let matchingOption = findOptionMatchingCurrent(currentValue, currentText, options);\n if (matchingOption) {\n stateUpdate.text = matchingOption.label;\n stateUpdate.value = matchingOption.value;\n } else {\n const defaultState = this.getDefaultSingleState(options);\n stateUpdate.value = defaultState.value;\n stateUpdate.text = defaultState.text;\n }\n return stateUpdate;\n }\n /**\n * Values set by initial URL sync needs to survive the next validation and update.\n * This function can intercept and make sure those values are preserved.\n */\n interceptStateUpdateAfterValidation(stateUpdate) {\n const isAllValueFix = stateUpdate.value === ALL_VARIABLE_VALUE && this.state.text === ALL_VARIABLE_TEXT;\n if (this.skipNextValidation && stateUpdate.value !== this.state.value && stateUpdate.text !== this.state.text && !isAllValueFix) {\n stateUpdate.value = this.state.value;\n stateUpdate.text = this.state.text;\n }\n this.skipNextValidation = false;\n }\n getValue(fieldPath) {\n let value = this.state.value;\n if (this.hasAllValue()) {\n if (this.state.allValue) {\n return new CustomAllValue(this.state.allValue, this);\n }\n value = this.state.options.map((x) => x.value);\n }\n if (fieldPath != null && Array.isArray(value)) {\n const index = parseInt(fieldPath, 10);\n if (!isNaN(index) && index >= 0 && index < value.length) {\n return value[index];\n }\n }\n return value;\n }\n getValueText() {\n if (this.hasAllValue()) {\n return ALL_VARIABLE_TEXT;\n }\n if (Array.isArray(this.state.text)) {\n return this.state.text.join(\" + \");\n }\n return String(this.state.text);\n }\n hasAllValue() {\n const value = this.state.value;\n return value === ALL_VARIABLE_VALUE || Array.isArray(value) && value[0] === ALL_VARIABLE_VALUE;\n }\n getDefaultMultiState(options) {\n if (this.state.defaultToAll) {\n return { value: [ALL_VARIABLE_VALUE], text: [ALL_VARIABLE_TEXT] };\n } else if (options.length > 0) {\n return { value: [options[0].value], text: [options[0].label] };\n } else {\n return { value: [], text: [] };\n }\n }\n getDefaultSingleState(options) {\n if (this.state.defaultToAll) {\n return { value: ALL_VARIABLE_VALUE, text: ALL_VARIABLE_TEXT };\n } else if (options.length > 0) {\n return { value: options[0].value, text: options[0].label };\n } else {\n return { value: \"\", text: \"\" };\n }\n }\n /**\n * Change the value and publish SceneVariableValueChangedEvent event.\n */\n changeValueTo(value, text, isUserAction = false) {\n var _a, _b;\n if (value === this.state.value && text === this.state.text) {\n return;\n }\n if (!text) {\n if (Array.isArray(value)) {\n text = value.map((v) => this.findLabelTextForValue(v));\n } else {\n text = this.findLabelTextForValue(value);\n }\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n const state = this.getDefaultMultiState(this.state.options);\n value = state.value;\n text = state.text;\n }\n if (value[value.length - 1] === ALL_VARIABLE_VALUE) {\n value = [ALL_VARIABLE_VALUE];\n text = [ALL_VARIABLE_TEXT];\n } else if (value[0] === ALL_VARIABLE_VALUE && value.length > 1) {\n value.shift();\n if (Array.isArray(text)) {\n text.shift();\n }\n }\n }\n if (isEqual(value, this.state.value) && isEqual(text, this.state.text)) {\n return;\n }\n const stateChangeAction = () => this.setStateHelper({ value, text, loading: false });\n if (isUserAction) {\n const queryController = getQueryController(this);\n queryController == null ? void 0 : queryController.startProfile(VARIABLE_VALUE_CHANGED_INTERACTION);\n (_b = (_a = this._urlSync).performBrowserHistoryAction) == null ? void 0 : _b.call(_a, stateChangeAction);\n } else {\n stateChangeAction();\n }\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n }\n findLabelTextForValue(value) {\n if (value === ALL_VARIABLE_VALUE) {\n return ALL_VARIABLE_TEXT;\n }\n const option = this.state.options.find((x) => x.value === value);\n if (option) {\n return option.label;\n }\n const optionByLabel = this.state.options.find((x) => x.label === value);\n if (optionByLabel) {\n return optionByLabel.label;\n }\n return value;\n }\n /**\n * This helper function is to counter the contravariance of setState\n */\n setStateHelper(state) {\n setBaseClassState(this, state);\n }\n getOptionsForSelect(includeCurrentValue = true) {\n let options = this.state.options;\n if (this.state.includeAll) {\n options = [{ value: ALL_VARIABLE_VALUE, label: ALL_VARIABLE_TEXT }, ...options];\n }\n if (includeCurrentValue && !Array.isArray(this.state.value)) {\n const current = options.find((x) => x.value === this.state.value);\n if (!current) {\n options = [{ value: this.state.value, label: String(this.state.text) }, ...options];\n }\n }\n return options;\n }\n refreshOptions() {\n this.getValueOptions({}).subscribe((options) => {\n this.updateValueGivenNewOptions(options);\n });\n }\n}\nfunction findOptionMatchingCurrent(currentValue, currentText, options) {\n let textMatch;\n for (const item of options) {\n if (item.value === currentValue) {\n return item;\n }\n if (item.label === currentText) {\n textMatch = item;\n }\n }\n return textMatch;\n}\nclass MultiValueUrlSyncHandler {\n constructor(_sceneObject) {\n this._sceneObject = _sceneObject;\n this._nextChangeShouldAddHistoryStep = false;\n }\n getKey() {\n return `var-${this._sceneObject.state.name}`;\n }\n getKeys() {\n if (this._sceneObject.state.skipUrlSync) {\n return [];\n }\n return [this.getKey()];\n }\n getUrlState() {\n if (this._sceneObject.state.skipUrlSync) {\n return {};\n }\n let urlValue = null;\n let value = this._sceneObject.state.value;\n if (Array.isArray(value)) {\n urlValue = value.map(String);\n } else if (this._sceneObject.state.isMulti) {\n urlValue = [String(value)];\n } else {\n urlValue = String(value);\n }\n return { [this.getKey()]: urlValue };\n }\n updateFromUrl(values) {\n let urlValue = values[this.getKey()];\n if (urlValue != null) {\n if (this._sceneObject.state.includeAll) {\n urlValue = handleLegacyUrlAllValue(urlValue);\n }\n if (this._sceneObject.state.allValue && this._sceneObject.state.allValue === urlValue) {\n urlValue = ALL_VARIABLE_VALUE;\n }\n if (!this._sceneObject.isActive) {\n this._sceneObject.skipNextValidation = true;\n }\n this._sceneObject.changeValueTo(urlValue);\n }\n }\n performBrowserHistoryAction(callback) {\n this._nextChangeShouldAddHistoryStep = true;\n callback();\n this._nextChangeShouldAddHistoryStep = false;\n }\n shouldCreateHistoryStep(values) {\n return this._nextChangeShouldAddHistoryStep;\n }\n}\nfunction handleLegacyUrlAllValue(value) {\n if (isArray(value) && value[0] === ALL_VARIABLE_TEXT) {\n return [ALL_VARIABLE_VALUE];\n } else if (value === ALL_VARIABLE_TEXT) {\n return ALL_VARIABLE_VALUE;\n }\n return value;\n}\nclass CustomAllValue {\n constructor(_value, _variable) {\n this._value = _value;\n this._variable = _variable;\n }\n formatter(formatNameOrFn) {\n if (formatNameOrFn === VariableFormatID.Text) {\n return ALL_VARIABLE_TEXT;\n }\n if (formatNameOrFn === VariableFormatID.PercentEncode) {\n return formatRegistry.get(VariableFormatID.PercentEncode).formatter(this._value, [], this._variable);\n }\n if (formatNameOrFn === VariableFormatID.QueryParam) {\n return formatRegistry.get(VariableFormatID.QueryParam).formatter(ALL_VARIABLE_TEXT, [], this._variable);\n }\n return this._value;\n }\n}\n\nexport { CustomAllValue, MultiValueUrlSyncHandler, MultiValueVariable };\n//# sourceMappingURL=MultiValueVariable.js.map\n","import { isCustomVariableValue } from '../types.js';\nimport { formatRegistry } from '../interpolation/formatRegistry.js';\nimport { SkipFormattingValue } from './types.js';\nimport { VariableFormatID } from '@grafana/schema';\nimport { MultiValueVariable } from '../variants/MultiValueVariable.js';\nimport { ALL_VARIABLE_VALUE } from '../constants.js';\n\nclass AllVariablesMacro {\n constructor(name, sceneObject) {\n this.state = { name, type: \"url_variable\" };\n this._sceneObject = sceneObject;\n }\n getValue() {\n const allVars = collectAllVariables(this._sceneObject);\n const format = formatRegistry.get(VariableFormatID.QueryParam);\n const params = [];\n for (const name of Object.keys(allVars)) {\n const variable = allVars[name];\n if (variable instanceof MultiValueVariable && variable.hasAllValue() && !variable.state.allValue) {\n params.push(format.formatter(ALL_VARIABLE_VALUE, [], variable));\n continue;\n }\n const value = variable.getValue();\n if (!value) {\n continue;\n }\n if (isCustomVariableValue(value)) {\n params.push(value.formatter(VariableFormatID.QueryParam));\n } else {\n params.push(format.formatter(value, [], variable));\n }\n }\n return new SkipFormattingValue(params.join(\"&\"));\n }\n getValueText() {\n return \"\";\n }\n}\nfunction collectAllVariables(sceneObject, record = {}) {\n if (sceneObject.state.$variables) {\n for (const variable of sceneObject.state.$variables.state.variables) {\n if (variable.state.skipUrlSync) {\n continue;\n }\n if (!record[variable.state.name]) {\n record[variable.state.name] = variable;\n }\n }\n }\n if (sceneObject.parent) {\n collectAllVariables(sceneObject.parent, record);\n }\n return record;\n}\n\nexport { AllVariablesMacro };\n//# sourceMappingURL=AllVariablesMacro.js.map\n","import { getDisplayProcessor, formattedValueToString, FieldType, getFieldDisplayValuesProxy, getFrameDisplayName } from '@grafana/data';\nimport { getFieldAccessor } from '../interpolation/fieldAccessorCache.js';\nimport { getTemplateProxyForField } from './templateProxies.js';\n\nclass ValueMacro {\n constructor(name, sceneObject, _match, _scopedVars) {\n this._match = _match;\n this._scopedVars = _scopedVars;\n this.state = { name, type: \"__value\" };\n }\n getValue(fieldPath) {\n var _a, _b;\n const dataContext = (_a = this._scopedVars) == null ? void 0 : _a.__dataContext;\n if (!dataContext) {\n return this._match;\n }\n const { frame, rowIndex, field, calculatedValue } = dataContext.value;\n if (calculatedValue) {\n switch (fieldPath) {\n case \"numeric\":\n return calculatedValue.numeric;\n case \"raw\":\n return calculatedValue.numeric;\n case \"time\":\n return \"\";\n case \"text\":\n default:\n return formattedValueToString(calculatedValue);\n }\n }\n if (rowIndex == null) {\n return this._match;\n }\n if (fieldPath === \"time\") {\n const timeField = frame.fields.find((f) => f.type === FieldType.time);\n return timeField ? timeField.values.get(rowIndex) : void 0;\n }\n if (!field) {\n return this._match;\n }\n const value = field.values.get(rowIndex);\n if (fieldPath === \"raw\") {\n return value;\n }\n const displayProcessor = (_b = field.display) != null ? _b : fallbackDisplayProcessor;\n const result = displayProcessor(value);\n switch (fieldPath) {\n case \"numeric\":\n return result.numeric;\n case \"text\":\n default:\n return formattedValueToString(result);\n }\n }\n getValueText() {\n return \"\";\n }\n}\nconst fallbackDisplayProcessor = getDisplayProcessor();\nclass DataMacro {\n constructor(name, sceneObject, _match, _scopedVars) {\n this._match = _match;\n this._scopedVars = _scopedVars;\n this.state = { name, type: \"__data\" };\n }\n getValue(fieldPath) {\n var _a, _b;\n const dataContext = (_a = this._scopedVars) == null ? void 0 : _a.__dataContext;\n if (!dataContext || !fieldPath) {\n return this._match;\n }\n const { frame, rowIndex } = dataContext.value;\n if (rowIndex === void 0 || fieldPath === void 0) {\n return this._match;\n }\n const obj = {\n name: frame.name,\n refId: frame.refId,\n fields: getFieldDisplayValuesProxy({ frame, rowIndex })\n };\n return (_b = getFieldAccessor(fieldPath)(obj)) != null ? _b : \"\";\n }\n getValueText() {\n return \"\";\n }\n}\nclass SeriesMacro {\n constructor(name, sceneObject, _match, _scopedVars) {\n this._match = _match;\n this._scopedVars = _scopedVars;\n this.state = { name, type: \"__series\" };\n }\n getValue(fieldPath) {\n var _a;\n const dataContext = (_a = this._scopedVars) == null ? void 0 : _a.__dataContext;\n if (!dataContext || !fieldPath) {\n return this._match;\n }\n if (fieldPath !== \"name\") {\n return this._match;\n }\n const { frame, frameIndex } = dataContext.value;\n return getFrameDisplayName(frame, frameIndex);\n }\n getValueText() {\n return \"\";\n }\n}\nclass FieldMacro {\n constructor(name, sceneObject, _match, _scopedVars) {\n this._match = _match;\n this._scopedVars = _scopedVars;\n this.state = { name, type: \"__field\" };\n }\n getValue(fieldPath) {\n var _a, _b;\n const dataContext = (_a = this._scopedVars) == null ? void 0 : _a.__dataContext;\n if (!dataContext || !fieldPath) {\n return this._match;\n }\n if (fieldPath === void 0 || fieldPath === \"\") {\n return this._match;\n }\n const { frame, field, data } = dataContext.value;\n const obj = getTemplateProxyForField(field, frame, data);\n return (_b = getFieldAccessor(fieldPath)(obj)) != null ? _b : \"\";\n }\n getValueText() {\n return \"\";\n }\n}\n\nexport { DataMacro, FieldMacro, SeriesMacro, ValueMacro };\n//# sourceMappingURL=dataMacros.js.map\n","import { locationService, config } from '@grafana/runtime';\n\nclass UrlMacro {\n constructor(name, _) {\n this.state = { name, type: \"url_macro\" };\n }\n getValue(fieldPath) {\n var _a;\n const location = locationService.getLocation();\n const subUrl = (_a = config.appSubUrl) != null ? _a : \"\";\n switch (fieldPath != null ? fieldPath : \"\") {\n case \"params\":\n return new UrlStateFormatter(location.search);\n case \"path\":\n return subUrl + location.pathname;\n case \"\":\n default:\n return subUrl + location.pathname + location.search;\n }\n }\n getValueText() {\n return \"\";\n }\n}\nclass UrlStateFormatter {\n constructor(_urlQueryParams) {\n this._urlQueryParams = _urlQueryParams;\n }\n formatter(options) {\n if (!options) {\n return this._urlQueryParams;\n }\n const params = options.split(\":\");\n if (params[0] === \"exclude\" && params.length > 1) {\n const allParams = new URLSearchParams(this._urlQueryParams);\n for (const param of params[1].split(\",\")) {\n allParams.delete(param);\n }\n return `?${allParams}`;\n }\n if (params[0] === \"include\" && params.length > 1) {\n const allParams = new URLSearchParams(this._urlQueryParams);\n const includeOnly = params[1].split(\",\");\n for (const param of allParams.keys()) {\n if (!includeOnly.includes(param)) {\n allParams.delete(param);\n }\n }\n return `?${allParams}`;\n }\n return this._urlQueryParams;\n }\n}\n\nexport { UrlMacro };\n//# sourceMappingURL=urlMacros.js.map\n","import { DataLinkBuiltInVars } from '@grafana/data';\nimport { UrlTimeRangeMacro, TimeFromAndToMacro, TimezoneMacro, IntervalMacro } from './timeMacros.js';\nimport { AllVariablesMacro } from './AllVariablesMacro.js';\nimport { ValueMacro, DataMacro, SeriesMacro, FieldMacro } from './dataMacros.js';\nimport { UrlMacro } from './urlMacros.js';\nimport { UserMacro, OrgMacro } from './contextMacros.js';\n\nconst macrosIndex = /* @__PURE__ */ new Map([\n [DataLinkBuiltInVars.includeVars, AllVariablesMacro],\n [DataLinkBuiltInVars.keepTime, UrlTimeRangeMacro],\n [\"__value\", ValueMacro],\n [\"__data\", DataMacro],\n [\"__series\", SeriesMacro],\n [\"__field\", FieldMacro],\n [\"__url\", UrlMacro],\n [\"__from\", TimeFromAndToMacro],\n [\"__to\", TimeFromAndToMacro],\n [\"__timezone\", TimezoneMacro],\n [\"__user\", UserMacro],\n [\"__org\", OrgMacro],\n [\"__interval\", IntervalMacro],\n [\"__interval_ms\", IntervalMacro]\n]);\nfunction registerVariableMacro(name, macro, replace = false) {\n if (!replace && macrosIndex.get(name)) {\n throw new Error(`Macro already registered ${name}`);\n }\n macrosIndex.set(name, macro);\n return () => {\n if (replace) {\n throw new Error(`Replaced macros can not be unregistered. They need to be restored manually.`);\n } else {\n macrosIndex.delete(name);\n }\n };\n}\n\nexport { macrosIndex, registerVariableMacro };\n//# sourceMappingURL=index.js.map\n","import { getFieldDisplayName, formatLabels } from '@grafana/data';\n\nfunction getTemplateProxyForField(field, frame, frames) {\n return new Proxy(\n {},\n // This object shows up in test snapshots\n {\n get: (obj, key) => {\n if (key === \"name\") {\n return field.name;\n }\n if (key === \"displayName\") {\n return getFieldDisplayName(field, frame, frames);\n }\n if (key === \"labels\" || key === \"formattedLabels\") {\n if (!field.labels) {\n return \"\";\n }\n return {\n ...field.labels,\n __values: Object.values(field.labels).sort().join(\", \"),\n toString: () => {\n return formatLabels(field.labels, \"\", true);\n }\n };\n }\n return void 0;\n }\n }\n );\n}\n\nexport { getTemplateProxyForField };\n//# sourceMappingURL=templateProxies.js.map\n","import { config } from '@grafana/runtime';\n\nclass UserMacro {\n constructor(name, _) {\n this.state = { name, type: \"user_macro\" };\n }\n getValue(fieldPath) {\n const user = config.bootData.user;\n switch (fieldPath) {\n case \"login\":\n return user.login;\n case \"email\":\n return user.email;\n case \"id\":\n default:\n return String(user.id);\n }\n }\n getValueText() {\n return \"\";\n }\n}\nclass OrgMacro {\n constructor(name, _) {\n this.state = { name, type: \"org_macro\" };\n }\n getValue(fieldPath) {\n const user = config.bootData.user;\n switch (fieldPath) {\n case \"name\":\n return user.orgName;\n case \"id\":\n default:\n return String(user.orgId);\n }\n }\n getValueText() {\n return \"\";\n }\n}\n\nexport { OrgMacro, UserMacro };\n//# sourceMappingURL=contextMacros.js.map\n","import { VariableFormatID } from '@grafana/schema';\nimport { isCustomVariableValue } from '../types.js';\nimport { getSceneVariableForScopedVar } from './ScopedVarsVariable.js';\nimport { formatRegistry } from './formatRegistry.js';\nimport { VARIABLE_REGEX } from '../constants.js';\nimport { lookupVariable } from '../lookupVariable.js';\nimport { macrosIndex } from '../macros/index.js';\n\nfunction sceneInterpolator(sceneObject, target, scopedVars, format, interpolations) {\n if (!target || typeof target !== \"string\") {\n return target != null ? target : \"\";\n }\n VARIABLE_REGEX.lastIndex = 0;\n return target.replace(VARIABLE_REGEX, (match, var1, var2, fmt2, var3, fieldPath, fmt3) => {\n const variableName = var1 || var2 || var3;\n const fmt = fmt2 || fmt3 || format;\n const variable = lookupFormatVariable(variableName, match, scopedVars, sceneObject);\n if (!variable) {\n if (interpolations) {\n interpolations.push({ match, variableName, fieldPath, format: fmt, value: match, found: false });\n }\n return match;\n }\n const value = formatValue(sceneObject, variable, variable.getValue(fieldPath), fmt);\n if (interpolations) {\n interpolations.push({ match, variableName, fieldPath, format: fmt, value, found: value !== match });\n }\n return value;\n });\n}\nfunction lookupFormatVariable(name, match, scopedVars, sceneObject) {\n if (scopedVars && scopedVars.hasOwnProperty(name)) {\n const scopedVar = scopedVars[name];\n if (scopedVar) {\n return getSceneVariableForScopedVar(name, scopedVar);\n }\n }\n const variable = lookupVariable(name, sceneObject);\n if (variable) {\n return variable;\n }\n const Macro = macrosIndex.get(name);\n if (Macro) {\n return new Macro(name, sceneObject, match, scopedVars);\n }\n return null;\n}\nfunction formatValue(context, variable, value, formatNameOrFn) {\n if (value === null || value === void 0) {\n return \"\";\n }\n if (isCustomVariableValue(value)) {\n return sceneInterpolator(context, value.formatter(formatNameOrFn));\n }\n if (!Array.isArray(value) && typeof value === \"object\") {\n value = `${value}`;\n }\n if (typeof formatNameOrFn === \"function\") {\n return formatNameOrFn(value, {\n name: variable.state.name,\n type: variable.state.type,\n multi: variable.state.isMulti,\n includeAll: variable.state.includeAll\n });\n }\n let args = [];\n if (!formatNameOrFn) {\n formatNameOrFn = VariableFormatID.Glob;\n } else {\n args = formatNameOrFn.split(\":\");\n if (args.length > 1) {\n formatNameOrFn = args[0];\n args = args.slice(1);\n } else {\n args = [];\n }\n }\n let formatter = formatRegistry.getIfExists(formatNameOrFn);\n if (!formatter) {\n console.error(`Variable format ${formatNameOrFn} not found. Using glob format as fallback.`);\n formatter = formatRegistry.get(VariableFormatID.Glob);\n }\n return formatter.formatter(value, args, variable);\n}\n\nexport { sceneInterpolator };\n//# sourceMappingURL=sceneInterpolator.js.map\n","function isSceneObject(obj) {\n return obj.useState !== void 0;\n}\nfunction isDataRequestEnricher(obj) {\n return \"enrichDataRequest\" in obj;\n}\nfunction isFiltersRequestEnricher(obj) {\n return \"enrichFiltersRequest\" in obj;\n}\nfunction isDataLayer(obj) {\n return \"isDataLayer\" in obj;\n}\n\nexport { isDataLayer, isDataRequestEnricher, isFiltersRequestEnricher, isSceneObject };\n//# sourceMappingURL=types.js.map\n","import { Observable, from, map, catchError } from 'rxjs';\nimport { LoadingState } from '@grafana/schema';\nimport { sceneGraph } from '../core/sceneGraph/index.js';\n\nfunction registerQueryWithController(entry) {\n return (queryStream) => {\n const queryControler = sceneGraph.getQueryController(entry.origin);\n if (!queryControler) {\n return queryStream;\n }\n return new Observable((observer) => {\n if (!entry.cancel) {\n entry.cancel = () => observer.complete();\n }\n queryControler.queryStarted(entry);\n let markedAsCompleted = false;\n const sub = queryStream.subscribe({\n next: (v) => {\n if (!markedAsCompleted && v.state !== LoadingState.Loading) {\n markedAsCompleted = true;\n queryControler.queryCompleted(entry);\n }\n observer.next(v);\n },\n error: (e) => observer.error(e),\n complete: () => {\n observer.complete();\n }\n });\n return () => {\n sub.unsubscribe();\n if (!markedAsCompleted) {\n queryControler.queryCompleted(entry);\n }\n };\n });\n };\n}\nfunction wrapPromiseInStateObservable(promise) {\n return new Observable((observer) => {\n observer.next({ state: LoadingState.Loading });\n const promiseObservable = from(promise);\n promiseObservable.pipe(\n map(() => ({ state: LoadingState.Done })),\n catchError(() => {\n observer.next({ state: LoadingState.Error });\n return [];\n })\n ).subscribe({\n next: (result) => observer.next(result),\n complete: () => observer.complete()\n });\n });\n}\n\nexport { registerQueryWithController, wrapPromiseInStateObservable };\n//# sourceMappingURL=registerQueryWithController.js.map\n","import { getDataSourceSrv } from '@grafana/runtime';\nimport { runtimeDataSources } from '../querying/RuntimeDataSource.js';\nimport { wrapPromiseInStateObservable, registerQueryWithController } from '../querying/registerQueryWithController.js';\nimport { sceneGraph } from '../core/sceneGraph/index.js';\n\nasync function getDataSource(datasource, scopedVars) {\n var _a;\n if (datasource == null ? void 0 : datasource.uid) {\n const runtimeDataSource = runtimeDataSources.get(datasource.uid);\n if (runtimeDataSource) {\n return runtimeDataSource;\n }\n }\n if (datasource && datasource.query) {\n return datasource;\n }\n const dsPromise = getDataSourceSrv().get(datasource, scopedVars);\n if (scopedVars.__sceneObject && scopedVars.__sceneObject.value.valueOf()) {\n const queryControler = sceneGraph.getQueryController(scopedVars.__sceneObject.value.valueOf());\n if (queryControler && queryControler.state.enableProfiling) {\n wrapPromiseInStateObservable(dsPromise).pipe(\n registerQueryWithController({\n type: `getDataSource/${(_a = datasource == null ? void 0 : datasource.type) != null ? _a : \"unknown\"}`,\n origin: scopedVars.__sceneObject.value.valueOf()\n })\n ).subscribe(() => {\n });\n }\n }\n const result = await dsPromise;\n return result;\n}\n\nexport { getDataSource };\n//# sourceMappingURL=getDataSource.js.map\n","import { sceneGraph } from '../core/sceneGraph/index.js';\nimport { isVariableValueEqual } from './utils.js';\n\nclass VariableValueRecorder {\n constructor() {\n this._values = /* @__PURE__ */ new Map();\n }\n recordCurrentDependencyValuesForSceneObject(sceneObject) {\n this.clearValues();\n if (!sceneObject.variableDependency) {\n return;\n }\n for (const variableName of sceneObject.variableDependency.getNames()) {\n const variable = sceneGraph.lookupVariable(variableName, sceneObject);\n if (variable) {\n this._values.set(variable.state.name, variable.getValue());\n }\n }\n }\n cloneAndRecordCurrentValuesForSceneObject(sceneObject) {\n const clone = new VariableValueRecorder();\n clone.recordCurrentDependencyValuesForSceneObject(sceneObject);\n return clone;\n }\n clearValues() {\n this._values.clear();\n }\n hasValues() {\n return !!this._values;\n }\n recordCurrentValue(variable) {\n this._values.set(variable.state.name, variable.getValue());\n }\n hasRecordedValue(variable) {\n return this._values.has(variable.state.name);\n }\n hasValueChanged(variable) {\n if (this._values.has(variable.state.name)) {\n const value = this._values.get(variable.state.name);\n if (!isVariableValueEqual(value, variable.getValue())) {\n return true;\n }\n }\n return false;\n }\n hasDependenciesChanged(sceneObject) {\n if (!this._values) {\n return false;\n }\n if (!sceneObject.variableDependency) {\n return false;\n }\n for (const variableName of sceneObject.variableDependency.getNames()) {\n const variable = sceneGraph.lookupVariable(variableName, sceneObject);\n if (!variable) {\n continue;\n }\n const name = variable.state.name;\n if (variable && this._values.has(name)) {\n const value = this._values.get(name);\n if (!isVariableValueEqual(value, variable.getValue())) {\n return true;\n }\n }\n }\n return false;\n }\n}\n\nexport { VariableValueRecorder };\n//# sourceMappingURL=VariableValueRecorder.js.map\n","function isExtraQueryProvider(obj) {\n return typeof obj === \"object\" && \"getExtraQueries\" in obj;\n}\n\nexport { isExtraQueryProvider };\n//# sourceMappingURL=ExtraQueryProvider.js.map\n","import { of, mergeMap, forkJoin, map } from 'rxjs';\n\nconst passthroughProcessor = (_, secondary) => of(secondary);\nconst extraQueryProcessingOperator = (processors) => (data) => {\n return data.pipe(\n mergeMap(([primary, ...secondaries]) => {\n const processedSecondaries = secondaries.flatMap((s) => {\n var _a, _b;\n return (_b = (_a = processors.get(s.request.requestId)) == null ? void 0 : _a(primary, s)) != null ? _b : of(s);\n });\n return forkJoin([of(primary), ...processedSecondaries]);\n }),\n map(([primary, ...processedSecondaries]) => {\n var _a;\n return {\n ...primary,\n series: [...primary.series, ...processedSecondaries.flatMap((s) => s.series)],\n annotations: [...(_a = primary.annotations) != null ? _a : [], ...processedSecondaries.flatMap((s) => {\n var _a2;\n return (_a2 = s.annotations) != null ? _a2 : [];\n })]\n };\n })\n );\n};\n\nexport { extraQueryProcessingOperator, passthroughProcessor };\n//# sourceMappingURL=extraQueryProcessingOperator.js.map\n","const GLOBAL_ANNOTATION_ID = 0;\nfunction filterAnnotations(data, filters) {\n var _a;\n if (!Array.isArray(data) || data.length === 0) {\n return data;\n }\n const rows = Array.from({ length: data.length }, () => /* @__PURE__ */ new Set());\n let frameIdx = 0;\n for (const frame of data) {\n for (let index = 0; index < frame.length; index++) {\n if (rows[frameIdx].has(index)) {\n continue;\n }\n let matching = true;\n const panelIdField = frame.fields.find((f) => f.name === \"panelId\");\n const sourceField = frame.fields.find((f) => f.name === \"source\");\n if (sourceField) {\n if (panelIdField && sourceField.values[index].type === \"dashboard\") {\n matching = [filters.panelId, GLOBAL_ANNOTATION_ID].includes(panelIdField.values[index]);\n }\n const sourceFilter = sourceField.values[index].filter;\n if (sourceFilter) {\n const includes = [...(_a = sourceFilter.ids) != null ? _a : [], GLOBAL_ANNOTATION_ID].includes(filters.panelId);\n if (sourceFilter.exclude) {\n if (includes) {\n matching = false;\n }\n } else if (!includes) {\n matching = false;\n }\n }\n }\n if (matching) {\n rows[frameIdx].add(index);\n }\n }\n frameIdx++;\n }\n const processed = [];\n frameIdx = 0;\n for (const frame of data) {\n const frameLength = rows[frameIdx].size;\n const fields = [];\n for (const field of frame.fields) {\n const buffer = [];\n for (let index = 0; index < frame.length; index++) {\n if (rows[frameIdx].has(index)) {\n buffer.push(field.values[index]);\n continue;\n }\n }\n fields.push({\n ...field,\n values: buffer\n });\n }\n processed.push({\n ...frame,\n fields,\n length: frameLength\n });\n frameIdx++;\n }\n return processed;\n}\n\nexport { filterAnnotations };\n//# sourceMappingURL=filterAnnotations.js.map\n","import { isDataRequestEnricher } from '../core/types.js';\n\nfunction getEnrichedDataRequest(sourceRunner) {\n const root = sourceRunner.getRoot();\n if (isDataRequestEnricher(root)) {\n return root.enrichDataRequest(sourceRunner);\n }\n return null;\n}\n\nexport { getEnrichedDataRequest };\n//# sourceMappingURL=getEnrichedDataRequest.js.map\n","import { getTemplateSrv, getDataSourceSrv } from '@grafana/runtime';\nimport { interpolate } from '../../core/sceneGraph/sceneGraph.js';\n\nlet originalGetAdhocFilters = void 0;\nlet allActiveFilterSets = /* @__PURE__ */ new Set();\nfunction patchGetAdhocFilters(filterVar) {\n filterVar.addActivationHandler(() => {\n allActiveFilterSets.add(filterVar);\n return () => allActiveFilterSets.delete(filterVar);\n });\n if (originalGetAdhocFilters) {\n return;\n }\n const templateSrv = getTemplateSrv();\n if (!(templateSrv == null ? void 0 : templateSrv.getAdhocFilters)) {\n console.log(\"Failed to patch getAdhocFilters\");\n return;\n }\n originalGetAdhocFilters = templateSrv.getAdhocFilters;\n templateSrv.getAdhocFilters = function getAdhocFiltersScenePatch(dsName) {\n var _a;\n if (allActiveFilterSets.size === 0) {\n return originalGetAdhocFilters.call(templateSrv, dsName);\n }\n const ds = getDataSourceSrv().getInstanceSettings(dsName);\n if (!ds) {\n return [];\n }\n for (const filter of allActiveFilterSets.values()) {\n if (((_a = filter.state.datasource) == null ? void 0 : _a.uid) === ds.uid) {\n return filter.state.filters;\n }\n }\n return [];\n }.bind(templateSrv);\n}\nfunction findActiveAdHocFilterVariableByUid(dsUid) {\n var _a;\n for (const filter of allActiveFilterSets.values()) {\n if (interpolate(filter, (_a = filter.state.datasource) == null ? void 0 : _a.uid) === dsUid) {\n return filter;\n }\n }\n return void 0;\n}\n\nexport { findActiveAdHocFilterVariableByUid, patchGetAdhocFilters };\n//# sourceMappingURL=patchGetAdhocFilters.js.map\n","import { interpolate } from '../../core/sceneGraph/sceneGraph.js';\n\nconst allActiveGroupByVariables = /* @__PURE__ */ new Set();\nfunction findActiveGroupByVariablesByUid(dsUid) {\n var _a;\n for (const groupByVariable of allActiveGroupByVariables.values()) {\n if (interpolate(groupByVariable, (_a = groupByVariable.state.datasource) == null ? void 0 : _a.uid) === dsUid) {\n return groupByVariable;\n }\n }\n return void 0;\n}\n\nexport { allActiveGroupByVariables, findActiveGroupByVariablesByUid };\n//# sourceMappingURL=findActiveGroupByVariablesByUid.js.map\n","/**\n* Copyright (c) 2025, Leon Sorokin\n* All rights reserved. (MIT Licensed)\n*\n* uFuzzy.js (μFuzzy)\n* A tiny, efficient fuzzy matcher that doesn't suck\n* https://github.com/leeoniya/uFuzzy (v1.0.18)\n*/\n\nconst cmp = (a, b) => a > b ? 1 : a < b ? -1 : 0;\n\nconst inf = Infinity;\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions#escaping\nconst escapeRegExp = str => str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n\n// meh, magic tmp placeholder, must be tolerant to toLocaleLowerCase(), interSplit, and intraSplit\nconst EXACT_HERE = 'eexxaacctt';\n\nconst PUNCT_RE = /\\p{P}/gu;\n\nconst LATIN_UPPER = 'A-Z';\nconst LATIN_LOWER = 'a-z';\n\nconst COLLATE_ARGS = ['en', { numeric: true, sensitivity: 'base' }];\n\nconst swapAlpha = (str, upper, lower) => str.replace(LATIN_UPPER, upper).replace(LATIN_LOWER, lower);\n\nconst OPTS = {\n\t// whether regexps use a /u unicode flag\n\tunicode: false,\n\n\talpha: null,\n\n\t// term segmentation & punct/whitespace merging\n\tinterSplit: \"[^A-Za-z\\\\d']+\",\n\tintraSplit: \"[a-z][A-Z]\",\n\n\t// inter bounds that will be used to increase lft2/rgt2 info counters\n\tinterBound: \"[^A-Za-z\\\\d]\",\n\t// intra bounds that will be used to increase lft1/rgt1 info counters\n\tintraBound: \"[A-Za-z]\\\\d|\\\\d[A-Za-z]|[a-z][A-Z]\",\n\n\t// inter-bounds mode\n\t// 2 = strict (will only match 'man' on whitepace and punct boundaries: Mega Man, Mega_Man, mega.man)\n\t// 1 = loose (plus allowance for alpha-num and case-change boundaries: MegaMan, 0007man)\n\t// 0 = any (will match 'man' as any substring: megamaniac)\n\tinterLft: 0,\n\tinterRgt: 0,\n\n\t// allowance between terms\n\tinterChars: '.',\n\tinterIns: inf,\n\n\t// allowance between chars in terms\n\tintraChars: \"[a-z\\\\d']\", // internally case-insensitive\n\tintraIns: null,\n\n\tintraContr: \"'[a-z]{1,2}\\\\b\",\n\n\t// multi-insert or single-error mode\n\tintraMode: 0,\n\n\t// single-error bounds for errors within terms, default requires exact first char\n\tintraSlice: [1, inf],\n\n\t// single-error tolerance toggles\n\tintraSub: null,\n\tintraTrn: null,\n\tintraDel: null,\n\n\t// can post-filter matches that are too far apart in distance or length\n\t// (since intraIns is between each char, it can accum to nonsense matches)\n\tintraFilt: (term, match, index) => true, // should this also accept WIP info?\n\n\ttoUpper: str => str.toLocaleUpperCase(),\n\ttoLower: str => str.toLocaleLowerCase(),\n\tcompare: null,\n\n\t// final sorting fn\n\tsort: (info, haystack, needle, compare = cmp) => {\n\t\tlet {\n\t\t\tidx,\n\t\t\tchars,\n\t\t\tterms,\n\t\t\tinterLft2,\n\t\t\tinterLft1,\n\t\t//\tinterRgt2,\n\t\t//\tinterRgt1,\n\t\t\tstart,\n\t\t\tintraIns,\n\t\t\tinterIns,\n\t\t\tcases,\n\t\t} = info;\n\n\t\treturn idx.map((v, i) => i).sort((ia, ib) => (\n\t\t\t// most contig chars matched\n\t\t\tchars[ib] - chars[ia] ||\n\t\t\t// least char intra-fuzz (most contiguous)\n\t\t\tintraIns[ia] - intraIns[ib] ||\n\t\t\t// most prefix bounds, boosted by full term matches\n\t\t\t(\n\t\t\t\t(terms[ib] + interLft2[ib] + 0.5 * interLft1[ib]) -\n\t\t\t\t(terms[ia] + interLft2[ia] + 0.5 * interLft1[ia])\n\t\t\t) ||\n\t\t\t// highest density of match (least span)\n\t\t//\tspan[ia] - span[ib] ||\n\t\t\t// highest density of match (least term inter-fuzz)\n\t\t\tinterIns[ia] - interIns[ib] ||\n\t\t\t// earliest start of match\n\t\t\tstart[ia] - start[ib] ||\n\t\t\t// case match\n\t\t\tcases[ib] - cases[ia] ||\n\t\t\t// alphabetic\n\t\t\tcompare(haystack[idx[ia]], haystack[idx[ib]])\n\t\t));\n\t},\n};\n\nconst lazyRepeat = (chars, limit) => (\n\tlimit == 0 ? '' :\n\tlimit == 1 ? chars + '??' :\n\tlimit == inf ? chars + '*?' :\n\t chars + `{0,${limit}}?`\n);\n\nconst mode2Tpl = '(?:\\\\b|_)';\n\nfunction uFuzzy(opts) {\n\topts = Object.assign({}, OPTS, opts);\n\n\tlet {\n\t\tunicode,\n\t\tinterLft,\n\t\tinterRgt,\n\t\tintraMode,\n\t\tintraSlice,\n\t\tintraIns,\n\t\tintraSub,\n\t\tintraTrn,\n\t\tintraDel,\n\t\tintraContr,\n\t\tintraSplit: _intraSplit,\n\t\tinterSplit: _interSplit,\n\t\tintraBound: _intraBound,\n\t\tinterBound: _interBound,\n\t\tintraChars,\n\t\ttoUpper,\n\t\ttoLower,\n\t\tcompare,\n\t} = opts;\n\n\tintraIns ??= intraMode;\n\tintraSub ??= intraMode;\n\tintraTrn ??= intraMode;\n\tintraDel ??= intraMode;\n\n\tcompare ??= typeof Intl == \"undefined\" ? cmp : new Intl.Collator(...COLLATE_ARGS).compare;\n\n\tlet alpha = opts.letters ?? opts.alpha;\n\n\tif (alpha != null) {\n\t\tlet upper = toUpper(alpha);\n\t\tlet lower = toLower(alpha);\n\n\t\t_interSplit = swapAlpha(_interSplit, upper, lower);\n\t\t_intraSplit = swapAlpha(_intraSplit, upper, lower);\n\t\t_interBound = swapAlpha(_interBound, upper, lower);\n\t\t_intraBound = swapAlpha(_intraBound, upper, lower);\n\t\tintraChars = swapAlpha(intraChars, upper, lower);\n\t\tintraContr = swapAlpha(intraContr, upper, lower);\n\t}\n\n\tlet uFlag = unicode ? 'u' : '';\n\n\tconst quotedAny = '\".+?\"';\n\tconst EXACTS_RE = new RegExp(quotedAny, 'gi' + uFlag);\n\tconst NEGS_RE = new RegExp(`(?:\\\\s+|^)-(?:${intraChars}+|${quotedAny})`, 'gi' + uFlag);\n\n\tlet { intraRules } = opts;\n\n\tif (intraRules == null) {\n\t\tintraRules = p => {\n\t\t\t// default is exact term matches only\n\t\t\tlet _intraSlice = OPTS.intraSlice, // requires first char\n\t\t\t\t_intraIns = 0,\n\t\t\t\t_intraSub = 0,\n\t\t\t\t_intraTrn = 0,\n\t\t\t\t_intraDel = 0;\n\n\t\t\t// only-digits strings should match exactly, else special rules for short strings\n\t\t\tif (/[^\\d]/.test(p)) {\n\t\t\t\tlet plen = p.length;\n\n\t\t\t\t// prevent junk matches by requiring stricter rules for short terms\n\t\t\t\tif (plen <= 4) {\n\t\t\t\t\tif (plen >= 3) {\n\t\t\t\t\t\t// one swap in non-first char when 3-4 chars\n\t\t\t\t\t\t_intraTrn = Math.min(intraTrn, 1);\n\n\t\t\t\t\t\t// or one insertion when 4 chars\n\t\t\t\t\t\tif (plen == 4)\n\t\t\t\t\t\t\t_intraIns = Math.min(intraIns, 1);\n\t\t\t\t\t}\n\t\t\t\t\t// else exact match when 1-2 chars\n\t\t\t\t}\n\t\t\t\t// use supplied opts\n\t\t\t\telse {\n\t\t\t\t\t_intraSlice = intraSlice;\n\t\t\t\t\t_intraIns = intraIns,\n\t\t\t\t\t_intraSub = intraSub,\n\t\t\t\t\t_intraTrn = intraTrn,\n\t\t\t\t\t_intraDel = intraDel;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tintraSlice: _intraSlice,\n\t\t\t\tintraIns: _intraIns,\n\t\t\t\tintraSub: _intraSub,\n\t\t\t\tintraTrn: _intraTrn,\n\t\t\t\tintraDel: _intraDel,\n\t\t\t};\n\t\t};\n\t}\n\n\tlet withIntraSplit = !!_intraSplit;\n\n\tlet intraSplit = new RegExp(_intraSplit, 'g' + uFlag);\n\tlet interSplit = new RegExp(_interSplit, 'g' + uFlag);\n\n\tlet trimRe = new RegExp('^' + _interSplit + '|' + _interSplit + '$', 'g' + uFlag);\n\tlet contrsRe = new RegExp(intraContr, 'gi' + uFlag);\n\n\tconst split = (needle, keepCase = false) => {\n\t\tlet exacts = [];\n\n\t\tneedle = needle.replace(EXACTS_RE, m => {\n\t\t\texacts.push(m);\n\t\t\treturn EXACT_HERE;\n\t\t});\n\n\t\tneedle = needle.replace(trimRe, '');\n\n\t\tif (!keepCase)\n\t\t\tneedle = toLower(needle);\n\n\t\tif (withIntraSplit)\n\t\t\tneedle = needle.replace(intraSplit, m => m[0] + ' ' + m[1]);\n\n\t\tlet j = 0;\n\t\treturn needle.split(interSplit).filter(t => t != '').map(v => v === EXACT_HERE ? exacts[j++] : v);\n\t};\n\n\tconst NUM_OR_ALPHA_RE = /[^\\d]+|\\d+/g;\n\n\tconst prepQuery = (needle, capt = 0, interOR = false) => {\n\t\t// split on punct, whitespace, num-alpha, and upper-lower boundaries\n\t\tlet parts = split(needle);\n\n\t\tif (parts.length == 0)\n\t\t\treturn [];\n\n\t\t// split out any detected contractions for each term that become required suffixes\n\t\tlet contrs = Array(parts.length).fill('');\n\t\tparts = parts.map((p, pi) => p.replace(contrsRe, m => {\n\t\t\tcontrs[pi] = m;\n\t\t\treturn '';\n\t\t}));\n\n\t\t// array of regexp tpls for each term\n\t\tlet reTpl;\n\n\t\t// allows single mutations within each term\n\t\tif (intraMode == 1) {\n\t\t\treTpl = parts.map((p, pi) => {\n\t\t\t\tif (p[0] === '\"')\n\t\t\t\t\treturn escapeRegExp(p.slice(1, -1));\n\n\t\t\t\tlet reTpl = '';\n\n\t\t\t\t// split into numeric and alpha parts, so numbers are only matched as following punct or alpha boundaries, without swaps or insertions\n\t\t\t\tfor (let m of p.matchAll(NUM_OR_ALPHA_RE)) {\n\t\t\t\t\tlet p = m[0];\n\n\t\t\t\t\tlet {\n\t\t\t\t\t\tintraSlice,\n\t\t\t\t\t\tintraIns,\n\t\t\t\t\t\tintraSub,\n\t\t\t\t\t\tintraTrn,\n\t\t\t\t\t\tintraDel,\n\t\t\t\t\t} = intraRules(p);\n\n\t\t\t\t\tif (intraIns + intraSub + intraTrn + intraDel == 0)\n\t\t\t\t\t\treTpl += p + contrs[pi];\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet [lftIdx, rgtIdx] = intraSlice;\n\t\t\t\t\t\tlet lftChar = p.slice(0, lftIdx); // prefix\n\t\t\t\t\t\tlet rgtChar = p.slice(rgtIdx); // suffix\n\n\t\t\t\t\t\tlet chars = p.slice(lftIdx, rgtIdx);\n\n\t\t\t\t\t\t// neg lookahead to prefer matching 'Test' instead of 'tTest' in ManifestTest or fittest\n\t\t\t\t\t\t// but skip when search term contains leading repetition (aardvark, aaa)\n\t\t\t\t\t\tif (intraIns == 1 && lftChar.length == 1 && lftChar != chars[0])\n\t\t\t\t\t\t\tlftChar += '(?!' + lftChar + ')';\n\n\t\t\t\t\t\tlet numChars = chars.length;\n\n\t\t\t\t\t\tlet variants = [p];\n\n\t\t\t\t\t\t// variants with single char substitutions\n\t\t\t\t\t\tif (intraSub) {\n\t\t\t\t\t\t\tfor (let i = 0; i < numChars; i++)\n\t\t\t\t\t\t\t\tvariants.push(lftChar + chars.slice(0, i) + intraChars + chars.slice(i + 1) + rgtChar);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// variants with single transpositions\n\t\t\t\t\t\tif (intraTrn) {\n\t\t\t\t\t\t\tfor (let i = 0; i < numChars - 1; i++) {\n\t\t\t\t\t\t\t\tif (chars[i] != chars[i+1])\n\t\t\t\t\t\t\t\t\tvariants.push(lftChar + chars.slice(0, i) + chars[i+1] + chars[i] + chars.slice(i + 2) + rgtChar);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// variants with single char omissions\n\t\t\t\t\t\tif (intraDel) {\n\t\t\t\t\t\t\tfor (let i = 0; i < numChars; i++)\n\t\t\t\t\t\t\t\tvariants.push(lftChar + chars.slice(0, i + 1) + '?' + chars.slice(i + 1) + rgtChar);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// variants with single char insertions\n\t\t\t\t\t\tif (intraIns) {\n\t\t\t\t\t\t\tlet intraInsTpl = lazyRepeat(intraChars, 1);\n\n\t\t\t\t\t\t\tfor (let i = 0; i < numChars; i++)\n\t\t\t\t\t\t\t\tvariants.push(lftChar + chars.slice(0, i) + intraInsTpl + chars.slice(i) + rgtChar);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treTpl += '(?:' + variants.join('|') + ')' + contrs[pi];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t//\tconsole.log(reTpl);\n\n\t\t\t\treturn reTpl;\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tlet intraInsTpl = lazyRepeat(intraChars, intraIns);\n\n\t\t\t// capture at char level\n\t\t\tif (capt == 2 && intraIns > 0) {\n\t\t\t\t// sadly, we also have to capture the inter-term junk via parenth-wrapping .*?\n\t\t\t\t// to accum other capture groups' indices for \\b boosting during scoring\n\t\t\t\tintraInsTpl = ')(' + intraInsTpl + ')(';\n\t\t\t}\n\n\t\t\treTpl = parts.map((p, pi) => p[0] === '\"' ? escapeRegExp(p.slice(1, -1)) : p.split('').map((c, i, chars) => {\n\t\t\t\t// neg lookahead to prefer matching 'Test' instead of 'tTest' in ManifestTest or fittest\n\t\t\t\t// but skip when search term contains leading repetition (aardvark, aaa)\n\t\t\t\tif (intraIns == 1 && i == 0 && chars.length > 1 && c != chars[i+1])\n\t\t\t\t\tc += '(?!' + c + ')';\n\n\t\t\t\treturn c;\n\t\t\t}).join(intraInsTpl) + contrs[pi]);\n\t\t}\n\n\t//\tconsole.log(reTpl);\n\n\t\t// this only helps to reduce initial matches early when they can be detected\n\t\t// TODO: might want a mode 3 that excludes _\n\t\tlet preTpl = interLft == 2 ? mode2Tpl : '';\n\t\tlet sufTpl = interRgt == 2 ? mode2Tpl : '';\n\n\t\tlet interCharsTpl = sufTpl + lazyRepeat(opts.interChars, opts.interIns) + preTpl;\n\n\t\t// capture at word level\n\t\tif (capt > 0) {\n\t\t\tif (interOR) {\n\t\t\t\t// this is basically for doing .matchAll() occurence counting and highlighting without needing permuted ooo needles\n\t\t\t\treTpl = preTpl + '(' + reTpl.join(')' + sufTpl + '|' + preTpl + '(') + ')' + sufTpl;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// sadly, we also have to capture the inter-term junk via parenth-wrapping .*?\n\t\t\t\t// to accum other capture groups' indices for \\b boosting during scoring\n\t\t\t\treTpl = '(' + reTpl.join(')(' + interCharsTpl + ')(') + ')';\n\t\t\t\treTpl = '(.??' + preTpl + ')' + reTpl + '(' + sufTpl + '.*)'; // nit: trailing capture here assumes interIns = Inf\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treTpl = reTpl.join(interCharsTpl);\n\t\t\treTpl = preTpl + reTpl + sufTpl;\n\t\t}\n\n\t//\tconsole.log(reTpl);\n\n\t\treturn [new RegExp(reTpl, 'i' + uFlag), parts, contrs];\n\t};\n\n\tconst filter = (haystack, needle, idxs) => {\n\n\t\tlet [query] = prepQuery(needle);\n\n\t\tif (query == null)\n\t\t\treturn null;\n\n\t\tlet out = [];\n\n\t\tif (idxs != null) {\n\t\t\tfor (let i = 0; i < idxs.length; i++) {\n\t\t\t\tlet idx = idxs[i];\n\t\t\t\tquery.test(haystack[idx]) && out.push(idx);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tfor (let i = 0; i < haystack.length; i++)\n\t\t\t\tquery.test(haystack[i]) && out.push(i);\n\t\t}\n\n\t\treturn out;\n\t};\n\n\tlet withIntraBound = !!_intraBound;\n\n\tlet interBound = new RegExp(_interBound, uFlag);\n\tlet intraBound = new RegExp(_intraBound, uFlag);\n\n\tconst info = (idxs, haystack, needle) => {\n\n\t\tlet [query, parts, contrs] = prepQuery(needle, 1);\n\t\tlet partsCased = split(needle, true);\n\t\tlet [queryR] = prepQuery(needle, 2);\n\t\tlet partsLen = parts.length;\n\n\t\tlet _terms = Array(partsLen);\n\t\tlet _termsCased = Array(partsLen);\n\n\t\tfor (let j = 0; j < partsLen; j++) {\n\t\t\tlet part = parts[j];\n\t\t\tlet partCased = partsCased[j];\n\n\t\t\tlet term = part[0] == '\"' ? part.slice(1, -1) : part + contrs[j];\n\t\t\tlet termCased = partCased[0] == '\"' ? partCased.slice(1, -1) : partCased + contrs[j];\n\n\t\t\t_terms[j] = term;\n\t\t\t_termsCased[j] = termCased;\n\t\t}\n\n\t\tlet len = idxs.length;\n\n\t\tlet field = Array(len).fill(0);\n\n\t\tlet info = {\n\t\t\t// idx in haystack\n\t\t\tidx: Array(len),\n\n\t\t\t// start of match\n\t\t\tstart: field.slice(),\n\t\t\t// length of match\n\t\t//\tspan: field.slice(),\n\n\t\t\t// contiguous chars matched\n\t\t\tchars: field.slice(),\n\n\t\t\t// case matched in term (via term.includes(match))\n\t\t\tcases: field.slice(),\n\n\t\t\t// contiguous (no fuzz) and bounded terms (intra=0, lft2/1, rgt2/1)\n\t\t\t// excludes terms that are contiguous but have < 2 bounds (substrings)\n\t\t\tterms: field.slice(),\n\n\t\t\t// cumulative length of unmatched chars (fuzz) within span\n\t\t\tinterIns: field.slice(), // between terms\n\t\t\tintraIns: field.slice(), // within terms\n\n\t\t\t// interLft/interRgt counters\n\t\t\tinterLft2: field.slice(),\n\t\t\tinterRgt2: field.slice(),\n\t\t\tinterLft1: field.slice(),\n\t\t\tinterRgt1: field.slice(),\n\n\t\t\tranges: Array(len),\n\t\t};\n\n\t\t// might discard idxs based on bounds checks\n\t\tlet mayDiscard = interLft == 1 || interRgt == 1;\n\n\t\tlet ii = 0;\n\n\t\tfor (let i = 0; i < idxs.length; i++) {\n\t\t\tlet mhstr = haystack[idxs[i]];\n\n\t\t\t// the matched parts are [full, junk, term, junk, term, junk]\n\t\t\tlet m = mhstr.match(query);\n\n\t\t\t// leading junk\n\t\t\tlet start = m.index + m[1].length;\n\n\t\t\tlet idxAcc = start;\n\t\t//\tlet span = m[0].length;\n\n\t\t\tlet disc = false;\n\t\t\tlet lft2 = 0;\n\t\t\tlet lft1 = 0;\n\t\t\tlet rgt2 = 0;\n\t\t\tlet rgt1 = 0;\n\t\t\tlet chars = 0;\n\t\t\tlet terms = 0;\n\t\t\tlet cases = 0;\n\t\t\tlet inter = 0;\n\t\t\tlet intra = 0;\n\n\t\t\tlet refine = [];\n\n\t\t\tfor (let j = 0, k = 2; j < partsLen; j++, k+=2) {\n\t\t\t\tlet group = toLower(m[k]);\n\t\t\t\tlet term = _terms[j];\n\t\t\t\tlet termCased = _termsCased[j];\n\t\t\t\tlet termLen = term.length;\n\t\t\t\tlet groupLen = group.length;\n\t\t\t\tlet fullMatch = group == term;\n\n\t\t\t\tif (m[k] == termCased)\n\t\t\t\t\tcases++;\n\n\t\t\t\t// this won't handle the case when an exact match exists across the boundary of the current group and the next junk\n\t\t\t\t// e.g. blob,ob when searching for 'bob' but finding the earlier `blob` (with extra insertion)\n\t\t\t\tif (!fullMatch && m[k+1].length >= termLen) {\n\t\t\t\t\t// probe for exact match in inter junk (TODO: maybe even in this matched part?)\n\t\t\t\t\tlet idxOf = toLower(m[k+1]).indexOf(term);\n\n\t\t\t\t\tif (idxOf > -1) {\n\t\t\t\t\t\trefine.push(idxAcc, groupLen, idxOf, termLen);\n\t\t\t\t\t\tidxAcc += refineMatch(m, k, idxOf, termLen);\n\t\t\t\t\t\tgroup = term;\n\t\t\t\t\t\tgroupLen = termLen;\n\t\t\t\t\t\tfullMatch = true;\n\n\t\t\t\t\t\tif (j == 0)\n\t\t\t\t\t\t\tstart = idxAcc;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (mayDiscard || fullMatch) {\n\t\t\t\t\t// does group's left and/or right land on \\b\n\t\t\t\t\tlet lftCharIdx = idxAcc - 1;\n\t\t\t\t\tlet rgtCharIdx = idxAcc + groupLen;\n\n\t\t\t\t\tlet isPre = false;\n\t\t\t\t\tlet isSuf = false;\n\n\t\t\t\t\t// prefix info\n\t\t\t\t\tif (lftCharIdx == -1 || interBound.test(mhstr[lftCharIdx])) {\n\t\t\t\t\t\tfullMatch && lft2++;\n\t\t\t\t\t\tisPre = true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (interLft == 2) {\n\t\t\t\t\t\t\tdisc = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (withIntraBound && intraBound.test(mhstr[lftCharIdx] + mhstr[lftCharIdx + 1])) {\n\t\t\t\t\t\t\tfullMatch && lft1++;\n\t\t\t\t\t\t\tisPre = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif (interLft == 1) {\n\t\t\t\t\t\t\t\t// regexps are eager, so try to improve the match by probing forward inter junk for exact match at a boundary\n\t\t\t\t\t\t\t\tlet junk = m[k+1];\n\t\t\t\t\t\t\t\tlet junkIdx = idxAcc + groupLen;\n\n\t\t\t\t\t\t\t\tif (junk.length >= termLen) {\n\t\t\t\t\t\t\t\t\tlet idxOf = 0;\n\t\t\t\t\t\t\t\t\tlet found = false;\n\t\t\t\t\t\t\t\t\tlet re = new RegExp(term, 'ig' + uFlag);\n\n\t\t\t\t\t\t\t\t\tlet m2;\n\t\t\t\t\t\t\t\t\twhile (m2 = re.exec(junk)) {\n\t\t\t\t\t\t\t\t\t\tidxOf = m2.index;\n\n\t\t\t\t\t\t\t\t\t\tlet charIdx = junkIdx + idxOf;\n\t\t\t\t\t\t\t\t\t\tlet lftCharIdx = charIdx - 1;\n\n\t\t\t\t\t\t\t\t\t\tif (lftCharIdx == -1 || interBound.test(mhstr[lftCharIdx])) {\n\t\t\t\t\t\t\t\t\t\t\tlft2++;\n\t\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (intraBound.test(mhstr[lftCharIdx] + mhstr[charIdx])) {\n\t\t\t\t\t\t\t\t\t\t\tlft1++;\n\t\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (found) {\n\t\t\t\t\t\t\t\t\t\tisPre = true;\n\n\t\t\t\t\t\t\t\t\t\t// identical to exact term refinement pass above\n\t\t\t\t\t\t\t\t\t\trefine.push(idxAcc, groupLen, idxOf, termLen);\n\t\t\t\t\t\t\t\t\t\tidxAcc += refineMatch(m, k, idxOf, termLen);\n\t\t\t\t\t\t\t\t\t\tgroup = term;\n\t\t\t\t\t\t\t\t\t\tgroupLen = termLen;\n\t\t\t\t\t\t\t\t\t\tfullMatch = true;\n\n\t\t\t\t\t\t\t\t\t\tif (j == 0)\n\t\t\t\t\t\t\t\t\t\t\tstart = idxAcc;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (!isPre) {\n\t\t\t\t\t\t\t\t\tdisc = true;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// suffix info\n\t\t\t\t\tif (rgtCharIdx == mhstr.length || interBound.test(mhstr[rgtCharIdx])) {\n\t\t\t\t\t\tfullMatch && rgt2++;\n\t\t\t\t\t\tisSuf = true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (interRgt == 2) {\n\t\t\t\t\t\t\tdisc = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (withIntraBound && intraBound.test(mhstr[rgtCharIdx - 1] + mhstr[rgtCharIdx])) {\n\t\t\t\t\t\t\tfullMatch && rgt1++;\n\t\t\t\t\t\t\tisSuf = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif (interRgt == 1) {\n\t\t\t\t\t\t\t\tdisc = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (fullMatch) {\n\t\t\t\t\t\tchars += termLen;\n\n\t\t\t\t\t\tif (isPre && isSuf)\n\t\t\t\t\t\t\tterms++;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (groupLen > termLen)\n\t\t\t\t\tintra += groupLen - termLen; // intraFuzz\n\n\t\t\t\tif (j > 0)\n\t\t\t\t\tinter += m[k-1].length; // interFuzz\n\n\t\t\t\t// TODO: group here is lowercased, which is okay for length cmp, but not more case-sensitive filts\n\t\t\t\tif (!opts.intraFilt(term, group, idxAcc)) {\n\t\t\t\t\tdisc = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (j < partsLen - 1)\n\t\t\t\t\tidxAcc += groupLen + m[k+1].length;\n\t\t\t}\n\n\t\t\tif (!disc) {\n\t\t\t\tinfo.idx[ii] = idxs[i];\n\t\t\t\tinfo.interLft2[ii] = lft2;\n\t\t\t\tinfo.interLft1[ii] = lft1;\n\t\t\t\tinfo.interRgt2[ii] = rgt2;\n\t\t\t\tinfo.interRgt1[ii] = rgt1;\n\t\t\t\tinfo.chars[ii] = chars;\n\t\t\t\tinfo.terms[ii] = terms;\n\t\t\t\tinfo.cases[ii] = cases;\n\t\t\t\tinfo.interIns[ii] = inter;\n\t\t\t\tinfo.intraIns[ii] = intra;\n\n\t\t\t\tinfo.start[ii] = start;\n\t\t\t//\tinfo.span[ii] = span;\n\n\t\t\t\t// ranges\n\t\t\t\tlet m = mhstr.match(queryR);\n\n\t\t\t\tlet idxAcc = m.index + m[1].length;\n\n\t\t\t\tlet refLen = refine.length;\n\t\t\t\tlet ri = refLen > 0 ? 0 : Infinity;\n\t\t\t\tlet lastRi = refLen - 4;\n\n\t\t\t\tfor (let i = 2; i < m.length;) {\n\t\t\t\t\tlet len = m[i].length;\n\n\t\t\t\t\tif (ri <= lastRi && refine[ri] == idxAcc) {\n\t\t\t\t\t\tlet groupLen = refine[ri+1];\n\t\t\t\t\t\tlet idxOf = refine[ri+2];\n\t\t\t\t\t\tlet termLen = refine[ri+3];\n\n\t\t\t\t\t\t// advance to end of original (full) group match that includes intra-junk\n\t\t\t\t\t\tlet j = i;\n\t\t\t\t\t\tlet v = '';\n\t\t\t\t\t\tfor (let _len = 0; _len < groupLen; j++) {\n\t\t\t\t\t\t\tv += m[j];\n\t\t\t\t\t\t\t_len += m[j].length;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tm.splice(i, j - i, v);\n\n\t\t\t\t\t\tidxAcc += refineMatch(m, i, idxOf, termLen);\n\n\t\t\t\t\t\tri += 4;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tidxAcc += len;\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tidxAcc = m.index + m[1].length;\n\n\t\t\t\tlet ranges = info.ranges[ii] = [];\n\t\t\t\tlet from = idxAcc;\n\t\t\t\tlet to = idxAcc;\n\n\t\t\t\tfor (let i = 2; i < m.length; i++) {\n\t\t\t\t\tlet len = m[i].length;\n\n\t\t\t\t\tidxAcc += len;\n\n\t\t\t\t\tif (i % 2 == 0)\n\t\t\t\t\t\tto = idxAcc;\n\t\t\t\t\telse if (len > 0) {\n\t\t\t\t\t\tranges.push(from, to);\n\t\t\t\t\t\tfrom = to = idxAcc;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (to > from)\n\t\t\t\t\tranges.push(from, to);\n\n\t\t\t\tii++;\n\t\t\t}\n\t\t}\n\n\t\t// trim arrays\n\t\tif (ii < idxs.length) {\n\t\t\tfor (let k in info)\n\t\t\t\tinfo[k] = info[k].slice(0, ii);\n\t\t}\n\n\t\treturn info;\n\t};\n\n\tconst refineMatch = (m, k, idxInNext, termLen) => {\n\t\t// shift the current group into the prior junk\n\t\tlet prepend = m[k] + m[k+1].slice(0, idxInNext);\n\t\tm[k-1] += prepend;\n\t\tm[k] = m[k+1].slice(idxInNext, idxInNext + termLen);\n\t\tm[k+1] = m[k+1].slice(idxInNext + termLen);\n\t\treturn prepend.length;\n\t};\n\n\tconst OOO_TERMS_LIMIT = 5;\n\n\t// returns [idxs, info, order]\n\tconst _search = (haystack, needle, outOfOrder, infoThresh = 1e3, preFiltered) => {\n\t\toutOfOrder = !outOfOrder ? 0 : outOfOrder === true ? OOO_TERMS_LIMIT : outOfOrder;\n\n\t\tlet needles = null;\n\t\tlet matches = null;\n\n\t\tlet negs = [];\n\n\t\tneedle = needle.replace(NEGS_RE, m => {\n\t\t\tlet neg = m.trim().slice(1);\n\n\t\t\tneg = neg[0] === '\"' ? escapeRegExp(neg.slice(1,-1)) : neg.replace(PUNCT_RE, '');\n\n\t\t\tif (neg != '')\n\t\t\t\tnegs.push(neg);\n\n\t\t\treturn '';\n\t\t});\n\n\t\tlet terms = split(needle);\n\n\t\tlet negsRe;\n\n\t\tif (negs.length > 0) {\n\t\t\tnegsRe = new RegExp(negs.join('|'), 'i' + uFlag);\n\n\t\t\tif (terms.length == 0) {\n\t\t\t\tlet idxs = [];\n\n\t\t\t\tfor (let i = 0; i < haystack.length; i++) {\n\t\t\t\t\tif (!negsRe.test(haystack[i]))\n\t\t\t\t\t\tidxs.push(i);\n\t\t\t\t}\n\n\t\t\t\treturn [idxs, null, null];\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// abort search (needle is empty after pre-processing, e.g. no alpha-numeric chars)\n\t\t\tif (terms.length == 0)\n\t\t\t\treturn [null, null, null];\n\t\t}\n\n\t//\tconsole.log(negs);\n\t//\tconsole.log(needle);\n\n\t\tif (outOfOrder > 0) {\n\t\t\t// since uFuzzy is an AND-based search, we can iteratively pre-reduce the haystack by searching\n\t\t\t// for each term in isolation before running permutations on what's left.\n\t\t\t// this is a major perf win. e.g. searching \"test man ger pp a\" goes from 570ms -> 14ms\n\t\t\tlet terms = split(needle);\n\n\t\t\tif (terms.length > 1) {\n\t\t\t\t// longest -> shortest\n\t\t\t\tlet terms2 = terms.slice().sort((a, b) => b.length - a.length);\n\n\t\t\t\tfor (let ti = 0; ti < terms2.length; ti++) {\n\t\t\t\t\t// no haystack item contained all terms\n\t\t\t\t\tif (preFiltered?.length == 0)\n\t\t\t\t\t\treturn [[], null, null];\n\n\t\t\t\t\tpreFiltered = filter(haystack, terms2[ti], preFiltered);\n\t\t\t\t}\n\n\t\t\t\t// avoid combinatorial explosion by limiting outOfOrder to 5 terms (120 max searches)\n\t\t\t\t// fall back to just filter() otherwise\n\t\t\t\tif (terms.length > outOfOrder)\n\t\t\t\t\treturn [preFiltered, null, null];\n\n\t\t\t\tneedles = permute(terms).map(perm => perm.join(' '));\n\n\t\t\t\t// filtered matches for each needle excluding same matches for prior needles\n\t\t\t\tmatches = [];\n\n\t\t\t\t// keeps track of already-matched idxs to skip in follow-up permutations\n\t\t\t\tlet matchedIdxs = new Set();\n\n\t\t\t\tfor (let ni = 0; ni < needles.length; ni++) {\n\t\t\t\t\tif (matchedIdxs.size < preFiltered.length) {\n\t\t\t\t\t\t// filter further for this needle, exclude already-matched\n\t\t\t\t\t\tlet preFiltered2 = preFiltered.filter(idx => !matchedIdxs.has(idx));\n\n\t\t\t\t\t\tlet matched = filter(haystack, needles[ni], preFiltered2);\n\n\t\t\t\t\t\tfor (let j = 0; j < matched.length; j++)\n\t\t\t\t\t\t\tmatchedIdxs.add(matched[j]);\n\n\t\t\t\t\t\tmatches.push(matched);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tmatches.push([]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// interOR\n\t//\tconsole.log(prepQuery(needle, 1, null, true));\n\n\t\t// non-ooo or ooo w/single term\n\t\tif (needles == null) {\n\t\t\tneedles = [needle];\n\t\t\tmatches = [preFiltered?.length > 0 ? preFiltered : filter(haystack, needle)];\n\t\t}\n\n\t\tlet retInfo = null;\n\t\tlet retOrder = null;\n\n\t\tif (negs.length > 0)\n\t\t\tmatches = matches.map(idxs => idxs.filter(idx => !negsRe.test(haystack[idx])));\n\n\t\tlet matchCount = matches.reduce((acc, idxs) => acc + idxs.length, 0);\n\n\t\t// rank, sort, concat\n\t\tif (matchCount <= infoThresh) {\n\t\t\tretInfo = {};\n\t\t\tretOrder = [];\n\n\t\t\tfor (let ni = 0; ni < matches.length; ni++) {\n\t\t\t\tlet idxs = matches[ni];\n\n\t\t\t\tif (idxs == null || idxs.length == 0)\n\t\t\t\t\tcontinue;\n\n\t\t\t\tlet needle = needles[ni];\n\t\t\t\tlet _info = info(idxs, haystack, needle);\n\t\t\t\tlet order = opts.sort(_info, haystack, needle, compare);\n\n\t\t\t\t// offset idxs for concat'ing infos\n\t\t\t\tif (ni > 0) {\n\t\t\t\t\tfor (let i = 0; i < order.length; i++)\n\t\t\t\t\t\torder[i] += retOrder.length;\n\t\t\t\t}\n\n\t\t\t\tfor (let k in _info)\n\t\t\t\t\tretInfo[k] = (retInfo[k] ?? []).concat(_info[k]);\n\n\t\t\t\tretOrder = retOrder.concat(order);\n\t\t\t}\n\t\t}\n\n\t\treturn [\n\t\t\t[].concat(...matches),\n\t\t\tretInfo,\n\t\t\tretOrder,\n\t\t];\n\t};\n\n\treturn {\n\t\tsearch: (...args) => {\n\t\t\tlet out = _search(...args);\n\t\t\treturn out;\n\t\t},\n\t\tsplit,\n\t\tfilter,\n\t\tinfo,\n\t\tsort: opts.sort,\n\t};\n}\n\nconst latinize = (() => {\n\tlet accents = {\n\t\tA: 'ÁÀÃÂÄĄ',\n\t\ta: 'áàãâäą',\n\t\tE: 'ÉÈÊËĖ',\n\t\te: 'éèêëę',\n\t\tI: 'ÍÌÎÏĮ',\n\t\ti: 'íìîïį',\n\t\tO: 'ÓÒÔÕÖ',\n\t\to: 'óòôõö',\n\t\tU: 'ÚÙÛÜŪŲ',\n\t\tu: 'úùûüūų',\n\t\tC: 'ÇČĆ',\n\t\tc: 'çčć',\n\t\tL: 'Ł',\n\t\tl: 'ł',\n\t\tN: 'ÑŃ',\n\t\tn: 'ñń',\n\t\tS: 'ŠŚ',\n\t\ts: 'šś',\n\t\tZ: 'ŻŹ',\n\t\tz: 'żź'\n\t};\n\n\tlet accentsMap = new Map();\n\tlet accentsTpl = '';\n\n\tfor (let r in accents) {\n\t\taccents[r].split('').forEach(a => {\n\t\t\taccentsTpl += a;\n\t\t\taccentsMap.set(a, r);\n\t\t});\n\t}\n\n\tlet accentsRe = new RegExp(`[${accentsTpl}]`, 'g');\n\tlet replacer = m => accentsMap.get(m);\n\n\treturn strings => {\n\t\tif (typeof strings == 'string')\n\t\t\treturn strings.replace(accentsRe, replacer);\n\n\t\tlet out = Array(strings.length);\n\t\tfor (let i = 0; i < strings.length; i++)\n\t\t\tout[i] = strings[i].replace(accentsRe, replacer);\n\t\treturn out;\n\t};\n})();\n\n// https://stackoverflow.com/questions/9960908/permutations-in-javascript/37580979#37580979\nfunction permute(arr) {\n\tarr = arr.slice();\n\n\tlet length = arr.length,\n\t\tresult = [arr.slice()],\n\t\tc = new Array(length).fill(0),\n\t\ti = 1, k, p;\n\n\twhile (i < length) {\n\t\tif (c[i] < i) {\n\t\t\tk = i % 2 && c[i];\n\t\t\tp = arr[i];\n\t\t\tarr[i] = arr[k];\n\t\t\tarr[k] = p;\n\t\t\t++c[i];\n\t\t\ti = 1;\n\t\t\tresult.push(arr.slice());\n\t\t} else {\n\t\t\tc[i] = 0;\n\t\t\t++i;\n\t\t}\n\t}\n\n\treturn result;\n}\n\nconst _mark = (part, matched) => matched ? `${part}` : part;\nconst _append = (acc, part) => acc + part;\n\nfunction highlight(str, ranges, mark = _mark, accum = '', append = _append) {\n\taccum = append(accum, mark(str.substring(0, ranges[0]), false)) ?? accum;\n\n\tfor (let i = 0; i < ranges.length; i+=2) {\n\t\tlet fr = ranges[i];\n\t\tlet to = ranges[i+1];\n\n\t\taccum = append(accum, mark(str.substring(fr, to), true)) ?? accum;\n\n\t\tif (i < ranges.length - 3)\n\t\t\taccum = append(accum, mark(str.substring(ranges[i+1], ranges[i+2]), false)) ?? accum;\n\t}\n\n\taccum = append(accum, mark(str.substring(ranges[ranges.length - 1]), false)) ?? accum;\n\n\treturn accum;\n}\n\nuFuzzy.latinize = latinize;\nuFuzzy.permute = arr => {\n\tlet idxs = permute([...Array(arr.length).keys()]).sort((a,b) => {\n\t\tfor (let i = 0; i < a.length; i++) {\n\t\t\tif (a[i] != b[i])\n\t\t\t\treturn a[i] - b[i];\n\t\t}\n\t\treturn 0;\n\t});\n\n\treturn idxs.map(pi => pi.map(i => arr[i]));\n};\nuFuzzy.highlight = highlight;\n\nexport { uFuzzy as default };\n","import uFuzzy from '@leeoniya/ufuzzy';\n\nconst REGEXP_NON_ASCII = /[^ -~]/m;\nconst REGEXP_ONLY_SYMBOLS = /^[\\x21-\\x2F\\x3A-\\x40\\x5B-\\x60\\x7B-\\x7E]+$/m;\nconst outOfOrderLimit = 5;\nconst maxNeedleLength = 25;\nconst maxFuzzyTerms = 5;\nconst rankThreshold = 1e4;\nconst uf = new uFuzzy({ intraMode: 1 });\nfunction fuzzyFind(options, haystack, needle) {\n let matches = [];\n if (needle === \"\") {\n matches = options;\n } else if (\n // contains non-ascii\n REGEXP_NON_ASCII.test(needle) || // is only ascii symbols (operators)\n REGEXP_ONLY_SYMBOLS.test(needle) || // too long (often copy-paste from somewhere)\n needle.length > maxNeedleLength || uf.split(needle).length > maxFuzzyTerms\n ) {\n for (let i = 0; i < haystack.length; i++) {\n let item = haystack[i];\n if (item.includes(needle)) {\n matches.push(options[i]);\n }\n }\n } else {\n const [idxs, info, order] = uf.search(haystack, needle, outOfOrderLimit, rankThreshold);\n if (idxs == null ? void 0 : idxs.length) {\n if (info && order) {\n matches = order.map((idx) => options[info.idx[idx]]);\n } else {\n matches = idxs.map((idx) => options[idx]);\n }\n }\n }\n return matches;\n}\n\nexport { fuzzyFind };\n//# sourceMappingURL=filter.js.map\n","import { ALL_VARIABLE_TEXT, ALL_VARIABLE_VALUE } from '../constants.js';\nimport { fuzzyFind } from '../filter.js';\n\nfunction getOptionSearcher(options, includeAll = false) {\n let allOptions = options;\n if (includeAll) {\n allOptions = [{ value: ALL_VARIABLE_VALUE, label: ALL_VARIABLE_TEXT }, ...allOptions];\n }\n const haystack = allOptions.map((o) => o.label);\n return (search) => fuzzyFind(allOptions, haystack, search);\n}\n\nexport { getOptionSearcher };\n//# sourceMappingURL=getOptionSearcher.js.map\n","import { t } from '@grafana/i18n';\nimport { isArray } from 'lodash';\nimport React, { useMemo, useState, useEffect } from 'react';\nimport { useTheme2, getSelectStyles, useStyles2, Checkbox, MultiSelect, Select, ToggleAllState } from '@grafana/ui';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { css, cx } from '@emotion/css';\nimport { getOptionSearcher } from './getOptionSearcher.js';\nimport { sceneGraph } from '../../core/sceneGraph/index.js';\nimport { VARIABLE_VALUE_CHANGED_INTERACTION } from '../../behaviors/SceneRenderProfiler.js';\n\nconst filterNoOp = () => true;\nconst filterAll = (v) => v.value !== \"$__all\";\nconst determineToggleAllState = (selectedValues, options) => {\n if (selectedValues.length === options.filter(filterAll).length) {\n return ToggleAllState.allSelected;\n } else if (selectedValues.length === 0 || selectedValues.length === 1 && selectedValues[0] && selectedValues[0].value === \"$__all\") {\n return ToggleAllState.noneSelected;\n } else {\n return ToggleAllState.indeterminate;\n }\n};\nfunction toSelectableValue(value, label) {\n return {\n value,\n label: label != null ? label : String(value)\n };\n}\nfunction VariableValueSelect({ model, state }) {\n const { value, text, key, options, includeAll, isReadOnly, allowCustomValue = true } = state;\n const [inputValue, setInputValue] = useState(\"\");\n const [hasCustomValue, setHasCustomValue] = useState(false);\n const selectValue = toSelectableValue(value, String(text));\n const queryController = sceneGraph.getQueryController(model);\n const optionSearcher = useMemo(() => getOptionSearcher(options, includeAll), [options, includeAll]);\n const onInputChange = (value2, { action }) => {\n if (action === \"input-change\") {\n setInputValue(value2);\n if (model.onSearchChange) {\n model.onSearchChange(value2);\n }\n return value2;\n }\n return value2;\n };\n const filteredOptions = optionSearcher(inputValue);\n const onOpenMenu = () => {\n if (hasCustomValue) {\n setInputValue(String(text));\n }\n };\n const onCloseMenu = () => {\n setInputValue(\"\");\n };\n return /* @__PURE__ */ React.createElement(\n Select,\n {\n id: key,\n isValidNewOption: (inputValue2) => inputValue2.trim().length > 0,\n placeholder: t(\"grafana-scenes.variables.variable-value-select.placeholder-select-value\", \"Select value\"),\n width: \"auto\",\n disabled: isReadOnly,\n value: selectValue,\n inputValue,\n allowCustomValue,\n virtualized: true,\n filterOption: filterNoOp,\n tabSelectsValue: false,\n onInputChange,\n onOpenMenu,\n onCloseMenu,\n options: filteredOptions,\n \"data-testid\": selectors.pages.Dashboard.SubMenu.submenuItemValueDropDownValueLinkTexts(`${value}`),\n onChange: (newValue) => {\n model.changeValueTo(newValue.value, newValue.label, true);\n queryController == null ? void 0 : queryController.startProfile(VARIABLE_VALUE_CHANGED_INTERACTION);\n if (hasCustomValue !== newValue.__isNew__) {\n setHasCustomValue(newValue.__isNew__);\n }\n }\n }\n );\n}\nfunction VariableValueSelectMulti({\n model,\n state\n}) {\n const {\n value,\n options,\n key,\n maxVisibleValues,\n noValueOnClear,\n includeAll,\n isReadOnly,\n allowCustomValue = true\n } = state;\n const arrayValue = useMemo(() => isArray(value) ? value : [value], [value]);\n const [uncommittedValue, setUncommittedValue] = useState(arrayValue);\n const [inputValue, setInputValue] = useState(\"\");\n const optionSearcher = useMemo(() => getOptionSearcher(options, includeAll), [options, includeAll]);\n useEffect(() => {\n setUncommittedValue(arrayValue);\n }, [arrayValue]);\n const onInputChange = (value2, { action }) => {\n if (action === \"input-change\") {\n setInputValue(value2);\n if (model.onSearchChange) {\n model.onSearchChange(value2);\n }\n return value2;\n }\n if (action === \"input-blur\") {\n setInputValue(\"\");\n return \"\";\n }\n return inputValue;\n };\n const placeholder = options.length > 0 ? \"Select value\" : \"\";\n const filteredOptions = optionSearcher(inputValue);\n return /* @__PURE__ */ React.createElement(\n MultiSelect,\n {\n id: key,\n placeholder,\n width: \"auto\",\n inputValue,\n disabled: isReadOnly,\n value: uncommittedValue,\n noMultiValueWrap: true,\n maxVisibleValues: maxVisibleValues != null ? maxVisibleValues : 5,\n tabSelectsValue: false,\n virtualized: true,\n allowCustomValue,\n toggleAllOptions: {\n enabled: true,\n optionsFilter: filterAll,\n determineToggleAllState\n },\n options: filteredOptions,\n closeMenuOnSelect: false,\n components: { Option: OptionWithCheckbox },\n isClearable: true,\n hideSelectedOptions: false,\n onInputChange,\n onBlur: () => {\n model.changeValueTo(uncommittedValue, void 0, true);\n },\n filterOption: filterNoOp,\n \"data-testid\": selectors.pages.Dashboard.SubMenu.submenuItemValueDropDownValueLinkTexts(`${uncommittedValue}`),\n onChange: (newValue, action) => {\n if (action.action === \"clear\" && noValueOnClear) {\n model.changeValueTo([], void 0, true);\n }\n setUncommittedValue(newValue.map((x) => x.value));\n }\n }\n );\n}\nconst OptionWithCheckbox = ({\n children,\n data,\n innerProps,\n innerRef,\n isFocused,\n isSelected,\n indeterminate,\n renderOptionLabel\n}) => {\n var _a;\n const { onMouseMove, onMouseOver, ...rest } = innerProps;\n const theme = useTheme2();\n const selectStyles = getSelectStyles(theme);\n const optionStyles = useStyles2(getOptionStyles);\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n ref: innerRef,\n className: cx(selectStyles.option, isFocused && selectStyles.optionFocused),\n ...rest,\n \"data-testid\": \"data-testid Select option\",\n title: data.title\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: optionStyles.checkbox }, /* @__PURE__ */ React.createElement(Checkbox, { indeterminate, value: isSelected })),\n /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: selectStyles.optionBody,\n \"data-testid\": selectors.pages.Dashboard.SubMenu.submenuItemValueDropDownOptionTexts(\n (_a = data.label) != null ? _a : String(data.value)\n )\n },\n /* @__PURE__ */ React.createElement(\"span\", null, children)\n )\n );\n};\nOptionWithCheckbox.displayName = \"SelectMenuOptions\";\nconst getOptionStyles = (theme) => ({\n checkbox: css({\n marginRight: theme.spacing(2)\n })\n});\nfunction MultiOrSingleValueSelect({ model }) {\n const state = model.useState();\n if (state.isMulti) {\n return /* @__PURE__ */ React.createElement(VariableValueSelectMulti, { model, state });\n } else {\n return /* @__PURE__ */ React.createElement(VariableValueSelect, { model, state });\n }\n}\n\nexport { MultiOrSingleValueSelect, OptionWithCheckbox, VariableValueSelect, VariableValueSelectMulti, toSelectableValue };\n//# sourceMappingURL=VariableValueSelect.js.map\n","import { toUrlCommaDelimitedString, unescapeUrlDelimiters } from '../utils.js';\n\nclass GroupByVariableUrlSyncHandler {\n constructor(_sceneObject) {\n this._sceneObject = _sceneObject;\n this._nextChangeShouldAddHistoryStep = false;\n }\n getRestorableKey() {\n return `restorable-var-${this._sceneObject.state.name}`;\n }\n getKey() {\n return `var-${this._sceneObject.state.name}`;\n }\n getKeys() {\n if (this._sceneObject.state.skipUrlSync) {\n return [];\n }\n return [this.getKey(), this.getRestorableKey()];\n }\n getUrlState() {\n if (this._sceneObject.state.skipUrlSync) {\n return {};\n }\n return {\n [this.getKey()]: toUrlValues(this._sceneObject.state.value, this._sceneObject.state.text),\n [this.getRestorableKey()]: this._sceneObject.state.defaultValue ? this._sceneObject.state.restorable ? \"true\" : \"false\" : null\n };\n }\n updateFromUrl(values) {\n let urlValue = values[this.getKey()];\n let restorableValue = values[this.getRestorableKey()];\n if (urlValue != null) {\n if (!this._sceneObject.isActive) {\n this._sceneObject.skipNextValidation = true;\n }\n const { values: values2, texts } = fromUrlValues(urlValue);\n if (this._sceneObject.state.defaultValue && (restorableValue === \"false\" || restorableValue === void 0)) {\n return;\n }\n if (restorableValue === \"false\") {\n this._sceneObject.changeValueTo([], [], false);\n return;\n }\n this._sceneObject.changeValueTo(values2, texts);\n }\n }\n performBrowserHistoryAction(callback) {\n this._nextChangeShouldAddHistoryStep = true;\n callback();\n this._nextChangeShouldAddHistoryStep = false;\n }\n shouldCreateHistoryStep(values) {\n return this._nextChangeShouldAddHistoryStep;\n }\n}\nfunction toUrlValues(values, texts) {\n values = Array.isArray(values) ? values : [values];\n texts = Array.isArray(texts) ? texts : [texts];\n return values.map((value, idx) => {\n if (value === void 0 || value === null) {\n return \"\";\n }\n value = String(value);\n let text = texts[idx];\n text = text === void 0 || text === null ? value : String(text);\n return toUrlCommaDelimitedString(value, text);\n });\n}\nfunction fromUrlValues(urlValues) {\n urlValues = Array.isArray(urlValues) ? urlValues : [urlValues];\n return urlValues.reduce(\n (acc, urlValue) => {\n const [value, label] = (urlValue != null ? urlValue : \"\").split(\",\");\n acc.values.push(unescapeUrlDelimiters(value));\n acc.texts.push(unescapeUrlDelimiters(label != null ? label : value));\n return acc;\n },\n {\n values: [],\n texts: []\n }\n );\n}\n\nexport { GroupByVariableUrlSyncHandler };\n//# sourceMappingURL=GroupByVariableUrlSyncHandler.js.map\n","import { isFiltersRequestEnricher } from '../core/types.js';\n\nfunction getEnrichedFiltersRequest(sourceRunner) {\n const root = sourceRunner.getRoot();\n if (isFiltersRequestEnricher(root)) {\n return root.enrichFiltersRequest(sourceRunner);\n }\n return null;\n}\n\nexport { getEnrichedFiltersRequest };\n//# sourceMappingURL=getEnrichedFiltersRequest.js.map\n","var __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), member.set(obj, value), value);\nvar _value;\nclass SafeSerializableSceneObject {\n constructor(value) {\n __privateAdd(this, _value);\n this.text = \"__sceneObject\";\n this.valueOf = () => {\n return __privateGet(this, _value);\n };\n __privateSet(this, _value, value);\n }\n toString() {\n return void 0;\n }\n get value() {\n return this;\n }\n}\n_value = new WeakMap();\n\nexport { SafeSerializableSceneObject };\n//# sourceMappingURL=SafeSerializableSceneObject.js.map\n","import { config } from '@grafana/runtime';\nimport { SafeSerializableSceneObject } from './SafeSerializableSceneObject.js';\n\nfunction shouldWrapInSafeSerializableSceneObject(grafanaVersion) {\n const pattern = /^(\\d+)\\.(\\d+)\\.(\\d+)/;\n const match = grafanaVersion.match(pattern);\n if (!match) {\n return false;\n }\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n if (major === 11) {\n return minor === 0 && patch >= 4 || minor === 1 && patch >= 2 || minor > 1;\n }\n if (major === 10) {\n return minor === 4 && patch >= 8 || minor >= 5;\n }\n return major > 11;\n}\nfunction wrapInSafeSerializableSceneObject(sceneObject) {\n const version = config.buildInfo.version;\n if (shouldWrapInSafeSerializableSceneObject(version)) {\n return new SafeSerializableSceneObject(sceneObject);\n }\n return { value: sceneObject, text: \"__sceneObject\" };\n}\n\nexport { shouldWrapInSafeSerializableSceneObject, wrapInSafeSerializableSceneObject };\n//# sourceMappingURL=wrapInSafeSerializableSceneObject.js.map\n","import { t } from '@grafana/i18n';\nimport React from 'react';\nimport { useTheme2, getInputStyles, IconButton, Tooltip, Icon } from '@grafana/ui';\nimport { isArray } from 'lodash';\nimport { css, cx } from '@emotion/css';\n\nfunction DefaultGroupByCustomIndicatorContainer(props) {\n const { model } = props;\n const theme = useTheme2();\n const styles = getStyles(theme);\n const inputStyles = getInputStyles({ theme, invalid: false });\n const value = isArray(model.state.value) ? model.state.value : model.state.value ? [model.state.value] : [];\n let buttons = [];\n if (value && value.length) {\n buttons.push(\n /* @__PURE__ */ React.createElement(\n IconButton,\n {\n \"aria-label\": t(\"grafana-scenes.variables.default-group-by-custom-indicator-container.aria-label-clear\", \"clear\"),\n key: \"clear\",\n name: \"times\",\n size: \"md\",\n className: styles.clearIcon,\n onClick: (e) => {\n model.changeValueTo([], void 0, true);\n if (model.checkIfRestorable([])) {\n model.setState({ restorable: true });\n }\n }\n }\n )\n );\n }\n if (model.state.restorable) {\n buttons.push(\n /* @__PURE__ */ React.createElement(\n IconButton,\n {\n onClick: (e) => {\n props.model.restoreDefaultValues();\n },\n onKeyDownCapture: (e) => {\n if (e.key === \"Enter\") {\n props.model.restoreDefaultValues();\n }\n },\n key: \"restore\",\n name: \"history\",\n size: \"md\",\n className: styles.clearIcon,\n tooltip: t(\n \"grafana-scenes.variables.default-group-by-custom-indicator-container.tooltip-restore-groupby-set-by-this-dashboard\",\n \"Restore groupby set by this dashboard.\"\n )\n }\n )\n );\n }\n if (!model.state.restorable) {\n buttons.push(\n /* @__PURE__ */ React.createElement(\n Tooltip,\n {\n key: \"tooltip\",\n content: t(\n \"grafana-scenes.variables.default-group-by-custom-indicator-container.tooltip\",\n \"Applied by default in this dashboard. If edited, it carries over to other dashboards.\"\n ),\n placement: \"bottom\"\n },\n /* @__PURE__ */ React.createElement(Icon, { name: \"info-circle\", size: \"md\" })\n )\n );\n }\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n onMouseDown: (e) => {\n e.preventDefault();\n e.stopPropagation();\n },\n className: cx(\n inputStyles.suffix,\n css({\n position: \"relative\"\n })\n )\n },\n buttons\n );\n}\nconst getStyles = (theme) => ({\n clearIcon: css({\n color: theme.colors.action.disabledText,\n cursor: \"pointer\",\n \"&:hover:before\": {\n backgroundColor: \"transparent\"\n },\n \"&:hover\": {\n color: theme.colors.text.primary\n }\n })\n});\n\nexport { DefaultGroupByCustomIndicatorContainer };\n//# sourceMappingURL=DefaultGroupByCustomIndicatorContainer.js.map\n","import { t } from '@grafana/i18n';\nimport React, { useMemo, useState, useEffect } from 'react';\nimport { allActiveGroupByVariables } from './findActiveGroupByVariablesByUid.js';\nimport { sceneGraph } from '../../core/sceneGraph/index.js';\nimport { MultiValueVariable } from '../variants/MultiValueVariable.js';\nimport { lastValueFrom, map, of, from, mergeMap, tap, take } from 'rxjs';\nimport { getDataSource } from '../../utils/getDataSource.js';\nimport { MultiSelect, Select } from '@grafana/ui';\nimport { isArray, isEqual } from 'lodash';\nimport { handleOptionGroups, dataFromResponse, getQueriesForVariables, responseHasError } from '../utils.js';\nimport { OptionWithCheckbox } from '../components/VariableValueSelect.js';\nimport { GroupByVariableUrlSyncHandler } from './GroupByVariableUrlSyncHandler.js';\nimport { getOptionSearcher } from '../components/getOptionSearcher.js';\nimport { getEnrichedFiltersRequest } from '../getEnrichedFiltersRequest.js';\nimport { wrapInSafeSerializableSceneObject } from '../../utils/wrapInSafeSerializableSceneObject.js';\nimport { DefaultGroupByCustomIndicatorContainer } from './DefaultGroupByCustomIndicatorContainer.js';\n\nclass GroupByVariable extends MultiValueVariable {\n constructor(initialState) {\n super({\n isMulti: true,\n name: \"\",\n value: [],\n text: [],\n options: [],\n datasource: null,\n baseFilters: [],\n applyMode: \"auto\",\n layout: \"horizontal\",\n type: \"groupby\",\n ...initialState,\n noValueOnClear: true\n });\n this.isLazy = true;\n this._urlSync = new GroupByVariableUrlSyncHandler(this);\n this._activationHandler = () => {\n if (this.state.defaultValue) {\n if (this.checkIfRestorable(this.state.value)) {\n this.setState({ restorable: true });\n }\n }\n return () => {\n if (this.state.defaultValue) {\n this.restoreDefaultValues();\n }\n };\n };\n /**\n * Get possible keys given current filters. Do not call from plugins directly\n */\n this._getKeys = async (ds) => {\n var _a, _b, _c;\n const override = await ((_b = (_a = this.state).getTagKeysProvider) == null ? void 0 : _b.call(_a, this, null));\n if (override && override.replace) {\n return override.values;\n }\n if (this.state.defaultOptions) {\n return this.state.defaultOptions.concat(dataFromResponse((_c = override == null ? void 0 : override.values) != null ? _c : []));\n }\n if (!ds.getTagKeys) {\n return [];\n }\n const queries = getQueriesForVariables(this);\n const otherFilters = this.state.baseFilters || [];\n const timeRange = sceneGraph.getTimeRange(this).state.value;\n const response = await ds.getTagKeys({\n filters: otherFilters,\n queries,\n timeRange,\n scopes: sceneGraph.getScopes(this),\n ...getEnrichedFiltersRequest(this)\n });\n if (responseHasError(response)) {\n this.setState({ error: response.error.message });\n }\n let keys = dataFromResponse(response);\n if (override) {\n keys = keys.concat(dataFromResponse(override.values));\n }\n const tagKeyRegexFilter = this.state.tagKeyRegexFilter;\n if (tagKeyRegexFilter) {\n keys = keys.filter((f) => f.text.match(tagKeyRegexFilter));\n }\n return keys;\n };\n if (this.state.defaultValue) {\n this.changeValueTo(this.state.defaultValue.value, this.state.defaultValue.text, false);\n }\n if (this.state.applyMode === \"auto\") {\n this.addActivationHandler(() => {\n allActiveGroupByVariables.add(this);\n return () => allActiveGroupByVariables.delete(this);\n });\n }\n this.addActivationHandler(this._activationHandler);\n }\n validateAndUpdate() {\n return this.getValueOptions({}).pipe(\n map((options) => {\n this._updateValueGivenNewOptions(options);\n return {};\n })\n );\n }\n _updateValueGivenNewOptions(options) {\n const { value: currentValue, text: currentText } = this.state;\n const stateUpdate = {\n options,\n loading: false,\n value: currentValue != null ? currentValue : [],\n text: currentText != null ? currentText : []\n };\n this.setState(stateUpdate);\n }\n getValueOptions(args) {\n if (this.state.defaultOptions) {\n return of(\n this.state.defaultOptions.map((o) => ({\n label: o.text,\n value: String(o.value),\n group: o.group\n }))\n );\n }\n this.setState({ loading: true, error: null });\n return from(\n getDataSource(this.state.datasource, {\n __sceneObject: wrapInSafeSerializableSceneObject(this)\n })\n ).pipe(\n mergeMap((ds) => {\n return from(this._getKeys(ds)).pipe(\n tap((response) => {\n if (responseHasError(response)) {\n this.setState({ error: response.error.message });\n }\n }),\n map((response) => dataFromResponse(response)),\n take(1),\n mergeMap((data) => {\n const a = data.map((i) => {\n return {\n label: i.text,\n value: i.value ? String(i.value) : i.text,\n group: i.group\n };\n });\n return of(a);\n })\n );\n })\n );\n }\n // This method is related to the defaultValue property. We check if the current value\n // is different from the default value. If it is, the groupBy will show a button\n // allowing the user to restore the default values.\n checkIfRestorable(values) {\n var _a, _b, _c, _d;\n const originalValues = isArray((_a = this.state.defaultValue) == null ? void 0 : _a.value) ? (_b = this.state.defaultValue) == null ? void 0 : _b.value : ((_c = this.state.defaultValue) == null ? void 0 : _c.value) ? [(_d = this.state.defaultValue) == null ? void 0 : _d.value] : [];\n const vals = isArray(values) ? values : [values];\n if (vals.length !== originalValues.length) {\n return true;\n }\n return !isEqual(vals, originalValues);\n }\n restoreDefaultValues() {\n this.setState({ restorable: false });\n if (!this.state.defaultValue) {\n return;\n }\n this.changeValueTo(this.state.defaultValue.value, this.state.defaultValue.text, true);\n }\n /**\n * Allows clearing the value of the variable to an empty value. Overrides default behavior of a MultiValueVariable\n */\n getDefaultMultiState(options) {\n return { value: [], text: [] };\n }\n}\nGroupByVariable.Component = GroupByVariableRenderer;\nfunction GroupByVariableRenderer({ model }) {\n const {\n value,\n text,\n key,\n isMulti = true,\n maxVisibleValues,\n noValueOnClear,\n options,\n includeAll,\n allowCustomValue = true,\n defaultValue\n } = model.useState();\n const values = useMemo(() => {\n const arrayValue = isArray(value) ? value : [value];\n const arrayText = isArray(text) ? text : [text];\n return arrayValue.map((value2, idx) => {\n var _a;\n return {\n value: value2,\n label: String((_a = arrayText[idx]) != null ? _a : value2)\n };\n });\n }, [value, text]);\n const [isFetchingOptions, setIsFetchingOptions] = useState(false);\n const [isOptionsOpen, setIsOptionsOpen] = useState(false);\n const [inputValue, setInputValue] = useState(\"\");\n const [uncommittedValue, setUncommittedValue] = useState(values);\n const optionSearcher = useMemo(() => getOptionSearcher(options, includeAll), [options, includeAll]);\n const hasDefaultValue = defaultValue !== void 0;\n useEffect(() => {\n setUncommittedValue(values);\n }, [values]);\n const onInputChange = (value2, { action }) => {\n if (action === \"input-change\") {\n setInputValue(value2);\n if (model.onSearchChange) {\n model.onSearchChange(value2);\n }\n return value2;\n }\n if (action === \"input-blur\") {\n setInputValue(\"\");\n return \"\";\n }\n return inputValue;\n };\n const filteredOptions = useMemo(\n () => handleOptionGroups(optionSearcher(inputValue).map(toSelectableValue)),\n [optionSearcher, inputValue]\n );\n return isMulti ? /* @__PURE__ */ React.createElement(\n MultiSelect,\n {\n \"aria-label\": t(\n \"grafana-scenes.variables.group-by-variable-renderer.aria-label-group-by-selector\",\n \"Group by selector\"\n ),\n \"data-testid\": `GroupBySelect-${key}`,\n id: key,\n placeholder: t(\n \"grafana-scenes.variables.group-by-variable-renderer.placeholder-group-by-label\",\n \"Group by label\"\n ),\n width: \"auto\",\n allowCustomValue,\n inputValue,\n value: uncommittedValue,\n noMultiValueWrap: true,\n maxVisibleValues: maxVisibleValues != null ? maxVisibleValues : 5,\n tabSelectsValue: false,\n virtualized: true,\n options: filteredOptions,\n filterOption: filterNoOp,\n closeMenuOnSelect: false,\n isOpen: isOptionsOpen,\n isClearable: true,\n hideSelectedOptions: false,\n isLoading: isFetchingOptions,\n components: {\n Option: OptionWithCheckbox,\n ...hasDefaultValue ? {\n IndicatorsContainer: () => /* @__PURE__ */ React.createElement(DefaultGroupByCustomIndicatorContainer, { model })\n } : {}\n },\n onInputChange,\n onBlur: () => {\n model.changeValueTo(\n uncommittedValue.map((x) => x.value),\n uncommittedValue.map((x) => x.label),\n true\n );\n const restorable = model.checkIfRestorable(uncommittedValue.map((v) => v.value));\n if (restorable !== model.state.restorable) {\n model.setState({ restorable });\n }\n },\n onChange: (newValue, action) => {\n if (action.action === \"clear\" && noValueOnClear) {\n model.changeValueTo([], void 0, true);\n }\n setUncommittedValue(newValue);\n },\n onOpenMenu: async () => {\n setIsFetchingOptions(true);\n await lastValueFrom(model.validateAndUpdate());\n setIsFetchingOptions(false);\n setIsOptionsOpen(true);\n },\n onCloseMenu: () => {\n setIsOptionsOpen(false);\n }\n }\n ) : /* @__PURE__ */ React.createElement(\n Select,\n {\n \"aria-label\": t(\n \"grafana-scenes.variables.group-by-variable-renderer.aria-label-group-by-selector\",\n \"Group by selector\"\n ),\n \"data-testid\": `GroupBySelect-${key}`,\n id: key,\n placeholder: t(\n \"grafana-scenes.variables.group-by-variable-renderer.placeholder-group-by-label\",\n \"Group by label\"\n ),\n width: \"auto\",\n inputValue,\n value: uncommittedValue && uncommittedValue.length > 0 ? uncommittedValue : null,\n allowCustomValue,\n noMultiValueWrap: true,\n maxVisibleValues: maxVisibleValues != null ? maxVisibleValues : 5,\n tabSelectsValue: false,\n virtualized: true,\n options: filteredOptions,\n filterOption: filterNoOp,\n closeMenuOnSelect: true,\n isOpen: isOptionsOpen,\n isClearable: true,\n hideSelectedOptions: false,\n noValueOnClear: true,\n isLoading: isFetchingOptions,\n onInputChange,\n onChange: (newValue, action) => {\n if (action.action === \"clear\") {\n setUncommittedValue([]);\n if (noValueOnClear) {\n model.changeValueTo([]);\n }\n return;\n }\n if (newValue == null ? void 0 : newValue.value) {\n setUncommittedValue([newValue]);\n model.changeValueTo([newValue.value], newValue.label ? [newValue.label] : void 0);\n }\n },\n onOpenMenu: async () => {\n setIsFetchingOptions(true);\n await lastValueFrom(model.validateAndUpdate());\n setIsFetchingOptions(false);\n setIsOptionsOpen(true);\n },\n onCloseMenu: () => {\n setIsOptionsOpen(false);\n }\n }\n );\n}\nconst filterNoOp = () => true;\nfunction toSelectableValue(input) {\n const { label, value, group } = input;\n const result = {\n label,\n value\n };\n if (group) {\n result.group = group;\n }\n return result;\n}\n\nexport { GroupByVariable, GroupByVariableRenderer };\n//# sourceMappingURL=GroupByVariable.js.map\n","import { t } from '@grafana/i18n';\nimport { Tooltip, Icon } from '@grafana/ui';\nimport React from 'react';\n\nfunction LoadingIndicator(props) {\n return /* @__PURE__ */ React.createElement(Tooltip, { content: t(\"grafana-scenes.utils.loading-indicator.content-cancel-query\", \"Cancel query\") }, /* @__PURE__ */ React.createElement(\n Icon,\n {\n className: \"spin-clockwise\",\n name: \"sync\",\n size: \"xs\",\n role: \"button\",\n onMouseDown: (e) => {\n props.onCancel(e);\n }\n }\n ));\n}\n\nexport { LoadingIndicator };\n//# sourceMappingURL=LoadingIndicator.js.map\n","import { t } from '@grafana/i18n';\nimport React from 'react';\nimport { useStyles2, useTheme2, Tooltip, Icon, IconButton } from '@grafana/ui';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { css, cx } from '@emotion/css';\nimport { LoadingIndicator } from './LoadingIndicator.js';\n\nfunction ControlsLabel(props) {\n const styles = useStyles2(getStyles);\n const theme = useTheme2();\n const isVertical = props.layout === \"vertical\";\n const loadingIndicator = Boolean(props.isLoading) ? /* @__PURE__ */ React.createElement(\n \"div\",\n {\n style: { marginLeft: theme.spacing(1), marginTop: \"-1px\" },\n \"aria-label\": selectors.components.LoadingIndicator.icon\n },\n /* @__PURE__ */ React.createElement(\n LoadingIndicator,\n {\n onCancel: (e) => {\n var _a;\n e.preventDefault();\n e.stopPropagation();\n (_a = props.onCancel) == null ? void 0 : _a.call(props);\n }\n }\n )\n ) : null;\n let errorIndicator = null;\n if (props.error) {\n errorIndicator = /* @__PURE__ */ React.createElement(Tooltip, { content: props.error, placement: \"bottom\" }, /* @__PURE__ */ React.createElement(Icon, { className: styles.errorIcon, name: \"exclamation-triangle\" }));\n }\n let descriptionIndicator = null;\n if (props.description) {\n descriptionIndicator = /* @__PURE__ */ React.createElement(Tooltip, { content: props.description, placement: isVertical ? \"top\" : \"bottom\" }, /* @__PURE__ */ React.createElement(Icon, { className: styles.normalIcon, name: \"info-circle\" }));\n }\n const testId = typeof props.label === \"string\" ? selectors.pages.Dashboard.SubMenu.submenuItemLabels(props.label) : \"\";\n let labelElement;\n if (isVertical) {\n labelElement = /* @__PURE__ */ React.createElement(\"label\", { className: cx(styles.verticalLabel, props.className), \"data-testid\": testId, htmlFor: props.htmlFor }, props.prefix, props.label, descriptionIndicator, errorIndicator, props.icon && /* @__PURE__ */ React.createElement(Icon, { name: props.icon, className: styles.normalIcon }), loadingIndicator, props.onRemove && /* @__PURE__ */ React.createElement(\n IconButton,\n {\n variant: \"secondary\",\n size: \"xs\",\n name: \"times\",\n onClick: props.onRemove,\n tooltip: t(\"grafana-scenes.utils.controls-label.tooltip-remove\", \"Remove\")\n }\n ), props.suffix);\n } else {\n labelElement = /* @__PURE__ */ React.createElement(\"label\", { className: cx(styles.horizontalLabel, props.className), \"data-testid\": testId, htmlFor: props.htmlFor }, props.prefix, errorIndicator, props.icon && /* @__PURE__ */ React.createElement(Icon, { name: props.icon, className: styles.normalIcon }), props.label, descriptionIndicator, loadingIndicator, props.suffix);\n }\n return labelElement;\n}\nconst getStyles = (theme) => ({\n horizontalLabel: css({\n background: theme.isDark ? theme.colors.background.primary : theme.colors.background.secondary,\n display: `flex`,\n alignItems: \"center\",\n padding: theme.spacing(0, 1),\n fontWeight: theme.typography.fontWeightMedium,\n fontSize: theme.typography.bodySmall.fontSize,\n height: theme.spacing(theme.components.height.md),\n lineHeight: theme.spacing(theme.components.height.md),\n borderRadius: `${theme.shape.radius.default} 0 0 ${theme.shape.radius.default}`,\n border: `1px solid ${theme.components.input.borderColor}`,\n position: \"relative\",\n // To make the border line up with the input border\n right: -1,\n whiteSpace: \"nowrap\",\n gap: theme.spacing(0.5)\n }),\n verticalLabel: css({\n display: `flex`,\n alignItems: \"center\",\n fontWeight: theme.typography.fontWeightMedium,\n fontSize: theme.typography.bodySmall.fontSize,\n lineHeight: theme.typography.bodySmall.lineHeight,\n whiteSpace: \"nowrap\",\n marginBottom: theme.spacing(0.5),\n gap: theme.spacing(1)\n }),\n errorIcon: css({\n color: theme.colors.error.text\n }),\n normalIcon: css({\n color: theme.colors.text.secondary\n })\n});\n\nexport { ControlsLabel };\n//# sourceMappingURL=ControlsLabel.js.map\n","import { fuzzyFind } from '../filter.js';\n\nfunction getAdhocOptionSearcher(options) {\n const haystack = options.map((o) => {\n var _a;\n return (_a = o.label) != null ? _a : String(o.value);\n });\n return (search) => fuzzyFind(options, haystack, search);\n}\n\nexport { getAdhocOptionSearcher };\n//# sourceMappingURL=getAdhocOptionSearcher.js.map\n","import { t } from '@grafana/i18n';\nimport React, { useState, useMemo } from 'react';\nimport { isMultiValueOperator } from './AdHocFiltersVariable.js';\nimport { useStyles2, Select, Field, Button } from '@grafana/ui';\nimport { css, cx } from '@emotion/css';\nimport { ControlsLabel } from '../../utils/ControlsLabel.js';\nimport { getAdhocOptionSearcher } from './getAdhocOptionSearcher.js';\nimport { handleOptionGroups } from '../utils.js';\nimport { OptionWithCheckbox } from '../components/VariableValueSelect.js';\n\nfunction keyLabelToOption(key, label) {\n return key !== \"\" ? {\n value: key,\n label: label || key\n } : null;\n}\nconst filterNoOp = () => true;\nfunction AdHocFilterRenderer({ filter, model }) {\n var _a, _b, _c, _d, _e;\n const styles = useStyles2(getStyles);\n const [keys, setKeys] = useState([]);\n const [values, setValues] = useState([]);\n const [isKeysLoading, setIsKeysLoading] = useState(false);\n const [isValuesLoading, setIsValuesLoading] = useState(false);\n const [isKeysOpen, setIsKeysOpen] = useState(false);\n const [isValuesOpen, setIsValuesOpen] = useState(false);\n const [isOperatorOpen, setIsOperatorOpen] = useState(false);\n const [valueInputValue, setValueInputValue] = useState(\"\");\n const [valueHasCustomValue, setValueHasCustomValue] = useState(false);\n const [uncommittedValue, setUncommittedValue] = useState(\n filter.values ? filter.values.map((value, index) => {\n var _a2;\n return keyLabelToOption(value, (_a2 = filter.valueLabels) == null ? void 0 : _a2[index]);\n }) : []\n );\n const isMultiValue = isMultiValueOperator(filter.operator);\n const keyValue = keyLabelToOption(filter.key, filter.keyLabel);\n const valueValue = keyLabelToOption(filter.value, (_a = filter.valueLabels) == null ? void 0 : _a[0]);\n const optionSearcher = useMemo(() => getAdhocOptionSearcher(values), [values]);\n const onAddCustomValue = model.state.onAddCustomValue;\n const onValueInputChange = (value, { action }) => {\n if (action === \"input-change\") {\n setValueInputValue(value);\n }\n return value;\n };\n const onOperatorChange = (v) => {\n var _a2, _b2;\n const existingOperator = filter.operator;\n const newOperator = v.value;\n const update = { operator: newOperator };\n if (isMultiValueOperator(existingOperator) && !isMultiValueOperator(newOperator)) {\n update.value = \"\";\n update.valueLabels = [\"\"];\n update.values = void 0;\n setUncommittedValue([]);\n } else if (!isMultiValueOperator(existingOperator) && isMultiValueOperator(newOperator) && filter.value) {\n update.values = [filter.value];\n setUncommittedValue([\n {\n value: filter.value,\n label: (_b2 = (_a2 = filter.valueLabels) == null ? void 0 : _a2[0]) != null ? _b2 : filter.value\n }\n ]);\n }\n model._updateFilter(filter, update);\n };\n const filteredValueOptions = useMemo(\n () => handleOptionGroups(optionSearcher(valueInputValue)),\n [optionSearcher, valueInputValue]\n );\n const multiValueProps = {\n isMulti: true,\n value: uncommittedValue,\n components: {\n Option: OptionWithCheckbox\n },\n hideSelectedOptions: false,\n closeMenuOnSelect: false,\n openMenuOnFocus: false,\n onChange: (v) => {\n setUncommittedValue(v);\n if (v.some((value) => value.__isNew__)) {\n setValueInputValue(\"\");\n }\n },\n onBlur: () => {\n var _a2, _b2;\n model._updateFilter(filter, {\n value: (_b2 = (_a2 = uncommittedValue[0]) == null ? void 0 : _a2.value) != null ? _b2 : \"\",\n // TODO remove expect-error when we're on the latest version of @grafana/data\n values: uncommittedValue.map((option) => option.value),\n valueLabels: uncommittedValue.map((option) => option.label)\n });\n }\n };\n const valueSelect = /* @__PURE__ */ React.createElement(\n Select,\n {\n virtualized: true,\n allowCustomValue: (_b = model.state.allowCustomValue) != null ? _b : true,\n isValidNewOption: (inputValue) => inputValue.trim().length > 0,\n allowCreateWhileLoading: true,\n formatCreateLabel: (inputValue) => `Use custom value: ${inputValue}`,\n disabled: model.state.readOnly,\n className: cx(styles.value, isValuesOpen ? styles.widthWhenOpen : void 0),\n width: \"auto\",\n value: valueValue,\n filterOption: filterNoOp,\n placeholder: t(\n \"grafana-scenes.variables.ad-hoc-filter-renderer.value-select.placeholder-select-value\",\n \"Select value\"\n ),\n options: filteredValueOptions,\n inputValue: valueInputValue,\n onInputChange: onValueInputChange,\n onChange: (v) => {\n if (onAddCustomValue && v.__isNew__) {\n model._updateFilter(filter, onAddCustomValue(v, filter));\n } else {\n model._updateFilter(filter, {\n value: v.value,\n valueLabels: v.label ? [v.label] : [v.value]\n });\n }\n if (valueHasCustomValue !== v.__isNew__) {\n setValueHasCustomValue(v.__isNew__);\n }\n },\n isOpen: isValuesOpen && !isValuesLoading,\n isLoading: isValuesLoading,\n openMenuOnFocus: true,\n onOpenMenu: async () => {\n var _a2;\n setIsValuesLoading(true);\n setIsValuesOpen(true);\n const values2 = await model._getValuesFor(filter);\n setIsValuesLoading(false);\n setValues(values2);\n if (valueHasCustomValue) {\n setValueInputValue((_a2 = valueValue == null ? void 0 : valueValue.label) != null ? _a2 : \"\");\n }\n },\n onCloseMenu: () => {\n setIsValuesOpen(false);\n setValueInputValue(\"\");\n },\n ...isMultiValue && multiValueProps\n }\n );\n const keySelect = /* @__PURE__ */ React.createElement(\n Select,\n {\n key: `${isValuesLoading ? \"loading\" : \"loaded\"}`,\n disabled: model.state.readOnly,\n className: cx(styles.key, isKeysOpen ? styles.widthWhenOpen : void 0),\n width: \"auto\",\n allowCustomValue: (_c = model.state.allowCustomValue) != null ? _c : true,\n value: keyValue,\n placeholder: t(\n \"grafana-scenes.variables.ad-hoc-filter-renderer.key-select.placeholder-select-label\",\n \"Select label\"\n ),\n options: handleOptionGroups(keys),\n onChange: (v) => {\n model._updateFilter(filter, {\n key: v.value,\n keyLabel: v.label,\n // clear value if key has changed\n value: \"\",\n valueLabels: [\"\"],\n values: void 0\n });\n setUncommittedValue([]);\n },\n autoFocus: filter.key === \"\",\n isOpen: isKeysOpen && !isKeysLoading,\n isLoading: isKeysLoading,\n onOpenMenu: async () => {\n setIsKeysOpen(true);\n setIsKeysLoading(true);\n const keys2 = await model._getKeys(filter.key);\n setIsKeysLoading(false);\n setKeys(keys2);\n },\n onCloseMenu: () => {\n setIsKeysOpen(false);\n },\n onBlur: () => {\n if (filter.key === \"\") {\n model._removeFilter(filter);\n }\n },\n openMenuOnFocus: true\n }\n );\n const operatorSelect = /* @__PURE__ */ React.createElement(\n Select,\n {\n className: cx(styles.operator, {\n [styles.widthWhenOpen]: isOperatorOpen\n }),\n value: filter.operator,\n disabled: model.state.readOnly,\n options: model._getOperators(),\n onChange: onOperatorChange,\n onOpenMenu: () => {\n setIsOperatorOpen(true);\n },\n onCloseMenu: () => {\n setIsOperatorOpen(false);\n }\n }\n );\n if (model.state.layout === \"vertical\") {\n if (filter.key) {\n const label = /* @__PURE__ */ React.createElement(ControlsLabel, { layout: \"vertical\", label: (_d = filter.key) != null ? _d : \"\", onRemove: () => model._removeFilter(filter) });\n return /* @__PURE__ */ React.createElement(Field, { label, \"data-testid\": `AdHocFilter-${filter.key}`, className: styles.field }, /* @__PURE__ */ React.createElement(\"div\", { className: styles.wrapper }, operatorSelect, valueSelect));\n } else {\n return /* @__PURE__ */ React.createElement(\n Field,\n {\n label: t(\"grafana-scenes.variables.ad-hoc-filter-renderer.label-select-label\", \"Select label\"),\n \"data-testid\": `AdHocFilter-${filter.key}`,\n className: styles.field\n },\n keySelect\n );\n }\n }\n return /* @__PURE__ */ React.createElement(\"div\", { className: styles.wrapper, \"data-testid\": `AdHocFilter-${filter.key}` }, keySelect, operatorSelect, valueSelect, /* @__PURE__ */ React.createElement(\n Button,\n {\n variant: \"secondary\",\n \"aria-label\": t(\"grafana-scenes.variables.ad-hoc-filter-renderer.aria-label-remove-filter\", \"Remove filter\"),\n title: t(\"grafana-scenes.variables.ad-hoc-filter-renderer.title-remove-filter\", \"Remove filter\"),\n className: styles.removeButton,\n icon: \"times\",\n \"data-testid\": `AdHocFilter-remove-${(_e = filter.key) != null ? _e : \"\"}`,\n onClick: () => model._removeFilter(filter)\n }\n ));\n}\nconst getStyles = (theme) => ({\n field: css({\n marginBottom: 0\n }),\n wrapper: css({\n display: \"flex\",\n \"> *\": {\n \"&:not(:first-child)\": {\n // Negative margin hides the double-border on adjacent selects\n marginLeft: -1\n },\n \"&:first-child\": {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0\n },\n \"&:last-child\": {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0\n },\n \"&:not(:first-child):not(:last-child)\": {\n borderRadius: 0\n },\n // Fix focus state zIndex issues\n position: \"relative\",\n zIndex: 0,\n // Adjacent borders are overlapping, so raise children up when hovering etc\n // so all that child's borders are visible.\n \"&:hover\": {\n zIndex: 1\n },\n \"&:focus-within\": {\n zIndex: 2\n }\n }\n }),\n widthWhenOpen: css({\n minWidth: theme.spacing(16)\n }),\n value: css({\n flexBasis: \"content\",\n flexShrink: 1,\n minWidth: \"90px\"\n }),\n key: css({\n flexBasis: \"content\",\n minWidth: \"90px\",\n flexShrink: 1\n }),\n operator: css({\n flexShrink: 0,\n flexBasis: \"content\"\n }),\n removeButton: css({\n paddingLeft: theme.spacing(3 / 2),\n paddingRight: theme.spacing(3 / 2),\n borderLeft: \"none\",\n width: theme.spacing(3),\n marginRight: theme.spacing(1),\n boxSizing: \"border-box\",\n // To not have button background and last select border intersect\n position: \"relative\",\n left: \"1px\"\n })\n});\n\nexport { AdHocFilterRenderer };\n//# sourceMappingURL=AdHocFilterRenderer.js.map\n","import { t } from '@grafana/i18n';\nimport React from 'react';\nimport { AdHocFilterRenderer } from './AdHocFilterRenderer.js';\nimport { Button } from '@grafana/ui';\n\nfunction AdHocFilterBuilder({ model, addFilterButtonText }) {\n const { _wip } = model.useState();\n if (!_wip) {\n return /* @__PURE__ */ React.createElement(\n Button,\n {\n variant: \"secondary\",\n icon: \"plus\",\n title: t(\"grafana-scenes.variables.ad-hoc-filter-builder.title-add-filter\", \"Add filter\"),\n \"aria-label\": t(\"grafana-scenes.variables.ad-hoc-filter-builder.aria-label-add-filter\", \"Add filter\"),\n \"data-testid\": `AdHocFilter-add`,\n onClick: () => model._addWip()\n },\n addFilterButtonText\n );\n }\n return /* @__PURE__ */ React.createElement(AdHocFilterRenderer, { filter: _wip, model });\n}\n\nexport { AdHocFilterBuilder };\n//# sourceMappingURL=AdHocFilterBuilder.js.map\n","import { isFilterComplete, isMultiValueOperator, isMatchAllFilter } from './AdHocFiltersVariable.js';\nimport { escapeOriginFilterUrlDelimiters, toUrlCommaDelimitedString, unescapeUrlDelimiters } from '../utils.js';\n\nclass AdHocFiltersVariableUrlSyncHandler {\n constructor(_variable) {\n this._variable = _variable;\n }\n getKey() {\n return `var-${this._variable.state.name}`;\n }\n getKeys() {\n return [this.getKey()];\n }\n getUrlState() {\n const filters = this._variable.state.filters;\n const originFilters = this._variable.state.originFilters;\n let value = [];\n if (filters.length === 0 && (originFilters == null ? void 0 : originFilters.length) === 0) {\n return { [this.getKey()]: [\"\"] };\n }\n if (filters.length) {\n value.push(\n ...filters.filter(isFilterComplete).filter((filter) => !filter.hidden).map((filter) => toArray(filter).map(escapeOriginFilterUrlDelimiters).join(\"|\"))\n );\n }\n if (originFilters == null ? void 0 : originFilters.length) {\n value.push(\n ...originFilters == null ? void 0 : originFilters.filter(isFilterComplete).filter((filter) => !filter.hidden && filter.origin && filter.restorable).map(\n (filter) => toArray(filter).map(escapeOriginFilterUrlDelimiters).join(\"|\").concat(`#${filter.origin}#restorable`)\n )\n );\n }\n return {\n [this.getKey()]: value.length ? value : [\"\"]\n };\n }\n updateFromUrl(values) {\n const urlValue = values[this.getKey()];\n if (urlValue == null) {\n return;\n }\n const filters = deserializeUrlToFilters(urlValue);\n const originFilters = updateOriginFilters([...this._variable.state.originFilters || []], filters);\n this._variable.setState({\n filters: filters.filter((f) => !f.origin),\n originFilters\n });\n }\n}\nfunction updateOriginFilters(prevOriginFilters, filters) {\n const updatedOriginFilters = [...prevOriginFilters];\n for (let i = 0; i < filters.length; i++) {\n const foundOriginFilterIndex = prevOriginFilters.findIndex((f) => f.key === filters[i].key);\n if (foundOriginFilterIndex > -1) {\n if (!filters[i].origin && prevOriginFilters[foundOriginFilterIndex].origin === \"dashboard\") {\n filters[i].origin = \"dashboard\";\n filters[i].restorable = true;\n }\n if (isMatchAllFilter(filters[i])) {\n filters[i].matchAllFilter = true;\n }\n updatedOriginFilters[foundOriginFilterIndex] = filters[i];\n } else if (filters[i].origin === \"dashboard\") {\n delete filters[i].origin;\n delete filters[i].restorable;\n } else if (foundOriginFilterIndex === -1 && filters[i].origin === \"scope\" && filters[i].restorable) {\n updatedOriginFilters.push(filters[i]);\n }\n }\n return updatedOriginFilters;\n}\nfunction deserializeUrlToFilters(value) {\n if (Array.isArray(value)) {\n const values = value;\n return values.map(toFilter).filter(isFilter);\n }\n const filter = toFilter(value);\n return filter === null ? [] : [filter];\n}\nfunction toArray(filter) {\n var _a;\n const result = [toUrlCommaDelimitedString(filter.key, filter.keyLabel), filter.operator];\n if (isMultiValueOperator(filter.operator)) {\n filter.values.forEach((value, index) => {\n var _a2;\n result.push(toUrlCommaDelimitedString(value, (_a2 = filter.valueLabels) == null ? void 0 : _a2[index]));\n });\n } else {\n result.push(toUrlCommaDelimitedString(filter.value, (_a = filter.valueLabels) == null ? void 0 : _a[0]));\n }\n return result;\n}\nfunction toFilter(urlValue) {\n if (typeof urlValue !== \"string\" || urlValue.length === 0) {\n return null;\n }\n const [filter, origin, restorable] = urlValue.split(\"#\");\n const [key, keyLabel, operator, _operatorLabel, ...values] = filter.split(\"|\").reduce((acc, v) => {\n const [key2, label] = v.split(\",\");\n acc.push(key2, label != null ? label : key2);\n return acc;\n }, []).map(unescapeUrlDelimiters);\n return {\n key,\n keyLabel,\n operator,\n value: values[0],\n values: isMultiValueOperator(operator) ? values.filter((_, index) => index % 2 === 0) : void 0,\n valueLabels: values.filter((_, index) => index % 2 === 1),\n condition: \"\",\n ...isFilterOrigin(origin) && { origin },\n ...!!restorable && { restorable: true }\n };\n}\nfunction isFilterOrigin(value) {\n return value === \"scope\" || value === \"dashboard\";\n}\nfunction isFilter(filter) {\n return filter !== null && typeof filter.key === \"string\" && typeof filter.value === \"string\";\n}\n\nexport { AdHocFiltersVariableUrlSyncHandler };\n//# sourceMappingURL=AdHocFiltersVariableUrlSyncHandler.js.map\n","import { isShadowRoot, isHTMLElement } from '@floating-ui/utils/dom';\n\nfunction activeElement(doc) {\n let activeElement = doc.activeElement;\n while (((_activeElement = activeElement) == null || (_activeElement = _activeElement.shadowRoot) == null ? void 0 : _activeElement.activeElement) != null) {\n var _activeElement;\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n}\nfunction contains(parent, child) {\n if (!parent || !child) {\n return false;\n }\n const rootNode = child.getRootNode == null ? void 0 : child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n\n // then fallback to custom implementation with Shadow DOM support\n if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n while (next) {\n if (parent === next) {\n return true;\n }\n // @ts-ignore\n next = next.parentNode || next.host;\n }\n }\n\n // Give up, the result is false\n return false;\n}\n// Avoid Chrome DevTools blue warning.\nfunction getPlatform() {\n const uaData = navigator.userAgentData;\n if (uaData != null && uaData.platform) {\n return uaData.platform;\n }\n return navigator.platform;\n}\nfunction getUserAgent() {\n const uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(_ref => {\n let {\n brand,\n version\n } = _ref;\n return brand + \"/\" + version;\n }).join(' ');\n }\n return navigator.userAgent;\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts\nfunction isVirtualClick(event) {\n // FIXME: Firefox is now emitting a deprecation warning for `mozInputSource`.\n // Try to find a workaround for this. `react-aria` source still has the check.\n if (event.mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n if (isAndroid() && event.pointerType) {\n return event.type === 'click' && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n if (isJSDOM()) return false;\n return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse' ||\n // iOS VoiceOver returns 0.333• for width/height.\n event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'touch';\n}\nfunction isSafari() {\n // Chrome DevTools does not complain about navigator.vendor\n return /apple/i.test(navigator.vendor);\n}\nfunction isAndroid() {\n const re = /android/i;\n return re.test(getPlatform()) || re.test(getUserAgent());\n}\nfunction isMac() {\n return getPlatform().toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;\n}\nfunction isJSDOM() {\n return getUserAgent().includes('jsdom/');\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n // On some Linux machines with Chromium, mouse inputs return a `pointerType`\n // of \"pen\": https://github.com/floating-ui/floating-ui/issues/2015\n const values = ['mouse', 'pen'];\n if (!strict) {\n values.push('', undefined);\n }\n return values.includes(pointerType);\n}\nfunction isReactEvent(event) {\n return 'nativeEvent' in event;\n}\nfunction isRootElement(element) {\n return element.matches('html,body');\n}\nfunction getDocument(node) {\n return (node == null ? void 0 : node.ownerDocument) || document;\n}\nfunction isEventTargetWithin(event, node) {\n if (node == null) {\n return false;\n }\n if ('composedPath' in event) {\n return event.composedPath().includes(node);\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support composedPath, but browsers without shadow dom don't\n const e = event;\n return e.target != null && node.contains(e.target);\n}\nfunction getTarget(event) {\n if ('composedPath' in event) {\n return event.composedPath()[0];\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support\n // `composedPath()`, but browsers without shadow DOM don't.\n return event.target;\n}\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nfunction isTypeableCombobox(element) {\n if (!element) return false;\n return element.getAttribute('role') === 'combobox' && isTypeableElement(element);\n}\n\nexport { TYPEABLE_SELECTOR, activeElement, contains, getDocument, getPlatform, getTarget, getUserAgent, isAndroid, isEventTargetWithin, isJSDOM, isMac, isMouseLikePointerType, isReactEvent, isRootElement, isSafari, isTypeableCombobox, isTypeableElement, isVirtualClick, isVirtualPointerEvent, stopEvent };\n","/*!\n* tabbable 6.2.0\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\n// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\n// CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes\n// the entire query to fail, resulting in no nodes found, which will break a lot\n// of things... so we have to rely on JS to identify nodes inside an inert container\nvar candidateSelectors = ['input:not([inert])', 'select:not([inert])', 'textarea:not([inert])', 'a[href]:not([inert])', 'button:not([inert])', '[tabindex]:not(slot):not([inert])', 'audio[controls]:not([inert])', 'video[controls]:not([inert])', '[contenteditable]:not([contenteditable=\"false\"]):not([inert])', 'details>summary:first-of-type:not([inert])', 'details:not([inert])'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n} : function (element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n};\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Element} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nvar isInert = function isInert(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'inert');\n var inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)`\n // so it likely would not support `:is([inert] *)` either...\n var result = inert || lookUp && node && isInert(node.parentNode); // recursive\n\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nvar isContentEditable = function isContentEditable(node) {\n var _node$getAttribute2;\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, 'contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert, all its children are inert\n if (isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.}\n */\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (isInert(element, false)) {\n // no need to look up since we're drilling down\n // anything inside this container will also be inert\n continue;\n }\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n var shadowRoot = element.shadowRoot ||\n // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n\n // no inert look up because we're already drilling down and checking for inertness\n // on the way down, so all containers to this root node should have already been\n // vetted as non-inert\n var validShadowRoot = !isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\n\n/**\n * @private\n * Determines if the node has an explicitly specified `tabindex` attribute.\n * @param {HTMLElement} node\n * @returns {boolean} True if so; false if not.\n */\nvar hasTabIndex = function hasTabIndex(node) {\n return !isNaN(parseInt(node.getAttribute('tabindex'), 10));\n};\n\n/**\n * Determine the tab index of a given node.\n * @param {HTMLElement} node\n * @returns {number} Tab order (negative, 0, or positive number).\n * @throws {Error} If `node` is falsy.\n */\nvar getTabIndex = function getTabIndex(node) {\n if (!node) {\n throw new Error('No node provided');\n }\n if (node.tabIndex < 0) {\n // in Chrome,
,