harper 5.1.20 → 5.2.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent/operations.ts +13 -16
- package/components/Application.ts +188 -7
- package/components/ApplicationScope.ts +3 -0
- package/components/Scope.ts +12 -0
- package/components/anthropic/index.ts +9 -2
- package/components/bedrock/index.ts +25 -2
- package/components/componentLoader.ts +56 -7
- package/components/componentSecrets.ts +451 -0
- package/components/deploymentRecorder.ts +7 -1
- package/components/mcp/adapters/fastify.ts +3 -0
- package/components/mcp/adapters/harperHttp.ts +3 -0
- package/components/mcp/audit.ts +21 -6
- package/components/mcp/customResourceRegistry.ts +17 -38
- package/components/mcp/listChanged.ts +37 -20
- package/components/mcp/quota.ts +145 -0
- package/components/mcp/rateLimit.ts +152 -14
- package/components/mcp/resources.ts +2 -4
- package/components/mcp/toolRegistry.ts +73 -4
- package/components/mcp/tools/application.ts +77 -8
- package/components/mcp/tools/operations.ts +106 -36
- package/components/mcp/tools/schemas/operationDescriptions.ts +4 -4
- package/components/mcp/tools/schemas/operations.ts +5 -0
- package/components/mcp/transport.ts +55 -4
- package/components/ollama/index.ts +6 -2
- package/components/openai/index.ts +9 -2
- package/components/operations.js +204 -10
- package/components/operationsValidation.js +173 -0
- package/components/secretOperations.ts +498 -0
- package/config/configUtils.ts +25 -1
- package/config-app.schema.json +81 -0
- package/config-root.schema.json +8 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +4 -3
- package/dataLayer/readAuditLog.ts +14 -0
- package/dataLayer/schemaDescribe.ts +1 -0
- package/dist/agent/operations.d.ts +7 -4
- package/dist/agent/operations.js +13 -15
- package/dist/agent/operations.js.map +1 -1
- package/dist/components/Application.d.ts +25 -2
- package/dist/components/Application.js +166 -7
- package/dist/components/Application.js.map +1 -1
- package/dist/components/ApplicationScope.d.ts +2 -0
- package/dist/components/ApplicationScope.js +3 -0
- package/dist/components/ApplicationScope.js.map +1 -1
- package/dist/components/Scope.d.ts +8 -0
- package/dist/components/Scope.js +11 -0
- package/dist/components/Scope.js.map +1 -1
- package/dist/components/anthropic/index.d.ts +4 -1
- package/dist/components/anthropic/index.js +4 -2
- package/dist/components/anthropic/index.js.map +1 -1
- package/dist/components/bedrock/index.d.ts +4 -1
- package/dist/components/bedrock/index.js +22 -2
- package/dist/components/bedrock/index.js.map +1 -1
- package/dist/components/componentLoader.d.ts +2 -0
- package/dist/components/componentLoader.js +52 -10
- package/dist/components/componentLoader.js.map +1 -1
- package/dist/components/componentSecrets.d.ts +63 -0
- package/dist/components/componentSecrets.js +405 -0
- package/dist/components/componentSecrets.js.map +1 -0
- package/dist/components/deploymentRecorder.d.ts +3 -0
- package/dist/components/deploymentRecorder.js +4 -3
- package/dist/components/deploymentRecorder.js.map +1 -1
- package/dist/components/mcp/adapters/fastify.d.ts +2 -0
- package/dist/components/mcp/adapters/fastify.js +1 -0
- package/dist/components/mcp/adapters/fastify.js.map +1 -1
- package/dist/components/mcp/adapters/harperHttp.d.ts +2 -0
- package/dist/components/mcp/adapters/harperHttp.js +1 -0
- package/dist/components/mcp/adapters/harperHttp.js.map +1 -1
- package/dist/components/mcp/audit.d.ts +2 -2
- package/dist/components/mcp/audit.js +20 -5
- package/dist/components/mcp/audit.js.map +1 -1
- package/dist/components/mcp/customResourceRegistry.d.ts +5 -12
- package/dist/components/mcp/customResourceRegistry.js +15 -30
- package/dist/components/mcp/customResourceRegistry.js.map +1 -1
- package/dist/components/mcp/listChanged.d.ts +7 -2
- package/dist/components/mcp/listChanged.js +28 -0
- package/dist/components/mcp/listChanged.js.map +1 -1
- package/dist/components/mcp/quota.d.ts +31 -0
- package/dist/components/mcp/quota.js +155 -0
- package/dist/components/mcp/quota.js.map +1 -0
- package/dist/components/mcp/rateLimit.d.ts +19 -3
- package/dist/components/mcp/rateLimit.js +129 -13
- package/dist/components/mcp/rateLimit.js.map +1 -1
- package/dist/components/mcp/resources.js.map +1 -1
- package/dist/components/mcp/toolRegistry.d.ts +39 -1
- package/dist/components/mcp/toolRegistry.js +60 -5
- package/dist/components/mcp/toolRegistry.js.map +1 -1
- package/dist/components/mcp/tools/application.d.ts +8 -1
- package/dist/components/mcp/tools/application.js +65 -5
- package/dist/components/mcp/tools/application.js.map +1 -1
- package/dist/components/mcp/tools/operations.d.ts +15 -3
- package/dist/components/mcp/tools/operations.js +99 -38
- package/dist/components/mcp/tools/operations.js.map +1 -1
- package/dist/components/mcp/tools/schemas/operationDescriptions.js +4 -4
- package/dist/components/mcp/tools/schemas/operationDescriptions.js.map +1 -1
- package/dist/components/mcp/tools/schemas/operations.js +4 -0
- package/dist/components/mcp/tools/schemas/operations.js.map +1 -1
- package/dist/components/mcp/transport.d.ts +6 -0
- package/dist/components/mcp/transport.js +47 -3
- package/dist/components/mcp/transport.js.map +1 -1
- package/dist/components/ollama/index.d.ts +4 -1
- package/dist/components/ollama/index.js +4 -2
- package/dist/components/ollama/index.js.map +1 -1
- package/dist/components/openai/index.d.ts +4 -1
- package/dist/components/openai/index.js +4 -2
- package/dist/components/openai/index.js.map +1 -1
- package/dist/components/operations.d.ts +39 -0
- package/dist/components/operations.js +194 -2
- package/dist/components/operations.js.map +1 -1
- package/dist/components/operationsValidation.d.ts +38 -0
- package/dist/components/operationsValidation.js +155 -0
- package/dist/components/operationsValidation.js.map +1 -1
- package/dist/components/secretOperations.d.ts +113 -0
- package/dist/components/secretOperations.js +475 -0
- package/dist/components/secretOperations.js.map +1 -0
- package/dist/config/configUtils.d.ts +4 -1
- package/dist/config/configUtils.js +18 -1
- package/dist/config/configUtils.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +4 -3
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js.map +1 -1
- package/dist/dataLayer/readAuditLog.js +11 -0
- package/dist/dataLayer/readAuditLog.js.map +1 -1
- package/dist/dataLayer/schemaDescribe.js +2 -0
- package/dist/dataLayer/schemaDescribe.js.map +1 -1
- package/dist/globals.d.ts +1 -1
- package/dist/globals.js +1 -0
- package/dist/globals.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/json/systemSchema.json +38 -0
- package/dist/resources/DatabaseTransaction.d.ts +31 -3
- package/dist/resources/DatabaseTransaction.js +190 -29
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/LMDBTransaction.d.ts +1 -1
- package/dist/resources/LMDBTransaction.js +43 -5
- package/dist/resources/LMDBTransaction.js.map +1 -1
- package/dist/resources/PrimaryRocksDatabase.d.ts +51 -0
- package/dist/resources/PrimaryRocksDatabase.js +194 -0
- package/dist/resources/PrimaryRocksDatabase.js.map +1 -0
- package/dist/resources/RecordEncoder.d.ts +1 -0
- package/dist/resources/RecordEncoder.js +81 -75
- package/dist/resources/RecordEncoder.js.map +1 -1
- package/dist/resources/RequestTarget.d.ts +19 -0
- package/dist/resources/RequestTarget.js.map +1 -1
- package/dist/resources/Resource.d.ts +0 -1
- package/dist/resources/Resource.js +103 -16
- package/dist/resources/Resource.js.map +1 -1
- package/dist/resources/ResourceInterface.d.ts +6 -2
- package/dist/resources/ResourceInterface.js.map +1 -1
- package/dist/resources/Resources.js.map +1 -1
- package/dist/resources/Table.d.ts +6 -4
- package/dist/resources/Table.js +247 -24
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/analytics/read.js +25 -28
- package/dist/resources/analytics/read.js.map +1 -1
- package/dist/resources/blob.js +165 -22
- package/dist/resources/blob.js.map +1 -1
- package/dist/resources/crdt.d.ts +2 -0
- package/dist/resources/crdt.js +45 -36
- package/dist/resources/crdt.js.map +1 -1
- package/dist/resources/databases.d.ts +1 -0
- package/dist/resources/databases.js +134 -7
- package/dist/resources/databases.js.map +1 -1
- package/dist/resources/graphql.js +8 -0
- package/dist/resources/graphql.js.map +1 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +35 -5
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +239 -14
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
- package/dist/resources/jsResource.js +6 -0
- package/dist/resources/jsResource.js.map +1 -1
- package/dist/resources/loadEnv.js +30 -3
- package/dist/resources/loadEnv.js.map +1 -1
- package/dist/resources/login.js +2 -2
- package/dist/resources/login.js.map +1 -1
- package/dist/resources/models/Models.js +14 -3
- package/dist/resources/models/Models.js.map +1 -1
- package/dist/resources/models/embedHook.js +10 -2
- package/dist/resources/models/embedHook.js.map +1 -1
- package/dist/resources/models/openaiStream.d.ts +56 -0
- package/dist/resources/models/openaiStream.js +94 -0
- package/dist/resources/models/openaiStream.js.map +1 -0
- package/dist/resources/replayLogs.js +4 -3
- package/dist/resources/replayLogs.js.map +1 -1
- package/dist/resources/search.d.ts +1 -1
- package/dist/resources/search.js +104 -11
- package/dist/resources/search.js.map +1 -1
- package/dist/resources/secretDecryptor.d.ts +54 -0
- package/dist/resources/secretDecryptor.js +131 -0
- package/dist/resources/secretDecryptor.js.map +1 -0
- package/dist/resources/tracked.js +15 -5
- package/dist/resources/tracked.js.map +1 -1
- package/dist/security/auth.js +71 -8
- package/dist/security/auth.js.map +1 -1
- package/dist/security/jsLoader.js +11 -0
- package/dist/security/jsLoader.js.map +1 -1
- package/dist/security/tokenAuthentication.d.ts +9 -1
- package/dist/security/tokenAuthentication.js +31 -1
- package/dist/security/tokenAuthentication.js.map +1 -1
- package/dist/server/DurableSubscriptionsSession.d.ts +1 -1
- package/dist/server/DurableSubscriptionsSession.js +8 -4
- package/dist/server/DurableSubscriptionsSession.js.map +1 -1
- package/dist/server/REST.js +28 -9
- package/dist/server/REST.js.map +1 -1
- package/dist/server/fastifyRoutes.js +11 -1
- package/dist/server/fastifyRoutes.js.map +1 -1
- package/dist/server/graphqlQuerying.js +4 -3
- package/dist/server/graphqlQuerying.js.map +1 -1
- package/dist/server/http.d.ts +40 -2
- package/dist/server/http.js +560 -77
- package/dist/server/http.js.map +1 -1
- package/dist/server/itc/serverHandlers.js +64 -0
- package/dist/server/itc/serverHandlers.js.map +1 -1
- package/dist/server/liveSubscriptionAuth.d.ts +12 -0
- package/dist/server/liveSubscriptionAuth.js +140 -0
- package/dist/server/liveSubscriptionAuth.js.map +1 -0
- package/dist/server/loadRootComponents.js +2 -1
- package/dist/server/loadRootComponents.js.map +1 -1
- package/dist/server/middlewareChain.d.ts +44 -1
- package/dist/server/middlewareChain.js +86 -10
- package/dist/server/middlewareChain.js.map +1 -1
- package/dist/server/mqtt.js +2 -1
- package/dist/server/mqtt.js.map +1 -1
- package/dist/server/operationsServer.js +1 -1
- package/dist/server/operationsServer.js.map +1 -1
- package/dist/server/serverHelpers/Headers.d.ts +9 -0
- package/dist/server/serverHelpers/Headers.js +22 -0
- package/dist/server/serverHelpers/Headers.js.map +1 -1
- package/dist/server/serverHelpers/JSONStream.js +3 -3
- package/dist/server/serverHelpers/JSONStream.js.map +1 -1
- package/dist/server/serverHelpers/Request.d.ts +52 -1
- package/dist/server/serverHelpers/Request.js +122 -1
- package/dist/server/serverHelpers/Request.js.map +1 -1
- package/dist/server/serverHelpers/contentTypes.js +3 -8
- package/dist/server/serverHelpers/contentTypes.js.map +1 -1
- package/dist/server/serverHelpers/progressEmitter.d.ts +19 -0
- package/dist/server/serverHelpers/progressEmitter.js +52 -4
- package/dist/server/serverHelpers/progressEmitter.js.map +1 -1
- package/dist/server/serverHelpers/registeredOperations.d.ts +40 -0
- package/dist/server/serverHelpers/registeredOperations.js +286 -0
- package/dist/server/serverHelpers/registeredOperations.js.map +1 -0
- package/dist/server/serverHelpers/serverHandlers.js +11 -5
- package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
- package/dist/server/serverHelpers/serverUtilities.d.ts +1 -0
- package/dist/server/serverHelpers/serverUtilities.js +67 -5
- package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
- package/dist/server/serverHelpers/uwsServer.d.ts +80 -0
- package/dist/server/serverHelpers/uwsServer.js +433 -0
- package/dist/server/serverHelpers/uwsServer.js.map +1 -0
- package/dist/server/static.d.ts +0 -15
- package/dist/server/static.js +161 -2
- package/dist/server/static.js.map +1 -1
- package/dist/server/status/index.d.ts +4 -1
- package/dist/server/status/index.js +64 -4
- package/dist/server/status/index.js.map +1 -1
- package/dist/server/threads/manageThreads.d.ts +10 -0
- package/dist/server/threads/manageThreads.js +107 -4
- package/dist/server/threads/manageThreads.js.map +1 -1
- package/dist/server/threads/socketRouter.js +5 -1
- package/dist/server/threads/socketRouter.js.map +1 -1
- package/dist/server/threads/threadServer.js +92 -14
- package/dist/server/threads/threadServer.js.map +1 -1
- package/dist/upgrade/directives/5-2-0.d.ts +7 -0
- package/dist/upgrade/directives/5-2-0.js +108 -0
- package/dist/upgrade/directives/5-2-0.js.map +1 -0
- package/dist/upgrade/directives/directivesController.js +2 -1
- package/dist/upgrade/directives/directivesController.js.map +1 -1
- package/dist/utility/common_utils.js +5 -0
- package/dist/utility/common_utils.js.map +1 -1
- package/dist/utility/envFile.d.ts +41 -0
- package/dist/utility/envFile.js +221 -0
- package/dist/utility/envFile.js.map +1 -0
- package/dist/utility/globalSchema.d.ts +9 -0
- package/dist/utility/hdbTerms.d.ts +25 -0
- package/dist/utility/hdbTerms.js +31 -0
- package/dist/utility/hdbTerms.js.map +1 -1
- package/dist/utility/logging/harper_logger.d.ts +21 -0
- package/dist/utility/logging/harper_logger.js +160 -8
- package/dist/utility/logging/harper_logger.js.map +1 -1
- package/dist/utility/logging/logRotator.js +29 -17
- package/dist/utility/logging/logRotator.js.map +1 -1
- package/dist/utility/logging/readLog.d.ts +1 -1
- package/dist/utility/logging/readLog.js +305 -2
- package/dist/utility/logging/readLog.js.map +1 -1
- package/dist/utility/operationPermissions.d.ts +18 -0
- package/dist/utility/operationPermissions.js +35 -1
- package/dist/utility/operationPermissions.js.map +1 -1
- package/dist/utility/operation_authorization.d.ts +17 -0
- package/dist/utility/operation_authorization.js +38 -0
- package/dist/utility/operation_authorization.js.map +1 -1
- package/dist/utility/secretEnvelope.d.ts +30 -0
- package/dist/utility/secretEnvelope.js +94 -0
- package/dist/utility/secretEnvelope.js.map +1 -0
- package/dist/utility/signalling.d.ts +7 -0
- package/dist/utility/signalling.js +16 -0
- package/dist/utility/signalling.js.map +1 -1
- package/dist/validation/configValidator.js +70 -24
- package/dist/validation/configValidator.js.map +1 -1
- package/index.ts +4 -0
- package/json/systemSchema.json +38 -0
- package/npm-shrinkwrap.json +15066 -9347
- package/package.json +13 -8
- package/resources/DESIGN.md +15 -12
- package/resources/DatabaseTransaction.ts +206 -37
- package/resources/LMDBTransaction.ts +43 -9
- package/resources/PrimaryRocksDatabase.ts +201 -0
- package/resources/RecordEncoder.ts +81 -69
- package/resources/RequestTarget.ts +21 -0
- package/resources/Resource.ts +109 -25
- package/resources/ResourceInterface.ts +6 -2
- package/resources/Resources.ts +1 -3
- package/resources/Table.ts +238 -29
- package/resources/analytics/read.ts +25 -30
- package/resources/blob.ts +159 -23
- package/resources/crdt.ts +37 -31
- package/resources/databases.ts +143 -6
- package/resources/graphql.ts +8 -0
- package/resources/indexes/HierarchicalNavigableSmallWorld.ts +251 -17
- package/resources/jsResource.ts +6 -0
- package/resources/loadEnv.ts +34 -3
- package/resources/login.ts +2 -2
- package/resources/models/Models.ts +19 -3
- package/resources/models/embedHook.ts +13 -2
- package/resources/models/openaiStream.ts +133 -0
- package/resources/replayLogs.ts +4 -3
- package/resources/search.ts +113 -11
- package/resources/secretDecryptor.ts +159 -0
- package/resources/tracked.ts +24 -17
- package/security/auth.ts +70 -10
- package/security/jsLoader.ts +12 -0
- package/security/tokenAuthentication.ts +42 -1
- package/server/DESIGN.md +10 -0
- package/server/DurableSubscriptionsSession.ts +8 -4
- package/server/REST.ts +26 -9
- package/server/fastifyRoutes.ts +10 -1
- package/server/graphqlQuerying.ts +4 -3
- package/server/http.ts +563 -77
- package/server/itc/serverHandlers.js +70 -0
- package/server/liveSubscriptionAuth.ts +152 -0
- package/server/loadRootComponents.js +2 -1
- package/server/middlewareChain.ts +107 -17
- package/server/mqtt.ts +2 -1
- package/server/operationsServer.ts +2 -2
- package/server/serverHelpers/Headers.ts +24 -0
- package/server/serverHelpers/JSONStream.ts +3 -3
- package/server/serverHelpers/Request.ts +127 -0
- package/server/serverHelpers/contentTypes.ts +3 -8
- package/server/serverHelpers/progressEmitter.ts +55 -5
- package/server/serverHelpers/registeredOperations.ts +259 -0
- package/server/serverHelpers/serverHandlers.js +11 -5
- package/server/serverHelpers/serverUtilities.ts +88 -5
- package/server/serverHelpers/uwsServer.ts +488 -0
- package/server/static.ts +180 -2
- package/server/status/index.ts +72 -4
- package/server/threads/manageThreads.js +102 -4
- package/server/threads/socketRouter.ts +5 -1
- package/server/threads/threadServer.js +93 -10
- package/studio/web/assets/{Chat-SdD1EZca.js → Chat-Cv_2paZE.js} +2 -2
- package/studio/web/assets/{Chat-SdD1EZca.js.map → Chat-Cv_2paZE.js.map} +1 -1
- package/studio/web/assets/{FloatingChat-GMq6tHK9.js → FloatingChat-CPyPIcVR.js} +4 -4
- package/studio/web/assets/{FloatingChat-GMq6tHK9.js.map → FloatingChat-CPyPIcVR.js.map} +1 -1
- package/studio/web/assets/{applications-B5hhv7uA.js → applications-C0jT2vdZ.js} +2 -2
- package/studio/web/assets/{applications-B5hhv7uA.js.map → applications-C0jT2vdZ.js.map} +1 -1
- package/studio/web/assets/{index-VFcpNWgq.js → index-D_GKOkhn.js} +6 -6
- package/studio/web/assets/index-D_GKOkhn.js.map +1 -0
- package/studio/web/assets/{index.lazy-DgcJojIA.js → index.lazy-CAmCIA65.js} +4 -4
- package/studio/web/assets/{index.lazy-DgcJojIA.js.map → index.lazy-CAmCIA65.js.map} +1 -1
- package/studio/web/assets/{profile-BqN-8vzm.js → profile-CaF-4aZe.js} +2 -2
- package/studio/web/assets/{profile-BqN-8vzm.js.map → profile-CaF-4aZe.js.map} +1 -1
- package/studio/web/assets/{setComponentFile-CHFvFq9u.js → setComponentFile-DLW1DHCt.js} +2 -2
- package/studio/web/assets/{setComponentFile-CHFvFq9u.js.map → setComponentFile-DLW1DHCt.js.map} +1 -1
- package/studio/web/assets/{setup-CQ3vWJSr.js → setup-TGCErIhq.js} +2 -2
- package/studio/web/assets/{setup-CQ3vWJSr.js.map → setup-TGCErIhq.js.map} +1 -1
- package/studio/web/assets/{status-BsW5fjuh.js → status-DG0Maoao.js} +2 -2
- package/studio/web/assets/{status-BsW5fjuh.js.map → status-DG0Maoao.js.map} +1 -1
- package/studio/web/assets/{swagger-ui-react-DITdeB9-.js → swagger-ui-react-8T4SgQ1m.js} +2 -2
- package/studio/web/assets/{swagger-ui-react-DITdeB9-.js.map → swagger-ui-react-8T4SgQ1m.js.map} +1 -1
- package/studio/web/assets/{tsMode-Dyph-OUs.js → tsMode-DJ6Sl24Q.js} +2 -2
- package/studio/web/assets/{tsMode-Dyph-OUs.js.map → tsMode-DJ6Sl24Q.js.map} +1 -1
- package/studio/web/assets/{useEntityRestURL-D0QTUqex.js → useEntityRestURL-JO2mfWTQ.js} +2 -2
- package/studio/web/assets/{useEntityRestURL-D0QTUqex.js.map → useEntityRestURL-JO2mfWTQ.js.map} +1 -1
- package/studio/web/index.html +1 -1
- package/upgrade/directives/5-2-0.ts +82 -0
- package/upgrade/directives/directivesController.ts +2 -1
- package/utility/common_utils.ts +5 -0
- package/utility/envFile.ts +218 -0
- package/utility/hdbTerms.ts +31 -0
- package/utility/logging/harper_logger.ts +156 -8
- package/utility/logging/logRotator.ts +24 -14
- package/utility/logging/readLog.ts +323 -2
- package/utility/operationPermissions.ts +35 -1
- package/utility/operation_authorization.ts +74 -1
- package/utility/secretEnvelope.ts +113 -0
- package/utility/signalling.ts +15 -0
- package/validation/configValidator.ts +78 -25
- package/studio/web/assets/index-VFcpNWgq.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,r as t,t as n}from"./rolldown-runtime-CNC7AqOf.js";import{n as r,t as i}from"./button-i10JPNcp.js";import{j as a}from"./vendor-core-vIXn_E4D.js";import{B as o,I as s,M as c,N as l,S as u,T as d,j as f,x as p}from"./vendor-tanstack-Dl75hT33.js";import{a as m}from"./vendor-datadog-DBn-aOxh.js";import{n as h,r as g}from"./vendor-react-B36dp27u.js";import{a as _,i as v,n as y,r as b,t as x,zt as S}from"./vendor-ui-Bm4W8wqw.js";import{a as C,i as w,n as T,r as E,t as D}from"./card-hTrVZWnN.js";import{t as O}from"./createLucideIcon-B49W6uF4.js";import{i as k,n as A,t as j}from"./x-Bru-nCti.js";import{a as M,i as N,n as ee,r as te,t as ne}from"./tabs-Bp4JTzdg.js";import{t as re}from"./errorText-NpBmvk9I.js";import{Bt as ie,Ht as ae,In as oe,It as se,L as ce,Ln as le,Pn as ue,Rn as de,Ut as fe,Vt as pe,Wt as me,_n as he,a as ge,bn as _e,gn as ve,i as ye,n as be,r as xe,vn as Se,wt as Ce,xn as we,zn as Te,zt as Ee}from"./index-VFcpNWgq.js";import{_ as De,a as Oe,c as ke,f as Ae,h as je,i as Me,l as Ne,m as Pe,n as Fe,o as Ie,p as Le,r as Re,s as ze,t as Be,u as Ve}from"./linear-Clj7BvYC.js";import{n as He,t as Ue}from"./ordinal-BeZAVUpG.js";import{C as We,D as Ge,E as Ke,O as qe,_ as Je,a as Ye,i as Xe,l as Ze,n as Qe,o as $e,s as et,t as tt,w as nt,x as rt,y as it}from"./time-V48BpMN7.js";import{n as at,t as ot}from"./band-CcbG6rPL.js";import{n as P,t as st}from"./path-BWPyau1x.js";import{r as ct,t as lt}from"./defaultLocale-C8Fc0cco.js";import{n as ut,t as dt}from"./init-Cs1-1e_z.js";import{a as ft,d as pt,f as mt,p as ht,u as gt}from"./math-Bi_r_ZWc.js";import{t as _t}from"./array-BifhSqXX.js";import{B as vt,F as yt,G as bt,H as xt,I as St,J as Ct,L as wt,R as Tt,U as Et,V as Dt,Y as Ot,a as kt,c as At,i as jt,l as Mt,q as Nt,r as Pt,s as Ft,t as It,z as Lt}from"./isArrayLikeObject-BuP4GVJp.js";import{n as Rt,r as zt,t as Bt}from"./line-D7sRByN6.js";import{a as Vt,c as Ht,d as Ut,i as F,l as Wt,r as Gt,s as Kt,t as qt,u as Jt}from"./react-redux-DGXfzMhm.js";import{r as Yt,t as Xt}from"./getAnalytics-CmXDoq4g.js";var Zt=O(`clipboard-copy`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2`,key:`4jdomd`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v4`,key:`3hqy98`}],[`path`,{d:`M21 14H11`,key:`1bme5i`}],[`path`,{d:`m15 10-4 4 4 4`,key:`5dvupr`}]]),Qt=O(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]);function $t(e=De){if(e===De)return en;if(typeof e!=`function`)throw TypeError(`compare is not a function`);return(t,n)=>{let r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function en(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:+(e>t))}function tn(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=i===void 0?en:$t(i);r>n;){if(r-n>600){let a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1),u=Math.max(n,Math.floor(t-o*c/a+l)),d=Math.min(r,Math.floor(t+(a-o)*c/a+l));tn(e,t,u,d,i)}let a=e[t],o=n,s=r;for(nn(e,n,t),i(e[r],a)>0&&nn(e,n,r);o<s;){for(nn(e,o,s),++o,--s;i(e[o],a)<0;)++o;for(;i(e[s],a)>0;)--s}i(e[n],a)===0?nn(e,n,s):(++s,nn(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function nn(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function rn(e,t,n){if(e=Float64Array.from(je(e,n)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return Ge(e);if(t>=1)return qe(e);var r,i=(r-1)*t,a=Math.floor(i),o=qe(tn(e,a).subarray(0,a+1));return o+(Ge(e.subarray(a+1))-o)*(i-a)}}function an(e,t,n=Pe){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e);return o+(+n(e[a+1],a+1,e)-o)*(i-a)}}function on(e,t){t===void 0&&(t=e,e=Ve);for(var n=0,r=t.length-1,i=t[0],a=Array(r<0?0:r);n<r;)a[n]=e(i,i=t[++n]);return function(e){var t=Math.max(0,Math.min(r-1,Math.floor(e*=r)));return a[t](e-t)}}function sn(e){var t;function n(e){return e==null||isNaN(e=+e)?t:e}return n.invert=n,n.domain=n.range=function(t){return arguments.length?(e=Array.from(t,ke),n):e.slice()},n.unknown=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return sn(e).unknown(t)},e=arguments.length?Array.from(e,ke):[0,1],Fe(n)}function cn(e){return Math.log(e)}function ln(e){return Math.exp(e)}function un(e){return-Math.log(-e)}function dn(e){return-Math.exp(-e)}function fn(e){return isFinite(e)?+(`1e`+e):e<0?0:e}function pn(e){return e===10?fn:e===Math.E?Math.exp:t=>e**+t}function mn(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function hn(e){return(t,n)=>-e(-t,n)}function gn(e){let t=e(cn,ln),n=t.domain,r=10,i,a;function o(){return i=mn(r),a=pn(r),n()[0]<0?(i=hn(i),a=hn(a),e(un,dn)):e(cn,ln),t}return t.base=function(e){return arguments.length?(r=+e,o()):r},t.domain=function(e){return arguments.length?(n(e),o()):n()},t.ticks=e=>{let t=n(),o=t[0],s=t[t.length-1],c=s<o;c&&([o,s]=[s,o]);let l=i(o),u=i(s),d,f,p=e==null?10:+e,m=[];if(!(r%1)&&u-l<p){if(l=Math.floor(l),u=Math.ceil(u),o>0){for(;l<=u;++l)for(d=1;d<r;++d)if(f=l<0?d/a(-l):d*a(l),!(f<o)){if(f>s)break;m.push(f)}}else for(;l<=u;++l)for(d=r-1;d>=1;--d)if(f=l>0?d/a(-l):d*a(l),!(f<o)){if(f>s)break;m.push(f)}m.length*2<p&&(m=Ae(o,s,p))}else m=Ae(l,u,Math.min(u-l,p)).map(a);return c?m.reverse():m},t.tickFormat=(e,n)=>{if(e??=10,n??=r===10?`s`:`,`,typeof n!=`function`&&(!(r%1)&&(n=ct(n)).precision==null&&(n.trim=!0),n=lt(n)),e===1/0)return n;let o=Math.max(1,r*e/t.ticks().length);return e=>{let t=e/a(Math.round(i(e)));return t*r<r-.5&&(t*=r),t<=o?n(e):``}},t.nice=()=>n(Ke(n(),{floor:e=>a(Math.floor(i(e))),ceil:e=>a(Math.ceil(i(e)))})),t}function _n(){let e=gn(ze()).domain([1,10]);return e.copy=()=>Oe(e,_n()).base(e.base()),ut.apply(e,arguments),e}function vn(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function yn(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function bn(e){var t=1,n=e(vn(t),yn(t));return n.constant=function(n){return arguments.length?e(vn(t=+n),yn(t)):t},Fe(n)}function xn(){var e=bn(ze());return e.copy=function(){return Oe(e,xn()).constant(e.constant())},ut.apply(e,arguments)}function Sn(e){return function(t){return t<0?-((-t)**+e):t**+e}}function Cn(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function wn(e){return e<0?-e*e:e*e}function Tn(e){var t=e(Ie,Ie),n=1;function r(){return n===1?e(Ie,Ie):n===.5?e(Cn,wn):e(Sn(n),Sn(1/n))}return t.exponent=function(e){return arguments.length?(n=+e,r()):n},Fe(t)}function En(){var e=Tn(ze());return e.copy=function(){return Oe(e,En()).exponent(e.exponent())},ut.apply(e,arguments),e}function Dn(){return En.apply(null,arguments).exponent(.5)}function On(e){return Math.sign(e)*e*e}function kn(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function An(){var e=Me(),t=[0,1],n=!1,r;function i(t){var i=kn(e(t));return isNaN(i)?r:n?Math.round(i):i}return i.invert=function(t){return e.invert(On(t))},i.domain=function(t){return arguments.length?(e.domain(t),i):e.domain()},i.range=function(n){return arguments.length?(e.range((t=Array.from(n,ke)).map(On)),i):t.slice()},i.rangeRound=function(e){return i.range(e).round(!0)},i.round=function(e){return arguments.length?(n=!!e,i):n},i.clamp=function(t){return arguments.length?(e.clamp(t),i):e.clamp()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return An(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},ut.apply(i,arguments),Fe(i)}function jn(){var e=[],t=[],n=[],r;function i(){var r=0,i=Math.max(1,t.length);for(n=Array(i-1);++r<i;)n[r-1]=an(e,r/i);return a}function a(e){return e==null||isNaN(e=+e)?r:t[Le(n,e)]}return a.invertExtent=function(r){var i=t.indexOf(r);return i<0?[NaN,NaN]:[i>0?n[i-1]:e[0],i<n.length?n[i]:e[e.length-1]]},a.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)n!=null&&!isNaN(n=+n)&&e.push(n);return e.sort(De),i()},a.range=function(e){return arguments.length?(t=Array.from(e),i()):t.slice()},a.unknown=function(e){return arguments.length?(r=e,a):r},a.quantiles=function(){return n.slice()},a.copy=function(){return jn().domain(e).range(t).unknown(r)},ut.apply(a,arguments)}function Mn(){var e=0,t=1,n=1,r=[.5],i=[0,1],a;function o(e){return e!=null&&e<=e?i[Le(r,e,0,n)]:a}function s(){var i=-1;for(r=Array(n);++i<n;)r[i]=((i+1)*t-(i-n)*e)/(n+1);return o}return o.domain=function(n){return arguments.length?([e,t]=n,e=+e,t=+t,s()):[e,t]},o.range=function(e){return arguments.length?(n=(i=Array.from(e)).length-1,s()):i.slice()},o.invertExtent=function(a){var o=i.indexOf(a);return o<0?[NaN,NaN]:o<1?[e,r[0]]:o>=n?[r[n-1],t]:[r[o-1],r[o]]},o.unknown=function(e){return arguments.length&&(a=e),o},o.thresholds=function(){return r.slice()},o.copy=function(){return Mn().domain([e,t]).range(i).unknown(a)},ut.apply(Fe(o),arguments)}function Nn(){var e=[.5],t=[0,1],n,r=1;function i(i){return i!=null&&i<=i?t[Le(e,i,0,r)]:n}return i.domain=function(n){return arguments.length?(e=Array.from(n),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(n){return arguments.length?(t=Array.from(n),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(n){var r=t.indexOf(n);return[e[r-1],e[r]]},i.unknown=function(e){return arguments.length?(n=e,i):n},i.copy=function(){return Nn().domain(e).range(t).unknown(n)},ut.apply(i,arguments)}function Pn(){return ut.apply(tt($e,Ye,et,Ze,Je,it,rt,We,nt,Xe).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Fn(){var e=0,t=1,n,r,i,a,o=Ie,s=!1,c;function l(e){return e==null||isNaN(e=+e)?c:o(i===0?.5:(e=(a(e)-n)*i,s?Math.max(0,Math.min(1,e)):e))}l.domain=function(o){return arguments.length?([e,t]=o,n=a(e=+e),r=a(t=+t),i=n===r?0:1/(r-n),l):[e,t]},l.clamp=function(e){return arguments.length?(s=!!e,l):s},l.interpolator=function(e){return arguments.length?(o=e,l):o};function u(e){return function(t){var n,r;return arguments.length?([n,r]=t,o=e(n,r),l):[o(0),o(1)]}}return l.range=u(Ve),l.rangeRound=u(Ne),l.unknown=function(e){return arguments.length?(c=e,l):c},function(o){return a=o,n=o(e),r=o(t),i=n===r?0:1/(r-n),l}}function In(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function Ln(){var e=Fe(Fn()(Ie));return e.copy=function(){return In(e,Ln())},dt.apply(e,arguments)}function Rn(){var e=gn(Fn()).domain([1,10]);return e.copy=function(){return In(e,Rn()).base(e.base())},dt.apply(e,arguments)}function zn(){var e=bn(Fn());return e.copy=function(){return In(e,zn()).constant(e.constant())},dt.apply(e,arguments)}function Bn(){var e=Tn(Fn());return e.copy=function(){return In(e,Bn()).exponent(e.exponent())},dt.apply(e,arguments)}function Vn(){return Bn.apply(null,arguments).exponent(.5)}function Hn(){var e=[],t=Ie;function n(n){if(n!=null&&!isNaN(n=+n))return t((Le(e,n,1)-1)/(e.length-1))}return n.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)n!=null&&!isNaN(n=+n)&&e.push(n);return e.sort(De),n},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.range=function(){return e.map((n,r)=>t(r/(e.length-1)))},n.quantiles=function(t){return Array.from({length:t+1},(n,r)=>rn(e,r/t))},n.copy=function(){return Hn(t).domain(e)},dt.apply(n,arguments)}function Un(){var e=0,t=.5,n=1,r=1,i,a,o,s,c,l=Ie,u,d=!1,f;function p(e){return isNaN(e=+e)?f:(e=.5+((e=+u(e))-a)*(r*e<r*a?s:c),l(d?Math.max(0,Math.min(1,e)):e))}p.domain=function(l){return arguments.length?([e,t,n]=l,i=u(e=+e),a=u(t=+t),o=u(n=+n),s=i===a?0:.5/(a-i),c=a===o?0:.5/(o-a),r=a<i?-1:1,p):[e,t,n]},p.clamp=function(e){return arguments.length?(d=!!e,p):d},p.interpolator=function(e){return arguments.length?(l=e,p):l};function m(e){return function(t){var n,r,i;return arguments.length?([n,r,i]=t,l=on(e,[n,r,i]),p):[l(0),l(.5),l(1)]}}return p.range=m(Ve),p.rangeRound=m(Ne),p.unknown=function(e){return arguments.length?(f=e,p):f},function(l){return u=l,i=l(e),a=l(t),o=l(n),s=i===a?0:.5/(a-i),c=a===o?0:.5/(o-a),r=a<i?-1:1,p}}function Wn(){var e=Fe(Un()(Ie));return e.copy=function(){return In(e,Wn())},dt.apply(e,arguments)}function Gn(){var e=gn(Un()).domain([.1,1,10]);return e.copy=function(){return In(e,Gn()).base(e.base())},dt.apply(e,arguments)}function Kn(){var e=bn(Un());return e.copy=function(){return In(e,Kn()).constant(e.constant())},dt.apply(e,arguments)}function qn(){var e=Tn(Un());return e.copy=function(){return In(e,qn()).exponent(e.exponent())},dt.apply(e,arguments)}function Jn(){return qn.apply(null,arguments).exponent(.5)}function Yn(e,t,n){var r=null,i=P(!0),a=null,o=Ot,s=null,c=st(l);e=typeof e==`function`?e:e===void 0?Rt:P(+e),t=typeof t==`function`?t:P(t===void 0?0:+t),n=typeof n==`function`?n:n===void 0?zt:P(+n);function l(l){var u,d,f,p=(l=_t(l)).length,m,h=!1,g,_=Array(p),v=Array(p);for(a??(s=o(g=c())),u=0;u<=p;++u){if(!(u<p&&i(m=l[u],u,l))===h)if(h=!h)d=u,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),f=u-1;f>=d;--f)s.point(_[f],v[f]);s.lineEnd(),s.areaEnd()}h&&(_[u]=+e(m,u,l),v[u]=+t(m,u,l),s.point(r?+r(m,u,l):_[u],n?+n(m,u,l):v[u]))}if(g)return s=null,g+``||null}function u(){return Bt().defined(i).curve(o).context(a)}return l.x=function(t){return arguments.length?(e=typeof t==`function`?t:P(+t),r=null,l):e},l.x0=function(t){return arguments.length?(e=typeof t==`function`?t:P(+t),l):e},l.x1=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:P(+e),l):r},l.y=function(e){return arguments.length?(t=typeof e==`function`?e:P(+e),n=null,l):t},l.y0=function(e){return arguments.length?(t=typeof e==`function`?e:P(+e),l):t},l.y1=function(e){return arguments.length?(n=e==null?null:typeof e==`function`?e:P(+e),l):n},l.lineX0=l.lineY0=function(){return u().x(e).y(t)},l.lineY1=function(){return u().x(e).y(n)},l.lineX1=function(){return u().x(r).y(t)},l.defined=function(e){return arguments.length?(i=typeof e==`function`?e:P(!!e),l):i},l.curve=function(e){return arguments.length?(o=e,a!=null&&(s=o(a)),l):o},l.context=function(e){return arguments.length?(e==null?a=s=null:s=o(a=e),l):a},l}var Xn={draw(e,t){let n=mt(t/gt);e.moveTo(n,0),e.arc(0,0,n,0,ht)}},Zn={draw(e,t){let n=mt(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},Qn=mt(1/3),$n=Qn*2,er={draw(e,t){let n=mt(t/$n),r=n*Qn;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},tr={draw(e,t){let n=mt(t),r=-n/2;e.rect(r,r,n,n)}},nr=.8908130915292852,rr=pt(gt/10)/pt(7*gt/10),ir=pt(ht/10)*rr,ar=-ft(ht/10)*rr,or={draw(e,t){let n=mt(t*nr),r=ir*n,i=ar*n;e.moveTo(0,-n),e.lineTo(r,i);for(let t=1;t<5;++t){let a=ht*t/5,o=ft(a),s=pt(a);e.lineTo(s*n,-o*n),e.lineTo(o*r-s*i,s*r+o*i)}e.closePath()}},sr=mt(3),cr={draw(e,t){let n=-mt(t/(sr*3));e.moveTo(0,n*2),e.lineTo(-sr*n,-n),e.lineTo(sr*n,-n),e.closePath()}},lr=-.5,ur=mt(3)/2,dr=1/mt(12),fr=(dr/2+1)*3,pr={draw(e,t){let n=mt(t/fr),r=n/2,i=n*dr,a=r,o=n*dr+n,s=-a,c=o;e.moveTo(r,i),e.lineTo(a,o),e.lineTo(s,c),e.lineTo(lr*r-ur*i,ur*r+lr*i),e.lineTo(lr*a-ur*o,ur*a+lr*o),e.lineTo(lr*s-ur*c,ur*s+lr*c),e.lineTo(lr*r+ur*i,lr*i-ur*r),e.lineTo(lr*a+ur*o,lr*o-ur*a),e.lineTo(lr*s+ur*c,lr*c-ur*s),e.closePath()}};function mr(e,t){let n=null,r=st(i);e=typeof e==`function`?e:P(e||Xn),t=typeof t==`function`?t:P(t===void 0?64:+t);function i(){let i;if(n||=i=r(),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),i)return n=null,i+``||null}return i.type=function(t){return arguments.length?(e=typeof t==`function`?t:P(t),i):e},i.size=function(e){return arguments.length?(t=typeof e==`function`?e:P(+e),i):t},i.context=function(e){return arguments.length?(n=e??null,i):n},i}function hr(e,t){if((o=e.length)>1)for(var n=1,r,i,a=e[t[0]],o,s=a.length;n<o;++n)for(i=a,a=e[t[n]],r=0;r<s;++r)a[r][1]+=a[r][0]=isNaN(i[r][1])?i[r][0]:i[r][1]}function gr(e){for(var t=e.length,n=Array(t);--t>=0;)n[t]=t;return n}function _r(e,t){return e[t]}function vr(e){let t=[];return t.key=e,t}function yr(){var e=P([]),t=gr,n=hr,r=_r;function i(i){var a=Array.from(e.apply(this,arguments),vr),o,s=a.length,c=-1,l;for(let e of i)for(o=0,++c;o<s;++o)(a[o][c]=[0,+r(e,a[o].key,c,i)]).data=e;for(o=0,l=_t(t(a));o<s;++o)a[l[o]].index=o;return n(a,l),a}return i.keys=function(t){return arguments.length?(e=typeof t==`function`?t:P(Array.from(t)),i):e},i.value=function(e){return arguments.length?(r=typeof e==`function`?e:P(+e),i):r},i.order=function(e){return arguments.length?(t=e==null?gr:typeof e==`function`?e:P(Array.from(e)),i):t},i.offset=function(e){return arguments.length?(n=e??hr,i):n},i}function br(e,t){if((r=e.length)>0){for(var n,r,i=0,a=e[0].length,o;i<a;++i){for(o=n=0;n<r;++n)o+=e[n][i][1]||0;if(o)for(n=0;n<r;++n)e[n][i][1]/=o}hr(e,t)}}function xr(e,t){if((i=e.length)>0){for(var n=0,r=e[t[0]],i,a=r.length;n<a;++n){for(var o=0,s=0;o<i;++o)s+=e[o][n][1]||0;r[n][1]+=r[n][0]=-s/2}hr(e,t)}}function Sr(e,t){if(!(!((o=e.length)>0)||!((a=(i=e[t[0]]).length)>0))){for(var n=0,r=1,i,a,o;r<a;++r){for(var s=0,c=0,l=0;s<o;++s){for(var u=e[t[s]],d=u[r][1]||0,f=(d-(u[r-1][1]||0))/2,p=0;p<s;++p){var m=e[t[p]],h=m[r][1]||0,g=m[r-1][1]||0;f+=h-g}c+=d,l+=f*d}i[r-1][1]+=i[r-1][0]=n,c&&(n-=l/c)}i[r-1][1]+=i[r-1][0]=n,hr(e,t)}}function Cr(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function wr(e,t=1){let n=[],r=Math.floor(t),i=(e,t)=>{for(let a=0;a<e.length;a++){let o=e[a];Array.isArray(o)&&t<r?i(o,t+1):n.push(o)}};return i(e,0),n}function Tr(e){if(e==null)return``;if(typeof e==`string`)return e;if(Array.isArray(e))return e.map(Tr).join(`,`);let t=String(e);return t===`0`&&Object.is(Number(e),-0)?`-0`:t}function Er(e){return typeof e==`string`||typeof e==`symbol`?e:Object.is(e?.valueOf?.(),-0)?`-0`:String(e)}function Dr(e){if(Array.isArray(e))return e.map(Er);if(typeof e==`symbol`)return[e];e=Tr(e);let t=[],n=e.length;if(n===0)return t;let r=0,i=``,a=``,o=!1;for(e.charCodeAt(0)===46&&t.push(``);r<n;){let s=e[r];if(a)s===`\\`&&r+1<n?(r++,i+=e[r]):s===a?a=``:i+=s;else if(o)s===`"`||s===`'`?a=s:s===`]`?(o=!1,t.push(i),i=``):i+=s;else if(s===`[`)o=!0,i&&=(t.push(i),``);else if(s===`.`){i&&=(t.push(i),``);let n=e[r+1];(n===void 0||n===`.`)&&t.push(``)}else i+=s;r++}return i&&t.push(i),t}function Or(e){switch(typeof e){case`number`:case`symbol`:return!1;case`string`:return e.includes(`.`)||e.includes(`[`)||e.includes(`]`)}}function kr(e,t,n){if(e==null)return n;switch(typeof t){case`string`:{if(At(t))return n;let r=e[t];return r===void 0?Or(t)&&!Object.hasOwn(e,t)?kr(e,Dr(t),n):n:r}case`number`:case`symbol`:{typeof t==`number`&&(t=Er(t));let r=e[t];return r===void 0?n:r}default:{if(Array.isArray(t))return Ar(e,t,n);if(t=Object.is(t?.valueOf(),-0)?`-0`:String(t),At(t))return n;let r=e[t];return r===void 0?n:r}}}function Ar(e,t,n){if(t.length===0)return n;let r=e;for(let e=0;e<t.length;e++){if(r==null||At(t[e]))return n;r=r[t[e]]}return r===void 0?n:r}function jr(e){return function(t){return kr(t,e)}}function Mr(e){return e!==null&&(typeof e==`object`||typeof e==`function`)}function Nr(e,t,n){return typeof n==`function`?Pr(e,t,function e(t,r,i,a,o,s){let c=n(t,r,i,a,o,s);return c===void 0?Pr(t,r,e,s,!1):!!c},new Map,!0):Nr(e,t,()=>void 0)}function Pr(e,t,n,r,i=!1){if(t===e)return!0;switch(typeof t){case`object`:return Fr(e,t,n,r);case`function`:return Object.keys(t).length>0?Pr(e,{...t},n,r,i):Cr(e,t);default:return Mr(e)&&i?typeof t!=`string`||t===``:Cr(e,t)}}function Fr(e,t,n,r){if(t==null)return!0;if(Array.isArray(t))return Lr(e,t,n,r);if(t instanceof Map)return Ir(e,t,n,r);if(t instanceof Set)return Rr(e,t,n,r);let i=Object.keys(t);if(e==null||Ft(e))return i.length===0;if(i.length===0)return!0;if(r?.has(t))return r.get(t)===e;r?.set(t,e);try{for(let a=0;a<i.length;a++){let o=i[a];if(!Ft(e)&&!(o in e)||t[o]===void 0&&e[o]!==void 0||t[o]===null&&e[o]!==null||!n(e[o],t[o],o,e,t,r))return!1}return!0}finally{r?.delete(t)}}function Ir(e,t,n,r){if(t.size===0)return!0;if(!(e instanceof Map))return!1;for(let[i,a]of t.entries())if(n(e.get(i),a,i,e,t,r)===!1)return!1;return!0}function Lr(e,t,n,r){if(t.length===0)return!0;if(!Array.isArray(e))return!1;let i=new Set;for(let a=0;a<t.length;a++){let o=t[a],s=!1;for(let c=0;c<e.length;c++){if(i.has(c))continue;let l=e[c],u=!1;if(n(l,o,a,e,t,r)&&(u=!0),u){i.add(c),s=!0;break}}if(!s)return!1}return!0}function Rr(e,t,n,r){return t.size===0||e instanceof Set&&Lr([...e],[...t],n,r)}function zr(e,t){return Nr(e,t,()=>void 0)}function Br(e){return kt(e,void 0,e,new Map,void 0)}function Vr(e){return e=Br(e),t=>zr(t,e)}var Hr=/^(?:0|[1-9]\d*)$/;function Ur(e,t=2**53-1){switch(typeof e){case`number`:return Number.isInteger(e)&&e>=0&&e<t;case`symbol`:return!1;case`string`:return Hr.test(e)}}function Wr(e,t){let n;if(n=Array.isArray(t)?t:typeof t==`string`&&Or(t)&&e?.[t]==null?Dr(t):[t],n.length===0)return!1;let r=e;for(let e=0;e<n.length;e++){let t=n[e];if((r==null||!Object.hasOwn(r,t))&&!((Array.isArray(r)||Pt(r))&&Ur(t)&&t<r.length))return!1;r=r[t]}return!0}function Gr(e,t){switch(typeof e){case`object`:Object.is(e?.valueOf(),-0)&&(e=`-0`);break;case`number`:e=Er(e);break}return t=jt(t),function(n){let r=kr(n,e);return r===void 0?Wr(n,e):t===void 0?r===void 0:zr(r,t)}}function Kr(e){return e}function qr(e){if(e==null)return Kr;switch(typeof e){case`function`:return e;case`object`:return Array.isArray(e)&&e.length===2?Gr(e[0],e[1]):Vr(e);case`string`:case`symbol`:case`number`:return jr(e)}}function Jr(e){return typeof e==`symbol`||e instanceof Symbol}function Yr(e){return Jr(e)?NaN:Number(e)}function Xr(e){return e?(e=Yr(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function Zr(e,t,n){return Mr(n)&&(typeof t==`number`&&Mt(n)&&Ur(t)&&t<n.length||typeof t==`string`&&t in n)?Cr(n[t],e):!1}function Qr(e){return typeof e==`symbol`?1:e===null?2:e===void 0?3:e===e?0:4}var $r=(e,t,n)=>{if(e!==t){let r=Qr(e),i=Qr(t);if(r===i&&r===0){if(e<t)return n===`desc`?1:-1;if(e>t)return n===`desc`?-1:1}return n===`desc`?i-r:r-i}return 0},ei=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ti=/^\w*$/;function ni(e,t){return Array.isArray(e)?!1:typeof e==`number`||typeof e==`boolean`||e==null||Jr(e)?!0:typeof e==`string`&&(ti.test(e)||!ei.test(e))||t!=null&&Object.hasOwn(t,e)}function ri(e,t,n,r){if(e==null)return[];n=r?void 0:n,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(n)||(n=n==null?[]:[n]),n=n.map(e=>String(e));let i=(e,t)=>{let n=e;for(let e=0;e<t.length&&n!=null;++e)n=n[t[e]];return n},a=(e,t)=>t==null||e==null?t:typeof e==`object`&&`key`in e?Object.hasOwn(t,e.key)?t[e.key]:i(t,e.path):typeof e==`function`?e(t):Array.isArray(e)?i(t,e):typeof t==`object`?t[e]:t,o=t.map(e=>(Array.isArray(e)&&e.length===1&&(e=e[0]),e==null||typeof e==`function`||Array.isArray(e)||ni(e)?e:{key:e,path:Dr(e)}));return e.map(e=>({original:e,criteria:o.map(t=>a(t,e))})).slice().sort((e,t)=>{for(let r=0;r<o.length;r++){let i=$r(e.criteria[r],t.criteria[r],n[r]);if(i!==0)return i}return 0}).map(e=>e.original)}function ii(e,...t){let n=t.length;return n>1&&Zr(e,t[0],t[1])?t=[]:n>2&&Zr(t[0],t[1],t[2])&&(t=[t[0]]),ri(e,wr(t),[`asc`])}function ai(e,t){let n=new Map;for(let r=0;r<e.length;r++){let i=e[r],a=t(i,r,e);n.has(a)||n.set(a,i)}return Array.from(n.values())}function oi(e,t){return function(...n){return e.apply(this,n.slice(0,t))}}function si(e,t=Kr){return It(e)?ai(Array.from(e),oi(qr(t),1)):[]}function ci(e,t,{signal:n,edges:r}={}){let i,a=null,o=r!=null&&r.includes(`leading`),s=r==null||r.includes(`trailing`),c=()=>{a!==null&&(e.apply(i,a),i=void 0,a=null)},l=()=>{s&&c(),p()},u=null,d=()=>{u!=null&&clearTimeout(u),u=setTimeout(()=>{u=null,l()},t)},f=()=>{u!==null&&(clearTimeout(u),u=null)},p=()=>{f(),i=void 0,a=null},m=()=>{c()},h=function(...e){if(n?.aborted)return;i=this,a=e;let t=u==null;d(),o&&t&&c()};return h.schedule=d,h.cancel=p,h.flush=m,n?.addEventListener(`abort`,p,{once:!0}),h}function li(e,t=0,n={}){typeof n!=`object`&&(n={});let{leading:r=!1,trailing:i=!0,maxWait:a}=n,o=[,,];r&&(o[0]=`leading`),i&&(o[1]=`trailing`);let s,c=null,l=ci(function(...t){s=e.apply(this,t),c=null},t,{edges:o}),u=function(...t){return a!=null&&(c===null&&(c=Date.now()),Date.now()-c>=a)?(s=e.apply(this,t),c=Date.now(),l.cancel(),l.schedule(),s):(l.apply(this,t),s)};return u.cancel=l.cancel,u.flush=()=>(l.flush(),s),u}function ui(e,t=0,n={}){let{leading:r=!0,trailing:i=!0}=n;return li(e,t,{leading:r,maxWait:t,trailing:i})}function di(e,t,n){n&&typeof n!=`number`&&Zr(e,t,n)&&(t=n=void 0),e=Xr(e),t===void 0?(t=e,e=0):t=Xr(t),n=n===void 0?e<t?1:-1:Xr(n);let r=Math.max(Math.ceil((t-e)/(n||1)),0),i=Array(r);for(let t=0;t<r;t++)i[t]=e,e+=n;return i}var I=e(m(),1),L=g(),fi=`studio:analytics:onboarding-dismissed:v1`;function pi(){let[e,t]=(0,I.useState)(null);return(0,I.useEffect)(()=>{try{t(window.localStorage.getItem(fi)===`1`)}catch{t(!0)}},[]),e===!1?(0,L.jsxs)(`div`,{role:`status`,className:`mb-3 flex items-start gap-3 rounded-md border border-border bg-muted/30 px-3 py-2 text-sm text-muted-foreground`,children:[(0,L.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,L.jsx)(`span`,{className:`font-medium text-foreground`,children:`Tip:`}),` Click a legend entry to isolate one node, `,(0,L.jsx)(`kbd`,{className:`rounded border border-border px-1 py-0.5 text-xs`,children:`⌘`}),` / `,(0,L.jsx)(`kbd`,{className:`rounded border border-border px-1 py-0.5 text-xs`,children:`Ctrl`}),`-click to compare a few. In the storage charts, click a bar segment to pin that table's trend.`]}),(0,L.jsx)(i,{variant:`ghost`,size:`icon`,onClick:()=>{try{window.localStorage.setItem(fi,`1`)}catch{}t(!0)},"aria-label":`Dismiss tip`,className:`-mt-1 h-7 w-7 shrink-0`,children:(0,L.jsx)(j,{className:`h-4 w-4`})})]}):null}var mi=(0,I.createContext)(null);function hi({value:e,children:t}){let n=(0,I.useMemo)(()=>e,[e.timeRange.startTime,e.timeRange.endTime,e.bucketMs,e.theme,e.instanceParams.entityId]);return(0,L.jsx)(mi.Provider,{value:n,children:t})}function gi(){let e=(0,I.useContext)(mi);if(!e)throw Error(`useAnalyticsContext must be used inside <AnalyticsProvider>`);return e}var _i=Xt;function vi(e){let t=s(),[n,r]=(0,I.useState)(!1),[i,a]=(0,I.useState)(null),[o,c]=(0,I.useState)(()=>Date.now());return(0,I.useEffect)(()=>{let n=t.getQueryCache(),i=t=>Array.isArray(t.queryKey)&&t.queryKey[0]===_i&&t.queryKey[1]===e,o=()=>{let e=!1,t=null;for(let r of n.getAll())i(r)&&(r.state.fetchStatus===`fetching`&&(e=!0),r.state.dataUpdatedAt>0&&(t===null||r.state.dataUpdatedAt>t)&&(t=r.state.dataUpdatedAt));r(t=>t===e?t:e),a(e=>e===t?e:t)};o();let s=n.subscribe(e=>{!e?.query||!i(e.query)||o()});return()=>s()},[t,e]),(0,I.useEffect)(()=>{let e=!1,t,n=()=>{if(e)return;c(Date.now());let r=i===null?0:Date.now()-i,a=r<6e4?1e3:r<6e5?5e3:3e4;t=window.setTimeout(n,a)};return t=window.setTimeout(n,1e3),()=>{e=!0,t!==void 0&&window.clearTimeout(t)}},[i]),{isFetching:n,lastFetchedAt:i,now:o}}function yi(e,t){if(e===null)return null;let n=Math.max(0,Math.floor((t-e)/1e3));if(n<5)return`just now`;if(n<60)return`${n}s ago`;let r=Math.floor(n/60);return r<60?`${r}m ago`:`${Math.floor(r/60)}h ago`}function bi({presetId:e,onPresetChange:t,refreshMs:n,onRefreshChange:a,onManualRefresh:o}){let{instanceParams:s}=gi(),{isFetching:c,lastFetchedAt:l,now:u}=vi(s.entityId),d=yi(l,u);return(0,L.jsxs)(`div`,{className:`flex items-center gap-2`,children:[d&&(0,L.jsxs)(`span`,{className:`text-xs text-muted-foreground tabular-nums`,title:l?new Date(l).toLocaleString():void 0,"aria-label":l?`Last updated ${new Date(l).toLocaleString()}`:void 0,children:[`Updated `,d]}),(0,L.jsxs)(ie,{value:e,onValueChange:e=>t(e),children:[(0,L.jsx)(fe,{className:`w-[180px]`,children:(0,L.jsx)(me,{})}),(0,L.jsx)(pe,{children:ye.map(e=>(0,L.jsx)(ae,{value:e.id,children:e.label},e.id))})]}),(0,L.jsxs)(ie,{value:String(n),onValueChange:e=>a(Number(e)),children:[(0,L.jsx)(fe,{className:`w-[100px]`,children:(0,L.jsx)(me,{})}),(0,L.jsx)(pe,{children:xe.map(e=>(0,L.jsx)(ae,{value:String(e.value),children:e.label},e.value))})]}),(0,L.jsx)(i,{variant:`ghost`,size:`icon`,onClick:o,disabled:c,"aria-busy":c,"aria-label":c?`Refreshing…`:`Refresh now`,title:c?`Refreshing…`:`Refresh now`,children:(0,L.jsx)(A,{className:r(`h-4 w-4`,c&&`animate-spin`)})})]})}var xi=[`utilization`,`cpu-usage`,`memory`,`main-thread-utilization`],Si=30*6e4;function Ci(e){return e?.response?.status??e?.status}function wi(e){let t=Ci(e);return t===401||t===403}function Ti(e){let t=Ci(e);return typeof t==`number`&&t>=400&&t<500&&!wi(e)}function Ei(e){let t=l({queryKey:[`analytics-capability`,e.entityId],queryFn:async()=>{let t=Date.now(),n=t-5*6e4,r=null;for(let i of xi)try{return await e.instanceClient.post(`/`,{operation:`get_analytics`,metric:i,start_time:n,end_time:t}),!0}catch(e){if(r=e,!Ti(e))throw e}throw r instanceof Error?r:Error(`Analytics probe failed for all metrics`)},retry:(e,t)=>!wi(t)&&e<2,retryDelay:e=>Math.min(1e3*2**e,8e3),staleTime:Si,gcTime:Si});return{supported:t.isSuccess===!0,error:t.error,isAuthError:t.error!=null&&wi(t.error),isLoading:t.isLoading,isFetching:t.isFetching,retry:()=>{t.refetch()}}}function Di(){let[e,t]=(0,I.useState)(()=>typeof document<`u`&&document.documentElement.classList.contains(`dark`));return(0,I.useEffect)(()=>{let e=document.documentElement;t(e.classList.contains(`dark`));let n=new MutationObserver(()=>{t(e.classList.contains(`dark`))});return n.observe(e,{attributes:!0,attributeFilter:[`class`]}),()=>n.disconnect()},[]),e?`dark`:`light`}function Oi(){return{axisColor:`var(--chart-axis, #6b7280)`,gridColor:`var(--chart-grid, #e5e7eb)`}}var ki=new Set([`time`,`node`]),Ai=Object.freeze([]);function ji({metric:e,startTime:t,endTime:n,conditions:r,instanceParams:i,requiredFields:a,bucketMs:s}){let c=l({...Yt({metric:e,startTime:t,endTime:n,conditions:r,instanceParams:i,bucketMs:s}),staleTime:1/0,gcTime:6e4,refetchOnWindowFocus:!1,refetchOnReconnect:!1,placeholderData:o}),u=c.data??Ai,{fieldKeys:d,missingFields:f}=(0,I.useMemo)(()=>{let e=new Set;for(let t of u)for(let n of Object.keys(t))ki.has(n)||e.add(n);let t=[];if(a&&u.length>0)for(let n of a)e.has(n)||t.push(n);return{fieldKeys:e,missingFields:t}},[u,a]);return(0,I.useEffect)(()=>{!c.isLoading&&u.length===0&&f.length>0&&console.warn(`[analytics] panel rendered empty with missing fields`,{metric:e,instanceId:i.entityId,missingFields:f})},[u.length,c.isLoading,e,i.entityId,f]),{data:u,isLoading:c.isLoading,isError:c.isError,error:c.error,isEmpty:u.length===0,fieldKeys:d,missingFields:f,refetch:c.refetch}}function Mi(e,t,n){let r=new Map;for(let t of e){let e=typeof t.path==`string`?t.path:null;if(!e||typeof t.time!=`number`||!Number.isFinite(t.time))continue;let n=typeof t.count==`number`&&Number.isFinite(t.count)?t.count:0,i=typeof t.total==`number`&&Number.isFinite(t.total)?t.total:0,a=r.get(e);a||(a=new Map,r.set(e,a));let o=a.get(t.time);o||(o={sumCount:0,sumTotal:0},a.set(t.time,o)),o.sumCount+=n,o.sumTotal+=i}return{series:[...r.entries()].map(([e,t])=>({key:e,label:e,points:[...t.keys()].sort((e,t)=>e-t).map(e=>{let n=t.get(e);return{x:e,y:n.sumCount===0?null:1-n.sumTotal/n.sumCount,count:n.sumCount}})})),thresholds:[{value:.001,label:`0.1% error SLO`,direction:`above-is-bad`,minCount:1e3}]}}var Ni={id:`error-rate`,title:`Error rate (≥1000 req)`,subtitle:`errored-request fraction — 1 − Σtotal/Σcount`,tab:`requests`,sourceMetric:`success`,recompute:Mi,primitive:`line`,yAxis:{unit:``,formatter:`percent`}},Pi=[`var(--chart-node-1)`,`var(--chart-node-2)`,`var(--chart-node-3)`,`var(--chart-node-4)`,`var(--chart-node-5)`,`var(--chart-node-6)`,`var(--chart-node-7)`,`var(--chart-node-8)`,`var(--chart-node-9)`,`var(--chart-node-10)`];function Fi(e,t){return Pi[[...t].sort().indexOf(e)%Pi.length]}function Ii({nodeIds:e,isActive:t,onClickNode:n,disabled:r}){return(0,L.jsxs)(`div`,{role:`group`,"aria-label":r?`Node filter (unavailable on this tab)`:`Node filter`,className:`flex flex-wrap justify-center gap-x-4 gap-y-1 pt-2 text-[11px]`,children:[r&&(0,L.jsx)(`span`,{className:`sr-only`,"aria-live":`polite`,children:`Per-node filter is unavailable on this tab. Buttons remain visible to preserve selection state.`}),e.map(i=>{let a=Fi(i,e),o=t(i);return(0,L.jsxs)(`button`,{type:`button`,"aria-pressed":o,"aria-disabled":r?`true`:void 0,title:r?`Per-node filter unavailable on this tab's panels`:void 0,onClick:e=>{r||n(i,e.ctrlKey||e.metaKey)},className:`inline-flex items-center gap-1.5 cursor-pointer border-none bg-transparent p-0`,style:r?{color:a,opacity:.5,cursor:`not-allowed`}:{color:a,opacity:o?1:.3},children:[(0,L.jsx)(`span`,{className:`inline-block h-[3px] w-3 rounded`,style:{backgroundColor:a}}),(0,L.jsx)(`span`,{children:i})]},i)})]})}function Li(e){let[t,n]=(0,I.useState)(null),r=(0,I.useRef)(e);return r.current=e,{isActive:(0,I.useCallback)(e=>t===null||t.has(e),[t]),handleClick:(0,I.useCallback)((e,t)=>{let i=r.current;n(n=>{if(t){if(n===null)return new Set(i.filter(t=>t!==e));let t=new Set(n);if(t.has(e)){if(t.delete(e),t.size===0)return null}else if(t.add(e),t.size===i.length)return null;return t}return n!==null&&n.size===1&&n.has(e)?null:new Set([e])})},[]),activeSet:t}}function Ri(e){let{isActive:t,handleClick:n,activeSet:r}=Li(e);return{isActive:t,handleLegendClick:n,activeNodes:r}}function zi(e,t,n){let r=(0,I.useRef)([]);(0,I.useEffect)(()=>{r.current=r.current.slice(0,e.length)},[e.length]);let i=t===null?-1:e.indexOf(t),a=i>=0?i:0;function o(t,i){if(t.key===`Enter`||t.key===` `){t.preventDefault(),n(e[i]);return}if(t.key!==`ArrowLeft`&&t.key!==`ArrowRight`&&t.key!==`ArrowDown`&&t.key!==`ArrowUp`)return;t.preventDefault();let a=e.length;if(a===0)return;let o=(i+(t.key===`ArrowRight`||t.key===`ArrowDown`?1:-1)+a)%a;r.current[o]?.focus(),n(e[o])}function s(t){return{role:`radio`,"aria-checked":t===i,tabIndex:t===a?0:-1,ref:e=>{r.current[t]=e},onKeyDown:e=>o(e,t),onClick:()=>n(e[t])}}return{getRadioProps:s,selectedIdx:i}}var Bi=[`var(--chart-type-1)`,`var(--chart-type-2)`,`var(--chart-type-3)`,`var(--chart-type-4)`,`var(--chart-type-5)`,`var(--chart-type-6)`];function Vi(e,t){let n=[...t].sort().indexOf(e);return Bi[(n<0?0:n)%Bi.length]}function Hi(e,t){let n=t.filter(e=>typeof e.value==`number`&&Number.isFinite(e.value));if(n.length===0)return null;let r=n.map(e=>e.value);switch(e){case`sum`:return r.reduce((e,t)=>e+t,0);case`mean`:return r.reduce((e,t)=>e+t,0)/r.length;case`max`:{let e=r[0];for(let t=1;t<r.length;t++)r[t]>e&&(e=r[t]);return e}case`min`:{let e=r[0];for(let t=1;t<r.length;t++)r[t]<e&&(e=r[t]);return e}case`last`:return r[r.length-1];case`p50`:return Ui(r,.5);case`p95`:return Ui(r,.95);case`p99`:return Ui(r,.99);case`count-weighted-mean`:{let e=0,t=0;for(let r of n){let n=Number.isFinite(r.count)?r.count:1;e+=r.value*n,t+=n}return t===0?null:e/t}}}function Ui(e,t){let n=[...e].sort((e,t)=>e-t);return n[Math.max(1,Math.ceil(t*n.length))-1]}function Wi(e){return e===`count-weighted-mean`}function Gi(e,t){return Wi(t)?e.endsWith(`(approx)`)?e:`${e} (approx)`:e}function Ki(e,t){if(!t)return`ok`;if(e===void 0)return`suppress`;let{suppressBelow:n,greyBelow:r}=t;return n!==void 0&&e<n?r!==void 0&&e>=r?`grey`:`suppress`:r!==void 0&&e<r?`grey`:`ok`}function qi(e,t){switch(e.kind){case`const`:return e.value;case`ref`:{let n=t[e.field];return typeof n==`number`&&Number.isFinite(n)?n:null}case`op`:{let n=qi(e.left,t),r=qi(e.right,t);if(n===null||r===null)return null;switch(e.op){case`+`:return n+r;case`-`:return n-r;case`*`:return n*r;case`/`:return r===0?null:n/r;default:{let t=e.op;throw Error(`unknown op: ${String(t)}`)}}}default:throw Error(`unknown FieldExpr kind: ${e.kind}`)}}var Ji={"percent-of-core":e=>e*100};function Yi(e,t,n){if(t===null)return null;switch(e.kind){case`raw`:return t;case`scale`:return t*e.factor;case`rate`:return!Number.isFinite(n)||n<=0?null:t/n*1e3;case`ratio`:return t;case`compose`:{let r=t;for(let t of e.steps)if(r=Yi(t,r,n),r===null)return null;return r}case`named`:{let n=Ji[e.name];if(!n)throw Error(`unknown named transform: ${e.name}`);return n(t)}default:throw Error(`unknown transform kind: ${e.kind}`)}}function Xi(e,t){return`${e}|${t}`}function Zi(e,t,n,r,i){return e.series.kind===`field`?ia(e,e.series.fields,t,i?.perNode??!1,i?.snapToPeriod??!1):ra(e,e.series,t,i?.perNode??!1,i?.snapToPeriod??!1)}function Qi(e,t,n){let r=$i(e,t);return Math.round(n/r)*r}function $i(e,t){let n=t.period;if(typeof n==`number`&&Number.isFinite(n)&&n>0)return n;let r=e.bucket?.fallbackMs;return typeof r==`number`&&Number.isFinite(r)&&r>0?r:6e4}function ea(e,t){let n=e.timestamp??`time`;if(n===`time`){let e=t.time;return typeof e==`number`&&Number.isFinite(e)?e:null}if(n===`id`){let e=t.id;return typeof e==`number`&&Number.isFinite(e)?e:null}let r=t.time;if(typeof r==`number`&&Number.isFinite(r))return r;let i=t.id;return typeof i==`number`&&Number.isFinite(i)?i:null}function ta(e,t,n){let r=0,i,a=n.map(e=>{let n=ea(t,e);return n===null&&(r++,i??=e),n});return r>0&&console.warn(`[${e}] Dropping ${r} record(s) with no resolvable timestamp:`,{sample:i&&{time:i.time,id:i.id,node:i.node},timestamp:t.timestamp??`time`}),a}function na(e,t,n){let r=typeof t.field==`string`?typeof n[t.field]==`number`?n[t.field]:null:qi(t.field,n);return Yi(t.transform??{kind:`raw`},r,$i(e,n))}function ra(e,t,n,r,i){let a=new Map,o=new Map,s=ta(`runGroupBy`,e,n);for(let r=0;r<n.length;r++){let c=n[r],l=c[t.dimension];if(typeof l!=`string`&&typeof l!=`number`)continue;let u=na(e,t.field,c);if(u===null)continue;let d=s[r];if(d===null)continue;let f=i?Qi(e,c,d):d,p=typeof c.count==`number`&&Number.isFinite(c.count)?c.count:1,m=typeof c.node==`string`?c.node:`_no_node`;o.set(l,(o.get(l)??0)+p);let h=a.get(l);h||(h=new Map,a.set(l,h));let g=h.get(f);g||(g=new Map,h.set(f,g));let _=g.get(m);_||(_={items:[],totalCount:0},g.set(m,_)),_.items.push({value:u,count:p}),_.totalCount+=p}let c=t.field.aggregator?.temporal??e.aggregator.temporal,l=t.field.aggregator?.crossNode??e.aggregator.crossNode,u=c===`count-weighted-mean`||l===`count-weighted-mean`,d=[...o.entries()].sort((e,t)=>t[1]-e[1]),f=t.topN??1/0,p=d.slice(0,f),m=d.slice(f),h=[],g=0;for(let[n,i]of p){if(Ki(i,e.confidence)===`suppress`){g++;continue}let o=a.get(n);if(!o)continue;let s=t.dimension===`node`;if(r&&!s){let e=new Map;for(let[t,n]of o)for(let[r,i]of n){let n=e.get(r);n||(n=new Map,e.set(r,n)),n.set(t,i)}for(let[t,r]of e){let e=[],i=[...r.keys()].sort((e,t)=>e-t);for(let t of i){let n=r.get(t),i=Hi(c,n.items);e.push({x:t,y:i,count:n.totalCount})}h.push({key:Xi(String(n),t),label:Gi(t,c),dim:String(n),node:t,points:e,approx:u})}}else{let e=[],t=[...o.keys()].sort((e,t)=>e-t);for(let n of t){let{y:t,count:r}=aa(c,l,o.get(n));e.push({x:n,y:t,count:r})}h.push({key:String(n),label:Gi(String(n),c),dim:String(n),...s?{node:String(n)}:{},points:e,approx:u})}}if(t.otherBucket&&m.length>0)if(Ki(m.reduce((e,[,t])=>e+t,0),e.confidence)!==`suppress`){let e=new Map;for(let[t]of m){let n=a.get(t);if(n)for(let[t,r]of n){let n=e.get(t);n||(n=new Map,e.set(t,n));for(let[e,t]of r){let r=n.get(e);r||(r={items:[],totalCount:0},n.set(e,r));for(let e of t.items)r.items.push(e);r.totalCount+=t.totalCount}}}let t=[],n=[...e.keys()].sort((e,t)=>e-t);for(let r of n){let{y:n,count:i}=aa(c,l,e.get(r));t.push({x:r,y:n,count:i})}h.push({key:`Other`,label:Gi(`Other`,c),dim:`Other`,points:t,approx:u})}else g++;return{series:h,thresholds:e.thresholds,...g>0?{suppressedSeriesCount:g}:{}}}function ia(e,t,n,r,i){let a=ta(`runFieldSpecs`,e,n);return{series:t.map(t=>{let o=new Map;for(let r=0;r<n.length;r++){let s=n[r],c=a[r];if(c===null)continue;let l=na(e,t,s);if(l===null)continue;let u=typeof s.count==`number`&&Number.isFinite(s.count)?s.count:1,d=typeof s.node==`string`?s.node:`_no_node`,f=i?Qi(e,s,c):c,p=o.get(f);p||(p=new Map,o.set(f,p));let m=p.get(d);m||(m={items:[],totalCount:0},p.set(d,m)),m.items.push({value:l,count:u}),m.totalCount+=u}let s=t.aggregator?.temporal??e.aggregator.temporal,c=t.aggregator?.crossNode??e.aggregator.crossNode,l=s===`count-weighted-mean`||c===`count-weighted-mean`,u=typeof t.field==`string`?t.field:t.label;if(r){let e=new Map;for(let[t,n]of o)for(let[r,i]of n){let n=e.get(r);n||(n=new Map,e.set(r,n)),n.set(t,i)}let n=[];for(let[r,i]of e){let e=[],a=[...i.keys()].sort((e,t)=>e-t);for(let t of a){let n=i.get(t),r=Hi(s,n.items);e.push({x:t,y:r,count:n.totalCount})}n.push({key:Xi(u,r),label:Gi(`${t.label} — ${r}`,s),dim:u,node:r,axis:t.axis,points:e,approx:l})}return n}let d=[],f=[...o.keys()].sort((e,t)=>e-t);for(let e of f){let{y:t,count:n}=aa(s,c,o.get(e));d.push({x:e,y:t,count:n})}return[{key:u,label:Gi(t.label,s),dim:u,axis:t.axis,points:d,approx:l}]}).flat(),thresholds:e.thresholds}}function aa(e,t,n){let r=[],i=0;for(let[,t]of n){let n=Hi(e,t.items);typeof n==`number`&&Number.isFinite(n)&&r.push({value:n,count:t.totalCount}),i+=t.totalCount}return{y:Hi(t,r),count:i}}var oa=`dangerouslySetInnerHTML.onCopy.onCopyCapture.onCut.onCutCapture.onPaste.onPasteCapture.onCompositionEnd.onCompositionEndCapture.onCompositionStart.onCompositionStartCapture.onCompositionUpdate.onCompositionUpdateCapture.onFocus.onFocusCapture.onBlur.onBlurCapture.onChange.onChangeCapture.onBeforeInput.onBeforeInputCapture.onInput.onInputCapture.onReset.onResetCapture.onSubmit.onSubmitCapture.onInvalid.onInvalidCapture.onLoad.onLoadCapture.onError.onErrorCapture.onKeyDown.onKeyDownCapture.onKeyPress.onKeyPressCapture.onKeyUp.onKeyUpCapture.onAbort.onAbortCapture.onCanPlay.onCanPlayCapture.onCanPlayThrough.onCanPlayThroughCapture.onDurationChange.onDurationChangeCapture.onEmptied.onEmptiedCapture.onEncrypted.onEncryptedCapture.onEnded.onEndedCapture.onLoadedData.onLoadedDataCapture.onLoadedMetadata.onLoadedMetadataCapture.onLoadStart.onLoadStartCapture.onPause.onPauseCapture.onPlay.onPlayCapture.onPlaying.onPlayingCapture.onProgress.onProgressCapture.onRateChange.onRateChangeCapture.onSeeked.onSeekedCapture.onSeeking.onSeekingCapture.onStalled.onStalledCapture.onSuspend.onSuspendCapture.onTimeUpdate.onTimeUpdateCapture.onVolumeChange.onVolumeChangeCapture.onWaiting.onWaitingCapture.onAuxClick.onAuxClickCapture.onClick.onClickCapture.onContextMenu.onContextMenuCapture.onDoubleClick.onDoubleClickCapture.onDrag.onDragCapture.onDragEnd.onDragEndCapture.onDragEnter.onDragEnterCapture.onDragExit.onDragExitCapture.onDragLeave.onDragLeaveCapture.onDragOver.onDragOverCapture.onDragStart.onDragStartCapture.onDrop.onDropCapture.onMouseDown.onMouseDownCapture.onMouseEnter.onMouseLeave.onMouseMove.onMouseMoveCapture.onMouseOut.onMouseOutCapture.onMouseOver.onMouseOverCapture.onMouseUp.onMouseUpCapture.onSelect.onSelectCapture.onTouchCancel.onTouchCancelCapture.onTouchEnd.onTouchEndCapture.onTouchMove.onTouchMoveCapture.onTouchStart.onTouchStartCapture.onPointerDown.onPointerDownCapture.onPointerMove.onPointerMoveCapture.onPointerUp.onPointerUpCapture.onPointerCancel.onPointerCancelCapture.onPointerEnter.onPointerEnterCapture.onPointerLeave.onPointerLeaveCapture.onPointerOver.onPointerOverCapture.onPointerOut.onPointerOutCapture.onGotPointerCapture.onGotPointerCaptureCapture.onLostPointerCapture.onLostPointerCaptureCapture.onScroll.onScrollCapture.onWheel.onWheelCapture.onAnimationStart.onAnimationStartCapture.onAnimationEnd.onAnimationEndCapture.onAnimationIteration.onAnimationIterationCapture.onTransitionEnd.onTransitionEndCapture`.split(`.`);function sa(e){return typeof e==`string`&&oa.includes(e)}var ca=new Set(`aria-activedescendant.aria-atomic.aria-autocomplete.aria-busy.aria-checked.aria-colcount.aria-colindex.aria-colspan.aria-controls.aria-current.aria-describedby.aria-details.aria-disabled.aria-errormessage.aria-expanded.aria-flowto.aria-haspopup.aria-hidden.aria-invalid.aria-keyshortcuts.aria-label.aria-labelledby.aria-level.aria-live.aria-modal.aria-multiline.aria-multiselectable.aria-orientation.aria-owns.aria-placeholder.aria-posinset.aria-pressed.aria-readonly.aria-relevant.aria-required.aria-roledescription.aria-rowcount.aria-rowindex.aria-rowspan.aria-selected.aria-setsize.aria-sort.aria-valuemax.aria-valuemin.aria-valuenow.aria-valuetext.className.color.height.id.lang.max.media.method.min.name.style.target.width.role.tabIndex.accentHeight.accumulate.additive.alignmentBaseline.allowReorder.alphabetic.amplitude.arabicForm.ascent.attributeName.attributeType.autoReverse.azimuth.baseFrequency.baselineShift.baseProfile.bbox.begin.bias.by.calcMode.capHeight.clip.clipPath.clipPathUnits.clipRule.colorInterpolation.colorInterpolationFilters.colorProfile.colorRendering.contentScriptType.contentStyleType.cursor.cx.cy.d.decelerate.descent.diffuseConstant.direction.display.divisor.dominantBaseline.dur.dx.dy.edgeMode.elevation.enableBackground.end.exponent.externalResourcesRequired.fill.fillOpacity.fillRule.filter.filterRes.filterUnits.floodColor.floodOpacity.focusable.fontFamily.fontSize.fontSizeAdjust.fontStretch.fontStyle.fontVariant.fontWeight.format.from.fx.fy.g1.g2.glyphName.glyphOrientationHorizontal.glyphOrientationVertical.glyphRef.gradientTransform.gradientUnits.hanging.horizAdvX.horizOriginX.href.ideographic.imageRendering.in2.in.intercept.k1.k2.k3.k4.k.kernelMatrix.kernelUnitLength.kerning.keyPoints.keySplines.keyTimes.lengthAdjust.letterSpacing.lightingColor.limitingConeAngle.local.markerEnd.markerHeight.markerMid.markerStart.markerUnits.markerWidth.mask.maskContentUnits.maskUnits.mathematical.mode.numOctaves.offset.opacity.operator.order.orient.orientation.origin.overflow.overlinePosition.overlineThickness.paintOrder.panose1.pathLength.patternContentUnits.patternTransform.patternUnits.pointerEvents.pointsAtX.pointsAtY.pointsAtZ.preserveAlpha.preserveAspectRatio.primitiveUnits.r.radius.refX.refY.renderingIntent.repeatCount.repeatDur.requiredExtensions.requiredFeatures.restart.result.rotate.rx.ry.seed.shapeRendering.slope.spacing.specularConstant.specularExponent.speed.spreadMethod.startOffset.stdDeviation.stemh.stemv.stitchTiles.stopColor.stopOpacity.strikethroughPosition.strikethroughThickness.string.stroke.strokeDasharray.strokeDashoffset.strokeLinecap.strokeLinejoin.strokeMiterlimit.strokeOpacity.strokeWidth.surfaceScale.systemLanguage.tableValues.targetX.targetY.textAnchor.textDecoration.textLength.textRendering.to.transform.u1.u2.underlinePosition.underlineThickness.unicode.unicodeBidi.unicodeRange.unitsPerEm.vAlphabetic.values.vectorEffect.version.vertAdvY.vertOriginX.vertOriginY.vHanging.vIdeographic.viewTarget.visibility.vMathematical.widths.wordSpacing.writingMode.x1.x2.x.xChannelSelector.xHeight.xlinkActuate.xlinkArcrole.xlinkHref.xlinkRole.xlinkShow.xlinkTitle.xlinkType.xmlBase.xmlLang.xmlns.xmlnsXlink.xmlSpace.y1.y2.y.yChannelSelector.z.zoomAndPan.ref.key.angle`.split(`.`));function la(e){return typeof e==`string`&&ca.has(e)}function ua(e){return typeof e==`string`&&e.startsWith(`data-`)}function da(e){if(typeof e!=`object`||!e)return{};var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(la(n)||ua(n))&&(t[n]=e[n]);return t}function fa(e){if(e==null)return null;if((0,I.isValidElement)(e)&&typeof e.props==`object`&&e.props!==null){var t=e.props;return da(t)}return typeof e==`object`&&!Array.isArray(e)?da(e):null}function pa(e){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(la(n)||ua(n)||sa(n))&&(t[n]=e[n]);return t}function ma(e){return e==null?null:(0,I.isValidElement)(e)?pa(e.props):typeof e==`object`&&!Array.isArray(e)?pa(e):null}var ha=[`children`,`width`,`height`,`viewBox`,`className`,`style`,`title`,`desc`];function ga(){return ga=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ga.apply(null,arguments)}function _a(e,t){if(e==null)return{};var n,r,i=va(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function va(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var ya=(0,I.forwardRef)((e,t)=>{var n=e.children,r=e.width,i=e.height,o=e.viewBox,s=e.className,c=e.style,l=e.title,u=e.desc,d=_a(e,ha),f=o||{width:r,height:i,x:0,y:0},p=a(`recharts-surface`,s);return I.createElement(`svg`,ga({},pa(d),{className:p,width:r,height:i,style:c,viewBox:`${f.x} ${f.y} ${f.width} ${f.height}`,ref:t}),I.createElement(`title`,null,l),I.createElement(`desc`,null,u),n)}),ba=[`children`,`className`];function xa(){return xa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},xa.apply(null,arguments)}function Sa(e,t){if(e==null)return{};var n,r,i=Ca(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Ca(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var wa=I.forwardRef((e,t)=>{var n=e.children,r=e.className,i=Sa(e,ba),o=a(`recharts-layer`,r);return I.createElement(`g`,xa({className:o},pa(i),{ref:t}),n)}),Ta=(0,I.createContext)(null),Ea=()=>(0,I.useContext)(Ta),Da=4;function Oa(e){var t=10**(arguments.length>1&&arguments[1]!==void 0?arguments[1]:Da),n=Math.round(e*t)/t;return Object.is(n,-0)?0:n}function ka(e){var t=[...arguments].slice(1);return e.reduce((e,n,r)=>{var i=t[r-1];return typeof i==`string`?e+i+n:i===void 0?e+n:e+Oa(i)+n},``)}var Aa=e=>e===0?0:e>0?1:-1,ja=e=>typeof e==`number`&&e!=+e,Ma=e=>typeof e==`string`&&e.length>1&&e.indexOf(`%`)===e.length-1,R=e=>(typeof e==`number`||e instanceof Number)&&!ja(e),Na=e=>R(e)||typeof e==`string`,Pa=0,Fa=e=>{var t=++Pa;return`${e||``}${t}`},Ia=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(!R(e)&&typeof e!=`string`)return n;var i;if(Ma(e)){if(t==null)return n;var a=e.indexOf(`%`);i=t*parseFloat(e.slice(0,a))/100}else i=+e;return ja(i)&&(i=n),r&&t!=null&&i>t&&(i=t),i},La=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,n={},r=0;r<t;r++)if(!n[String(e[r])])n[String(e[r])]=!0;else return!0;return!1};function z(e,t,n){return R(e)&&R(t)?Oa(e+n*(t-e)):t}function Ra(e,t,n){if(!(!e||!e.length))return e.find(e=>e&&(typeof t==`function`?t(e):kr(e,t))===n)}var B=e=>e==null,za=e=>B(e)?e:`${e.charAt(0).toUpperCase()}${e.slice(1)}`;function Ba(e){return e!=null}function Va(){}var Ha=[`type`,`size`,`sizeType`];function Ua(){return Ua=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ua.apply(null,arguments)}function Wa(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 Ga(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Wa(Object(n),!0).forEach(function(t){Ka(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Wa(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Ka(e,t,n){return(t=qa(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qa(e){var t=Ja(e,`string`);return typeof t==`symbol`?t:t+``}function Ja(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Ya(e,t){if(e==null)return{};var n,r,i=Xa(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Xa(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var Za={symbolCircle:Xn,symbolCross:Zn,symbolDiamond:er,symbolSquare:tr,symbolStar:or,symbolTriangle:cr,symbolWye:pr},Qa=Math.PI/180,$a=e=>Za[`symbol${za(e)}`]||Xn,eo=(e,t,n)=>{if(t===`area`)return e;switch(n){case`cross`:return 5*e*e/9;case`diamond`:return .5*e*e/Math.sqrt(3);case`square`:return e*e;case`star`:var r=18*Qa;return 1.25*e*e*(Math.tan(r)-Math.tan(r*2)*Math.tan(r)**2);case`triangle`:return Math.sqrt(3)*e*e/4;case`wye`:return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},to=(e,t)=>{Za[`symbol${za(e)}`]=t},no=e=>{var t=e.type,n=t===void 0?`circle`:t,r=e.size,i=r===void 0?64:r,o=e.sizeType,s=o===void 0?`area`:o,c=Ga(Ga({},Ya(e,Ha)),{},{type:n,size:i,sizeType:s}),l=`circle`;typeof n==`string`&&(l=n);var u=()=>{var e=$a(l),t=mr().type(e).size(eo(i,s,l))();if(t!==null)return t},d=c.className,f=c.cx,p=c.cy,m=pa(c);return R(f)&&R(p)&&R(i)?I.createElement(`path`,Ua({},m,{className:a(`recharts-symbols`,d),transform:`translate(${f}, ${p})`,d:u()})):null};no.registerSymbol=to;var ro=e=>`radius`in e&&`startAngle`in e&&`endAngle`in e,io=(e,t)=>{if(!e||typeof e==`function`||typeof e==`boolean`)return null;var n=e;if((0,I.isValidElement)(e)&&(n=e.props),typeof n!=`object`&&typeof n!=`function`)return null;var r={};return Object.keys(n).forEach(e=>{sa(e)&&typeof n[e]==`function`&&(r[e]=t||(t=>n[e](n,t)))}),r},ao=(e,t,n)=>r=>(e(t,n,r),null),oo=(e,t,n)=>{if(e===null||typeof e!=`object`&&typeof e!=`function`)return null;var r=null;return Object.keys(e).forEach(i=>{var a=e[i];sa(i)&&typeof a==`function`&&(r||={},r[i]=ao(a,t,n))}),r};function so(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 co(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?so(Object(n),!0).forEach(function(t){lo(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):so(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function lo(e,t,n){return(t=uo(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function uo(e){var t=fo(e,`string`);return typeof t==`symbol`?t:t+``}function fo(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function po(e,t){var n=co({},e),r=t;return Object.keys(t).reduce((e,t)=>(e[t]===void 0&&r[t]!==void 0&&(e[t]=r[t]),e),n)}function mo(){return mo=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},mo.apply(null,arguments)}function ho(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 go(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?ho(Object(n),!0).forEach(function(t){_o(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ho(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _o(e,t,n){return(t=vo(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function vo(e){var t=yo(e,`string`);return typeof t==`symbol`?t:t+``}function yo(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var bo=32,xo={align:`center`,iconSize:14,inactiveColor:`#ccc`,layout:`horizontal`,verticalAlign:`middle`,labelStyle:{}};function So(e){if(typeof e==`object`&&e&&`strokeDasharray`in e)return String(e.strokeDasharray)}function Co(e){var t=e.data,n=e.iconType,r=e.inactiveColor,i=bo/2,a=bo/6,o=bo/3,s=t.inactive?r:t.color,c=n??t.type;if(c===`none`)return null;if(c===`plainline`)return I.createElement(`line`,{strokeWidth:4,fill:`none`,stroke:s,strokeDasharray:So(t.payload),x1:0,y1:i,x2:bo,y2:i,className:`recharts-legend-icon`});if(c===`line`)return I.createElement(`path`,{strokeWidth:4,fill:`none`,stroke:s,d:`M0,${i}h${o}
|
|
1
|
+
import{a as e,r as t,t as n}from"./rolldown-runtime-CNC7AqOf.js";import{n as r,t as i}from"./button-i10JPNcp.js";import{j as a}from"./vendor-core-vIXn_E4D.js";import{B as o,I as s,M as c,N as l,S as u,T as d,j as f,x as p}from"./vendor-tanstack-Dl75hT33.js";import{a as m}from"./vendor-datadog-DBn-aOxh.js";import{n as h,r as g}from"./vendor-react-B36dp27u.js";import{a as _,i as v,n as y,r as b,t as x,zt as S}from"./vendor-ui-Bm4W8wqw.js";import{a as C,i as w,n as T,r as E,t as D}from"./card-hTrVZWnN.js";import{t as O}from"./createLucideIcon-B49W6uF4.js";import{i as k,n as A,t as j}from"./x-Bru-nCti.js";import{a as M,i as N,n as ee,r as te,t as ne}from"./tabs-Bp4JTzdg.js";import{t as re}from"./errorText-NpBmvk9I.js";import{Bt as ie,Ht as ae,In as oe,It as se,L as ce,Ln as le,Pn as ue,Rn as de,Ut as fe,Vt as pe,Wt as me,_n as he,a as ge,bn as _e,gn as ve,i as ye,n as be,r as xe,vn as Se,wt as Ce,xn as we,zn as Te,zt as Ee}from"./index-D_GKOkhn.js";import{_ as De,a as Oe,c as ke,f as Ae,h as je,i as Me,l as Ne,m as Pe,n as Fe,o as Ie,p as Le,r as Re,s as ze,t as Be,u as Ve}from"./linear-Clj7BvYC.js";import{n as He,t as Ue}from"./ordinal-BeZAVUpG.js";import{C as We,D as Ge,E as Ke,O as qe,_ as Je,a as Ye,i as Xe,l as Ze,n as Qe,o as $e,s as et,t as tt,w as nt,x as rt,y as it}from"./time-V48BpMN7.js";import{n as at,t as ot}from"./band-CcbG6rPL.js";import{n as P,t as st}from"./path-BWPyau1x.js";import{r as ct,t as lt}from"./defaultLocale-C8Fc0cco.js";import{n as ut,t as dt}from"./init-Cs1-1e_z.js";import{a as ft,d as pt,f as mt,p as ht,u as gt}from"./math-Bi_r_ZWc.js";import{t as _t}from"./array-BifhSqXX.js";import{B as vt,F as yt,G as bt,H as xt,I as St,J as Ct,L as wt,R as Tt,U as Et,V as Dt,Y as Ot,a as kt,c as At,i as jt,l as Mt,q as Nt,r as Pt,s as Ft,t as It,z as Lt}from"./isArrayLikeObject-BuP4GVJp.js";import{n as Rt,r as zt,t as Bt}from"./line-D7sRByN6.js";import{a as Vt,c as Ht,d as Ut,i as F,l as Wt,r as Gt,s as Kt,t as qt,u as Jt}from"./react-redux-DGXfzMhm.js";import{r as Yt,t as Xt}from"./getAnalytics-CmXDoq4g.js";var Zt=O(`clipboard-copy`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2`,key:`4jdomd`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v4`,key:`3hqy98`}],[`path`,{d:`M21 14H11`,key:`1bme5i`}],[`path`,{d:`m15 10-4 4 4 4`,key:`5dvupr`}]]),Qt=O(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]);function $t(e=De){if(e===De)return en;if(typeof e!=`function`)throw TypeError(`compare is not a function`);return(t,n)=>{let r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function en(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:+(e>t))}function tn(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=i===void 0?en:$t(i);r>n;){if(r-n>600){let a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1),u=Math.max(n,Math.floor(t-o*c/a+l)),d=Math.min(r,Math.floor(t+(a-o)*c/a+l));tn(e,t,u,d,i)}let a=e[t],o=n,s=r;for(nn(e,n,t),i(e[r],a)>0&&nn(e,n,r);o<s;){for(nn(e,o,s),++o,--s;i(e[o],a)<0;)++o;for(;i(e[s],a)>0;)--s}i(e[n],a)===0?nn(e,n,s):(++s,nn(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function nn(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function rn(e,t,n){if(e=Float64Array.from(je(e,n)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return Ge(e);if(t>=1)return qe(e);var r,i=(r-1)*t,a=Math.floor(i),o=qe(tn(e,a).subarray(0,a+1));return o+(Ge(e.subarray(a+1))-o)*(i-a)}}function an(e,t,n=Pe){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e);return o+(+n(e[a+1],a+1,e)-o)*(i-a)}}function on(e,t){t===void 0&&(t=e,e=Ve);for(var n=0,r=t.length-1,i=t[0],a=Array(r<0?0:r);n<r;)a[n]=e(i,i=t[++n]);return function(e){var t=Math.max(0,Math.min(r-1,Math.floor(e*=r)));return a[t](e-t)}}function sn(e){var t;function n(e){return e==null||isNaN(e=+e)?t:e}return n.invert=n,n.domain=n.range=function(t){return arguments.length?(e=Array.from(t,ke),n):e.slice()},n.unknown=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return sn(e).unknown(t)},e=arguments.length?Array.from(e,ke):[0,1],Fe(n)}function cn(e){return Math.log(e)}function ln(e){return Math.exp(e)}function un(e){return-Math.log(-e)}function dn(e){return-Math.exp(-e)}function fn(e){return isFinite(e)?+(`1e`+e):e<0?0:e}function pn(e){return e===10?fn:e===Math.E?Math.exp:t=>e**+t}function mn(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function hn(e){return(t,n)=>-e(-t,n)}function gn(e){let t=e(cn,ln),n=t.domain,r=10,i,a;function o(){return i=mn(r),a=pn(r),n()[0]<0?(i=hn(i),a=hn(a),e(un,dn)):e(cn,ln),t}return t.base=function(e){return arguments.length?(r=+e,o()):r},t.domain=function(e){return arguments.length?(n(e),o()):n()},t.ticks=e=>{let t=n(),o=t[0],s=t[t.length-1],c=s<o;c&&([o,s]=[s,o]);let l=i(o),u=i(s),d,f,p=e==null?10:+e,m=[];if(!(r%1)&&u-l<p){if(l=Math.floor(l),u=Math.ceil(u),o>0){for(;l<=u;++l)for(d=1;d<r;++d)if(f=l<0?d/a(-l):d*a(l),!(f<o)){if(f>s)break;m.push(f)}}else for(;l<=u;++l)for(d=r-1;d>=1;--d)if(f=l>0?d/a(-l):d*a(l),!(f<o)){if(f>s)break;m.push(f)}m.length*2<p&&(m=Ae(o,s,p))}else m=Ae(l,u,Math.min(u-l,p)).map(a);return c?m.reverse():m},t.tickFormat=(e,n)=>{if(e??=10,n??=r===10?`s`:`,`,typeof n!=`function`&&(!(r%1)&&(n=ct(n)).precision==null&&(n.trim=!0),n=lt(n)),e===1/0)return n;let o=Math.max(1,r*e/t.ticks().length);return e=>{let t=e/a(Math.round(i(e)));return t*r<r-.5&&(t*=r),t<=o?n(e):``}},t.nice=()=>n(Ke(n(),{floor:e=>a(Math.floor(i(e))),ceil:e=>a(Math.ceil(i(e)))})),t}function _n(){let e=gn(ze()).domain([1,10]);return e.copy=()=>Oe(e,_n()).base(e.base()),ut.apply(e,arguments),e}function vn(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function yn(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function bn(e){var t=1,n=e(vn(t),yn(t));return n.constant=function(n){return arguments.length?e(vn(t=+n),yn(t)):t},Fe(n)}function xn(){var e=bn(ze());return e.copy=function(){return Oe(e,xn()).constant(e.constant())},ut.apply(e,arguments)}function Sn(e){return function(t){return t<0?-((-t)**+e):t**+e}}function Cn(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function wn(e){return e<0?-e*e:e*e}function Tn(e){var t=e(Ie,Ie),n=1;function r(){return n===1?e(Ie,Ie):n===.5?e(Cn,wn):e(Sn(n),Sn(1/n))}return t.exponent=function(e){return arguments.length?(n=+e,r()):n},Fe(t)}function En(){var e=Tn(ze());return e.copy=function(){return Oe(e,En()).exponent(e.exponent())},ut.apply(e,arguments),e}function Dn(){return En.apply(null,arguments).exponent(.5)}function On(e){return Math.sign(e)*e*e}function kn(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function An(){var e=Me(),t=[0,1],n=!1,r;function i(t){var i=kn(e(t));return isNaN(i)?r:n?Math.round(i):i}return i.invert=function(t){return e.invert(On(t))},i.domain=function(t){return arguments.length?(e.domain(t),i):e.domain()},i.range=function(n){return arguments.length?(e.range((t=Array.from(n,ke)).map(On)),i):t.slice()},i.rangeRound=function(e){return i.range(e).round(!0)},i.round=function(e){return arguments.length?(n=!!e,i):n},i.clamp=function(t){return arguments.length?(e.clamp(t),i):e.clamp()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return An(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},ut.apply(i,arguments),Fe(i)}function jn(){var e=[],t=[],n=[],r;function i(){var r=0,i=Math.max(1,t.length);for(n=Array(i-1);++r<i;)n[r-1]=an(e,r/i);return a}function a(e){return e==null||isNaN(e=+e)?r:t[Le(n,e)]}return a.invertExtent=function(r){var i=t.indexOf(r);return i<0?[NaN,NaN]:[i>0?n[i-1]:e[0],i<n.length?n[i]:e[e.length-1]]},a.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)n!=null&&!isNaN(n=+n)&&e.push(n);return e.sort(De),i()},a.range=function(e){return arguments.length?(t=Array.from(e),i()):t.slice()},a.unknown=function(e){return arguments.length?(r=e,a):r},a.quantiles=function(){return n.slice()},a.copy=function(){return jn().domain(e).range(t).unknown(r)},ut.apply(a,arguments)}function Mn(){var e=0,t=1,n=1,r=[.5],i=[0,1],a;function o(e){return e!=null&&e<=e?i[Le(r,e,0,n)]:a}function s(){var i=-1;for(r=Array(n);++i<n;)r[i]=((i+1)*t-(i-n)*e)/(n+1);return o}return o.domain=function(n){return arguments.length?([e,t]=n,e=+e,t=+t,s()):[e,t]},o.range=function(e){return arguments.length?(n=(i=Array.from(e)).length-1,s()):i.slice()},o.invertExtent=function(a){var o=i.indexOf(a);return o<0?[NaN,NaN]:o<1?[e,r[0]]:o>=n?[r[n-1],t]:[r[o-1],r[o]]},o.unknown=function(e){return arguments.length&&(a=e),o},o.thresholds=function(){return r.slice()},o.copy=function(){return Mn().domain([e,t]).range(i).unknown(a)},ut.apply(Fe(o),arguments)}function Nn(){var e=[.5],t=[0,1],n,r=1;function i(i){return i!=null&&i<=i?t[Le(e,i,0,r)]:n}return i.domain=function(n){return arguments.length?(e=Array.from(n),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(n){return arguments.length?(t=Array.from(n),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(n){var r=t.indexOf(n);return[e[r-1],e[r]]},i.unknown=function(e){return arguments.length?(n=e,i):n},i.copy=function(){return Nn().domain(e).range(t).unknown(n)},ut.apply(i,arguments)}function Pn(){return ut.apply(tt($e,Ye,et,Ze,Je,it,rt,We,nt,Xe).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Fn(){var e=0,t=1,n,r,i,a,o=Ie,s=!1,c;function l(e){return e==null||isNaN(e=+e)?c:o(i===0?.5:(e=(a(e)-n)*i,s?Math.max(0,Math.min(1,e)):e))}l.domain=function(o){return arguments.length?([e,t]=o,n=a(e=+e),r=a(t=+t),i=n===r?0:1/(r-n),l):[e,t]},l.clamp=function(e){return arguments.length?(s=!!e,l):s},l.interpolator=function(e){return arguments.length?(o=e,l):o};function u(e){return function(t){var n,r;return arguments.length?([n,r]=t,o=e(n,r),l):[o(0),o(1)]}}return l.range=u(Ve),l.rangeRound=u(Ne),l.unknown=function(e){return arguments.length?(c=e,l):c},function(o){return a=o,n=o(e),r=o(t),i=n===r?0:1/(r-n),l}}function In(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function Ln(){var e=Fe(Fn()(Ie));return e.copy=function(){return In(e,Ln())},dt.apply(e,arguments)}function Rn(){var e=gn(Fn()).domain([1,10]);return e.copy=function(){return In(e,Rn()).base(e.base())},dt.apply(e,arguments)}function zn(){var e=bn(Fn());return e.copy=function(){return In(e,zn()).constant(e.constant())},dt.apply(e,arguments)}function Bn(){var e=Tn(Fn());return e.copy=function(){return In(e,Bn()).exponent(e.exponent())},dt.apply(e,arguments)}function Vn(){return Bn.apply(null,arguments).exponent(.5)}function Hn(){var e=[],t=Ie;function n(n){if(n!=null&&!isNaN(n=+n))return t((Le(e,n,1)-1)/(e.length-1))}return n.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)n!=null&&!isNaN(n=+n)&&e.push(n);return e.sort(De),n},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.range=function(){return e.map((n,r)=>t(r/(e.length-1)))},n.quantiles=function(t){return Array.from({length:t+1},(n,r)=>rn(e,r/t))},n.copy=function(){return Hn(t).domain(e)},dt.apply(n,arguments)}function Un(){var e=0,t=.5,n=1,r=1,i,a,o,s,c,l=Ie,u,d=!1,f;function p(e){return isNaN(e=+e)?f:(e=.5+((e=+u(e))-a)*(r*e<r*a?s:c),l(d?Math.max(0,Math.min(1,e)):e))}p.domain=function(l){return arguments.length?([e,t,n]=l,i=u(e=+e),a=u(t=+t),o=u(n=+n),s=i===a?0:.5/(a-i),c=a===o?0:.5/(o-a),r=a<i?-1:1,p):[e,t,n]},p.clamp=function(e){return arguments.length?(d=!!e,p):d},p.interpolator=function(e){return arguments.length?(l=e,p):l};function m(e){return function(t){var n,r,i;return arguments.length?([n,r,i]=t,l=on(e,[n,r,i]),p):[l(0),l(.5),l(1)]}}return p.range=m(Ve),p.rangeRound=m(Ne),p.unknown=function(e){return arguments.length?(f=e,p):f},function(l){return u=l,i=l(e),a=l(t),o=l(n),s=i===a?0:.5/(a-i),c=a===o?0:.5/(o-a),r=a<i?-1:1,p}}function Wn(){var e=Fe(Un()(Ie));return e.copy=function(){return In(e,Wn())},dt.apply(e,arguments)}function Gn(){var e=gn(Un()).domain([.1,1,10]);return e.copy=function(){return In(e,Gn()).base(e.base())},dt.apply(e,arguments)}function Kn(){var e=bn(Un());return e.copy=function(){return In(e,Kn()).constant(e.constant())},dt.apply(e,arguments)}function qn(){var e=Tn(Un());return e.copy=function(){return In(e,qn()).exponent(e.exponent())},dt.apply(e,arguments)}function Jn(){return qn.apply(null,arguments).exponent(.5)}function Yn(e,t,n){var r=null,i=P(!0),a=null,o=Ot,s=null,c=st(l);e=typeof e==`function`?e:e===void 0?Rt:P(+e),t=typeof t==`function`?t:P(t===void 0?0:+t),n=typeof n==`function`?n:n===void 0?zt:P(+n);function l(l){var u,d,f,p=(l=_t(l)).length,m,h=!1,g,_=Array(p),v=Array(p);for(a??(s=o(g=c())),u=0;u<=p;++u){if(!(u<p&&i(m=l[u],u,l))===h)if(h=!h)d=u,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),f=u-1;f>=d;--f)s.point(_[f],v[f]);s.lineEnd(),s.areaEnd()}h&&(_[u]=+e(m,u,l),v[u]=+t(m,u,l),s.point(r?+r(m,u,l):_[u],n?+n(m,u,l):v[u]))}if(g)return s=null,g+``||null}function u(){return Bt().defined(i).curve(o).context(a)}return l.x=function(t){return arguments.length?(e=typeof t==`function`?t:P(+t),r=null,l):e},l.x0=function(t){return arguments.length?(e=typeof t==`function`?t:P(+t),l):e},l.x1=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:P(+e),l):r},l.y=function(e){return arguments.length?(t=typeof e==`function`?e:P(+e),n=null,l):t},l.y0=function(e){return arguments.length?(t=typeof e==`function`?e:P(+e),l):t},l.y1=function(e){return arguments.length?(n=e==null?null:typeof e==`function`?e:P(+e),l):n},l.lineX0=l.lineY0=function(){return u().x(e).y(t)},l.lineY1=function(){return u().x(e).y(n)},l.lineX1=function(){return u().x(r).y(t)},l.defined=function(e){return arguments.length?(i=typeof e==`function`?e:P(!!e),l):i},l.curve=function(e){return arguments.length?(o=e,a!=null&&(s=o(a)),l):o},l.context=function(e){return arguments.length?(e==null?a=s=null:s=o(a=e),l):a},l}var Xn={draw(e,t){let n=mt(t/gt);e.moveTo(n,0),e.arc(0,0,n,0,ht)}},Zn={draw(e,t){let n=mt(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},Qn=mt(1/3),$n=Qn*2,er={draw(e,t){let n=mt(t/$n),r=n*Qn;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},tr={draw(e,t){let n=mt(t),r=-n/2;e.rect(r,r,n,n)}},nr=.8908130915292852,rr=pt(gt/10)/pt(7*gt/10),ir=pt(ht/10)*rr,ar=-ft(ht/10)*rr,or={draw(e,t){let n=mt(t*nr),r=ir*n,i=ar*n;e.moveTo(0,-n),e.lineTo(r,i);for(let t=1;t<5;++t){let a=ht*t/5,o=ft(a),s=pt(a);e.lineTo(s*n,-o*n),e.lineTo(o*r-s*i,s*r+o*i)}e.closePath()}},sr=mt(3),cr={draw(e,t){let n=-mt(t/(sr*3));e.moveTo(0,n*2),e.lineTo(-sr*n,-n),e.lineTo(sr*n,-n),e.closePath()}},lr=-.5,ur=mt(3)/2,dr=1/mt(12),fr=(dr/2+1)*3,pr={draw(e,t){let n=mt(t/fr),r=n/2,i=n*dr,a=r,o=n*dr+n,s=-a,c=o;e.moveTo(r,i),e.lineTo(a,o),e.lineTo(s,c),e.lineTo(lr*r-ur*i,ur*r+lr*i),e.lineTo(lr*a-ur*o,ur*a+lr*o),e.lineTo(lr*s-ur*c,ur*s+lr*c),e.lineTo(lr*r+ur*i,lr*i-ur*r),e.lineTo(lr*a+ur*o,lr*o-ur*a),e.lineTo(lr*s+ur*c,lr*c-ur*s),e.closePath()}};function mr(e,t){let n=null,r=st(i);e=typeof e==`function`?e:P(e||Xn),t=typeof t==`function`?t:P(t===void 0?64:+t);function i(){let i;if(n||=i=r(),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),i)return n=null,i+``||null}return i.type=function(t){return arguments.length?(e=typeof t==`function`?t:P(t),i):e},i.size=function(e){return arguments.length?(t=typeof e==`function`?e:P(+e),i):t},i.context=function(e){return arguments.length?(n=e??null,i):n},i}function hr(e,t){if((o=e.length)>1)for(var n=1,r,i,a=e[t[0]],o,s=a.length;n<o;++n)for(i=a,a=e[t[n]],r=0;r<s;++r)a[r][1]+=a[r][0]=isNaN(i[r][1])?i[r][0]:i[r][1]}function gr(e){for(var t=e.length,n=Array(t);--t>=0;)n[t]=t;return n}function _r(e,t){return e[t]}function vr(e){let t=[];return t.key=e,t}function yr(){var e=P([]),t=gr,n=hr,r=_r;function i(i){var a=Array.from(e.apply(this,arguments),vr),o,s=a.length,c=-1,l;for(let e of i)for(o=0,++c;o<s;++o)(a[o][c]=[0,+r(e,a[o].key,c,i)]).data=e;for(o=0,l=_t(t(a));o<s;++o)a[l[o]].index=o;return n(a,l),a}return i.keys=function(t){return arguments.length?(e=typeof t==`function`?t:P(Array.from(t)),i):e},i.value=function(e){return arguments.length?(r=typeof e==`function`?e:P(+e),i):r},i.order=function(e){return arguments.length?(t=e==null?gr:typeof e==`function`?e:P(Array.from(e)),i):t},i.offset=function(e){return arguments.length?(n=e??hr,i):n},i}function br(e,t){if((r=e.length)>0){for(var n,r,i=0,a=e[0].length,o;i<a;++i){for(o=n=0;n<r;++n)o+=e[n][i][1]||0;if(o)for(n=0;n<r;++n)e[n][i][1]/=o}hr(e,t)}}function xr(e,t){if((i=e.length)>0){for(var n=0,r=e[t[0]],i,a=r.length;n<a;++n){for(var o=0,s=0;o<i;++o)s+=e[o][n][1]||0;r[n][1]+=r[n][0]=-s/2}hr(e,t)}}function Sr(e,t){if(!(!((o=e.length)>0)||!((a=(i=e[t[0]]).length)>0))){for(var n=0,r=1,i,a,o;r<a;++r){for(var s=0,c=0,l=0;s<o;++s){for(var u=e[t[s]],d=u[r][1]||0,f=(d-(u[r-1][1]||0))/2,p=0;p<s;++p){var m=e[t[p]],h=m[r][1]||0,g=m[r-1][1]||0;f+=h-g}c+=d,l+=f*d}i[r-1][1]+=i[r-1][0]=n,c&&(n-=l/c)}i[r-1][1]+=i[r-1][0]=n,hr(e,t)}}function Cr(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function wr(e,t=1){let n=[],r=Math.floor(t),i=(e,t)=>{for(let a=0;a<e.length;a++){let o=e[a];Array.isArray(o)&&t<r?i(o,t+1):n.push(o)}};return i(e,0),n}function Tr(e){if(e==null)return``;if(typeof e==`string`)return e;if(Array.isArray(e))return e.map(Tr).join(`,`);let t=String(e);return t===`0`&&Object.is(Number(e),-0)?`-0`:t}function Er(e){return typeof e==`string`||typeof e==`symbol`?e:Object.is(e?.valueOf?.(),-0)?`-0`:String(e)}function Dr(e){if(Array.isArray(e))return e.map(Er);if(typeof e==`symbol`)return[e];e=Tr(e);let t=[],n=e.length;if(n===0)return t;let r=0,i=``,a=``,o=!1;for(e.charCodeAt(0)===46&&t.push(``);r<n;){let s=e[r];if(a)s===`\\`&&r+1<n?(r++,i+=e[r]):s===a?a=``:i+=s;else if(o)s===`"`||s===`'`?a=s:s===`]`?(o=!1,t.push(i),i=``):i+=s;else if(s===`[`)o=!0,i&&=(t.push(i),``);else if(s===`.`){i&&=(t.push(i),``);let n=e[r+1];(n===void 0||n===`.`)&&t.push(``)}else i+=s;r++}return i&&t.push(i),t}function Or(e){switch(typeof e){case`number`:case`symbol`:return!1;case`string`:return e.includes(`.`)||e.includes(`[`)||e.includes(`]`)}}function kr(e,t,n){if(e==null)return n;switch(typeof t){case`string`:{if(At(t))return n;let r=e[t];return r===void 0?Or(t)&&!Object.hasOwn(e,t)?kr(e,Dr(t),n):n:r}case`number`:case`symbol`:{typeof t==`number`&&(t=Er(t));let r=e[t];return r===void 0?n:r}default:{if(Array.isArray(t))return Ar(e,t,n);if(t=Object.is(t?.valueOf(),-0)?`-0`:String(t),At(t))return n;let r=e[t];return r===void 0?n:r}}}function Ar(e,t,n){if(t.length===0)return n;let r=e;for(let e=0;e<t.length;e++){if(r==null||At(t[e]))return n;r=r[t[e]]}return r===void 0?n:r}function jr(e){return function(t){return kr(t,e)}}function Mr(e){return e!==null&&(typeof e==`object`||typeof e==`function`)}function Nr(e,t,n){return typeof n==`function`?Pr(e,t,function e(t,r,i,a,o,s){let c=n(t,r,i,a,o,s);return c===void 0?Pr(t,r,e,s,!1):!!c},new Map,!0):Nr(e,t,()=>void 0)}function Pr(e,t,n,r,i=!1){if(t===e)return!0;switch(typeof t){case`object`:return Fr(e,t,n,r);case`function`:return Object.keys(t).length>0?Pr(e,{...t},n,r,i):Cr(e,t);default:return Mr(e)&&i?typeof t!=`string`||t===``:Cr(e,t)}}function Fr(e,t,n,r){if(t==null)return!0;if(Array.isArray(t))return Lr(e,t,n,r);if(t instanceof Map)return Ir(e,t,n,r);if(t instanceof Set)return Rr(e,t,n,r);let i=Object.keys(t);if(e==null||Ft(e))return i.length===0;if(i.length===0)return!0;if(r?.has(t))return r.get(t)===e;r?.set(t,e);try{for(let a=0;a<i.length;a++){let o=i[a];if(!Ft(e)&&!(o in e)||t[o]===void 0&&e[o]!==void 0||t[o]===null&&e[o]!==null||!n(e[o],t[o],o,e,t,r))return!1}return!0}finally{r?.delete(t)}}function Ir(e,t,n,r){if(t.size===0)return!0;if(!(e instanceof Map))return!1;for(let[i,a]of t.entries())if(n(e.get(i),a,i,e,t,r)===!1)return!1;return!0}function Lr(e,t,n,r){if(t.length===0)return!0;if(!Array.isArray(e))return!1;let i=new Set;for(let a=0;a<t.length;a++){let o=t[a],s=!1;for(let c=0;c<e.length;c++){if(i.has(c))continue;let l=e[c],u=!1;if(n(l,o,a,e,t,r)&&(u=!0),u){i.add(c),s=!0;break}}if(!s)return!1}return!0}function Rr(e,t,n,r){return t.size===0||e instanceof Set&&Lr([...e],[...t],n,r)}function zr(e,t){return Nr(e,t,()=>void 0)}function Br(e){return kt(e,void 0,e,new Map,void 0)}function Vr(e){return e=Br(e),t=>zr(t,e)}var Hr=/^(?:0|[1-9]\d*)$/;function Ur(e,t=2**53-1){switch(typeof e){case`number`:return Number.isInteger(e)&&e>=0&&e<t;case`symbol`:return!1;case`string`:return Hr.test(e)}}function Wr(e,t){let n;if(n=Array.isArray(t)?t:typeof t==`string`&&Or(t)&&e?.[t]==null?Dr(t):[t],n.length===0)return!1;let r=e;for(let e=0;e<n.length;e++){let t=n[e];if((r==null||!Object.hasOwn(r,t))&&!((Array.isArray(r)||Pt(r))&&Ur(t)&&t<r.length))return!1;r=r[t]}return!0}function Gr(e,t){switch(typeof e){case`object`:Object.is(e?.valueOf(),-0)&&(e=`-0`);break;case`number`:e=Er(e);break}return t=jt(t),function(n){let r=kr(n,e);return r===void 0?Wr(n,e):t===void 0?r===void 0:zr(r,t)}}function Kr(e){return e}function qr(e){if(e==null)return Kr;switch(typeof e){case`function`:return e;case`object`:return Array.isArray(e)&&e.length===2?Gr(e[0],e[1]):Vr(e);case`string`:case`symbol`:case`number`:return jr(e)}}function Jr(e){return typeof e==`symbol`||e instanceof Symbol}function Yr(e){return Jr(e)?NaN:Number(e)}function Xr(e){return e?(e=Yr(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function Zr(e,t,n){return Mr(n)&&(typeof t==`number`&&Mt(n)&&Ur(t)&&t<n.length||typeof t==`string`&&t in n)?Cr(n[t],e):!1}function Qr(e){return typeof e==`symbol`?1:e===null?2:e===void 0?3:e===e?0:4}var $r=(e,t,n)=>{if(e!==t){let r=Qr(e),i=Qr(t);if(r===i&&r===0){if(e<t)return n===`desc`?1:-1;if(e>t)return n===`desc`?-1:1}return n===`desc`?i-r:r-i}return 0},ei=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ti=/^\w*$/;function ni(e,t){return Array.isArray(e)?!1:typeof e==`number`||typeof e==`boolean`||e==null||Jr(e)?!0:typeof e==`string`&&(ti.test(e)||!ei.test(e))||t!=null&&Object.hasOwn(t,e)}function ri(e,t,n,r){if(e==null)return[];n=r?void 0:n,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(n)||(n=n==null?[]:[n]),n=n.map(e=>String(e));let i=(e,t)=>{let n=e;for(let e=0;e<t.length&&n!=null;++e)n=n[t[e]];return n},a=(e,t)=>t==null||e==null?t:typeof e==`object`&&`key`in e?Object.hasOwn(t,e.key)?t[e.key]:i(t,e.path):typeof e==`function`?e(t):Array.isArray(e)?i(t,e):typeof t==`object`?t[e]:t,o=t.map(e=>(Array.isArray(e)&&e.length===1&&(e=e[0]),e==null||typeof e==`function`||Array.isArray(e)||ni(e)?e:{key:e,path:Dr(e)}));return e.map(e=>({original:e,criteria:o.map(t=>a(t,e))})).slice().sort((e,t)=>{for(let r=0;r<o.length;r++){let i=$r(e.criteria[r],t.criteria[r],n[r]);if(i!==0)return i}return 0}).map(e=>e.original)}function ii(e,...t){let n=t.length;return n>1&&Zr(e,t[0],t[1])?t=[]:n>2&&Zr(t[0],t[1],t[2])&&(t=[t[0]]),ri(e,wr(t),[`asc`])}function ai(e,t){let n=new Map;for(let r=0;r<e.length;r++){let i=e[r],a=t(i,r,e);n.has(a)||n.set(a,i)}return Array.from(n.values())}function oi(e,t){return function(...n){return e.apply(this,n.slice(0,t))}}function si(e,t=Kr){return It(e)?ai(Array.from(e),oi(qr(t),1)):[]}function ci(e,t,{signal:n,edges:r}={}){let i,a=null,o=r!=null&&r.includes(`leading`),s=r==null||r.includes(`trailing`),c=()=>{a!==null&&(e.apply(i,a),i=void 0,a=null)},l=()=>{s&&c(),p()},u=null,d=()=>{u!=null&&clearTimeout(u),u=setTimeout(()=>{u=null,l()},t)},f=()=>{u!==null&&(clearTimeout(u),u=null)},p=()=>{f(),i=void 0,a=null},m=()=>{c()},h=function(...e){if(n?.aborted)return;i=this,a=e;let t=u==null;d(),o&&t&&c()};return h.schedule=d,h.cancel=p,h.flush=m,n?.addEventListener(`abort`,p,{once:!0}),h}function li(e,t=0,n={}){typeof n!=`object`&&(n={});let{leading:r=!1,trailing:i=!0,maxWait:a}=n,o=[,,];r&&(o[0]=`leading`),i&&(o[1]=`trailing`);let s,c=null,l=ci(function(...t){s=e.apply(this,t),c=null},t,{edges:o}),u=function(...t){return a!=null&&(c===null&&(c=Date.now()),Date.now()-c>=a)?(s=e.apply(this,t),c=Date.now(),l.cancel(),l.schedule(),s):(l.apply(this,t),s)};return u.cancel=l.cancel,u.flush=()=>(l.flush(),s),u}function ui(e,t=0,n={}){let{leading:r=!0,trailing:i=!0}=n;return li(e,t,{leading:r,maxWait:t,trailing:i})}function di(e,t,n){n&&typeof n!=`number`&&Zr(e,t,n)&&(t=n=void 0),e=Xr(e),t===void 0?(t=e,e=0):t=Xr(t),n=n===void 0?e<t?1:-1:Xr(n);let r=Math.max(Math.ceil((t-e)/(n||1)),0),i=Array(r);for(let t=0;t<r;t++)i[t]=e,e+=n;return i}var I=e(m(),1),L=g(),fi=`studio:analytics:onboarding-dismissed:v1`;function pi(){let[e,t]=(0,I.useState)(null);return(0,I.useEffect)(()=>{try{t(window.localStorage.getItem(fi)===`1`)}catch{t(!0)}},[]),e===!1?(0,L.jsxs)(`div`,{role:`status`,className:`mb-3 flex items-start gap-3 rounded-md border border-border bg-muted/30 px-3 py-2 text-sm text-muted-foreground`,children:[(0,L.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,L.jsx)(`span`,{className:`font-medium text-foreground`,children:`Tip:`}),` Click a legend entry to isolate one node, `,(0,L.jsx)(`kbd`,{className:`rounded border border-border px-1 py-0.5 text-xs`,children:`⌘`}),` / `,(0,L.jsx)(`kbd`,{className:`rounded border border-border px-1 py-0.5 text-xs`,children:`Ctrl`}),`-click to compare a few. In the storage charts, click a bar segment to pin that table's trend.`]}),(0,L.jsx)(i,{variant:`ghost`,size:`icon`,onClick:()=>{try{window.localStorage.setItem(fi,`1`)}catch{}t(!0)},"aria-label":`Dismiss tip`,className:`-mt-1 h-7 w-7 shrink-0`,children:(0,L.jsx)(j,{className:`h-4 w-4`})})]}):null}var mi=(0,I.createContext)(null);function hi({value:e,children:t}){let n=(0,I.useMemo)(()=>e,[e.timeRange.startTime,e.timeRange.endTime,e.bucketMs,e.theme,e.instanceParams.entityId]);return(0,L.jsx)(mi.Provider,{value:n,children:t})}function gi(){let e=(0,I.useContext)(mi);if(!e)throw Error(`useAnalyticsContext must be used inside <AnalyticsProvider>`);return e}var _i=Xt;function vi(e){let t=s(),[n,r]=(0,I.useState)(!1),[i,a]=(0,I.useState)(null),[o,c]=(0,I.useState)(()=>Date.now());return(0,I.useEffect)(()=>{let n=t.getQueryCache(),i=t=>Array.isArray(t.queryKey)&&t.queryKey[0]===_i&&t.queryKey[1]===e,o=()=>{let e=!1,t=null;for(let r of n.getAll())i(r)&&(r.state.fetchStatus===`fetching`&&(e=!0),r.state.dataUpdatedAt>0&&(t===null||r.state.dataUpdatedAt>t)&&(t=r.state.dataUpdatedAt));r(t=>t===e?t:e),a(e=>e===t?e:t)};o();let s=n.subscribe(e=>{!e?.query||!i(e.query)||o()});return()=>s()},[t,e]),(0,I.useEffect)(()=>{let e=!1,t,n=()=>{if(e)return;c(Date.now());let r=i===null?0:Date.now()-i,a=r<6e4?1e3:r<6e5?5e3:3e4;t=window.setTimeout(n,a)};return t=window.setTimeout(n,1e3),()=>{e=!0,t!==void 0&&window.clearTimeout(t)}},[i]),{isFetching:n,lastFetchedAt:i,now:o}}function yi(e,t){if(e===null)return null;let n=Math.max(0,Math.floor((t-e)/1e3));if(n<5)return`just now`;if(n<60)return`${n}s ago`;let r=Math.floor(n/60);return r<60?`${r}m ago`:`${Math.floor(r/60)}h ago`}function bi({presetId:e,onPresetChange:t,refreshMs:n,onRefreshChange:a,onManualRefresh:o}){let{instanceParams:s}=gi(),{isFetching:c,lastFetchedAt:l,now:u}=vi(s.entityId),d=yi(l,u);return(0,L.jsxs)(`div`,{className:`flex items-center gap-2`,children:[d&&(0,L.jsxs)(`span`,{className:`text-xs text-muted-foreground tabular-nums`,title:l?new Date(l).toLocaleString():void 0,"aria-label":l?`Last updated ${new Date(l).toLocaleString()}`:void 0,children:[`Updated `,d]}),(0,L.jsxs)(ie,{value:e,onValueChange:e=>t(e),children:[(0,L.jsx)(fe,{className:`w-[180px]`,children:(0,L.jsx)(me,{})}),(0,L.jsx)(pe,{children:ye.map(e=>(0,L.jsx)(ae,{value:e.id,children:e.label},e.id))})]}),(0,L.jsxs)(ie,{value:String(n),onValueChange:e=>a(Number(e)),children:[(0,L.jsx)(fe,{className:`w-[100px]`,children:(0,L.jsx)(me,{})}),(0,L.jsx)(pe,{children:xe.map(e=>(0,L.jsx)(ae,{value:String(e.value),children:e.label},e.value))})]}),(0,L.jsx)(i,{variant:`ghost`,size:`icon`,onClick:o,disabled:c,"aria-busy":c,"aria-label":c?`Refreshing…`:`Refresh now`,title:c?`Refreshing…`:`Refresh now`,children:(0,L.jsx)(A,{className:r(`h-4 w-4`,c&&`animate-spin`)})})]})}var xi=[`utilization`,`cpu-usage`,`memory`,`main-thread-utilization`],Si=30*6e4;function Ci(e){return e?.response?.status??e?.status}function wi(e){let t=Ci(e);return t===401||t===403}function Ti(e){let t=Ci(e);return typeof t==`number`&&t>=400&&t<500&&!wi(e)}function Ei(e){let t=l({queryKey:[`analytics-capability`,e.entityId],queryFn:async()=>{let t=Date.now(),n=t-5*6e4,r=null;for(let i of xi)try{return await e.instanceClient.post(`/`,{operation:`get_analytics`,metric:i,start_time:n,end_time:t}),!0}catch(e){if(r=e,!Ti(e))throw e}throw r instanceof Error?r:Error(`Analytics probe failed for all metrics`)},retry:(e,t)=>!wi(t)&&e<2,retryDelay:e=>Math.min(1e3*2**e,8e3),staleTime:Si,gcTime:Si});return{supported:t.isSuccess===!0,error:t.error,isAuthError:t.error!=null&&wi(t.error),isLoading:t.isLoading,isFetching:t.isFetching,retry:()=>{t.refetch()}}}function Di(){let[e,t]=(0,I.useState)(()=>typeof document<`u`&&document.documentElement.classList.contains(`dark`));return(0,I.useEffect)(()=>{let e=document.documentElement;t(e.classList.contains(`dark`));let n=new MutationObserver(()=>{t(e.classList.contains(`dark`))});return n.observe(e,{attributes:!0,attributeFilter:[`class`]}),()=>n.disconnect()},[]),e?`dark`:`light`}function Oi(){return{axisColor:`var(--chart-axis, #6b7280)`,gridColor:`var(--chart-grid, #e5e7eb)`}}var ki=new Set([`time`,`node`]),Ai=Object.freeze([]);function ji({metric:e,startTime:t,endTime:n,conditions:r,instanceParams:i,requiredFields:a,bucketMs:s}){let c=l({...Yt({metric:e,startTime:t,endTime:n,conditions:r,instanceParams:i,bucketMs:s}),staleTime:1/0,gcTime:6e4,refetchOnWindowFocus:!1,refetchOnReconnect:!1,placeholderData:o}),u=c.data??Ai,{fieldKeys:d,missingFields:f}=(0,I.useMemo)(()=>{let e=new Set;for(let t of u)for(let n of Object.keys(t))ki.has(n)||e.add(n);let t=[];if(a&&u.length>0)for(let n of a)e.has(n)||t.push(n);return{fieldKeys:e,missingFields:t}},[u,a]);return(0,I.useEffect)(()=>{!c.isLoading&&u.length===0&&f.length>0&&console.warn(`[analytics] panel rendered empty with missing fields`,{metric:e,instanceId:i.entityId,missingFields:f})},[u.length,c.isLoading,e,i.entityId,f]),{data:u,isLoading:c.isLoading,isError:c.isError,error:c.error,isEmpty:u.length===0,fieldKeys:d,missingFields:f,refetch:c.refetch}}function Mi(e,t,n){let r=new Map;for(let t of e){let e=typeof t.path==`string`?t.path:null;if(!e||typeof t.time!=`number`||!Number.isFinite(t.time))continue;let n=typeof t.count==`number`&&Number.isFinite(t.count)?t.count:0,i=typeof t.total==`number`&&Number.isFinite(t.total)?t.total:0,a=r.get(e);a||(a=new Map,r.set(e,a));let o=a.get(t.time);o||(o={sumCount:0,sumTotal:0},a.set(t.time,o)),o.sumCount+=n,o.sumTotal+=i}return{series:[...r.entries()].map(([e,t])=>({key:e,label:e,points:[...t.keys()].sort((e,t)=>e-t).map(e=>{let n=t.get(e);return{x:e,y:n.sumCount===0?null:1-n.sumTotal/n.sumCount,count:n.sumCount}})})),thresholds:[{value:.001,label:`0.1% error SLO`,direction:`above-is-bad`,minCount:1e3}]}}var Ni={id:`error-rate`,title:`Error rate (≥1000 req)`,subtitle:`errored-request fraction — 1 − Σtotal/Σcount`,tab:`requests`,sourceMetric:`success`,recompute:Mi,primitive:`line`,yAxis:{unit:``,formatter:`percent`}},Pi=[`var(--chart-node-1)`,`var(--chart-node-2)`,`var(--chart-node-3)`,`var(--chart-node-4)`,`var(--chart-node-5)`,`var(--chart-node-6)`,`var(--chart-node-7)`,`var(--chart-node-8)`,`var(--chart-node-9)`,`var(--chart-node-10)`];function Fi(e,t){return Pi[[...t].sort().indexOf(e)%Pi.length]}function Ii({nodeIds:e,isActive:t,onClickNode:n,disabled:r}){return(0,L.jsxs)(`div`,{role:`group`,"aria-label":r?`Node filter (unavailable on this tab)`:`Node filter`,className:`flex flex-wrap justify-center gap-x-4 gap-y-1 pt-2 text-[11px]`,children:[r&&(0,L.jsx)(`span`,{className:`sr-only`,"aria-live":`polite`,children:`Per-node filter is unavailable on this tab. Buttons remain visible to preserve selection state.`}),e.map(i=>{let a=Fi(i,e),o=t(i);return(0,L.jsxs)(`button`,{type:`button`,"aria-pressed":o,"aria-disabled":r?`true`:void 0,title:r?`Per-node filter unavailable on this tab's panels`:void 0,onClick:e=>{r||n(i,e.ctrlKey||e.metaKey)},className:`inline-flex items-center gap-1.5 cursor-pointer border-none bg-transparent p-0`,style:r?{color:a,opacity:.5,cursor:`not-allowed`}:{color:a,opacity:o?1:.3},children:[(0,L.jsx)(`span`,{className:`inline-block h-[3px] w-3 rounded`,style:{backgroundColor:a}}),(0,L.jsx)(`span`,{children:i})]},i)})]})}function Li(e){let[t,n]=(0,I.useState)(null),r=(0,I.useRef)(e);return r.current=e,{isActive:(0,I.useCallback)(e=>t===null||t.has(e),[t]),handleClick:(0,I.useCallback)((e,t)=>{let i=r.current;n(n=>{if(t){if(n===null)return new Set(i.filter(t=>t!==e));let t=new Set(n);if(t.has(e)){if(t.delete(e),t.size===0)return null}else if(t.add(e),t.size===i.length)return null;return t}return n!==null&&n.size===1&&n.has(e)?null:new Set([e])})},[]),activeSet:t}}function Ri(e){let{isActive:t,handleClick:n,activeSet:r}=Li(e);return{isActive:t,handleLegendClick:n,activeNodes:r}}function zi(e,t,n){let r=(0,I.useRef)([]);(0,I.useEffect)(()=>{r.current=r.current.slice(0,e.length)},[e.length]);let i=t===null?-1:e.indexOf(t),a=i>=0?i:0;function o(t,i){if(t.key===`Enter`||t.key===` `){t.preventDefault(),n(e[i]);return}if(t.key!==`ArrowLeft`&&t.key!==`ArrowRight`&&t.key!==`ArrowDown`&&t.key!==`ArrowUp`)return;t.preventDefault();let a=e.length;if(a===0)return;let o=(i+(t.key===`ArrowRight`||t.key===`ArrowDown`?1:-1)+a)%a;r.current[o]?.focus(),n(e[o])}function s(t){return{role:`radio`,"aria-checked":t===i,tabIndex:t===a?0:-1,ref:e=>{r.current[t]=e},onKeyDown:e=>o(e,t),onClick:()=>n(e[t])}}return{getRadioProps:s,selectedIdx:i}}var Bi=[`var(--chart-type-1)`,`var(--chart-type-2)`,`var(--chart-type-3)`,`var(--chart-type-4)`,`var(--chart-type-5)`,`var(--chart-type-6)`];function Vi(e,t){let n=[...t].sort().indexOf(e);return Bi[(n<0?0:n)%Bi.length]}function Hi(e,t){let n=t.filter(e=>typeof e.value==`number`&&Number.isFinite(e.value));if(n.length===0)return null;let r=n.map(e=>e.value);switch(e){case`sum`:return r.reduce((e,t)=>e+t,0);case`mean`:return r.reduce((e,t)=>e+t,0)/r.length;case`max`:{let e=r[0];for(let t=1;t<r.length;t++)r[t]>e&&(e=r[t]);return e}case`min`:{let e=r[0];for(let t=1;t<r.length;t++)r[t]<e&&(e=r[t]);return e}case`last`:return r[r.length-1];case`p50`:return Ui(r,.5);case`p95`:return Ui(r,.95);case`p99`:return Ui(r,.99);case`count-weighted-mean`:{let e=0,t=0;for(let r of n){let n=Number.isFinite(r.count)?r.count:1;e+=r.value*n,t+=n}return t===0?null:e/t}}}function Ui(e,t){let n=[...e].sort((e,t)=>e-t);return n[Math.max(1,Math.ceil(t*n.length))-1]}function Wi(e){return e===`count-weighted-mean`}function Gi(e,t){return Wi(t)?e.endsWith(`(approx)`)?e:`${e} (approx)`:e}function Ki(e,t){if(!t)return`ok`;if(e===void 0)return`suppress`;let{suppressBelow:n,greyBelow:r}=t;return n!==void 0&&e<n?r!==void 0&&e>=r?`grey`:`suppress`:r!==void 0&&e<r?`grey`:`ok`}function qi(e,t){switch(e.kind){case`const`:return e.value;case`ref`:{let n=t[e.field];return typeof n==`number`&&Number.isFinite(n)?n:null}case`op`:{let n=qi(e.left,t),r=qi(e.right,t);if(n===null||r===null)return null;switch(e.op){case`+`:return n+r;case`-`:return n-r;case`*`:return n*r;case`/`:return r===0?null:n/r;default:{let t=e.op;throw Error(`unknown op: ${String(t)}`)}}}default:throw Error(`unknown FieldExpr kind: ${e.kind}`)}}var Ji={"percent-of-core":e=>e*100};function Yi(e,t,n){if(t===null)return null;switch(e.kind){case`raw`:return t;case`scale`:return t*e.factor;case`rate`:return!Number.isFinite(n)||n<=0?null:t/n*1e3;case`ratio`:return t;case`compose`:{let r=t;for(let t of e.steps)if(r=Yi(t,r,n),r===null)return null;return r}case`named`:{let n=Ji[e.name];if(!n)throw Error(`unknown named transform: ${e.name}`);return n(t)}default:throw Error(`unknown transform kind: ${e.kind}`)}}function Xi(e,t){return`${e}|${t}`}function Zi(e,t,n,r,i){return e.series.kind===`field`?ia(e,e.series.fields,t,i?.perNode??!1,i?.snapToPeriod??!1):ra(e,e.series,t,i?.perNode??!1,i?.snapToPeriod??!1)}function Qi(e,t,n){let r=$i(e,t);return Math.round(n/r)*r}function $i(e,t){let n=t.period;if(typeof n==`number`&&Number.isFinite(n)&&n>0)return n;let r=e.bucket?.fallbackMs;return typeof r==`number`&&Number.isFinite(r)&&r>0?r:6e4}function ea(e,t){let n=e.timestamp??`time`;if(n===`time`){let e=t.time;return typeof e==`number`&&Number.isFinite(e)?e:null}if(n===`id`){let e=t.id;return typeof e==`number`&&Number.isFinite(e)?e:null}let r=t.time;if(typeof r==`number`&&Number.isFinite(r))return r;let i=t.id;return typeof i==`number`&&Number.isFinite(i)?i:null}function ta(e,t,n){let r=0,i,a=n.map(e=>{let n=ea(t,e);return n===null&&(r++,i??=e),n});return r>0&&console.warn(`[${e}] Dropping ${r} record(s) with no resolvable timestamp:`,{sample:i&&{time:i.time,id:i.id,node:i.node},timestamp:t.timestamp??`time`}),a}function na(e,t,n){let r=typeof t.field==`string`?typeof n[t.field]==`number`?n[t.field]:null:qi(t.field,n);return Yi(t.transform??{kind:`raw`},r,$i(e,n))}function ra(e,t,n,r,i){let a=new Map,o=new Map,s=ta(`runGroupBy`,e,n);for(let r=0;r<n.length;r++){let c=n[r],l=c[t.dimension];if(typeof l!=`string`&&typeof l!=`number`)continue;let u=na(e,t.field,c);if(u===null)continue;let d=s[r];if(d===null)continue;let f=i?Qi(e,c,d):d,p=typeof c.count==`number`&&Number.isFinite(c.count)?c.count:1,m=typeof c.node==`string`?c.node:`_no_node`;o.set(l,(o.get(l)??0)+p);let h=a.get(l);h||(h=new Map,a.set(l,h));let g=h.get(f);g||(g=new Map,h.set(f,g));let _=g.get(m);_||(_={items:[],totalCount:0},g.set(m,_)),_.items.push({value:u,count:p}),_.totalCount+=p}let c=t.field.aggregator?.temporal??e.aggregator.temporal,l=t.field.aggregator?.crossNode??e.aggregator.crossNode,u=c===`count-weighted-mean`||l===`count-weighted-mean`,d=[...o.entries()].sort((e,t)=>t[1]-e[1]),f=t.topN??1/0,p=d.slice(0,f),m=d.slice(f),h=[],g=0;for(let[n,i]of p){if(Ki(i,e.confidence)===`suppress`){g++;continue}let o=a.get(n);if(!o)continue;let s=t.dimension===`node`;if(r&&!s){let e=new Map;for(let[t,n]of o)for(let[r,i]of n){let n=e.get(r);n||(n=new Map,e.set(r,n)),n.set(t,i)}for(let[t,r]of e){let e=[],i=[...r.keys()].sort((e,t)=>e-t);for(let t of i){let n=r.get(t),i=Hi(c,n.items);e.push({x:t,y:i,count:n.totalCount})}h.push({key:Xi(String(n),t),label:Gi(t,c),dim:String(n),node:t,points:e,approx:u})}}else{let e=[],t=[...o.keys()].sort((e,t)=>e-t);for(let n of t){let{y:t,count:r}=aa(c,l,o.get(n));e.push({x:n,y:t,count:r})}h.push({key:String(n),label:Gi(String(n),c),dim:String(n),...s?{node:String(n)}:{},points:e,approx:u})}}if(t.otherBucket&&m.length>0)if(Ki(m.reduce((e,[,t])=>e+t,0),e.confidence)!==`suppress`){let e=new Map;for(let[t]of m){let n=a.get(t);if(n)for(let[t,r]of n){let n=e.get(t);n||(n=new Map,e.set(t,n));for(let[e,t]of r){let r=n.get(e);r||(r={items:[],totalCount:0},n.set(e,r));for(let e of t.items)r.items.push(e);r.totalCount+=t.totalCount}}}let t=[],n=[...e.keys()].sort((e,t)=>e-t);for(let r of n){let{y:n,count:i}=aa(c,l,e.get(r));t.push({x:r,y:n,count:i})}h.push({key:`Other`,label:Gi(`Other`,c),dim:`Other`,points:t,approx:u})}else g++;return{series:h,thresholds:e.thresholds,...g>0?{suppressedSeriesCount:g}:{}}}function ia(e,t,n,r,i){let a=ta(`runFieldSpecs`,e,n);return{series:t.map(t=>{let o=new Map;for(let r=0;r<n.length;r++){let s=n[r],c=a[r];if(c===null)continue;let l=na(e,t,s);if(l===null)continue;let u=typeof s.count==`number`&&Number.isFinite(s.count)?s.count:1,d=typeof s.node==`string`?s.node:`_no_node`,f=i?Qi(e,s,c):c,p=o.get(f);p||(p=new Map,o.set(f,p));let m=p.get(d);m||(m={items:[],totalCount:0},p.set(d,m)),m.items.push({value:l,count:u}),m.totalCount+=u}let s=t.aggregator?.temporal??e.aggregator.temporal,c=t.aggregator?.crossNode??e.aggregator.crossNode,l=s===`count-weighted-mean`||c===`count-weighted-mean`,u=typeof t.field==`string`?t.field:t.label;if(r){let e=new Map;for(let[t,n]of o)for(let[r,i]of n){let n=e.get(r);n||(n=new Map,e.set(r,n)),n.set(t,i)}let n=[];for(let[r,i]of e){let e=[],a=[...i.keys()].sort((e,t)=>e-t);for(let t of a){let n=i.get(t),r=Hi(s,n.items);e.push({x:t,y:r,count:n.totalCount})}n.push({key:Xi(u,r),label:Gi(`${t.label} — ${r}`,s),dim:u,node:r,axis:t.axis,points:e,approx:l})}return n}let d=[],f=[...o.keys()].sort((e,t)=>e-t);for(let e of f){let{y:t,count:n}=aa(s,c,o.get(e));d.push({x:e,y:t,count:n})}return[{key:u,label:Gi(t.label,s),dim:u,axis:t.axis,points:d,approx:l}]}).flat(),thresholds:e.thresholds}}function aa(e,t,n){let r=[],i=0;for(let[,t]of n){let n=Hi(e,t.items);typeof n==`number`&&Number.isFinite(n)&&r.push({value:n,count:t.totalCount}),i+=t.totalCount}return{y:Hi(t,r),count:i}}var oa=`dangerouslySetInnerHTML.onCopy.onCopyCapture.onCut.onCutCapture.onPaste.onPasteCapture.onCompositionEnd.onCompositionEndCapture.onCompositionStart.onCompositionStartCapture.onCompositionUpdate.onCompositionUpdateCapture.onFocus.onFocusCapture.onBlur.onBlurCapture.onChange.onChangeCapture.onBeforeInput.onBeforeInputCapture.onInput.onInputCapture.onReset.onResetCapture.onSubmit.onSubmitCapture.onInvalid.onInvalidCapture.onLoad.onLoadCapture.onError.onErrorCapture.onKeyDown.onKeyDownCapture.onKeyPress.onKeyPressCapture.onKeyUp.onKeyUpCapture.onAbort.onAbortCapture.onCanPlay.onCanPlayCapture.onCanPlayThrough.onCanPlayThroughCapture.onDurationChange.onDurationChangeCapture.onEmptied.onEmptiedCapture.onEncrypted.onEncryptedCapture.onEnded.onEndedCapture.onLoadedData.onLoadedDataCapture.onLoadedMetadata.onLoadedMetadataCapture.onLoadStart.onLoadStartCapture.onPause.onPauseCapture.onPlay.onPlayCapture.onPlaying.onPlayingCapture.onProgress.onProgressCapture.onRateChange.onRateChangeCapture.onSeeked.onSeekedCapture.onSeeking.onSeekingCapture.onStalled.onStalledCapture.onSuspend.onSuspendCapture.onTimeUpdate.onTimeUpdateCapture.onVolumeChange.onVolumeChangeCapture.onWaiting.onWaitingCapture.onAuxClick.onAuxClickCapture.onClick.onClickCapture.onContextMenu.onContextMenuCapture.onDoubleClick.onDoubleClickCapture.onDrag.onDragCapture.onDragEnd.onDragEndCapture.onDragEnter.onDragEnterCapture.onDragExit.onDragExitCapture.onDragLeave.onDragLeaveCapture.onDragOver.onDragOverCapture.onDragStart.onDragStartCapture.onDrop.onDropCapture.onMouseDown.onMouseDownCapture.onMouseEnter.onMouseLeave.onMouseMove.onMouseMoveCapture.onMouseOut.onMouseOutCapture.onMouseOver.onMouseOverCapture.onMouseUp.onMouseUpCapture.onSelect.onSelectCapture.onTouchCancel.onTouchCancelCapture.onTouchEnd.onTouchEndCapture.onTouchMove.onTouchMoveCapture.onTouchStart.onTouchStartCapture.onPointerDown.onPointerDownCapture.onPointerMove.onPointerMoveCapture.onPointerUp.onPointerUpCapture.onPointerCancel.onPointerCancelCapture.onPointerEnter.onPointerEnterCapture.onPointerLeave.onPointerLeaveCapture.onPointerOver.onPointerOverCapture.onPointerOut.onPointerOutCapture.onGotPointerCapture.onGotPointerCaptureCapture.onLostPointerCapture.onLostPointerCaptureCapture.onScroll.onScrollCapture.onWheel.onWheelCapture.onAnimationStart.onAnimationStartCapture.onAnimationEnd.onAnimationEndCapture.onAnimationIteration.onAnimationIterationCapture.onTransitionEnd.onTransitionEndCapture`.split(`.`);function sa(e){return typeof e==`string`&&oa.includes(e)}var ca=new Set(`aria-activedescendant.aria-atomic.aria-autocomplete.aria-busy.aria-checked.aria-colcount.aria-colindex.aria-colspan.aria-controls.aria-current.aria-describedby.aria-details.aria-disabled.aria-errormessage.aria-expanded.aria-flowto.aria-haspopup.aria-hidden.aria-invalid.aria-keyshortcuts.aria-label.aria-labelledby.aria-level.aria-live.aria-modal.aria-multiline.aria-multiselectable.aria-orientation.aria-owns.aria-placeholder.aria-posinset.aria-pressed.aria-readonly.aria-relevant.aria-required.aria-roledescription.aria-rowcount.aria-rowindex.aria-rowspan.aria-selected.aria-setsize.aria-sort.aria-valuemax.aria-valuemin.aria-valuenow.aria-valuetext.className.color.height.id.lang.max.media.method.min.name.style.target.width.role.tabIndex.accentHeight.accumulate.additive.alignmentBaseline.allowReorder.alphabetic.amplitude.arabicForm.ascent.attributeName.attributeType.autoReverse.azimuth.baseFrequency.baselineShift.baseProfile.bbox.begin.bias.by.calcMode.capHeight.clip.clipPath.clipPathUnits.clipRule.colorInterpolation.colorInterpolationFilters.colorProfile.colorRendering.contentScriptType.contentStyleType.cursor.cx.cy.d.decelerate.descent.diffuseConstant.direction.display.divisor.dominantBaseline.dur.dx.dy.edgeMode.elevation.enableBackground.end.exponent.externalResourcesRequired.fill.fillOpacity.fillRule.filter.filterRes.filterUnits.floodColor.floodOpacity.focusable.fontFamily.fontSize.fontSizeAdjust.fontStretch.fontStyle.fontVariant.fontWeight.format.from.fx.fy.g1.g2.glyphName.glyphOrientationHorizontal.glyphOrientationVertical.glyphRef.gradientTransform.gradientUnits.hanging.horizAdvX.horizOriginX.href.ideographic.imageRendering.in2.in.intercept.k1.k2.k3.k4.k.kernelMatrix.kernelUnitLength.kerning.keyPoints.keySplines.keyTimes.lengthAdjust.letterSpacing.lightingColor.limitingConeAngle.local.markerEnd.markerHeight.markerMid.markerStart.markerUnits.markerWidth.mask.maskContentUnits.maskUnits.mathematical.mode.numOctaves.offset.opacity.operator.order.orient.orientation.origin.overflow.overlinePosition.overlineThickness.paintOrder.panose1.pathLength.patternContentUnits.patternTransform.patternUnits.pointerEvents.pointsAtX.pointsAtY.pointsAtZ.preserveAlpha.preserveAspectRatio.primitiveUnits.r.radius.refX.refY.renderingIntent.repeatCount.repeatDur.requiredExtensions.requiredFeatures.restart.result.rotate.rx.ry.seed.shapeRendering.slope.spacing.specularConstant.specularExponent.speed.spreadMethod.startOffset.stdDeviation.stemh.stemv.stitchTiles.stopColor.stopOpacity.strikethroughPosition.strikethroughThickness.string.stroke.strokeDasharray.strokeDashoffset.strokeLinecap.strokeLinejoin.strokeMiterlimit.strokeOpacity.strokeWidth.surfaceScale.systemLanguage.tableValues.targetX.targetY.textAnchor.textDecoration.textLength.textRendering.to.transform.u1.u2.underlinePosition.underlineThickness.unicode.unicodeBidi.unicodeRange.unitsPerEm.vAlphabetic.values.vectorEffect.version.vertAdvY.vertOriginX.vertOriginY.vHanging.vIdeographic.viewTarget.visibility.vMathematical.widths.wordSpacing.writingMode.x1.x2.x.xChannelSelector.xHeight.xlinkActuate.xlinkArcrole.xlinkHref.xlinkRole.xlinkShow.xlinkTitle.xlinkType.xmlBase.xmlLang.xmlns.xmlnsXlink.xmlSpace.y1.y2.y.yChannelSelector.z.zoomAndPan.ref.key.angle`.split(`.`));function la(e){return typeof e==`string`&&ca.has(e)}function ua(e){return typeof e==`string`&&e.startsWith(`data-`)}function da(e){if(typeof e!=`object`||!e)return{};var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(la(n)||ua(n))&&(t[n]=e[n]);return t}function fa(e){if(e==null)return null;if((0,I.isValidElement)(e)&&typeof e.props==`object`&&e.props!==null){var t=e.props;return da(t)}return typeof e==`object`&&!Array.isArray(e)?da(e):null}function pa(e){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(la(n)||ua(n)||sa(n))&&(t[n]=e[n]);return t}function ma(e){return e==null?null:(0,I.isValidElement)(e)?pa(e.props):typeof e==`object`&&!Array.isArray(e)?pa(e):null}var ha=[`children`,`width`,`height`,`viewBox`,`className`,`style`,`title`,`desc`];function ga(){return ga=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ga.apply(null,arguments)}function _a(e,t){if(e==null)return{};var n,r,i=va(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function va(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var ya=(0,I.forwardRef)((e,t)=>{var n=e.children,r=e.width,i=e.height,o=e.viewBox,s=e.className,c=e.style,l=e.title,u=e.desc,d=_a(e,ha),f=o||{width:r,height:i,x:0,y:0},p=a(`recharts-surface`,s);return I.createElement(`svg`,ga({},pa(d),{className:p,width:r,height:i,style:c,viewBox:`${f.x} ${f.y} ${f.width} ${f.height}`,ref:t}),I.createElement(`title`,null,l),I.createElement(`desc`,null,u),n)}),ba=[`children`,`className`];function xa(){return xa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},xa.apply(null,arguments)}function Sa(e,t){if(e==null)return{};var n,r,i=Ca(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Ca(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var wa=I.forwardRef((e,t)=>{var n=e.children,r=e.className,i=Sa(e,ba),o=a(`recharts-layer`,r);return I.createElement(`g`,xa({className:o},pa(i),{ref:t}),n)}),Ta=(0,I.createContext)(null),Ea=()=>(0,I.useContext)(Ta),Da=4;function Oa(e){var t=10**(arguments.length>1&&arguments[1]!==void 0?arguments[1]:Da),n=Math.round(e*t)/t;return Object.is(n,-0)?0:n}function ka(e){var t=[...arguments].slice(1);return e.reduce((e,n,r)=>{var i=t[r-1];return typeof i==`string`?e+i+n:i===void 0?e+n:e+Oa(i)+n},``)}var Aa=e=>e===0?0:e>0?1:-1,ja=e=>typeof e==`number`&&e!=+e,Ma=e=>typeof e==`string`&&e.length>1&&e.indexOf(`%`)===e.length-1,R=e=>(typeof e==`number`||e instanceof Number)&&!ja(e),Na=e=>R(e)||typeof e==`string`,Pa=0,Fa=e=>{var t=++Pa;return`${e||``}${t}`},Ia=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(!R(e)&&typeof e!=`string`)return n;var i;if(Ma(e)){if(t==null)return n;var a=e.indexOf(`%`);i=t*parseFloat(e.slice(0,a))/100}else i=+e;return ja(i)&&(i=n),r&&t!=null&&i>t&&(i=t),i},La=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,n={},r=0;r<t;r++)if(!n[String(e[r])])n[String(e[r])]=!0;else return!0;return!1};function z(e,t,n){return R(e)&&R(t)?Oa(e+n*(t-e)):t}function Ra(e,t,n){if(!(!e||!e.length))return e.find(e=>e&&(typeof t==`function`?t(e):kr(e,t))===n)}var B=e=>e==null,za=e=>B(e)?e:`${e.charAt(0).toUpperCase()}${e.slice(1)}`;function Ba(e){return e!=null}function Va(){}var Ha=[`type`,`size`,`sizeType`];function Ua(){return Ua=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ua.apply(null,arguments)}function Wa(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 Ga(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Wa(Object(n),!0).forEach(function(t){Ka(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Wa(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Ka(e,t,n){return(t=qa(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qa(e){var t=Ja(e,`string`);return typeof t==`symbol`?t:t+``}function Ja(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Ya(e,t){if(e==null)return{};var n,r,i=Xa(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Xa(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var Za={symbolCircle:Xn,symbolCross:Zn,symbolDiamond:er,symbolSquare:tr,symbolStar:or,symbolTriangle:cr,symbolWye:pr},Qa=Math.PI/180,$a=e=>Za[`symbol${za(e)}`]||Xn,eo=(e,t,n)=>{if(t===`area`)return e;switch(n){case`cross`:return 5*e*e/9;case`diamond`:return .5*e*e/Math.sqrt(3);case`square`:return e*e;case`star`:var r=18*Qa;return 1.25*e*e*(Math.tan(r)-Math.tan(r*2)*Math.tan(r)**2);case`triangle`:return Math.sqrt(3)*e*e/4;case`wye`:return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},to=(e,t)=>{Za[`symbol${za(e)}`]=t},no=e=>{var t=e.type,n=t===void 0?`circle`:t,r=e.size,i=r===void 0?64:r,o=e.sizeType,s=o===void 0?`area`:o,c=Ga(Ga({},Ya(e,Ha)),{},{type:n,size:i,sizeType:s}),l=`circle`;typeof n==`string`&&(l=n);var u=()=>{var e=$a(l),t=mr().type(e).size(eo(i,s,l))();if(t!==null)return t},d=c.className,f=c.cx,p=c.cy,m=pa(c);return R(f)&&R(p)&&R(i)?I.createElement(`path`,Ua({},m,{className:a(`recharts-symbols`,d),transform:`translate(${f}, ${p})`,d:u()})):null};no.registerSymbol=to;var ro=e=>`radius`in e&&`startAngle`in e&&`endAngle`in e,io=(e,t)=>{if(!e||typeof e==`function`||typeof e==`boolean`)return null;var n=e;if((0,I.isValidElement)(e)&&(n=e.props),typeof n!=`object`&&typeof n!=`function`)return null;var r={};return Object.keys(n).forEach(e=>{sa(e)&&typeof n[e]==`function`&&(r[e]=t||(t=>n[e](n,t)))}),r},ao=(e,t,n)=>r=>(e(t,n,r),null),oo=(e,t,n)=>{if(e===null||typeof e!=`object`&&typeof e!=`function`)return null;var r=null;return Object.keys(e).forEach(i=>{var a=e[i];sa(i)&&typeof a==`function`&&(r||={},r[i]=ao(a,t,n))}),r};function so(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 co(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?so(Object(n),!0).forEach(function(t){lo(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):so(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function lo(e,t,n){return(t=uo(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function uo(e){var t=fo(e,`string`);return typeof t==`symbol`?t:t+``}function fo(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function po(e,t){var n=co({},e),r=t;return Object.keys(t).reduce((e,t)=>(e[t]===void 0&&r[t]!==void 0&&(e[t]=r[t]),e),n)}function mo(){return mo=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},mo.apply(null,arguments)}function ho(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 go(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?ho(Object(n),!0).forEach(function(t){_o(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ho(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _o(e,t,n){return(t=vo(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function vo(e){var t=yo(e,`string`);return typeof t==`symbol`?t:t+``}function yo(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var bo=32,xo={align:`center`,iconSize:14,inactiveColor:`#ccc`,layout:`horizontal`,verticalAlign:`middle`,labelStyle:{}};function So(e){if(typeof e==`object`&&e&&`strokeDasharray`in e)return String(e.strokeDasharray)}function Co(e){var t=e.data,n=e.iconType,r=e.inactiveColor,i=bo/2,a=bo/6,o=bo/3,s=t.inactive?r:t.color,c=n??t.type;if(c===`none`)return null;if(c===`plainline`)return I.createElement(`line`,{strokeWidth:4,fill:`none`,stroke:s,strokeDasharray:So(t.payload),x1:0,y1:i,x2:bo,y2:i,className:`recharts-legend-icon`});if(c===`line`)return I.createElement(`path`,{strokeWidth:4,fill:`none`,stroke:s,d:`M0,${i}h${o}
|
|
2
2
|
A${a},${a},0,1,1,${2*o},${i}
|
|
3
3
|
H${bo}M${2*o},${i}
|
|
4
4
|
A${a},${a},0,1,1,${o},${i}`,className:`recharts-legend-icon`});if(c===`rect`)return I.createElement(`path`,{stroke:`none`,fill:s,d:`M0,${bo/8}h${bo}v${bo*3/4}h${-bo}z`,className:`recharts-legend-icon`});if(I.isValidElement(t.legendIcon)){var l=go({},t);return delete l.legendIcon,I.cloneElement(t.legendIcon,l)}return I.createElement(no,{fill:s,cx:i,cy:i,size:bo,sizeType:`diameter`,type:c})}function wo(e){var t=e.payload,n=e.iconSize,r=e.layout,i=e.formatter,o=e.inactiveColor,s=e.iconType,c=e.labelStyle,l={x:0,y:0,width:bo,height:bo},u={display:r===`horizontal`?`inline-block`:`block`,marginRight:10},d={display:`inline-block`,verticalAlign:`middle`,marginRight:4};return t.map((t,r)=>{var f=t.formatter||i,p=a({"recharts-legend-item":!0,[`legend-item-${r}`]:!0,inactive:t.inactive});if(t.type===`none`)return null;var m=typeof c==`object`?go({},c):{};m.color=t.inactive?o:m.color||t.color;var h=f?f(t.value,t,r):t.value;return I.createElement(`li`,mo({className:p,style:u,key:`legend-item-${r}`},oo(e,t,r)),I.createElement(ya,{width:n,height:n,viewBox:l,style:d,"aria-label":t.value==null?`legend icon`:`${t.value} legend icon`},I.createElement(Co,{data:t,iconType:s,inactiveColor:o})),I.createElement(`span`,{className:`recharts-legend-item-text`,style:m},h))})}var To=e=>{var t=po(e,xo),n=t.payload,r=t.layout,i=t.align;if(!n||!n.length)return null;var a={padding:0,margin:0,textAlign:r===`horizontal`?i:`left`};return I.createElement(`ul`,{className:`recharts-default-legend`,style:a},I.createElement(wo,mo({},t,{payload:n})))};function Eo(e,t,n){return t===!0?si(e,n):typeof t==`function`?si(e,t):e}var Do=(0,I.createContext)(null),Oo=d(),ko=e=>e,V=()=>{var e=(0,I.useContext)(Do);return e?e.store.dispatch:ko},Ao=()=>{},jo=()=>Ao,Mo=(e,t)=>e===t;function H(e){var t=(0,I.useContext)(Do),n=(0,I.useMemo)(()=>t?t=>{if(t!=null)return e(t)}:Ao,[t,e]);return(0,Oo.useSyncExternalStoreWithSelector)(t?t.subscription.addNestedSub:jo,t?t.store.getState:Ao,t?t.store.getState:Ao,n,Mo)}var No=e=>e.legend.settings,Po=e=>e.legend.size,Fo=F([e=>e.legend.payload,No],(e,t)=>{var n=t.itemSorter,r=e.flat(1);return n?ii(r,n):r});function Io(){return H(Fo)}function Lo(e,t){return Ho(e)||Vo(e,t)||zo(e,t)||Ro()}function Ro(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
@@ -58,4 +58,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
58
58
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function RN(e,t){if(e){if(typeof e==`string`)return zN(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?zN(e,t):void 0}}function zN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function BN(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function VN(e){if(Array.isArray(e))return e}function HN(){var e=V(),t=IN((0,I.useState)(null),2),n=t[0],r=t[1],i=H(uu);return(0,I.useEffect)(()=>{if(n!=null){var t=n.getBoundingClientRect().width/n.offsetWidth;G(t)&&t!==i&&e(Ml(t))}},[n,e,i]),r}function UN(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 WN(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?UN(Object(n),!0).forEach(function(t){GN(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):UN(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function GN(e,t,n){return(t=KN(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function KN(e){var t=qN(e,`string`);return typeof t==`symbol`?t:t+``}function qN(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function JN(){return JN=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},JN.apply(null,arguments)}function YN(e,t){return eP(e)||$N(e,t)||ZN(e,t)||XN()}function XN(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
59
59
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ZN(e,t){if(e){if(typeof e==`string`)return QN(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?QN(e,t):void 0}}function QN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function $N(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function eP(e){if(Array.isArray(e))return e}var tP=()=>(cS(),null);function nP(e){if(typeof e==`number`)return e;if(typeof e==`string`){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var rP=(0,I.forwardRef)((e,t)=>{var n=(0,I.useRef)(null),r=YN((0,I.useState)({containerWidth:nP(e.style?.width),containerHeight:nP(e.style?.height)}),2),i=r[0],a=r[1],o=(0,I.useCallback)((e,t)=>{a(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),s=(0,I.useCallback)(e=>{if(typeof t==`function`&&t(e),n.current!=null&&(n.current.disconnect(),n.current=null),e!=null&&typeof ResizeObserver<`u`){var r=e.getBoundingClientRect(),i=r.width,a=r.height;o(i,a);var s=new ResizeObserver(e=>{var t=e[0];if(t!=null){var n=t.contentRect,r=n.width,i=n.height;o(r,i)}});s.observe(e),n.current=s}},[t,o]);return(0,I.useEffect)(()=>()=>{n.current?.disconnect()},[o]),I.createElement(I.Fragment,null,I.createElement(vd,{width:i.containerWidth,height:i.containerHeight}),I.createElement(`div`,JN({ref:s},e)))}),iP=(0,I.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=YN((0,I.useState)({containerWidth:nP(n),containerHeight:nP(r)}),2),a=i[0],o=i[1],s=(0,I.useCallback)((e,t)=>{o(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),c=(0,I.useCallback)(e=>{if(typeof t==`function`&&t(e),e!=null){var n=e.getBoundingClientRect(),r=n.width,i=n.height;s(r,i)}},[t,s]);return I.createElement(I.Fragment,null,I.createElement(vd,{width:a.containerWidth,height:a.containerHeight}),I.createElement(`div`,JN({ref:c},e)))}),aP=(0,I.forwardRef)((e,t)=>{var n=e.width,r=e.height;return I.createElement(I.Fragment,null,I.createElement(vd,{width:n,height:r}),I.createElement(`div`,JN({ref:t},e)))}),oP=(0,I.forwardRef)((e,t)=>{var n=e.width,r=e.height;return typeof n==`string`||typeof r==`string`?I.createElement(iP,JN({},e,{ref:t})):typeof n==`number`&&typeof r==`number`?I.createElement(aP,JN({},e,{width:n,height:r,ref:t})):I.createElement(I.Fragment,null,I.createElement(vd,{width:n,height:r}),I.createElement(`div`,JN({ref:t},e)))});function sP(e){return e?rP:oP}var cP=(0,I.forwardRef)((e,t)=>{var n=e.children,r=e.className,i=e.height,o=e.onClick,s=e.onContextMenu,c=e.onDoubleClick,l=e.onMouseDown,u=e.onMouseEnter,d=e.onMouseLeave,f=e.onMouseMove,p=e.onMouseUp,m=e.onTouchEnd,h=e.onTouchMove,g=e.onTouchStart,_=e.style,v=e.width,y=e.responsive,b=e.dispatchTouchEvents,x=b===void 0||b,S=(0,I.useRef)(null),C=V(),w=YN((0,I.useState)(null),2),T=w[0],E=w[1],D=YN((0,I.useState)(null),2),O=D[0],k=D[1],A=HN(),j=id(),M=j?.width>0?j.width:v,N=j?.height>0?j.height:i,ee=(0,I.useCallback)(e=>{A(e),typeof t==`function`&&t(e),E(e),k(e),e!=null&&(S.current=e)},[A,t,E,k]),te=(0,I.useCallback)(e=>{C(FM(e)),C(rN({handler:o,reactEvent:e}))},[C,o]),ne=(0,I.useCallback)(e=>{C(LM(e)),C(rN({handler:u,reactEvent:e}))},[C,u]),re=(0,I.useCallback)(e=>{C(_y()),C(rN({handler:d,reactEvent:e}))},[C,d]),ie=(0,I.useCallback)(e=>{C(LM(e)),C(rN({handler:f,reactEvent:e}))},[C,f]),ae=(0,I.useCallback)(()=>{C(XM())},[C]),oe=(0,I.useCallback)(()=>{C(ZM())},[C]),se=(0,I.useCallback)(e=>{C(YM(e.key))},[C]),ce=(0,I.useCallback)(e=>{C(rN({handler:s,reactEvent:e}))},[C,s]),le=(0,I.useCallback)(e=>{C(rN({handler:c,reactEvent:e}))},[C,c]),ue=(0,I.useCallback)(e=>{C(rN({handler:l,reactEvent:e}))},[C,l]),de=(0,I.useCallback)(e=>{C(rN({handler:p,reactEvent:e}))},[C,p]),fe=(0,I.useCallback)(e=>{C(rN({handler:g,reactEvent:e}))},[C,g]),pe=(0,I.useCallback)(e=>{x&&C(lN(e)),C(rN({handler:h,reactEvent:e}))},[C,x,h]),me=(0,I.useCallback)(e=>{C(rN({handler:m,reactEvent:e}))},[C,m]),he=sP(y);return I.createElement(Ix.Provider,{value:T},I.createElement(Ta.Provider,{value:O},I.createElement(he,{width:M??_?.width,height:N??_?.height,className:a(`recharts-wrapper`,r),style:WN({position:`relative`,cursor:`default`,width:M,height:N},_),onClick:te,onContextMenu:ce,onDoubleClick:le,onFocus:ae,onBlur:oe,onKeyDown:se,onMouseDown:ue,onMouseEnter:ne,onMouseLeave:re,onMouseMove:ie,onMouseUp:de,onTouchEnd:me,onTouchMove:pe,onTouchStart:fe,ref:ee},I.createElement(tP,null),n)))}),lP=[`width`,`height`,`responsive`,`children`,`className`,`style`,`compact`,`title`,`desc`];function uP(e,t){if(e==null)return{};var n,r,i=dP(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function dP(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var fP=(0,I.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=e.responsive,a=e.children,o=e.className,s=e.style,c=e.compact,l=e.title,u=e.desc,d=da(uP(e,lP));return c?I.createElement(I.Fragment,null,I.createElement(vd,{width:n,height:r}),I.createElement(FN,{otherAttributes:d,title:l,desc:u},a)):I.createElement(cP,{className:o,style:s,width:n,height:r,responsive:i??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},I.createElement(FN,{otherAttributes:d,title:l,desc:u,ref:t},I.createElement(mD,null,a)))});function pP(){return pP=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},pP.apply(null,arguments)}function mP(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 hP(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?mP(Object(n),!0).forEach(function(t){gP(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mP(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function gP(e,t,n){return(t=_P(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _P(e){var t=vP(e,`string`);return typeof t==`symbol`?t:t+``}function vP(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var yP=hP({accessibilityLayer:!0,barCategoryGap:`10%`,barGap:4,layout:`horizontal`,margin:{top:5,right:5,bottom:5,left:5},responsive:!1,reverseStackOrder:!1,stackOffset:`none`,syncMethod:`index`},hN),bP=(0,I.forwardRef)(function(e,t){var n=po(e.categoricalChartProps,yP),r=e.chartName,i=e.defaultTooltipEventType,a=e.validateTooltipEventTypes,o=e.tooltipPayloadSearcher,s=e.categoricalChartProps,c={chartName:r,defaultTooltipEventType:i,validateTooltipEventTypes:a,tooltipPayloadSearcher:o,eventEmitter:void 0};return I.createElement(xN,{preloadedState:{options:c},reduxStoreName:s.id??r},I.createElement(JE,{chartData:s.data}),I.createElement(CN,{layout:n.layout,margin:n.margin}),I.createElement(TN,{throttleDelay:n.throttleDelay,throttledEvents:n.throttledEvents}),I.createElement(wN,{baseValue:n.baseValue,accessibilityLayer:n.accessibilityLayer,barCategoryGap:n.barCategoryGap,maxBarSize:n.maxBarSize,stackOffset:n.stackOffset,barGap:n.barGap,barSize:n.barSize,syncId:n.syncId,syncMethod:n.syncMethod,className:n.className,reverseStackOrder:n.reverseStackOrder}),I.createElement(fP,pP({},n,{ref:t})))}),xP=[`axis`],SP=(0,I.forwardRef)((e,t)=>I.createElement(bP,{chartName:`LineChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:xP,tooltipPayloadSearcher:Hx,categoricalChartProps:e,ref:t})),CP=[`axis`,`item`],wP=(0,I.forwardRef)((e,t)=>I.createElement(bP,{chartName:`BarChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:CP,tooltipPayloadSearcher:Hx,categoricalChartProps:e,ref:t})),TP=[`axis`],EP=(0,I.forwardRef)((e,t)=>I.createElement(bP,{chartName:`AreaChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:TP,tooltipPayloadSearcher:Hx,categoricalChartProps:e,ref:t})),DP=new Intl.DateTimeFormat(void 0,{hour:`numeric`,minute:`2-digit`}),OP=new Intl.DateTimeFormat(void 0,{month:`short`,day:`numeric`,year:`numeric`,hour:`numeric`,minute:`2-digit`,second:`2-digit`});new Intl.DateTimeFormat(void 0,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`}),new Intl.DateTimeFormat(void 0,{timeZoneName:`short`});function kP(e){return DP.format(new Date(e))}function AP(e){return OP.format(new Date(e))}var jP={background:`var(--chart-tooltip-bg)`,color:`var(--chart-tooltip-fg)`,border:`1px solid var(--border)`,borderRadius:6,boxShadow:`0 4px 12px rgba(0, 0, 0, 0.25)`,padding:8,fontSize:12},MP={color:`var(--chart-tooltip-fg)`,opacity:.7,marginBottom:4,fontSize:11},NP={color:`var(--chart-tooltip-fg)`};function PP(e){return!!e&&typeof e==`object`&&`left`in e}function FP(e){let t=e.series.map(e=>e.label);return`${t.length===1?`Chart of ${t[0]}`:`Chart with ${t.length} series: ${t.slice(0,5).join(`, `)}${t.length>5?`…`:``}`}${e.thresholds&&e.thresholds.length>0?`. ${e.thresholds.length} threshold${e.thresholds.length===1?``:`s`}.`:``}`}function IP({data:e,yAxis:t,height:n=240,ariaLabel:r,hideLegend:i,xDomain:a,fillParent:o}){if(e.series.length===0)return(0,L.jsx)(`div`,{role:`status`,"aria-live":`polite`,className:`text-(--color-text-secondary) text-sm p-4`,children:`No data in window`});let s=PP(t),c=s?t.left:t,l=s?t.right:void 0,u=Oi();return(0,L.jsx)(`div`,{role:`img`,"aria-label":r??FP(e),style:o?{width:`100%`,height:`100%`,minHeight:0,flex:`1 1 auto`,display:`flex`,flexDirection:`column`}:{width:`100%`,height:n},children:(0,L.jsx)(`div`,{"aria-hidden":`true`,style:{width:`100%`,height:`100%`},children:(0,L.jsx)(od,{width:`100%`,height:`100%`,children:(0,L.jsxs)(SP,{margin:{top:12,right:12,bottom:8,left:8},children:[(0,L.jsx)(WO,{stroke:u.gridColor,strokeDasharray:`3 3`}),(0,L.jsx)(gM,{dataKey:`x`,type:`number`,domain:a??[`dataMin`,`dataMax`],allowDataOverflow:!!a,allowDuplicatedCategory:!1,tickFormatter:kP,stroke:u.axisColor,tick:{fontSize:11}}),(0,L.jsx)(jM,{yAxisId:`left`,tickFormatter:e=>ce(e,c?.formatter,c?.unit),scale:c?.scale??`linear`,domain:c?.domain,stroke:u.axisColor,tick:{fontSize:11},width:70}),s&&l?(0,L.jsx)(jM,{yAxisId:`right`,orientation:`right`,tickFormatter:e=>ce(e,l.formatter,l.unit),scale:l.scale??`linear`,domain:l.domain,stroke:u.axisColor,tick:{fontSize:11},width:70}):null,(0,L.jsx)(TS,{labelFormatter:e=>AP(Number(e)),formatter:(t,n)=>{let r=String(n),i=e.series.find(e=>e.label===r||e.key===r)?.axis===`right`?l:c;return[ce(Number(t),i?.formatter,i?.unit),r]},contentStyle:jP,labelStyle:MP,itemStyle:NP}),!i&&(0,L.jsx)(ef,{}),e.thresholds?.map((e,t)=>{let n=ce(e.value,c?.formatter,c?.unit),r=e.direction===`above-is-bad`?`↑ bad`:`↓ bad`,i=`${e.label} (${n}, ${r})`,a=t%2==0?`insideTopRight`:`insideBottomRight`;return(0,L.jsx)(jD,{yAxisId:`left`,y:e.value,stroke:e.direction===`above-is-bad`?`var(--color-error)`:`var(--color-success)`,strokeDasharray:`4 2`,label:{value:i,position:a,fontSize:11}},`th-${t}`)}),e.series.map((e,t)=>{let n=e.points.length<=5;return(0,L.jsx)(Jk,{data:e.points,type:`monotone`,dataKey:`y`,name:e.label,yAxisId:e.axis===`right`?`right`:`left`,stroke:e.color??Pi[t%Pi.length],strokeWidth:2,strokeOpacity:e.opacity??1,dot:n?{r:2}:!1,connectNulls:!1},e.key)})]})})})})}function LP({panels:e,minPanelWidth:t=320,panelHeight:n=240,xDomain:r,fillParent:i}){let a=(0,I.useMemo)(()=>{let t=new Set;for(let n of e)for(let e of n.data.series)e.node&&t.add(e.node);return[...t].sort()},[e]),{isActive:o,handleLegendClick:s}=Ri(a),c=(0,I.useMemo)(()=>e.map(e=>({...e,data:{...e.data,series:e.data.series.filter(e=>e.node===void 0||o(e.node)).map(e=>e.node===void 0?e:{...e,color:e.color??Fi(e.node,a)})}})),[e,o,a]);return(0,L.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,L.jsx)(`div`,{className:`flex-1 min-h-0`,style:{display:`grid`,gridTemplateColumns:`repeat(auto-fit, minmax(${t}px, 1fr))`,gap:`1rem`},children:c.map((e,t)=>(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`div`,{id:`sm-panel-${t}-title`,"data-testid":`small-multiple-title`,style:{fontSize:12,fontWeight:600,marginBottom:4},children:e.title}),(0,L.jsx)(IP,{data:e.data,yAxis:e.yAxis,xDomain:r,height:n,fillParent:i,ariaLabel:`${e.title}: chart with ${e.data.series.length} series`,hideLegend:!0})]},e.title))}),a.length>0&&(0,L.jsx)(Ii,{nodeIds:a,isActive:o,onClickNode:s})]})}function RP(e){return[...e].sort((e,t)=>zP(t)-zP(e))}function zP(e){return e.points.reduce((e,t)=>e+(typeof t.y==`number`?t.y:0),0)}function BP(e){let t=e.series.map(e=>e.label);return t.length===0?`Empty stacked area chart`:`Stacked area chart with ${t.length} series: ${t.slice(0,5).join(`, `)}${t.length>5?`…`:``}`}function VP({active:e,payload:t,label:n,formatter:r,unitSuffix:i}){if(!e||!t||t.length===0)return null;let a=t.reduce((e,t)=>e+(typeof t.value==`number`?t.value:0),0),o=r===`count-si`?`count`:r;return(0,L.jsxs)(`div`,{style:jP,children:[(0,L.jsx)(`div`,{style:MP,children:n===void 0?``:AP(Number(n))}),t.map(e=>(0,L.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,gap:12},children:[(0,L.jsx)(`span`,{style:{color:e.color},children:e.name}),(0,L.jsx)(`span`,{children:ce(typeof e.value==`number`?e.value:0,r,i)})]},e.dataKey)),t.length>1?(0,L.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,gap:12,marginTop:4,paddingTop:4,borderTop:`1px solid var(--border)`,fontWeight:600},children:[(0,L.jsx)(`span`,{children:`Total`}),(0,L.jsx)(`span`,{children:ce(a,o,i)})]}):null]})}function HP({data:e,yAxis:t,height:n=240,ariaLabel:r,xDomain:i,fillParent:a,lineOnly:o}){let s=(0,I.useMemo)(()=>RP(e.series),[e.series]),c=Di();if(e.series.length===0)return(0,L.jsx)(`div`,{role:`status`,"aria-live":`polite`,className:`text-(--color-text-secondary) text-sm p-4`,children:`No data in window`});let l=Oi(),u=new Set;for(let t of e.series)for(let e of t.points)u.add(e.x);if(e.ceiling)for(let t of e.ceiling.points)u.add(t.x);let d=e.series.map(e=>{let t=new Map;for(let n of e.points)t.set(n.x,n.y);return t}),f=e.ceiling?new Map(e.ceiling.points.map(e=>[e.x,e.y])):null,p=e.series.map(()=>null),m=null,h=[...u].sort((e,t)=>e-t).map(t=>{let n={x:t};return e.series.forEach((e,r)=>{let i=d[r];i.has(t)&&(p[r]=i.get(t)??null),n[e.key]=p[r]}),f&&e.ceiling&&(f.has(t)&&(m=f.get(t)??null),n.__ceiling__=m),n}),g=t?.formatter,_=t?.unit,v=c===`dark`?.5:.35;return(0,L.jsx)(`div`,{role:`img`,"aria-label":r??BP(e),style:a?{width:`100%`,height:`100%`,minHeight:0,flex:`1 1 auto`,display:`flex`,flexDirection:`column`}:{width:`100%`,height:n},children:(0,L.jsx)(`div`,{"aria-hidden":`true`,style:{width:`100%`,height:`100%`},children:(0,L.jsx)(od,{width:`100%`,height:`100%`,children:(0,L.jsxs)(EP,{data:h,children:[(0,L.jsx)(WO,{stroke:l.gridColor,strokeDasharray:`3 3`}),(0,L.jsx)(gM,{dataKey:`x`,type:`number`,domain:i??[`dataMin`,`dataMax`],allowDataOverflow:!!i,tickFormatter:kP,stroke:l.axisColor,tick:{fontSize:11}}),(0,L.jsx)(jM,{tickFormatter:e=>ce(e,g,_),stroke:l.axisColor,tick:{fontSize:11},width:70}),(0,L.jsx)(TS,{content:(0,L.jsx)(VP,{formatter:g,unitSuffix:_})}),(0,L.jsx)(ef,{}),s.map((e,t)=>(0,L.jsx)(BA,{type:`monotone`,dataKey:e.key,name:e.label,stackId:`1`,stroke:e.color??Pi[t%Pi.length],strokeWidth:o?2:1,fill:o?`none`:e.color??Pi[t%Pi.length],fillOpacity:o?0:v,connectNulls:!1},e.key)),e.ceiling?(0,L.jsx)(Jk,{type:`monotone`,dataKey:`__ceiling__`,name:e.ceiling.label,stroke:l.axisColor,strokeWidth:2,strokeDasharray:`6 3`,dot:!1}):null]})})})})}function UP({values:e,isActive:t,onClick:n,colorFor:r,ariaLabel:i=`Type filter`}){return e.length===0?null:(0,L.jsx)(`div`,{role:`group`,"aria-label":i,className:`flex flex-wrap justify-center gap-x-3 gap-y-1 pt-2 text-[11px]`,children:e.map(e=>{let i=t(e),a=r?r(e):`var(--color-text-secondary)`;return(0,L.jsxs)(`button`,{type:`button`,"aria-pressed":i,"data-testid":`type-filter-chip`,"data-value":e,title:`Click to solo · Ctrl-click to toggle`,onClick:t=>n(e,t.ctrlKey||t.metaKey),className:`inline-flex items-center gap-1.5 cursor-pointer border-none bg-transparent p-0`,style:{color:a,opacity:i?1:.55},children:[(0,L.jsx)(`span`,{className:`inline-block h-[3px] w-3 rounded`,style:{backgroundColor:a}}),(0,L.jsx)(`span`,{children:e})]},e)})})}function WP({spec:e,typeField:t,records:n,timeRange:r,nodes:i,viewMode:a=`aggregate`,fillParent:o}){let[s,c]=(0,I.useState)(a===`per-node`?`node`:`type`),l=(0,I.useMemo)(()=>{let e=new Set;for(let r of n){let n=r[t];typeof n==`string`&&e.add(n)}return[...e].sort()},[n,t]),{isActive:u,handleClick:d}=Li(l),{isActive:f,handleLegendClick:p}=Ri(i),m=l.length>0&&l.every(u),h=i.every(e=>f(e)),g=!(m&&h),_=(0,I.useMemo)(()=>n.filter(e=>{let n=e[t];return!(typeof n==`string`&&!u(n)||typeof e.node==`string`&&!f(e.node))}),[n,t,u,f]),v=(0,I.useMemo)(()=>s!==`node`||e.series.kind!==`groupBy`?e:{...e,series:{...e.series,dimension:`node`}},[e,s]),y=(0,I.useMemo)(()=>Zi(v,_,r,i,{snapToPeriod:!0}),[v,_,r,i]),b=(0,I.useMemo)(()=>({...y,series:y.series.map(e=>({...e,color:e.color??(s===`node`?Fi(e.key,i):Vi(e.key,l))}))}),[y,s,i,l]),x=(0,I.useMemo)(()=>s===`grid`?i.filter(f).map(t=>{let n=Zi(e,_.filter(e=>e.node===t),r,[t],{snapToPeriod:!0});return{title:t,data:{...n,series:n.series.map(e=>({...e,color:e.color??Vi(e.key,l)}))},yAxis:e.yAxis}}):null,[s,i,f,_,e,r,l]),S=i.length>1,C=[r.startTime,r.endTime],w=`left`in e.yAxis?e.yAxis.left:e.yAxis;return(0,L.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,L.jsx)(UP,{values:l,isActive:u,onClick:d,colorFor:e=>Vi(e,l),ariaLabel:t===`type`?`Traffic type`:t===`database`?`Database`:`Protocol`}),S&&(0,L.jsx)(qP,{stackBy:s,onChange:c}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,style:{marginTop:8},children:s===`grid`&&x?(0,L.jsx)(LP,{panels:x,xDomain:C,fillParent:o}):(0,L.jsx)(HP,{data:b,yAxis:w,xDomain:C,fillParent:o,lineOnly:g})}),i.length>0&&(0,L.jsx)(Ii,{nodeIds:i,isActive:f,onClickNode:p})]})}var GP=[{value:`type`,label:`Type`},{value:`node`,label:`Node`},{value:`grid`,label:`Per-node grid`}],KP=GP.map(e=>e.value);function qP({stackBy:e,onChange:t}){let{getRadioProps:n}=zi(KP,e,t);return(0,L.jsxs)(`div`,{role:`radiogroup`,"aria-label":`Stack by`,className:`flex flex-wrap items-center gap-x-3 gap-y-1 pt-2 text-[11px]`,children:[(0,L.jsx)(`span`,{className:`text-muted-foreground`,children:`Stack by:`}),GP.map((t,r)=>{let i=e===t.value;return(0,L.jsx)(`button`,{type:`button`,...n(r),"data-testid":`stack-by-button`,"data-value":t.value,className:`inline-flex items-center cursor-pointer border-none bg-transparent p-0 text-(--color-text-secondary)`,style:{opacity:i?1:.55},children:t.label},t.value)})]})}function JP({id:e,title:t,subtitle:n,sourceMetric:r,innerTitle:i,innerDescription:a}){let o={title:i,description:a,tab:`traffic`,primaryDimension:`node`,subDimension:`type`,series:{kind:`groupBy`,dimension:`type`,field:{field:`count`,label:`messages/sec`,transform:{kind:`rate`}}},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`sum`,crossNode:`sum`},primitive:`stacked-area`,yAxis:{unit:` msg/s`,formatter:`count-si`}};return{id:e,title:t,subtitle:n,tab:`traffic`,sourceMetric:r,recompute:(e,t,n,r)=>{let i=(r??`per-node`)===`per-node`,a=o;return i&&o.series.kind===`groupBy`&&(a={...o,series:{...o.series,dimension:`node`}}),Zi(a,e,t,n,{snapToPeriod:!0})},Renderer:e=>(0,L.jsx)(WP,{spec:o,typeField:`type`,...e}),primitive:`stacked-area`,yAxis:{unit:` msg/s`,formatter:`count-si`}}}var YP=JP({id:`mqtt-traffic-sent`,title:`Messages sent by type`,subtitle:`Outbound message rate. Type chips solo / Ctrl-toggle; viewMode flips type/node stack.`,sourceMetric:`bytes-sent`,innerTitle:`Messages sent by type (inner)`,innerDescription:`Outbound message rate — cluster total across nodes. Internal spec used by mqtt-traffic-sent.recompute; not registered.`}),XP=JP({id:`mqtt-traffic-received`,title:`Messages received by type`,subtitle:`Inbound message rate. Type chips solo / Ctrl-toggle; viewMode flips type/node stack.`,sourceMetric:`bytes-received`,innerTitle:`Messages received by type (inner)`,innerDescription:`Inbound message rate — cluster total across nodes. Internal spec used by mqtt-traffic-received.recompute; not registered.`});function ZP(e){let t=e.indexOf(`.`);return t===-1?e:e.slice(0,t)}var QP=`var(--color-text-secondary)`;function $P({dimensionValues:e,selected:t,onSelect:n,otherKey:r,colorFor:i,ariaLabel:a=`Dimension selector`}){let{getRadioProps:o}=zi(e,t,n);return e.length===0&&!r?null:(0,L.jsxs)(`div`,{role:`radiogroup`,"aria-label":a,"data-testid":`dimension-chip-row`,className:`flex flex-wrap justify-center gap-x-3 gap-y-1 pt-2 text-[11px]`,children:[e.map((e,n)=>{let r=e===t,a=i?i(e):QP;return(0,L.jsxs)(`button`,{type:`button`,...o(n),"data-testid":`dimension-chip`,"data-value":e,title:`Click to select`,className:`inline-flex items-center gap-1.5 cursor-pointer border-none bg-transparent p-0`,style:{color:a,opacity:r?1:.55},children:[(0,L.jsx)(`span`,{className:`inline-block h-[3px] w-3 rounded`,style:{backgroundColor:a}}),(0,L.jsx)(`span`,{children:e})]},e)}),r&&(0,L.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":!1,"aria-disabled":`true`,tabIndex:-1,"data-testid":`dimension-chip`,"data-value":r,title:`Aggregate of smaller buckets; not selectable.`,className:`inline-flex items-center gap-1.5 cursor-not-allowed border-none bg-transparent p-0`,style:{color:QP,opacity:.4},children:[(0,L.jsx)(`span`,{className:`inline-block h-[3px] w-3 rounded`,style:{backgroundColor:QP}}),(0,L.jsx)(`span`,{children:r})]})]})}function eF({records:e,timeRange:t,nodes:n,viewMode:r=`per-node`,yAxis:i,thresholds:a,compute:o,fillParent:s}){let c=t?[t.startTime,t.endTime]:void 0,l=r===`per-node`,u=(0,I.useMemo)(()=>{let t=new Map;for(let n of e){let e=n.path;if(typeof e!=`string`)continue;let r=n.count,i=typeof r==`number`&&Number.isFinite(r)?r:0;t.set(e,(t.get(e)??0)+i)}return[...t.entries()].sort((e,t)=>t[1]-e[1]).map(([e])=>e)},[e]),[d,f]=(0,I.useState)(``),p=u.includes(d)?d:l?u[0]??``:``,m=(0,I.useMemo)(()=>o(e,{perNode:l,selectedPath:p||null}),[e,l,p,o]),{isActive:h,handleLegendClick:g}=Ri(n),_=(0,I.useMemo)(()=>({...m,thresholds:a??m.thresholds,series:m.series.map(e=>l?{...e,label:ZP(e.key),color:Fi(e.key,n)}:e).filter(e=>!l||h(e.key))}),[m,l,n,h,a]);return(0,L.jsxs)(`div`,{className:`flex h-full flex-col`,children:[u.length>0&&(0,L.jsx)($P,{dimensionValues:u,selected:p,onSelect:f,ariaLabel:`Path`}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,style:{marginTop:u.length>0?8:0},children:(0,L.jsx)(IP,{data:_,yAxis:i,xDomain:c,fillParent:s,hideLegend:l})}),l&&n.length>0&&(0,L.jsx)(Ii,{nodeIds:n,isActive:h,onClickNode:g})]})}function tF(e,t,n){let r=new Map;for(let t of e){let e=typeof t.path==`string`?t.path:null;if(!e||typeof t.time!=`number`||!Number.isFinite(t.time))continue;let n=typeof t.count==`number`&&Number.isFinite(t.count)?t.count:0,i=typeof t.period==`number`&&t.period>0?t.period:6e4,a=r.get(e);a||(a=new Map,r.set(e,a));let o=a.get(t.time);o||(o={sumCount:0,period:i},a.set(t.time,o)),o.sumCount+=n}return{series:[...r.entries()].map(([e,t])=>({key:e,label:e,points:[...t.keys()].sort((e,t)=>e-t).map(e=>{let n=t.get(e),r=n.period/1e3;return{x:e,y:r>0?n.sumCount/r:null,count:n.sumCount}})}))}}function nF(e,{perNode:t,selectedPath:n}){if(t&&n){let t=new Map;for(let r of e){if(r.path!==n||typeof r.time!=`number`||!Number.isFinite(r.time))continue;let e=typeof r.node==`string`?r.node:`_no_node`,i=typeof r.count==`number`&&Number.isFinite(r.count)?r.count:0,a=typeof r.period==`number`&&r.period>0?r.period:6e4,o=t.get(e);o||(o=new Map,t.set(e,o));let s=o.get(r.time);s||(s={sumCount:0,period:a},o.set(r.time,s)),s.sumCount+=i}return{series:[...t.entries()].map(([e,t])=>({key:e,label:e,points:[...t.keys()].sort((e,t)=>e-t).map(e=>{let n=t.get(e),r=n.period/1e3;return{x:e,y:r>0?n.sumCount/r:null,count:n.sumCount}})}))}}return tF(n?e.filter(e=>e.path===n):e,{startTime:0,endTime:2**53-1},[])}var rF={id:`request-rate`,title:`Request rate (req/s)`,subtitle:`Per-path req/s. Chip selects path; viewMode flips per-node lines / cluster aggregate.`,tab:`requests`,sourceMetric:`duration`,recompute:tF,Renderer:({records:e,timeRange:t,nodes:n,theme:r,viewMode:i})=>(0,L.jsx)(eF,{records:e,timeRange:t,nodes:n,theme:r,viewMode:i,yAxis:{unit:`/s`,formatter:`count-si`},compute:nF}),primitive:`line`,yAxis:{unit:`/s`,formatter:`count-si`}};function iF(e,t,n){let r=new Map;for(let t of e){let e=typeof t.database==`string`?t.database:null;if(!e)continue;let n=typeof t.id==`number`?t.id:typeof t.time==`number`?t.time:null;if(n===null)continue;let i=typeof t.node==`string`?t.node:`_no_node`,a=typeof t.transactionLog==`number`&&Number.isFinite(t.transactionLog)?t.transactionLog:null;if(a===null)continue;let o=r.get(e);o||(o=new Map,r.set(e,o));let s=o.get(i);s||(s=[],o.set(i,s)),s.push({time:n,logBytes:a})}let i=6e4,a=[];for(let[e,t]of r.entries()){let n=new Map;for(let e of t.values()){e.sort((e,t)=>e.time-t.time);for(let t=1;t<e.length;t++){let r=e[t-1],a=e[t],o=a.time-r.time;if(o<=0)continue;let s=a.logBytes-r.logBytes;if(!Number.isFinite(s)||s<0)continue;let c=s*1e3/o;if(!Number.isFinite(c))continue;let l=o>=i?Math.round(a.time/i)*i:a.time;n.set(l,(n.get(l)??0)+c)}}let r=[...n.keys()].sort((e,t)=>e-t).map(e=>({x:e,y:n.get(e)}));a.push({key:e,label:e,points:r})}return{series:a}}var aF={"mqtt-traffic-sent":YP,"mqtt-traffic-received":XP,"request-rate":rF,"error-rate":Ni,"transaction-log-growth":{id:`transaction-log-growth`,title:`Transaction log growth`,subtitle:"Per-database transaction-log write rate (bytes/sec) — derived from `transactionLog` deltas in the database-size response.",tab:`storage`,sourceMetric:`database-size`,recompute:iF,primitive:`line`,yAxis:{unit:`/s`,formatter:`bytes-si`}}};function oF(e,t){let{isActive:n,handleLegendClick:r}=Ri(t);return{data:(0,I.useMemo)(()=>({...e,series:e.series.map(e=>e.node===void 0?e:{...e,label:ZP(e.node),color:Fi(e.node,t)}).filter(e=>e.node===void 0||n(e.node))}),[e,t,n]),isActive:n,handleLegendClick:r}}var sF=`pathMethod`,cF=` · `,lF={title:`Connection success ratio`,description:`Per-(path, method) connection ratio (count-weighted-mean). MQTT thresholds: connect ≥0.99, disconnect ≥0.2.`,tab:`traffic`,primaryDimension:`path`,subDimension:`method`,series:{kind:`groupBy`,dimension:sF,field:{field:`ratio`,label:`success ratio`,transform:{kind:`ratio`}}},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`count-weighted-mean`,crossNode:`count-weighted-mean`},confidence:{greyBelow:100,suppressBelow:500},primitive:`line`,yAxis:{unit:``,formatter:`percent`},thresholds:[{value:.99,label:`connect`,direction:`below-is-bad`,minCount:1e3,scope:{path:`mqtt`,method:`connect`}},{value:.2,label:`disconnect`,direction:`below-is-bad`,minCount:500,scope:{path:`mqtt`,method:`disconnect`}}]};function uF(e,t){return typeof e!=`string`&&typeof e!=`number`||typeof t!=`string`&&typeof t!=`number`?null:`${e}${cF}${t}`}function dF(e){let t=[],n=new Map;for(let r of e){let{path:e,method:i}=r,a=uF(e,i);if(a===null)continue;n.has(a)||n.set(a,{path:String(e),method:String(i)});let{total:o,count:s}=r,c=o===0&&typeof s==`number`&&s>0;t.push({...r,[sF]:a,ratio:c?null:r.ratio})}return{records:t,dimParts:n}}function fF({records:e,timeRange:t,nodes:n,theme:r,viewMode:i=`per-node`,fillParent:a}){let o=i===`per-node`,{records:s,dimParts:c}=(0,I.useMemo)(()=>dF(e),[e]),l=(0,I.useMemo)(()=>Zi(lF,s,t,n,{perNode:o,snapToPeriod:!0}),[s,t,n,o]),u=(0,I.useMemo)(()=>{let e=new Set;for(let t of l.series)e.add(t.dim??t.key);return[...e]},[l.series]),[d,f]=(0,I.useState)(()=>u[0]??``),p=u.includes(d)?d:u[0]??``,m=c.get(p)??null,{data:h,isActive:g,handleLegendClick:_}=oF((0,I.useMemo)(()=>{function e(e){if(!e.scope)return!0;if(!m)return!1;for(let[t,n]of Object.entries(e.scope))if(m[t]!==String(n))return!1;return!0}return{...l,series:l.series.filter(e=>(e.dim??e.key)===p),thresholds:(l.thresholds??[]).filter(e)}},[l,p,m]),n);return(0,L.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,L.jsx)($P,{dimensionValues:u,selected:p,onSelect:f,ariaLabel:`Path · method`}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,style:{marginTop:8},children:(0,L.jsx)(IP,{data:h,theme:r,yAxis:lF.yAxis,xDomain:[t.startTime,t.endTime],fillParent:a,hideLegend:o})}),o&&n.length>0&&(0,L.jsx)(Ii,{nodeIds:n,isActive:g,onClickNode:_})]})}var pF=[{key:`utilization`,label:`Utilization`,field:{kind:`op`,op:`/`,left:{kind:`ref`,field:`active`},right:{kind:`op`,op:`+`,left:{kind:`ref`,field:`active`},right:{kind:`ref`,field:`idle`}}},yAxis:{unit:``,formatter:`percent`}},{key:`taskQueueLatency`,label:`Queue lag`,field:`taskQueueLatency`,yAxis:{unit:``,formatter:`ms`}},{key:`active`,label:`Active time`,field:`active`,yAxis:{unit:``,formatter:`ms`}},{key:`idle`,label:`Idle time`,field:`idle`,yAxis:{unit:``,formatter:`ms`}}],mF=pF.map(e=>e.key),hF={title:`Main thread utilization`,description:`Per-node main-thread metrics — chip selector picks utilization / queue lag / active time / idle time.`,tab:`health`,primaryDimension:`node`,series:{kind:`field`,fields:[{field:pF[0].field,label:pF[0].label}]},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`mean`,crossNode:`mean`},primitive:`line`,yAxis:pF[0].yAxis,layout:{colSpan:2}};function gF({records:e,timeRange:t,nodes:n,theme:r,viewMode:i=`per-node`,fillParent:a}){let o=i===`per-node`,[s,c]=(0,I.useState)(pF[0].key),l=mF.includes(s)?s:pF[0].key,u=pF.find(e=>e.key===l),{data:d,isActive:f,handleLegendClick:p}=oF((0,I.useMemo)(()=>Zi({...hF,series:{kind:`field`,fields:[{field:u.field,label:u.label}]},yAxis:u.yAxis},e,t,n,{perNode:o,snapToPeriod:!0}),[u,e,t,n,o]),n);return(0,L.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,L.jsx)($P,{dimensionValues:mF.map(e=>pF.find(t=>t.key===e).label),selected:u.label,onSelect:e=>{let t=pF.find(t=>t.label===e);t&&c(t.key)},ariaLabel:`Main thread metric`}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,style:{marginTop:8},children:(0,L.jsx)(IP,{data:d,theme:r,yAxis:u.yAxis,xDomain:[t.startTime,t.endTime],fillParent:a,hideLegend:o})}),o&&n.length>0&&(0,L.jsx)(Ii,{nodeIds:n,isActive:f,onClickNode:p})]})}var _F=[{field:`heapUsed`,label:`heap used`},{field:`heapTotal`,label:`heap total`},{field:`external`,label:`external`},{field:`arrayBuffers`,label:`arrayBuffers`}],vF={title:`Process memory`,description:`Per-node V8 memory — chip selector picks the field. Default heap used.`,tab:`health`,primaryDimension:`node`,series:{kind:`field`,fields:[..._F]},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`last`,crossNode:`mean`},primitive:`line`,yAxis:{unit:` B`,formatter:`bytes-si`}},yF=_F.map(e=>e.label);function bF({records:e,timeRange:t,nodes:n,theme:r,viewMode:i=`per-node`,fillParent:a}){let o=i===`per-node`,[s,c]=(0,I.useState)(_F[0].label),l=yF.includes(s)?s:_F[0].label,u=_F.find(e=>e.label===l),{data:d,isActive:f,handleLegendClick:p}=oF((0,I.useMemo)(()=>Zi({...vF,series:{kind:`field`,fields:[u]}},e,t,n,{perNode:o,snapToPeriod:!0}),[u,e,t,n,o]),n);return(0,L.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,L.jsx)($P,{dimensionValues:yF,selected:l,onSelect:c,ariaLabel:`Memory field`}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,style:{marginTop:8},children:(0,L.jsx)(IP,{data:d,theme:r,yAxis:vF.yAxis,xDomain:[t.startTime,t.endTime],fillParent:a,hideLegend:o})}),o&&n.length>0&&(0,L.jsx)(Ii,{nodeIds:n,isActive:f,onClickNode:p})]})}function xF(e,t,n,r,i,a){if(t<=0)return a;let o=e-n-r*Math.max(0,t-1),s=Math.floor(o/t);return Math.max(i,Math.min(a,s))}var SF=`var(--chart-heatmap-muted-bg, #f3f4f6)`,CF=`var(--chart-heatmap-muted-stroke, #9ca3af)`,wF=`var(--chart-heatmap-grey-stroke, #9ca3af)`,TF=[`#fef3c7`,`#fcd34d`,`#f59e0b`,`#dc2626`,`#7f1d1d`],EF=[`#713f12`,`#b45309`,`#d97706`,`#f59e0b`,`#fef3c7`];function DF(e){let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4}function OF(e){let t=e.replace(`#`,``),n=parseInt(t.slice(0,2),16),r=parseInt(t.slice(2,4),16),i=parseInt(t.slice(4,6),16);return .2126*DF(n)+.7152*DF(r)+.0722*DF(i)}function kF(e){let t=e.replace(`#`,``);return[parseInt(t.slice(0,2),16),parseInt(t.slice(2,4),16),parseInt(t.slice(4,6),16)]}function AF(e,t,n){let r=e=>Math.round(Math.max(0,Math.min(255,e))).toString(16).padStart(2,`0`);return`#${r(e)}${r(t)}${r(n)}`}function jF(e,t){if(t<=0)return e[0];if(t>=1)return e[e.length-1];let n=t*(e.length-1),r=Math.floor(n),i=n-r,[a,o,s]=kF(e[r]),[c,l,u]=kF(e[r+1]);return AF(a+(c-a)*i,o+(l-o)*i,s+(u-s)*i)}function MF(e,t,n){if(!e||e.value===null||e.value===void 0)return`absent`;let r=e.count??0;return r<t?`suppress`:r<n?`grey`:`ok`}function NF(e,t){return e.length>t?e.slice(0,t-1)+`…`:e}function PF(e,t,n,r,i,a,o,s){let c=`${e} → ${t}: `,l=o?` (approx)`:``;if(r===`absent`)return`${c}no data`;if(r===`suppress`)return`${c}insufficient samples (n<${a}), value hidden`;let u=n?.value??0,d=n?.count??0;return r===`grey`?`${c}${u} ${i} ${s} (approx, low-confidence: ${d} samples below threshold)`:`${c}${u} ${i} ${s}${l}, ${d} samples`}function FF({stops:e,vmin:t,vmax:n,width:r,axis:i,approx:a,measureLabel:o}){let s=(0,I.useId)(),c=i?.unit??``,l=e=>ce(e,i?.formatter),u=(t+n)/2,d=Math.max(200,Math.min(r,480));return(0,L.jsxs)(`svg`,{role:`img`,"aria-label":`${a?`${o} (count-weighted-mean, approx)`:o}: ${l(t)}–${l(n)} ${c}. Higher value = worse latency.`,width:d+80,height:40,style:{overflow:`visible`},children:[(0,L.jsx)(`defs`,{children:(0,L.jsx)(`linearGradient`,{id:s,x1:`0%`,x2:`100%`,y1:`0%`,y2:`0%`,children:e.map((t,n)=>(0,L.jsx)(`stop`,{offset:`${n/(e.length-1)*100}%`,stopColor:t},t+n))})}),(0,L.jsx)(`text`,{x:0,y:14,fontSize:10,fill:`currentColor`,"aria-hidden":`true`,children:`low`}),(0,L.jsx)(`rect`,{x:30,y:0,width:d,height:12,fill:`url(#${s})`,"aria-hidden":`true`}),(0,L.jsx)(`text`,{x:30+d+4,y:14,fontSize:10,fill:`currentColor`,"aria-hidden":`true`,children:`high`}),(0,L.jsx)(`text`,{x:30,y:30,fontSize:10,fill:`currentColor`,"aria-hidden":`true`,children:l(t)}),(0,L.jsx)(`text`,{x:30+d/2,y:30,fontSize:10,fill:`currentColor`,textAnchor:`middle`,"aria-hidden":`true`,children:l(u)}),(0,L.jsx)(`text`,{x:30+d,y:30,fontSize:10,fill:`currentColor`,textAnchor:`end`,"aria-hidden":`true`,children:l(n)})]})}var IF=40,LF=80,RF=4,zF=72,BF=200;function VF({data:e,title:t,height:n}){let r=(0,I.useId)(),i=(0,I.useId)(),a=(0,I.useId)(),o=Di(),s=e.confidence?.greyBelow??0,c=e.confidence?.suppressBelow??0,l=o===`dark`?EF:TF,u=e.approx===!0,d=e.axis?.unit??``,f=e.measureLabel??`p95 latency`,p=(0,I.useMemo)(()=>{let t=new Map;for(let n of e.cells)t.set(`${n.row}|${n.col}`,n);return t},[e.cells]),[m,h]=(0,I.useMemo)(()=>{if(e.valueRange)return[e.valueRange.min,e.valueRange.max];let t=1/0,n=-1/0;for(let r of e.cells)r.value!==null&&r.value!==void 0&&Number.isFinite(r.value)&&(r.value<t&&(t=r.value),r.value>n&&(n=r.value));return!Number.isFinite(t)||!Number.isFinite(n)?[0,1]:t===n?[t,t+1]:[t,n]},[e.cells,e.valueRange]),g=e.rows,_=e.cols,v=(0,I.useRef)(null),[y,b]=(0,I.useState)(LF),x=(0,I.useRef)(null);(0,I.useLayoutEffect)(()=>{let e=v.current?.clientWidth??0;b(xF(e,_.length,BF,RF,IF,LF))},[_.length]),(0,I.useEffect)(()=>{let e=v.current;if(!e)return;let t=new ResizeObserver(()=>{x.current!==null&&cancelAnimationFrame(x.current),x.current=requestAnimationFrame(()=>{x.current=null;let t=e.clientWidth;b(xF(t,_.length,BF,RF,IF,LF))})});return t.observe(e),()=>{t.disconnect(),x.current!==null&&cancelAnimationFrame(x.current)}},[_.length]);let S=_.length*y+(_.length-1)*RF,C=g.length*y+(g.length-1)*RF,w=BF+S+8,T=zF+C+8,[E,D]=(0,I.useState)([0,0]),O=Math.max(0,Math.min(E[0],g.length-1)),k=Math.max(0,Math.min(E[1],_.length-1)),A=(0,I.useRef)(new Map),j=(0,I.useCallback)((e,t)=>{let n=A.current.get(`${e}|${t}`);n&&(D([e,t]),n.focus())},[]),M=(0,I.useCallback)((e,t,n)=>{let r=e.key,i=!1,a=t,o=n;r===`ArrowRight`?(i=!0,o=Math.min(_.length-1,n+1)):r===`ArrowLeft`?(i=!0,o=Math.max(0,n-1)):r===`ArrowDown`?(i=!0,a=Math.min(g.length-1,t+1)):r===`ArrowUp`?(i=!0,a=Math.max(0,t-1)):r===`Home`?(i=!0,o=0):r===`End`?(i=!0,o=_.length-1):r===`PageUp`?(i=!0,a=Math.max(0,t-5)):r===`PageDown`&&(i=!0,a=Math.min(g.length-1,t+5)),i&&(e.preventDefault(),e.stopPropagation(),(a!==t||o!==n)&&j(a,o))},[g.length,_.length,j]),N=e=>e.startsWith(`#`)?OF(e)>.5?`#000000`:`#ffffff`:`#000000`;return(0,L.jsxs)(`div`,{style:{position:`relative`},children:[e.skippedRecordsCount>0?(0,L.jsx)(`div`,{role:`status`,"aria-atomic":`true`,style:{marginBottom:8,padding:`4px 8px`,fontSize:12,borderLeft:`3px solid var(--color-warning)`,background:`color-mix(in srgb, var(--color-warning) 12%, transparent)`,color:`currentColor`},children:`${e.skippedRecordsCount} record(s) omitted — source node unrecognized (cluster node list may be outdated).`},e.skippedRecordsCount):null,(0,L.jsx)(`p`,{id:r,style:{position:`absolute`,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,border:0},children:t??`Heatmap`}),(0,L.jsx)(`p`,{id:i,"data-testid":`heatmap-desc`,style:{position:`absolute`,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,border:0},children:`${u?`Cells show count-weighted-mean ${f} (approx).`:`Cells show ${f}.`} Cells with fewer than ${c} samples are blank; ${s}–${c-1} render grey.`}),(0,L.jsx)(`div`,{ref:v,style:{width:`100%`,display:`block`,overflowX:`auto`},children:(0,L.jsxs)(`svg`,{role:`grid`,"aria-labelledby":r,"aria-describedby":i,width:w,height:n??T,viewBox:`0 0 ${w} ${T}`,"data-cell-size":y,style:{overflow:`visible`,display:`block`},children:[(0,L.jsx)(`defs`,{children:(0,L.jsxs)(`pattern`,{id:a,patternUnits:`userSpaceOnUse`,width:8,height:8,patternTransform:`rotate(45)`,children:[(0,L.jsx)(`rect`,{width:8,height:8,fill:SF}),(0,L.jsx)(`line`,{x1:0,y1:0,x2:0,y2:8,stroke:CF,strokeWidth:2})]})}),(0,L.jsxs)(`g`,{role:`row`,children:[(0,L.jsx)(`rect`,{x:0,y:0,width:BF,height:zF,fill:`transparent`,"aria-hidden":`true`}),_.map((e,t)=>{let n=BF+t*(y+RF)+y/2,r=zF-8,i=y<56?8:20;return(0,L.jsx)(`g`,{role:`columnheader`,"aria-label":e,children:(0,L.jsxs)(`text`,{x:n,y:r,fontSize:11,textAnchor:`end`,transform:`rotate(-45, ${n}, ${r})`,fill:`currentColor`,children:[NF(e,i),(0,L.jsx)(`title`,{children:e})]})},e)})]}),g.map((e,t)=>{let n=zF+t*(y+RF);return(0,L.jsxs)(`g`,{role:`row`,children:[(0,L.jsx)(`g`,{role:`rowheader`,"aria-label":e,children:(0,L.jsxs)(`text`,{x:BF-8,y:n+y/2+4,fontSize:12,textAnchor:`end`,fill:`currentColor`,children:[NF(e,24),(0,L.jsx)(`title`,{children:e})]})}),_.map((r,i)=>{let o=p.get(`${e}|${r}`),g=MF(o,s,c),_=BF+i*(y+RF),v=n,b=PF(e,r,o,g,d,c,u,f),x=O===t&&k===i,S=`transparent`,C,w=1,T,E=0;if(g===`absent`)S=`transparent`,C=`3 3`,T=CF,E=1;else if(g===`suppress`)S=`url(#${a})`,C=`3 3`,T=CF,E=1;else{let e=h>m?((o?.value??0)-m)/(h-m):0;S=jF(l,e),g===`grey`&&(w=.55,C=`4 2`,T=wF,E=1)}let j=g===`ok`||g===`grey`?jF(l,h>m?((o?.value??0)-m)/(h-m):0):`#808080`,ee=N(j);return(0,L.jsxs)(`g`,{ref:e=>{e?A.current.set(`${t}|${i}`,e):A.current.delete(`${t}|${i}`)},role:`gridcell`,"aria-label":b,"data-confidence":g,tabIndex:x?0:-1,onKeyDown:e=>M(e,t,i),onFocus:()=>D([t,i]),style:{outline:`none`,cursor:`default`},children:[(0,L.jsx)(`rect`,{x:_,y:v,width:y,height:y,rx:4,ry:4,style:{fill:S},opacity:w,stroke:T,strokeWidth:E,strokeDasharray:C,children:(0,L.jsx)(`title`,{children:b})}),x?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`rect`,{x:_-1,y:v-1,width:y+2,height:y+2,rx:5,ry:5,fill:`none`,stroke:ee,strokeWidth:1,pointerEvents:`none`}),(0,L.jsx)(`rect`,{x:_,y:v,width:y,height:y,rx:4,ry:4,fill:`none`,stroke:`var(--color-accent, #3b82f6)`,strokeWidth:1,pointerEvents:`none`})]}):null]},r)})]},e)})]})}),(0,L.jsx)(`div`,{style:{marginTop:8},children:(0,L.jsx)(FF,{stops:l,vmin:m,vmax:h,width:S,axis:e.axis,approx:u,measureLabel:f})})]})}var HF=new WeakMap;function UF(e){let t=HF.get(e);return t||(t=[...e].sort((e,t)=>t.length-e.length),HF.set(e,t)),t}function WF(e,t){if(typeof e!=`string`||e.length===0)return null;let n=UF(t);for(let t of n){if(!e.startsWith(t+`.`))continue;let n=e.slice(t.length+1),r=n.indexOf(`.`);if(r===-1)return null;let i=n.slice(0,r),a=n.slice(r+1);return i.length===0||a.length===0?null:{source:t,database:i,table:a}}let r=e.split(`.`);if(r.length<3)return null;let i=r[r.length-1],a=r[r.length-2],o=r.slice(0,-2).join(`.`);return!o||!a||!i?null:{source:o,database:a,table:i}}var GF=[{field:`p1`,label:`p1`},{field:`p10`,label:`p10`},{field:`p25`,label:`p25`},{field:`median`,label:`p50`},{field:`p75`,label:`p75`},{field:`p90`,label:`p90`},{field:`p95`,label:`p95`},{field:`p99`,label:`p99`},{field:`p999`,label:`p999`}],KF={greyBelow:40,suppressBelow:100},qF={title:`Replication latency`,description:`Source → destination p95 latency, count-weighted-mean across the window. Approximate.`,tab:`replication`,primaryDimension:`path`,subDimension:`node`,series:{kind:`groupBy`,dimension:`path`,field:{field:`p95`,label:`p95 latency`}},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`count-weighted-mean`,crossNode:`count-weighted-mean`},confidence:KF,primitive:`heatmap`,yAxis:{unit:``,formatter:`ms`}};function JF(e,t,n){return e===1?t:n}function YF(e,t,n){let r=0,i=0,a=[],o=new Set,s=new Set(t);for(let c of e){let e=WF(typeof c.path==`string`?c.path:``,t);if(!e){r++;continue}s.has(e.source)||o.add(e.source);let l=c[n],u=typeof l==`number`?l:NaN,d=typeof c.count==`number`?c.count:0;if(!Number.isFinite(u)){i++;continue}a.push({source:e.source,destination:c.node,value:u,count:d,time:typeof c.time==`number`?c.time:null})}return{parsed:a,unparseablePathCount:r,missingValueCount:i,unrecognizedSources:[...o].sort()}}function XF(e){let{parsed:t,unparseablePathCount:n,missingValueCount:r,unrecognizedSources:i}=e,a=n+r;if(t.length===0)return{rows:[],cols:[],cells:[],axis:{unit:``,formatter:`ms`},confidence:KF,rowAxisLabel:`Source`,colAxisLabel:`Destination`,skippedRecordsCount:a,unparseablePathCount:n,missingValueCount:r,unrecognizedSources:i,approx:!0};let o=new Map,s=new Set,c=new Set;for(let e of t){s.add(e.source),c.add(e.destination);let t=`${e.source}|${e.destination}`,n=o.get(t);n||(n={items:[],totalCount:0},o.set(t,n)),n.items.push({value:e.value,count:e.count}),n.totalCount+=e.count}let l=[...s].sort(),u=[...c].sort(),d=!1,f=[];for(let e of l)for(let t of u){let n=o.get(`${e}|${t}`);n?(n.items.length>1&&(d=!0),f.push({row:e,col:t,value:Hi(`count-weighted-mean`,n.items),count:n.totalCount})):f.push({row:e,col:t,value:null,count:0})}return{rows:l,cols:u,cells:f,axis:{unit:``,formatter:`ms`},confidence:KF,rowAxisLabel:`Source`,colAxisLabel:`Destination`,skippedRecordsCount:a,unparseablePathCount:n,missingValueCount:r,unrecognizedSources:i,approx:d}}function ZF(e){let t=new Map,n=new Map;for(let r of e){if(r.time===null)continue;let e=t.get(r.time);e||(e=[],t.set(r.time,e)),e.push({value:r.value,count:r.count}),n.set(r.time,(n.get(r.time)??0)+r.count)}let r=!1,i=[...t.keys()].sort((e,t)=>e-t),a=[];for(let e of i){let i=t.get(e);i.length>1&&(r=!0),a.push({x:e,y:Hi(`count-weighted-mean`,i),count:n.get(e)??0})}return{points:a,approx:r}}var QF=12;function $F(e,t){let n=t.confidence?.greyBelow??0,r=t.confidence?.suppressBelow??1/0,i=new Map;for(let t of e){let e=`${t.source}|${t.destination}`,n=i.get(e);n||(n=[],i.set(e,n)),n.push(t)}let a=[],o=0;for(let e of t.cells){let t=e.count??0;if(t===0)continue;if(t<n){o+=1;continue}let s=ZF(i.get(`${e.row}|${e.col}`)??[]);if(s.points.length===0)continue;let c=`${e.row}→${e.col}`;t<r?a.push({key:c,label:c,points:s.points,approx:s.approx,opacity:.55}):a.push({key:c,label:c,points:s.points,approx:s.approx})}return{seriesData:{series:a},omittedPairsCount:o}}function eI(e){let{records:t,nodes:n,theme:r,timeRange:i,fillParent:a}=e,[o,s]=(0,I.useState)(`p95`),c=(0,I.useMemo)(()=>YF(t,n,o),[t,n,o]),l=(0,I.useMemo)(()=>XF(c),[c]);if(l.rows.length===0||l.cols.length===0)return(0,L.jsxs)(`div`,{children:[(0,L.jsx)(tI,{data:l,theme:r}),(0,L.jsx)(`div`,{children:`No data in window`})]});let u=l.rows.length*l.cols.length>QF;if(l.rows.length<2||l.cols.length<2||u){let{seriesData:e,omittedPairsCount:t}=$F(c.parsed,l),n=l.confidence?.greyBelow??KF.greyBelow,o=u?`Too many source-destination pairs for a heatmap — showing as lines.`:`Only one source node emitted data in this window. This is typical for clusters with a single write origin — each line below shows latency from that source to one destination.`,s=e.series.length===0&&t>0,d=e.series.length===0&&t===0,f={marginBottom:8,padding:`4px 8px`,fontSize:12,borderLeft:`3px solid var(--color-warning, #f59e0b)`,background:r===`dark`?`#1f2937`:`#fffbeb`,color:`currentColor`};return(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`div`,{style:{fontSize:11,opacity:.7,marginBottom:4},children:`Showing as lines`}),(0,L.jsx)(tI,{data:l,theme:r}),t>0&&!s?(0,L.jsx)(`div`,{role:`status`,"aria-atomic":`true`,style:f,children:`${t} source-destination ${JF(t,`pair`,`pairs`)} hidden — fewer than ${n} samples.`},t):null,(0,L.jsx)(`div`,{style:{marginBottom:8,padding:`4px 8px`,fontSize:12,borderLeft:`3px solid var(--color-info, #3b82f6)`,background:r===`dark`?`#0f172a`:`#eff6ff`,color:`currentColor`},children:o}),s?(0,L.jsx)(`div`,{role:`status`,"aria-atomic":`true`,style:f,children:`No source-destination pairs cleared the confidence threshold (${n}+ samples). All ${t} ${JF(t,`pair`,`pairs`)} had fewer than ${n} samples in this window.`}):d?(0,L.jsx)(`div`,{children:`No data in window`}):(0,L.jsx)(`div`,{style:{marginTop:20},children:(0,L.jsx)(IP,{data:e,theme:r,yAxis:l.axis,height:320,xDomain:[i.startTime,i.endTime],fillParent:a})})]})}return(0,L.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,L.jsx)(nI,{value:o,onChange:s}),(0,L.jsx)(tI,{data:l,theme:r}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,L.jsx)(VF,{data:{...l,skippedRecordsCount:0},theme:r,title:`Replication latency`})})]})}function tI({data:e,theme:t}){let n=e.unparseablePathCount??0,r=e.missingValueCount??0,i=e.unrecognizedSources??[];if(n===0&&r===0&&i.length===0)return null;let a=[];return n>0&&a.push(`${n} ${JF(n,`record`,`records`)} omitted (unparseable replication path).`),r>0&&a.push(`${r} ${JF(r,`record`,`records`)} omitted (no value for the selected percentile).`),i.length>0&&a.push(`Recovered ${i.length} source${i.length===1?``:`s`} not in the cluster snapshot: ${i.join(`, `)}.`),(0,L.jsx)(`div`,{role:`status`,"aria-atomic":`true`,style:{marginBottom:8,padding:`4px 8px`,fontSize:12,borderLeft:`3px solid var(--color-warning, #f59e0b)`,background:t===`dark`?`#1f2937`:`#fffbeb`,color:`currentColor`},children:a.join(` `)},`${n}-${r}-${i.length}`)}function nI({value:e,onChange:t}){let{getRadioProps:n}=zi(GF.map(e=>e.field),e,t);return(0,L.jsx)(`div`,{role:`radiogroup`,"aria-label":`Quantile`,className:`flex flex-wrap gap-1 pb-2`,children:GF.map((t,r)=>{let i=t.field===e;return(0,L.jsx)(`button`,{type:`button`,"data-testid":`quantile-button`,"data-value":t.field,...n(r),className:`rounded px-2 py-0.5 text-[11px] ${i?`bg-(--color-accent)/20 text-(--color-text-primary) font-semibold`:`bg-(--color-bg-tertiary) text-(--color-text-secondary) hover:text-(--color-text-primary)`}`,children:t.label},t.field)})})}var rI={title:`Resource usage`,description:`CPU + I/O + page faults + context switches per node — small-multiples view.`,tab:`health`,primaryDimension:`node`,series:{kind:`field`,fields:[{field:`cpuUtilization`,label:`Process CPU (cores used)`,aggregator:{temporal:`max`,crossNode:`max`},yAxis:{unit:``,formatter:`cores`}},{field:`fsWrite`,label:`Disk write (B/s)`,transform:{kind:`rate`},aggregator:{temporal:`sum`,crossNode:`sum`},yAxis:{unit:`/s`,formatter:`bytes-si`}},{field:`majorPageFault`,label:`Major page faults /s`,transform:{kind:`rate`},aggregator:{temporal:`sum`,crossNode:`max`},yAxis:{unit:`/s`,formatter:`count-si`}},{field:{kind:`op`,op:`+`,left:{kind:`ref`,field:`voluntaryContextSwitches`},right:{kind:`ref`,field:`involuntaryContextSwitches`}},label:`Context switches /s`,transform:{kind:`rate`},aggregator:{temporal:`sum`,crossNode:`max`},yAxis:{unit:`/s`,formatter:`count-si`}}]},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`sum`,crossNode:`sum`},primitive:`small-multiples`,yAxis:{unit:``,formatter:`count`},layout:{colSpan:2}},iI={title:`Storage volume (available)`,description:`Per-node disk available bytes (latest snapshot in window; mean across nodes).`,tab:`storage`,primaryDimension:`node`,series:{kind:`groupBy`,dimension:`node`,field:{field:`available`,label:`available (bytes)`}},timestamp:`id`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`last`,crossNode:`mean`},primitive:`line`,yAxis:{unit:` B`,formatter:`bytes-si`}},aI={title:`TLS session reuse ratio`,description:`Fraction of TLS handshakes resumed via session ticket — higher is better.`,tab:`traffic`,primaryDimension:`node`,series:{kind:`groupBy`,dimension:`node`,field:{field:`ratio`,label:`reuse ratio`,transform:{kind:`ratio`}}},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`count-weighted-mean`,crossNode:`count-weighted-mean`},confidence:{greyBelow:20,suppressBelow:50},primitive:`line`,yAxis:{unit:``,formatter:`percent`},thresholds:[{value:.5,label:`50% reuse target`,direction:`below-is-bad`,minCount:50}]},oI={title:`Cluster utilization`,description:`Active / (active + idle) per node — count-weighted-mean across time.`,tab:`health`,primaryDimension:`node`,series:{kind:`groupBy`,dimension:`node`,field:{field:`utilization`,label:`utilization`,transform:{kind:`ratio`}}},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`mean`,crossNode:`max`},confidence:{greyBelow:40,suppressBelow:100},primitive:`line`,yAxis:{unit:``,formatter:`percent`}},sI=`var(--color-text-secondary)`;function cI({dimensionValues:e,selected:t,onSelect:n,otherKey:r,colorFor:i,ariaLabel:a=`Dimension selector`}){let[o,s]=(0,I.useState)(!1),[c,l]=(0,I.useState)(``),[u,d]=(0,I.useState)(0),f=(0,I.useId)(),p=(0,I.useId)(),m=(0,I.useRef)(null),h=(0,I.useRef)(null),g=(0,I.useRef)(null),_=e.filter(e=>e.toLowerCase().includes(c.toLowerCase()));(0,I.useEffect)(()=>{o?h.current?.focus():l(``)},[o]),(0,I.useEffect)(()=>{if(!o)return;let e=e=>{let t=e.target;t&&(g.current?.contains(t)||m.current?.contains(t)||s(!1))},t=e=>{e.key===`Escape`&&(s(!1),m.current?.focus())};return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t)}},[o]),(0,I.useEffect)(()=>{d(0)},[c]);function v(e){n(e),s(!1),m.current?.focus()}function y(e){if(e.key===`Escape`){e.preventDefault(),s(!1),m.current?.focus();return}if(e.key===`ArrowDown`){e.preventDefault(),d(e=>Math.min(e+1,Math.max(0,_.length-1)));return}if(e.key===`ArrowUp`){e.preventDefault(),d(e=>Math.max(0,e-1));return}e.key===`Enter`&&_[u]!==void 0&&(e.preventDefault(),v(_[u]))}let b=i?i(t):sI;return(0,L.jsxs)(`div`,{className:`relative pt-3`,children:[(0,L.jsxs)(`button`,{ref:m,type:`button`,"aria-label":t?`${a}: ${t}`:a,"aria-expanded":o,"aria-controls":f,"aria-haspopup":`listbox`,onClick:()=>s(e=>!e),className:`inline-flex min-h-8 items-center gap-1.5 rounded-full border border-(--color-border) px-2.5 py-1 text-xs text-(--color-text-primary)`,children:[(0,L.jsx)(`span`,{className:`inline-block h-2 w-2 rounded-full`,style:{backgroundColor:b}}),t||`— select —`,(0,L.jsx)(`span`,{"aria-hidden":!0,children:`▾`})]}),o&&(0,L.jsxs)(`div`,{ref:g,className:`absolute z-10 mt-1 w-72 rounded-md border border-(--color-border) bg-(--color-surface) p-2 shadow-lg`,children:[(0,L.jsx)(`input`,{ref:h,role:`combobox`,type:`text`,"aria-label":`Filter ${a}`,"aria-expanded":o,"aria-controls":f,"aria-autocomplete":`list`,"aria-activedescendant":_[u]===void 0?``:`${p}-${u}`,value:c,onChange:e=>l(e.target.value),onKeyDown:y,placeholder:`Filter…`,className:`mb-2 w-full rounded border border-(--color-border) px-2 py-1 text-xs`}),_.length===0&&(0,L.jsx)(`div`,{role:`status`,"aria-live":`polite`,className:`px-2 py-1 text-xs text-(--color-text-secondary)`,children:`No matches`}),(0,L.jsx)(`ul`,{id:f,role:`listbox`,className:`max-h-56 overflow-auto`,children:_.map((e,n)=>{let r=e===t,a=n===u,o=i?i(e):sI;return(0,L.jsxs)(`li`,{id:`${p}-${n}`,role:`option`,"aria-selected":r,"data-active":a?`true`:void 0,onMouseDown:t=>{t.preventDefault(),v(e)},className:`flex cursor-pointer items-center gap-2 rounded px-2 py-1 text-xs ${a?`bg-(--color-surface-alt)`:``} ${r?`font-semibold`:``}`,children:[(0,L.jsx)(`span`,{className:`inline-block h-2 w-2 rounded-full`,style:{backgroundColor:o}}),(0,L.jsx)(`span`,{className:`truncate`,children:e})]},e)})}),r&&(0,L.jsxs)(`div`,{className:`mt-2 border-t border-(--color-border) pt-2 text-xs text-(--color-text-secondary)/60`,title:`Aggregate of smaller buckets; not selectable.`,children:[r,` (aggregate; not selectable)`]})]})]})}var lI=`Other`,uI=12;function dI({spec:e,records:t,timeRange:n,nodes:r,ariaLabel:i=`Dimension`,viewMode:a=`per-node`,fillParent:o}){let s=a===`per-node`,c=e.quantileSelector?.fields,[l,u]=(0,I.useState)(e.quantileSelector?.default??``),d=c?.some(e=>e.field===l)?l:e.quantileSelector?.default??``,{getRadioProps:f}=zi((0,I.useMemo)(()=>c?.map(e=>e.field)??[],[c]),d,u),p=(0,I.useMemo)(()=>{if(!c||d===``||e.series.kind!==`groupBy`)return e;let t=c.find(e=>e.field===d);return t?{...e,series:{...e.series,field:{...e.series.field,field:t.field,label:t.label}}}:e},[e,c,d]),m=(0,I.useMemo)(()=>Zi(p,t,n,r,{perNode:s,snapToPeriod:!0}),[p,t,n,r,s]),h=(0,I.useMemo)(()=>{let e=new Set;for(let t of m.series){let n=t.dim??t.key;n!==lI&&e.add(n)}return[...e]},[m.series]),g=m.series.some(e=>(e.dim??e.key)===lI),[_,v]=(0,I.useState)(()=>h[0]??``),y=h.includes(_)?_:h[0]??``,{data:b,isActive:x,handleLegendClick:S}=oF((0,I.useMemo)(()=>({...m,series:m.series.filter(e=>(e.dim??e.key)===y)}),[m,y]),r);return(0,L.jsxs)(`div`,{className:`flex h-full flex-col`,children:[e.quantileSelector&&c&&c.length>1&&(0,L.jsx)(`div`,{role:`radiogroup`,"aria-label":`Quantile`,className:`flex flex-wrap justify-center gap-x-3 gap-y-1 pt-2 text-[11px]`,children:c.map((e,t)=>{let n=e.field===d;return(0,L.jsx)(`button`,{type:`button`,...f(t),"data-testid":`quantile-button`,"data-value":e.field,className:`inline-flex items-center cursor-pointer border-none bg-transparent p-0 text-(--color-text-secondary)`,style:{opacity:n?1:.3},children:e.label},e.field)})}),h.length>uI?(0,L.jsx)(cI,{dimensionValues:h,selected:y,onSelect:v,otherKey:g?lI:void 0,ariaLabel:i}):(0,L.jsx)($P,{dimensionValues:h,selected:y,onSelect:v,otherKey:g?lI:void 0,ariaLabel:i}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,style:{marginTop:8},children:(0,L.jsx)(IP,{data:b,yAxis:e.yAxis,xDomain:[n.startTime,n.endTime],fillParent:o,hideLegend:s})}),s&&r.length>0&&(0,L.jsx)(Ii,{nodeIds:r,isActive:x,onClickNode:S})]})}function fI({ariaLabel:e,...t}){return{spec:t,Renderer:n=>(0,L.jsx)(dI,{spec:t,...n,ariaLabel:e})}}function pI({typeField:e,defaultViewMode:t,...n}){return{spec:n,Renderer:r=>(0,L.jsx)(WP,{spec:n,typeField:e,...r,viewMode:r.viewMode??t})}}function mI({label:e,...t}){return fI({...t,primaryDimension:`path`,subDimension:`method`,series:{kind:`groupBy`,dimension:`path`,field:{field:`p95`,label:e},topN:10,otherBucket:!0},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`count-weighted-mean`,crossNode:`count-weighted-mean`},confidence:{greyBelow:40,suppressBelow:100},primitive:`line`,yAxis:{unit:``,formatter:`ms`},quantileSelector:{fields:GF,default:`p95`}})}function hI(e){return pI({...e,typeField:`type`,tab:`traffic`,primaryDimension:`node`,subDimension:`type`,series:{kind:`groupBy`,dimension:`type`,field:{field:{kind:`op`,op:`*`,left:{kind:`ref`,field:`count`},right:{kind:`ref`,field:`mean`}},label:`bytes/sec`,transform:{kind:`rate`}}},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`sum`,crossNode:`sum`},primitive:`stacked-area`,yAxis:{unit:`/s`,formatter:`bytes-si`}})}var gI={"db-read":mI({ariaLabel:`Table`,title:`DB read p95`,description:`Per-table DB read p95 (count-weighted-mean) — top 10 tables + Other.`,tab:`db-activity`,label:`p95 read (ms)`}),"db-write":mI({ariaLabel:`Table`,title:`DB write p95`,description:`Per-table DB write p95 (count-weighted-mean) — top 10 tables + Other.`,tab:`db-activity`,label:`p95 write (ms)`}),"db-message":mI({ariaLabel:`Table`,title:`DB message p95`,description:`Per-table DB message p95 (count-weighted-mean) — top 10 tables + Other.`,tab:`db-activity`,label:`p95 message (ms)`}),duration:mI({ariaLabel:`Path`,title:`Request duration (p95)`,description:`Per-path request duration p95 (count-weighted-mean) — top 10 paths + Other bucket.`,tab:`requests`,label:`p95 duration (ms)`}),transfer:mI({ariaLabel:`Path`,title:`Transfer duration (p95)`,description:`Per-path transfer p95 (count-weighted-mean) — top 10 paths + Other.`,tab:`requests`,label:`p95 transfer (ms)`}),"cache-resolution":mI({ariaLabel:`Path`,title:`Cache miss resolution (p95)`,description:`Per-path time-to-resolve a cache miss (count-weighted-mean) — top 10 paths + Other.`,tab:`requests`,label:`p95 resolution (ms)`}),"cache-hit":fI({ariaLabel:`Path`,title:`Cache hit rate`,description:`Per-path cache-hit ratio (count-weighted-mean) — top 10 paths + Other.`,tab:`requests`,primaryDimension:`path`,series:{kind:`groupBy`,dimension:`path`,field:{field:`ratio`,label:`hit ratio`},topN:10,otherBucket:!0},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`count-weighted-mean`,crossNode:`count-weighted-mean`},confidence:{greyBelow:40,suppressBelow:100},primitive:`line`,yAxis:{unit:``,formatter:`percent`,domain:[0,1]}}),"cpu-usage":fI({ariaLabel:`Scope`,title:`CPU — by scope (harper vs user)`,description:`Per-path CPU utilization (count-weighted-mean) — chip selector picks scope; quantile selector picks percentile.`,tab:`health`,primaryDimension:`path`,series:{kind:`groupBy`,dimension:`path`,field:{field:`p95`,label:`CPU %`}},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`count-weighted-mean`,crossNode:`count-weighted-mean`},confidence:{greyBelow:40,suppressBelow:100},primitive:`line`,yAxis:{unit:``,formatter:`percent`},quantileSelector:{fields:GF,default:`p95`}}),success:fI({ariaLabel:`Path`,title:`Request success rate`,description:`Per-path success ratio (count-weighted-mean) — alert when ≥0.001 errors and Σcount ≥1000.`,tab:`requests`,primaryDimension:`path`,subDimension:`method`,series:{kind:`groupBy`,dimension:`path`,field:{field:{kind:`op`,op:`/`,left:{kind:`ref`,field:`total`},right:{kind:`ref`,field:`count`}},label:`success ratio`},topN:10,otherBucket:!0},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`count-weighted-mean`,crossNode:`count-weighted-mean`},confidence:{greyBelow:40,suppressBelow:100},primitive:`line`,yAxis:{unit:``,formatter:`percent`},thresholds:[{value:.999,label:`99.9% SLO`,direction:`below-is-bad`,minCount:1e3}]}),response_200:fI({ariaLabel:`Path`,title:`HTTP 200 ratio`,description:`Per-path 2xx ratio (mean across nodes; count-weighted across time). Threshold 99.9%, min count 1000.`,tab:`requests`,primaryDimension:`path`,subDimension:`method`,series:{kind:`groupBy`,dimension:`path`,field:{field:{kind:`op`,op:`/`,left:{kind:`ref`,field:`total`},right:{kind:`ref`,field:`count`}},label:`200 ratio`},topN:10,otherBucket:!0},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`mean`,crossNode:`count-weighted-mean`},confidence:{greyBelow:40,suppressBelow:100},primitive:`line`,yAxis:{unit:``,formatter:`percent`},thresholds:[{value:.999,label:`99.9% SLO`,direction:`below-is-bad`,minCount:1e3}]}),"bytes-sent":hI({title:`Bytes sent by type`,description:`Outbound byte rate (count × mean) — cluster total. Type chips solo / Ctrl-toggle.`}),"bytes-received":hI({title:`Bytes received by type`,description:`Inbound byte rate (count × mean) — cluster total. Type chips solo / Ctrl-toggle.`}),connections:pI({typeField:`type`,title:`Connections`,description:`Active sessions by type — chips solo / Ctrl-toggle. viewMode flips type/node stack.`,tab:`traffic`,primaryDimension:`node`,subDimension:`type`,series:{kind:`groupBy`,dimension:`type`,field:{field:`connections`,label:`connections`,aggregator:{temporal:`max`,crossNode:`sum`}}},timestamp:`time`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`max`,crossNode:`sum`},primitive:`stacked-area`,yAxis:{unit:``,formatter:`count-si`}}),"database-size":pI({typeField:`database`,defaultViewMode:`aggregate`,title:`Database size`,description:`Per-database size in bytes — chips solo / Ctrl-toggle databases; node legend filters by node.`,tab:`storage`,primaryDimension:`database`,series:{kind:`groupBy`,dimension:`database`,field:{field:`size`,label:`size (bytes)`}},timestamp:`id`,bucket:{source:`period-field`,fallbackMs:6e4},aggregator:{temporal:`last`,crossNode:`sum`},primitive:`stacked-area`,yAxis:{unit:` B`,formatter:`bytes-si`}})},_I={"replication-latency":{spec:qF,Renderer:eI},"bytes-sent":gI[`bytes-sent`],"bytes-received":gI[`bytes-received`],"resource-usage":{spec:rI},connections:gI.connections,duration:gI.duration,success:gI.success,transfer:gI.transfer,"tls-reused":{spec:aI},connection:{spec:lF,Renderer:fF},"cpu-usage":gI[`cpu-usage`],"db-read":gI[`db-read`],"db-write":gI[`db-write`],"db-message":gI[`db-message`],response_200:gI.response_200,utilization:{spec:oI},"database-size":gI[`database-size`],"storage-volume":{spec:iI},memory:{spec:vF,Renderer:bF},"main-thread-utilization":{spec:hF,Renderer:gF},"cache-hit":gI[`cache-hit`],"cache-resolution":gI[`cache-resolution`]},vI={"request-rate":[`count`,`period`],"error-rate":[`count`,`total`]},yI=new Map;function bI(e){let t=yI.get(e);return t||(t=xI(e),yI.set(e,t)),t}function xI(e){let t=vI[e];if(t)return t;if(aF[e])return[];let n=_I[e];return n?.spec?SI(n.spec):[]}function SI(e){let t=new Set,n=e.series,r=!1;if(n.kind===`field`)for(let e of n.fields)wI(e,t),CI(e.transform)&&(r=!0);else wI(n.field,t),CI(n.field.transform)&&(r=!0),n.dimension&&n.dimension!==`node`&&t.add(n.dimension);return r&&t.add(`period`),[...t]}function CI(e){if(!e)return!1;switch(e.kind){case`rate`:return!0;case`compose`:return e.steps.some(CI);default:return!1}}function wI(e,t){TI(e.field,t)}function TI(e,t){if(typeof e==`string`){t.add(e);return}switch(e.kind){case`ref`:t.add(e.field);return;case`const`:return;case`op`:TI(e.left,t),TI(e.right,t);return}}var EI=new Set([`time`,`node`,`id`,`period`,`metric`,`count`,`threadId`,`path`,`method`,`type`,`database`,`table`,`source`]),DI=8;function OI(e){let t=new Map;for(let n of e)for(let e of Object.keys(n))EI.has(e)||typeof n[e]==`number`&&Number.isFinite(n[e])&&t.set(e,(t.get(e)??0)+1);let n=Math.max(1,Math.floor(e.length/2));return[...t.entries()].filter(([,e])=>e>=n).map(([e])=>e)}function kI(e){let t=OI(e),n=t.slice(0,DI);return{panels:n.map(t=>({title:t,data:{series:[{key:t,label:t,points:e.filter(e=>typeof e[t]==`number`&&typeof e.time==`number`).map(e=>({x:e.time,y:e[t]}))}]}})),overflowCount:t.length-n.length}}function AI({metric:e,records:t,hint:n}){let{panels:r,overflowCount:i}=kI(t),a=e.replace(/_/g,`-`);return(0,L.jsxs)(`div`,{children:[n&&(0,L.jsx)(`div`,{role:`status`,style:{fontSize:12,padding:`4px 8px`,marginBottom:8,background:`color-mix(in srgb, var(--color-text-secondary) 10%, transparent)`,color:`var(--color-text-secondary)`,border:`1px solid color-mix(in srgb, var(--color-text-secondary) 30%, transparent)`,borderRadius:4},children:n}),null,(0,L.jsx)(LP,{panels:r}),i>0&&(0,L.jsx)(`div`,{style:{fontSize:11,marginTop:4,opacity:.7},children:`… and ${i} more fields not shown. Add a spec at src/features/instance/status/analytics/pipeline/${a}.tsx to customize.`})]})}function jI(e){return e.node??e.key}function MI({data:e,yAxis:t,xDomain:n,fillParent:r}){let i=(0,I.useMemo)(()=>{let t=new Set;for(let n of e.series){let e=jI(n);e&&t.add(e)}return[...t].sort()},[e]),{isActive:a,handleLegendClick:o}=Ri(i);return(0,L.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,L.jsx)(IP,{data:(0,I.useMemo)(()=>({...e,series:e.series.filter(e=>a(jI(e))).map(e=>({...e,color:e.color??Fi(jI(e),i)}))}),[e,a,i]),yAxis:t,xDomain:n,fillParent:r,hideLegend:!0})}),i.length>0&&(0,L.jsx)(Ii,{nodeIds:i,isActive:a,onClickNode:o})]})}function NI(e,t,n,r,i){switch(e){case`line`:return(0,L.jsx)(MI,{data:t,yAxis:n,xDomain:r,fillParent:i});case`stacked-area`:return(0,L.jsx)(HP,{data:t,yAxis:n,xDomain:r,fillParent:i});case`small-multiples`:throw Error(`small-multiples is dispatched at the spec branch, not via renderPrimitive`);case`heatmap`:throw Error(`heatmap dispatch is via custom Renderer (replication-latency)`);default:throw Error(`Unknown primitive: ${e}`)}}function PI(e,t){return e.primitive===`stacked-area`&&t&&e.series.kind===`groupBy`&&e.series.dimension!==`node`}function FI(e,t){return e.primitive===`line`&&!t&&e.series.kind===`groupBy`&&e.series.dimension===`node`}function II(e){return e.primitive===`line`&&e.series.kind===`groupBy`&&e.series.dimension!==`node`}var LI=class extends I.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(e){console.error(`[MetricRenderer] render failed; falling back:`,e)}render(){return this.state.failed?this.props.fallback:this.props.children}};function RI({metric:e,records:t,window:n,nodes:r,viewMode:i,fillParent:a}){let o=Di(),s=(0,L.jsx)(AI,{metric:e,records:t,window:n,nodes:r,hint:`Render failed — showing fallback.`}),c=[n.startTime,n.endTime],l,u=aF[e];if(u)if(u.Renderer)l=(0,L.jsx)(u.Renderer,{records:t,timeRange:n,nodes:r,theme:o,viewMode:i,fillParent:a});else{let e=u.recompute(t,n,r,i);l=NI(u.primitive,e,u.yAxis,c,a)}else{let s=_I[e];if(s?.Renderer)l=(0,L.jsx)(s.Renderer,{records:t,timeRange:n,nodes:r,theme:o,viewMode:i,fillParent:a});else if(s?.spec){let e=(i??`per-node`)===`per-node`;if(s.spec.primitive===`small-multiples`){let i=s.spec,o=i.series;if(o.kind!==`field`)throw Error(`small-multiples requires kind='field' series source`);l=(0,L.jsx)(LP,{panels:o.fields.map(a=>{let o={...i,series:{kind:`field`,fields:[a]},aggregator:{temporal:a.aggregator?.temporal??i.aggregator.temporal,crossNode:a.aggregator?.crossNode??i.aggregator.crossNode}};return{title:a.label,data:Zi(o,t,n,r,{perNode:e,snapToPeriod:!0}),yAxis:a.yAxis??i.yAxis}}),xDomain:c,fillParent:a})}else if(PI(s.spec,e)&&s.spec.series.kind===`groupBy`)l=NI(`stacked-area`,Zi({...s.spec,series:{...s.spec.series,dimension:`node`}},t,n,r,{snapToPeriod:!0}),s.spec.yAxis,c,a);else if(FI(s.spec,e)&&s.spec.series.kind===`groupBy`){let e=s.spec.series,i=Zi({...s.spec,series:{kind:`field`,fields:[{...e.field,label:`cluster`}]}},t,n,r,{snapToPeriod:!0});l=NI(s.spec.primitive,i,s.spec.yAxis,c,a)}else if(II(s.spec))l=NI(`line`,Zi(s.spec,t,n,r,{perNode:!1,snapToPeriod:!0}),s.spec.yAxis,c,a);else{let i=Zi(s.spec,t,n,r,{perNode:e,snapToPeriod:!0});l=NI(s.spec.primitive,i,s.spec.yAxis,c,a)}}else l=(0,L.jsx)(AI,{metric:e,records:t,window:n,nodes:r})}return(0,L.jsx)(LI,{fallback:s,children:l},e)}var zI=class extends I.Component{state={failed:!1};static getDerivedStateFromError(e){return{failed:!0,message:e instanceof Error?e.message:String(e)}}static getDerivedStateFromProps(e,t){return t.lastResetKey===e.resetKey?null:{failed:!1,message:void 0,lastResetKey:e.resetKey}}componentDidCatch(e){console.error(`[panel:${this.props.metric}] render failed`,e)}render(){return this.state.failed?(0,L.jsxs)(`div`,{className:`rounded-lg border border-destructive/40 bg-destructive/10 p-4 text-sm text-destructive`,children:[(0,L.jsx)(`div`,{className:`font-medium mb-1`,children:`Panel "${this.props.metric}" is unavailable`}),(0,L.jsx)(`div`,{className:`text-xs opacity-80`,children:this.state.message})]}):this.props.children}};function BI(e,t){if(e.match(/^[a-z]+:\/\//i))return e;if(e.match(/^\/\//))return window.location.protocol+e;if(e.match(/^[a-z]+:/i))return e;let n=document.implementation.createHTMLDocument(),r=n.createElement(`base`),i=n.createElement(`a`);return n.head.appendChild(r),n.body.appendChild(i),t&&(r.href=t),i.href=e,i.href}var VI=(()=>{let e=0,t=()=>`0000${(Math.random()*36**4<<0).toString(36)}`.slice(-4);return()=>(e+=1,`u${t()}${e}`)})();function HI(e){let t=[];for(let n=0,r=e.length;n<r;n++)t.push(e[n]);return t}var UI=null;function WI(e={}){return UI||(e.includeStyleProperties?(UI=e.includeStyleProperties,UI):(UI=HI(window.getComputedStyle(document.documentElement)),UI))}function GI(e,t){let n=(e.ownerDocument.defaultView||window).getComputedStyle(e).getPropertyValue(t);return n?parseFloat(n.replace(`px`,``)):0}function KI(e){let t=GI(e,`border-left-width`),n=GI(e,`border-right-width`);return e.clientWidth+t+n}function qI(e){let t=GI(e,`border-top-width`),n=GI(e,`border-bottom-width`);return e.clientHeight+t+n}function JI(e,t={}){return{width:t.width||KI(e),height:t.height||qI(e)}}function YI(){let e,t;try{t=process}catch{}let n=t&&t.env?t.env.devicePixelRatio:null;return n&&(e=parseInt(n,10),Number.isNaN(e)&&(e=1)),e||window.devicePixelRatio||1}var XI=16384;function ZI(e){(e.width>XI||e.height>XI)&&(e.width>XI&&e.height>XI?e.width>e.height?(e.height*=XI/e.width,e.width=XI):(e.width*=XI/e.height,e.height=XI):e.width>XI?(e.height*=XI/e.width,e.width=XI):(e.width*=XI/e.height,e.height=XI))}function QI(e,t={}){return e.toBlob?new Promise(n=>{e.toBlob(n,t.type?t.type:`image/png`,t.quality?t.quality:1)}):new Promise(n=>{let r=window.atob(e.toDataURL(t.type?t.type:void 0,t.quality?t.quality:void 0).split(`,`)[1]),i=r.length,a=new Uint8Array(i);for(let e=0;e<i;e+=1)a[e]=r.charCodeAt(e);n(new Blob([a],{type:t.type?t.type:`image/png`}))})}function $I(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>{r.decode().then(()=>{requestAnimationFrame(()=>t(r))})},r.onerror=n,r.crossOrigin=`anonymous`,r.decoding=`async`,r.src=e})}async function eL(e){return Promise.resolve().then(()=>new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then(e=>`data:image/svg+xml;charset=utf-8,${e}`)}async function tL(e,t,n){let r=`http://www.w3.org/2000/svg`,i=document.createElementNS(r,`svg`),a=document.createElementNS(r,`foreignObject`);return i.setAttribute(`width`,`${t}`),i.setAttribute(`height`,`${n}`),i.setAttribute(`viewBox`,`0 0 ${t} ${n}`),a.setAttribute(`width`,`100%`),a.setAttribute(`height`,`100%`),a.setAttribute(`x`,`0`),a.setAttribute(`y`,`0`),a.setAttribute(`externalResourcesRequired`,`true`),i.appendChild(a),a.appendChild(e),eL(i)}var nL=(e,t)=>{if(e instanceof t)return!0;let n=Object.getPrototypeOf(e);return n===null?!1:n.constructor.name===t.name||nL(n,t)};function rL(e){let t=e.getPropertyValue(`content`);return`${e.cssText} content: '${t.replace(/'|"/g,``)}';`}function iL(e,t){return WI(t).map(t=>`${t}: ${e.getPropertyValue(t)}${e.getPropertyPriority(t)?` !important`:``};`).join(` `)}function aL(e,t,n,r){let i=`.${e}:${t}`,a=n.cssText?rL(n):iL(n,r);return document.createTextNode(`${i}{${a}}`)}function oL(e,t,n,r){let i=window.getComputedStyle(e,n),a=i.getPropertyValue(`content`);if(a===``||a===`none`)return;let o=VI();try{t.className=`${t.className} ${o}`}catch{return}let s=document.createElement(`style`);s.appendChild(aL(o,n,i,r)),t.appendChild(s)}function sL(e,t,n){oL(e,t,`:before`,n),oL(e,t,`:after`,n)}var cL=`application/font-woff`,lL=`image/jpeg`,uL={woff:cL,woff2:cL,ttf:`application/font-truetype`,eot:`application/vnd.ms-fontobject`,png:`image/png`,jpg:lL,jpeg:lL,gif:`image/gif`,tiff:`image/tiff`,svg:`image/svg+xml`,webp:`image/webp`};function dL(e){let t=/\.([^./]*?)$/g.exec(e);return t?t[1]:``}function fL(e){return uL[dL(e).toLowerCase()]||``}function pL(e){return e.split(/,/)[1]}function mL(e){return e.search(/^(data:)/)!==-1}function hL(e,t){return`data:${t};base64,${e}`}async function gL(e,t,n){let r=await fetch(e,t);if(r.status===404)throw Error(`Resource "${r.url}" not found`);let i=await r.blob();return new Promise((e,t)=>{let a=new FileReader;a.onerror=t,a.onloadend=()=>{try{e(n({res:r,result:a.result}))}catch(e){t(e)}},a.readAsDataURL(i)})}var _L={};function vL(e,t,n){let r=e.replace(/\?.*/,``);return n&&(r=e),/ttf|otf|eot|woff2?/i.test(r)&&(r=r.replace(/.*\//,``)),t?`[${t}]${r}`:r}async function yL(e,t,n){let r=vL(e,t,n.includeQueryParams);if(_L[r]!=null)return _L[r];n.cacheBust&&(e+=(/\?/.test(e)?`&`:`?`)+new Date().getTime());let i;try{i=hL(await gL(e,n.fetchRequestInit,({res:e,result:n})=>(t||=e.headers.get(`Content-Type`)||``,pL(n))),t)}catch(t){i=n.imagePlaceholder||``;let r=`Failed to fetch resource: ${e}`;t&&(r=typeof t==`string`?t:t.message),r&&console.warn(r)}return _L[r]=i,i}async function bL(e){let t=e.toDataURL();return t===`data:,`?e.cloneNode(!1):$I(t)}async function xL(e,t){if(e.currentSrc){let t=document.createElement(`canvas`),n=t.getContext(`2d`);return t.width=e.clientWidth,t.height=e.clientHeight,n?.drawImage(e,0,0,t.width,t.height),$I(t.toDataURL())}let n=e.poster;return $I(await yL(n,fL(n),t))}async function SL(e,t){try{if(e?.contentDocument?.body)return await ML(e.contentDocument.body,t,!0)}catch{}return e.cloneNode(!1)}async function CL(e,t){return nL(e,HTMLCanvasElement)?bL(e):nL(e,HTMLVideoElement)?xL(e,t):nL(e,HTMLIFrameElement)?SL(e,t):e.cloneNode(TL(e))}var wL=e=>e.tagName!=null&&e.tagName.toUpperCase()===`SLOT`,TL=e=>e.tagName!=null&&e.tagName.toUpperCase()===`SVG`;async function EL(e,t,n){if(TL(t))return t;let r=[];return r=wL(e)&&e.assignedNodes?HI(e.assignedNodes()):nL(e,HTMLIFrameElement)&&e.contentDocument?.body?HI(e.contentDocument.body.childNodes):HI((e.shadowRoot??e).childNodes),r.length===0||nL(e,HTMLVideoElement)||await r.reduce((e,r)=>e.then(()=>ML(r,n)).then(e=>{e&&t.appendChild(e)}),Promise.resolve()),t}function DL(e,t,n){let r=t.style;if(!r)return;let i=window.getComputedStyle(e);i.cssText?(r.cssText=i.cssText,r.transformOrigin=i.transformOrigin):WI(n).forEach(n=>{let a=i.getPropertyValue(n);n===`font-size`&&a.endsWith(`px`)&&(a=`${Math.floor(parseFloat(a.substring(0,a.length-2)))-.1}px`),nL(e,HTMLIFrameElement)&&n===`display`&&a===`inline`&&(a=`block`),n===`d`&&t.getAttribute(`d`)&&(a=`path(${t.getAttribute(`d`)})`),r.setProperty(n,a,i.getPropertyPriority(n))})}function OL(e,t){nL(e,HTMLTextAreaElement)&&(t.innerHTML=e.value),nL(e,HTMLInputElement)&&t.setAttribute(`value`,e.value)}function kL(e,t){if(nL(e,HTMLSelectElement)){let n=t,r=Array.from(n.children).find(t=>e.value===t.getAttribute(`value`));r&&r.setAttribute(`selected`,``)}}function AL(e,t,n){return nL(t,Element)&&(DL(e,t,n),sL(e,t,n),OL(e,t),kL(e,t)),t}async function jL(e,t){let n=e.querySelectorAll?e.querySelectorAll(`use`):[];if(n.length===0)return e;let r={};for(let i=0;i<n.length;i++){let a=n[i].getAttribute(`xlink:href`);if(a){let n=e.querySelector(a),i=document.querySelector(a);!n&&i&&!r[a]&&(r[a]=await ML(i,t,!0))}}let i=Object.values(r);if(i.length){let t=`http://www.w3.org/1999/xhtml`,n=document.createElementNS(t,`svg`);n.setAttribute(`xmlns`,t),n.style.position=`absolute`,n.style.width=`0`,n.style.height=`0`,n.style.overflow=`hidden`,n.style.display=`none`;let r=document.createElementNS(t,`defs`);n.appendChild(r);for(let e=0;e<i.length;e++)r.appendChild(i[e]);e.appendChild(n)}return e}async function ML(e,t,n){return!n&&t.filter&&!t.filter(e)?null:Promise.resolve(e).then(e=>CL(e,t)).then(n=>EL(e,n,t)).then(n=>AL(e,n,t)).then(e=>jL(e,t))}var NL=/url\((['"]?)([^'"]+?)\1\)/g,PL=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,FL=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;function IL(e){let t=e.replace(/([.*+?^${}()|\[\]\/\\])/g,`\\$1`);return RegExp(`(url\\(['"]?)(${t})(['"]?\\))`,`g`)}function LL(e){let t=[];return e.replace(NL,(e,n,r)=>(t.push(r),e)),t.filter(e=>!mL(e))}async function RL(e,t,n,r,i){try{let a=n?BI(t,n):t,o=fL(t),s;return s=i?hL(await i(a),o):await yL(a,o,r),e.replace(IL(t),`$1${s}$3`)}catch{}return e}function zL(e,{preferredFontFormat:t}){return t?e.replace(FL,e=>{for(;;){let[n,,r]=PL.exec(e)||[];if(!r)return``;if(r===t)return`src: ${n};`}}):e}function BL(e){return e.search(NL)!==-1}async function VL(e,t,n){if(!BL(e))return e;let r=zL(e,n);return LL(r).reduce((e,r)=>e.then(e=>RL(e,r,t,n)),Promise.resolve(r))}async function HL(e,t,n){let r=t.style?.getPropertyValue(e);if(r){let i=await VL(r,null,n);return t.style.setProperty(e,i,t.style.getPropertyPriority(e)),!0}return!1}async function UL(e,t){await HL(`background`,e,t)||await HL(`background-image`,e,t),await HL(`mask`,e,t)||await HL(`-webkit-mask`,e,t)||await HL(`mask-image`,e,t)||await HL(`-webkit-mask-image`,e,t)}async function WL(e,t){let n=nL(e,HTMLImageElement);if(!(n&&!mL(e.src))&&!(nL(e,SVGImageElement)&&!mL(e.href.baseVal)))return;let r=n?e.src:e.href.baseVal,i=await yL(r,fL(r),t);await new Promise((r,a)=>{e.onload=r,e.onerror=t.onImageErrorHandler?(...e)=>{try{r(t.onImageErrorHandler(...e))}catch(e){a(e)}}:a;let o=e;o.decode&&=r,o.loading===`lazy`&&(o.loading=`eager`),n?(e.srcset=``,e.src=i):e.href.baseVal=i})}async function GL(e,t){let n=HI(e.childNodes).map(e=>KL(e,t));await Promise.all(n).then(()=>e)}async function KL(e,t){nL(e,Element)&&(await UL(e,t),await WL(e,t),await GL(e,t))}function qL(e,t){let{style:n}=e;t.backgroundColor&&(n.backgroundColor=t.backgroundColor),t.width&&(n.width=`${t.width}px`),t.height&&(n.height=`${t.height}px`);let r=t.style;return r!=null&&Object.keys(r).forEach(e=>{n[e]=r[e]}),e}var JL={};async function YL(e){let t=JL[e];return t??(t={url:e,cssText:await(await fetch(e)).text()},JL[e]=t,t)}async function XL(e,t){let n=e.cssText,r=/url\(["']?([^"')]+)["']?\)/g,i=(n.match(/url\([^)]+\)/g)||[]).map(async i=>{let a=i.replace(r,`$1`);return a.startsWith(`https://`)||(a=new URL(a,e.url).href),gL(a,t.fetchRequestInit,({result:e})=>(n=n.replace(i,`url(${e})`),[i,e]))});return Promise.all(i).then(()=>n)}function ZL(e){if(e==null)return[];let t=[],n=e.replace(/(\/\*[\s\S]*?\*\/)/gi,``),r=RegExp(`((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})`,`gi`);for(;;){let e=r.exec(n);if(e===null)break;t.push(e[0])}n=n.replace(r,``);let i=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,a=RegExp(`((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})`,`gi`);for(;;){let e=i.exec(n);if(e===null){if(e=a.exec(n),e===null)break;i.lastIndex=a.lastIndex}else a.lastIndex=i.lastIndex;t.push(e[0])}return t}async function QL(e,t){let n=[],r=[];return e.forEach(n=>{if(`cssRules`in n)try{HI(n.cssRules||[]).forEach((e,i)=>{if(e.type===CSSRule.IMPORT_RULE){let a=i+1,o=e.href,s=YL(o).then(e=>XL(e,t)).then(e=>ZL(e).forEach(e=>{try{n.insertRule(e,e.startsWith(`@import`)?a+=1:n.cssRules.length)}catch(t){console.error(`Error inserting rule from remote css`,{rule:e,error:t})}})).catch(e=>{console.error(`Error loading remote css`,e.toString())});r.push(s)}})}catch(i){let a=e.find(e=>e.href==null)||document.styleSheets[0];n.href!=null&&r.push(YL(n.href).then(e=>XL(e,t)).then(e=>ZL(e).forEach(e=>{a.insertRule(e,a.cssRules.length)})).catch(e=>{console.error(`Error loading remote stylesheet`,e)})),console.error(`Error inlining remote css file`,i)}}),Promise.all(r).then(()=>(e.forEach(e=>{if(`cssRules`in e)try{HI(e.cssRules||[]).forEach(e=>{n.push(e)})}catch(t){console.error(`Error while reading CSS rules from ${e.href}`,t)}}),n))}function $L(e){return e.filter(e=>e.type===CSSRule.FONT_FACE_RULE).filter(e=>BL(e.style.getPropertyValue(`src`)))}async function eR(e,t){if(e.ownerDocument==null)throw Error(`Provided element is not within a Document`);return $L(await QL(HI(e.ownerDocument.styleSheets),t))}function tR(e){return e.trim().replace(/["']/g,``)}function nR(e){let t=new Set;function n(e){(e.style.fontFamily||getComputedStyle(e).fontFamily).split(`,`).forEach(e=>{t.add(tR(e))}),Array.from(e.children).forEach(e=>{e instanceof HTMLElement&&n(e)})}return n(e),t}async function rR(e,t){let n=await eR(e,t),r=nR(e);return(await Promise.all(n.filter(e=>r.has(tR(e.style.fontFamily))).map(e=>{let n=e.parentStyleSheet?e.parentStyleSheet.href:null;return VL(e.cssText,n,t)}))).join(`
|
|
60
60
|
`)}async function iR(e,t){let n=t.fontEmbedCSS==null?t.skipFonts?null:await rR(e,t):t.fontEmbedCSS;if(n){let t=document.createElement(`style`),r=document.createTextNode(n);t.appendChild(r),e.firstChild?e.insertBefore(t,e.firstChild):e.appendChild(t)}}async function aR(e,t={}){let{width:n,height:r}=JI(e,t),i=await ML(e,t,!0);return await iR(i,t),await KL(i,t),qL(i,t),await tL(i,n,r)}async function oR(e,t={}){let{width:n,height:r}=JI(e,t),i=await $I(await aR(e,t)),a=document.createElement(`canvas`),o=a.getContext(`2d`),s=t.pixelRatio||YI(),c=t.canvasWidth||n,l=t.canvasHeight||r;return a.width=c*s,a.height=l*s,t.skipAutoScale||ZI(a),a.style.width=`${c}`,a.style.height=`${l}`,t.backgroundColor&&(o.fillStyle=t.backgroundColor,o.fillRect(0,0,a.width,a.height)),o.drawImage(i,0,0,a.width,a.height),a}async function sR(e,t={}){return await QI(await oR(e,t))}function cR(e){let t=e;for(;t;){let e=getComputedStyle(t).backgroundColor;if(e&&e!==`rgba(0, 0, 0, 0)`&&e!==`transparent`)return e;t=t.parentElement}let n=typeof document<`u`?getComputedStyle(document.body).backgroundColor:``;return n&&n!==`rgba(0, 0, 0, 0)`?n:`#ffffff`}async function lR(e,t=3){let n=await sR(e,{pixelRatio:t,backgroundColor:cR(e)});if(!n)throw Error(`Failed to capture chart as image`);return n}async function uR(e,t){let n=await lR(e),r=URL.createObjectURL(n);try{let e=document.createElement(`a`);e.href=r,e.download=t,e.click()}finally{URL.revokeObjectURL(r)}}async function dR(e){if(typeof ClipboardItem>`u`||!navigator.clipboard?.write)return!1;try{let t=await lR(e);return await navigator.clipboard.write([new ClipboardItem({"image/png":t})]),!0}catch{return!1}}function fR(e,t){return`${e.replace(/[^a-z0-9-]+/gi,`-`).replace(/(^-|-$)/g,``).toLowerCase()}-${new Date(t.endTime).toISOString().replace(/[:.]/g,`-`)}.png`}function pR({captureRef:e,exportSlug:t}){let[n,r]=(0,I.useState)(!1);return(0,L.jsxs)(oe,{children:[(0,L.jsx)(de,{asChild:!0,children:(0,L.jsx)(i,{variant:`ghost`,size:`icon`,onClick:async()=>{if(n)return;let t=e.current;if(t){r(!0);try{await dR(t)?S.success(`Chart copied to clipboard`):S.error(`Could not copy chart`,{description:`Your browser blocked the clipboard write. Try Download or check site permissions.`})}catch(e){console.error(`[chart-copy] capture failed`,e),S.error(`Could not copy chart`,{description:e instanceof Error?e.message:`Unknown error`})}finally{r(!1)}}},"aria-disabled":n,"aria-busy":n,"aria-label":`Copy ${t} chart to clipboard`,children:(0,L.jsx)(Zt,{className:`h-4 w-4`})})}),(0,L.jsx)(le,{side:`top`,children:`Copy to clipboard`})]})}function mR({captureRef:e,exportSlug:t}){let{timeRange:n}=gi(),[r,a]=(0,I.useState)(!1);return(0,L.jsxs)(oe,{children:[(0,L.jsx)(de,{asChild:!0,children:(0,L.jsx)(i,{variant:`ghost`,size:`icon`,onClick:async()=>{if(r)return;let i=e.current;if(!i)return;a(!0);let o=fR(t,n);try{await uR(i,o),S.success(`Saved ${o}`)}catch(e){console.error(`[chart-export] capture failed`,e),S.error(`Could not export chart`,{description:e instanceof Error?e.message:`Unknown error`})}finally{a(!1)}},"aria-disabled":r,"aria-busy":r,"aria-label":`Download ${t} as PNG`,children:(0,L.jsx)(M,{className:`h-4 w-4`})})}),(0,L.jsx)(le,{side:`top`,children:`Download as PNG`})]})}function hR({exportSlug:e,title:t,description:n,renderChart:r}){let[a,o]=(0,I.useState)(!1),s=(0,I.useRef)(null);return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(oe,{children:[(0,L.jsx)(de,{asChild:!0,children:(0,L.jsx)(i,{variant:`ghost`,size:`icon`,onClick:()=>o(!0),"aria-label":`Expand ${e}`,children:(0,L.jsx)(Qt,{className:`h-4 w-4`})})}),(0,L.jsx)(le,{side:`top`,children:`Expand`})]}),(0,L.jsx)(ve,{open:a,onOpenChange:o,children:(0,L.jsxs)(he,{className:`!max-w-[95vw] sm:!max-w-[95vw] h-[90vh] flex flex-col`,children:[(0,L.jsx)(_e,{children:(0,L.jsxs)(`div`,{className:`flex items-start justify-between gap-2 pr-6`,children:[(0,L.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,L.jsx)(we,{children:t}),n&&(0,L.jsx)(Se,{children:n})]}),(0,L.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,L.jsx)(pR,{captureRef:s,exportSlug:`${e}-expanded`}),(0,L.jsx)(mR,{captureRef:s,exportSlug:`${e}-expanded`})]})]})}),(0,L.jsx)(`div`,{ref:s,className:`flex-1 min-h-0 overflow-hidden flex flex-col`,children:r({fillParent:!0})})]})})]})}function gR({title:e,description:t,expandDescription:n=t,exportSlug:r,canExport:i,renderChart:a,children:o}){let s=(0,I.useRef)(null);return(0,L.jsxs)(D,{children:[(0,L.jsxs)(w,{className:`flex flex-row items-start justify-between gap-2`,children:[(0,L.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,L.jsx)(C,{children:e}),t&&(0,L.jsx)(E,{children:t})]}),i&&(0,L.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,L.jsx)(hR,{exportSlug:r,title:e,description:n,renderChart:a}),(0,L.jsx)(pR,{captureRef:s,exportSlug:r}),(0,L.jsx)(mR,{captureRef:s,exportSlug:r})]})]}),(0,L.jsx)(T,{children:(0,L.jsx)(`div`,{ref:s,children:o})})]})}function _R({isLoading:e,isError:t,error:n,isEmpty:r,missingFields:a=[],emptyMessage:o=`No data in the selected time range.`,onRetry:s,children:c}){return e?(0,L.jsx)(`div`,{role:`status`,"aria-live":`polite`,className:`h-64 rounded-md bg-muted/30 animate-pulse`,"aria-label":`Loading`}):t?(0,L.jsxs)(`div`,{className:`h-64 rounded-md border border-destructive/40 bg-destructive/10 p-4 text-sm text-destructive flex flex-col items-start justify-center gap-3`,children:[(0,L.jsx)(`div`,{children:`Failed to load: ${re(n)??`unknown error`}`}),(0,L.jsx)(i,{variant:`defaultOutline`,size:`sm`,onClick:s,children:`Retry`})]}):r?(0,L.jsx)(`div`,{className:`h-64 rounded-md border border-border bg-muted/20 p-4 text-sm text-muted-foreground flex items-center justify-center`,children:a.length>0?`No data — server response is missing required field(s): ${a.join(`, `)}.`:o}):(0,L.jsx)(L.Fragment,{children:c})}function vR(e){let t=new Set;for(let n of e)typeof n.node==`string`&&t.add(n.node);return[...t].sort()}function yR({metric:e,titleOverride:t}){let{timeRange:n}=gi();return(0,L.jsx)(zI,{metric:e,resetKey:`${n.startTime}-${n.endTime}`,children:(0,L.jsx)(bR,{metric:e,titleOverride:t})})}function bR({metric:e,titleOverride:t}){let{timeRange:n,bucketMs:r,instanceParams:i}=gi(),a=aF[e]?.sourceMetric??e,o=bI(e),{data:s,isLoading:c,isError:l,error:u,isEmpty:d,missingFields:f,refetch:p}=ji({metric:a,startTime:n.startTime,endTime:n.endTime,instanceParams:i,bucketMs:r,requiredFields:o}),m=_I[e],h=aF[e],g=t??m?.spec?.title??h?.title??e,_=m?.spec?.description??h?.subtitle,v=(0,I.useMemo)(()=>vR(s),[s]),y=!c&&!l&&!d,b=(t={fillParent:!1})=>(0,L.jsx)(RI,{metric:e,records:s,window:n,nodes:v,fillParent:t.fillParent});return(0,L.jsx)(gR,{title:g,description:_,exportSlug:e,canExport:y,renderChart:b,children:(0,L.jsx)(_R,{isLoading:c,isError:l,error:u,isEmpty:d,missingFields:f,onRetry:p,children:b()})})}var xR=[`db-read`,`db-write`,`db-message`];function SR(){return(0,L.jsx)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:xR.map(e=>(0,L.jsx)(yR,{metric:e},e))})}var CR=[`resource-usage`,`memory`,`main-thread-utilization`,`cpu-usage`,`utilization`];function wR(){return(0,L.jsx)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:CR.map(e=>(0,L.jsx)(yR,{metric:e},e))})}function TR({...e}){return(0,L.jsx)(v,{"data-slot":`accordion`,...e})}function ER({className:e,...t}){return(0,L.jsx)(b,{"data-slot":`accordion-item`,className:r(`border-b last:border-b-0`,e),...t})}function DR({className:e,children:t,...n}){return(0,L.jsx)(y,{className:`flex`,children:(0,L.jsxs)(_,{"data-slot":`accordion-trigger`,className:r(`focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180`,e),...n,children:[t,(0,L.jsx)(k,{className:`text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200`})]})})}function OR({className:e,children:t,...n}){return(0,L.jsx)(x,{"data-slot":`accordion-content`,className:`data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm`,...n,children:(0,L.jsx)(`div`,{className:r(`pt-0 pb-4`,e),children:t})})}function kR({entityId:e,instanceClient:t}){return f({queryKey:[`system_information`,e],queryFn:async()=>{let{data:e}=await t.post(`/`,{operation:`system_information`,attributes:[`network`,`disk`,`cpu`,`memory`,`system`]});return e}})}var AR=new Date(2025,0).getTime(),jR=1440*60*1e3;function MR(e){let t=[];for(let n in e){let r=e[n];t.push(...PR(n,r,0))}return t}function NR(e){return!!e.title}function PR(e,t,n,r){if(t&&Array.isArray(t)){let r=t;return[r.length>1&&{title:e,depth:n},...t.map((t,i)=>PR(r.length>1?String(i+1):e,t,n+1,e)).flat(1)].filter(Te)}if(FR(t)){let r=t;return[{title:e,depth:n},...Object.keys(t).map(t=>PR(String(t),r[t],n+1,e)).flat(1)]}return(e===`__updatedtime__`||e===`__createdtime__`)&&(e=e.replace(/_/g,``).replace(`time`,``)),typeof t==`number`?t>AR&&t<Date.now()+jR?t=se(Date.now()-t,t):r===`memory`?t=Ee(t):!e.startsWith(`raw`)&&e.toLowerCase().includes(`load`)&&(t=Math.round(t*10)/10+`%`):typeof t==`boolean`&&(t=t?`Yes`:`No`),[{name:e,value:String(t),depth:n}]}function FR(e){return!!e&&typeof e==`object`}function IR({instanceParams:e,isLocalStudio:t}){let{timeRange:n}=gi();return(0,L.jsx)(zI,{metric:`overview`,resetKey:`${String(e.entityId)}-${n.startTime}-${n.endTime}`,children:(0,L.jsx)(I.Suspense,{fallback:(0,L.jsx)(LR,{}),children:t?(0,L.jsx)(RR,{instanceParams:e}):(0,L.jsx)(zR,{instanceParams:e})})})}function LR(){return(0,L.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4`,children:[0,1,2,3].map(e=>(0,L.jsx)(`div`,{className:`h-40 rounded-lg bg-muted/30 animate-pulse`},e))})}function RR({instanceParams:e}){let{data:t}=c(kR(e));return(0,L.jsx)(BR,{data:t})}function zR({instanceParams:e}){let{data:t}=c(Ce(e));return(0,L.jsx)(BR,{data:t})}function BR({data:e}){let t=(0,I.useMemo)(()=>HR(e),[e]);return(0,L.jsxs)(`div`,{className:`space-y-4`,children:[(0,L.jsx)(TR,{type:`multiple`,defaultValue:t.slice(0,1).map(e=>e.title),children:t.map(e=>(0,L.jsxs)(ER,{value:e.title,children:[(0,L.jsx)(DR,{className:`text-base font-semibold`,children:e.title}),(0,L.jsx)(OR,{children:(0,L.jsx)(VR,{section:e})})]},e.title))}),(0,L.jsxs)(`details`,{className:`rounded-lg border border-border bg-card`,children:[(0,L.jsx)(`summary`,{className:`cursor-pointer px-4 py-2 text-sm text-muted-foreground hover:text-foreground`,children:`View raw JSON`}),(0,L.jsx)(`pre`,{className:`px-4 pb-4 text-xs overflow-auto max-h-96`,children:JSON.stringify(e,null,2)})]})]})}function VR({section:e}){return(0,L.jsxs)(`div`,{className:`space-y-3`,children:[e.rows.length>0&&(0,L.jsx)(D,{children:(0,L.jsx)(T,{className:`pt-4`,children:(0,L.jsx)(`dl`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-2 text-sm`,children:e.rows.map(e=>(0,L.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,L.jsx)(`dt`,{className:`text-muted-foreground`,children:e.name}),(0,L.jsx)(`dd`,{className:`font-mono text-right truncate`,title:e.value,children:e.value})]},e.name))})})}),e.subSections.map(e=>(0,L.jsxs)(`div`,{className:`pl-3 border-l border-border`,children:[(0,L.jsx)(`div`,{className:`text-sm font-semibold mb-2 text-muted-foreground`,children:e.title}),(0,L.jsx)(VR,{section:e})]},e.title))]})}function HR(e){let t=MR(e),n=[],r=[],i=null;for(let e of t)if(NR(e)){for(;r.length>0&&r[r.length-1]._depth>=e.depth;)r.pop();let t={title:e.title,rows:[],subSections:[],_depth:e.depth};r.length===0?n.push(t):r[r.length-1].subSections.push(t),r.push(t)}else{let t=r[r.length-1];t?t.rows.push({name:e.name,value:e.value}):(i||(i={title:`General`,rows:[],subSections:[]},n.unshift(i)),i.rows.push({name:e.name,value:e.value}))}return n}function UR(){return(0,L.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:(0,L.jsx)(yR,{metric:`replication-latency`})})}var WR=[`request-rate`,`error-rate`,`duration`,`success`,`transfer`,`response_200`,`cache-hit`,`cache-resolution`];function GR(){return(0,L.jsx)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:WR.map(e=>(0,L.jsx)(yR,{metric:e},e))})}var KR=[`var(--chart-table-1)`,`var(--chart-table-2)`,`var(--chart-table-3)`,`var(--chart-table-4)`,`var(--chart-table-5)`,`var(--chart-table-6)`,`var(--chart-table-7)`,`var(--chart-table-8)`,`var(--chart-table-9)`,`var(--chart-table-10)`],qR=`var(--chart-other)`;function JR(e){return KR[e%KR.length]}var YR=`__other__`,XR=4096;function ZR(e){return Math.max(6e4,Math.ceil(e/90))}function QR(e){return`${e.database}.${e.table}`}function $R(e){let t=e.map(e=>({database:e.database,table:e.table,tableKey:QR(e),node:e.node==null?``:String(e.node),time:e.id,size:e.size}));return t.sort((e,t)=>e.time-t.time),t}function ez(e){let t=new Map,n=[];for(let r of e){let e=`${r.node}\0${r.tableKey}`;t.get(e)!==r.size&&(n.push(r),t.set(e,r.size))}return n}function tz(e){let t=new Map,n=new Map;for(let t of e){let e=`${t.tableKey}\0${t.node}`,r=n.get(e);(r===void 0||t.size>r)&&n.set(e,t.size)}for(let[e,r]of n){let[n]=e.split(`\0`),i=t.get(n);(i===void 0||r>i)&&t.set(n,r)}let r=[...t.entries()].filter(([,e])=>e>XR);r.sort((e,t)=>t[1]===e[1]?e[0].localeCompare(t[0]):t[1]-e[1]);let i=r.map(([e])=>e),a=[...t.keys()].filter(e=>!i.includes(e));if(a.sort((e,t)=>e.localeCompare(t)),i.length<=9)return{tableSet:i,hasOther:a.length>0,otherMembers:a};let o=i.slice(0,8),s=[...i.slice(8),...a];return{tableSet:o,hasOther:s.length>0,otherMembers:s}}function nz(e,t,n){let r=new Map;for(let t of e){let e=`${t.node}\0${t.tableKey}`,n=r.get(e);(!n||t.time>=n.time)&&r.set(e,{size:t.size,time:t.time,tableKey:t.tableKey,node:t.node})}let i=new Set(t),a=new Map;for(let{size:e,tableKey:t,node:o}of r.values()){a.has(o)||a.set(o,{node:o,stacks:{},total:0});let r=a.get(o);r.total+=e,i.has(t)?r.stacks[t]=e:n&&(r.stacks[YR]=(r.stacks.__other__??0)+e)}return[...a.values()].sort((e,t)=>e.node.localeCompare(t.node))}function rz(e,t){let n=ZR(t.endTime-t.startTime);return function(r){let i=new Map,a=new Map;for(let o of e){if(o.tableKey!==r||o.time<t.startTime||o.time>t.endTime)continue;let e=t.startTime+Math.floor((o.time-t.startTime)/n)*n;i.has(e)||i.set(e,new Map);let s=i.get(e),c=s.get(o.node);(!c||o.time>=c.time)&&s.set(o.node,{size:o.size,time:o.time});let l=a.get(o.node)??0;o.time>l&&a.set(o.node,o.time)}let o=[],s=[...i.keys()].sort((e,t)=>e-t);for(let e of s){let t=i.get(e),n={};for(let[r,{size:i}]of t)e>(a.get(r)??0)||(n[r]=i);Object.keys(n).length>0&&o.push({time:e,values:n})}return o}}function iz(e,t){if(e.length===0)return null;let n=new Map;for(let t of e){let e=`${t.tableKey}\0${t.node}`,r=n.get(e);r||(r={min:t.size,max:t.size,distinctTimes:new Set},n.set(e,r)),t.size<r.min&&(r.min=t.size),t.size>r.max&&(r.max=t.size),r.distinctTimes.add(t.time)}let r=new Map;for(let[e,i]of n){let[n]=e.split(`\0`),a=i.distinctTimes.size>=2&&i.max>i.min,o=i.max-i.min,s=i.max>0?o/i.max:0,c=t===`bytes`?o:s,l=r.get(n);l?(c>l.delta&&(l.delta=c),i.max>l.maxSize&&(l.maxSize=i.max),a&&(l.hasDelta=!0)):r.set(n,{tableKey:n,delta:c,maxSize:i.max,hasDelta:a})}let i=[...r.values()],a=i.filter(e=>e.hasDelta);return a.length>0?(a.sort((e,t)=>t.delta===e.delta?e.tableKey.localeCompare(t.tableKey):t.delta-e.delta),a[0].tableKey):(i.sort((e,t)=>t.maxSize===e.maxSize?e.tableKey.localeCompare(t.tableKey):t.maxSize-e.maxSize),i[0]?.tableKey??null)}function az(e,t,n){return e===0?`upstream-empty`:t.length===0&&n?`all-other`:null}function oz(e,t){let n=ez($R(e)),{tableSet:r,hasOther:i,otherMembers:a}=tz(n),o=nz(n,r,i),s=rz(n,t),c=az(e.length,r,i),l=e.reduce((e,t)=>t.id>e?t.id:e,0),u=`${t.startTime}:${t.endTime}:${e.length}:${l}`;return{snapshot:{byNode:o,tableSet:r,hasOther:i,otherMembers:a},trend:s,defaultSelection:e=>iz(n,e),emptyCause:c,signature:u}}function sz(e){let{points:t,node:n,windowMs:r,rankBy:i,formatBytes:a}=e,o=t.map(e=>e.values[n]).filter(e=>typeof e==`number`);if(o.length<2)return``;let s=o[0],c=o[0];for(let e of o)e<s&&(s=e),e>c&&(c=e);let l=c-s;if(l<=0)return``;if(i===`percent`)return`+${(c>0?l/c*100:0).toFixed(1)}%/window`;if(r<=0)return``;let u=l/(r/(1e3*60*60));return`+${a(l)} (${a(u)}/hr)`}function cz({tableSet:e,hasOther:t,selectedTable:n,onSelectTable:r}){let{getRadioProps:i}=zi(e,n,r);return e.length===0&&!t?null:(0,L.jsxs)(`div`,{role:`radiogroup`,"aria-label":`Table selector`,"data-testid":`table-size-chip-row`,className:`flex flex-wrap gap-2 pt-3`,children:[e.map((e,t)=>{let r=e===n,a=JR(t);return(0,L.jsxs)(`button`,{type:`button`,...i(t),"data-testid":`table-size-chip`,"data-table":e,className:`inline-flex min-h-8 items-center gap-1.5 rounded-full border px-2.5 py-1 text-xs ${r?`font-semibold text-(--color-text-primary)`:`border-(--color-border) text-(--color-text-secondary) hover:text-(--color-text-primary)`}`,style:{borderColor:r?a:void 0},children:[(0,L.jsx)(`span`,{className:`inline-block h-2 w-2 rounded-full`,style:{backgroundColor:a}}),e]},e)}),t&&(0,L.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":!1,"aria-disabled":`true`,tabIndex:-1,"data-testid":`table-size-chip`,"data-table":`__other__`,title:`Aggregate of smaller tables; not selectable.`,className:`inline-flex min-h-8 items-center gap-1.5 rounded-full border border-dashed border-(--color-border) px-2.5 py-1 text-xs text-(--color-text-secondary)/60 cursor-not-allowed`,children:[(0,L.jsx)(`span`,{className:`inline-block h-2 w-2 rounded-full`,style:{backgroundColor:`var(--chart-other)`}}),`Other`]})]})}var lz=e=>ce(e,`bytes-si`);function uz(e,t,n){return e.byNode.filter(e=>t(e.node)).map(e=>{let t={};return n.forEach((n,r)=>{t[`t_${r}`]=e.stacks[n]??0}),{node:e.node,...t,__total__:e.total}})}function dz({snapshot:e,viewMode:t,selectedTable:n,onChipSelect:r,onBarClick:i,allOtherHint:a}){let o=Oi(),s=e.byNode.map(e=>e.node),{isActive:c,handleLegendClick:l}=Ri(s),u=t===`aggregate`;if(a)return(0,L.jsx)(`div`,{className:`flex h-full items-center justify-center text-sm text-(--color-text-secondary)`,children:`All tables are small within this window — widen the range to see growth.`});let d=[...e.tableSet,...e.hasOther?[YR]:[]],f=uz(e,c,d),p=f.reduce((e,t)=>Math.max(e,t.__total__),0)||1;return(0,L.jsxs)(`div`,{className:`h-full flex flex-col`,children:[(0,L.jsx)(`div`,{style:{width:`100%`,height:300},children:(0,L.jsx)(od,{width:`100%`,height:`100%`,minWidth:0,children:(0,L.jsxs)(wP,{data:f,barCategoryGap:`20%`,children:[(0,L.jsx)(WO,{stroke:o.gridColor,strokeDasharray:`3 3`}),(0,L.jsx)(gM,{dataKey:`node`,stroke:o.axisColor,tick:{fontSize:11}}),(0,L.jsx)(jM,{stroke:o.axisColor,tick:{fontSize:11},tickFormatter:e=>{let t=Number(e);return u?`${Math.round(t/p*100)}%`:lz(t)},domain:u?[0,p]:[`auto`,`auto`]}),(0,L.jsx)(TS,{contentStyle:jP,labelStyle:MP,itemStyle:NP,formatter:(e,t,n)=>{let r=String(t),i=r===`__other__`?`Other`:r,a=Number(e),o=n?.payload?.__total__??0,s=o>0?(a/o*100).toFixed(1):`0`;return[`${lz(a)} (${s}% of node total ${lz(o)})`,i]}}),d.map((e,t)=>{let r=e===`__other__`?qR:JR(t),a=e===n;return(0,L.jsx)(Yj,{dataKey:`t_${t}`,name:e,stackId:`size`,fill:r,stroke:a?r:`transparent`,strokeWidth:a?2:0,onClick:()=>{e!==`__other__`&&i(e)},style:{cursor:e===`__other__`?`not-allowed`:`pointer`},children:f.map(t=>(0,L.jsx)(ES,{"data-testid":`table-size-segment`,"data-table":e,"data-node":t.node},t.node))},e)})]})})}),(0,L.jsx)(Ii,{nodeIds:s,isActive:c,onClickNode:l}),(0,L.jsx)(cz,{tableSet:e.tableSet,hasOther:e.hasOther,selectedTable:n,onSelectTable:r})]})}var fz=e=>ce(e,`bytes-si`);function pz({derived:e,viewMode:t,selectedTable:n,onChipSelect:r,manualSelection:i,range:a,clusterNodeIds:o,rankBy:s,onRankChange:c}){let l=Oi(),u=(0,I.useMemo)(()=>n?e.trend(n):[],[e,n]),d=(0,I.useMemo)(()=>{let e=new Set;for(let t of u)for(let n of Object.keys(t.values))e.add(n);return[...e].sort()},[u]),{isActive:f,handleLegendClick:p}=Ri(d),m=Math.max(0,a.endTime-a.startTime),h=(0,I.useMemo)(()=>{let e=new Map;return d.forEach((t,n)=>e.set(t,`n_${n}`)),e},[d]),g=(0,I.useMemo)(()=>u.map(e=>{let t={};for(let[n,r]of h)t[r]=e.values[n]??null;return{time:e.time,...t}}),[u,h]);return n?(0,L.jsxs)(`div`,{className:`h-full flex flex-col`,children:[(0,L.jsxs)(`div`,{"aria-live":`polite`,"data-testid":`table-size-trend-title`,className:`sr-only`,children:[`Trend selection: `,n,i?``:` (auto-selected — ${s===`bytes`?`largest bytes change`:`largest percent change`})`]}),!i&&(0,L.jsxs)(`div`,{className:`mb-1 text-[10px] text-(--color-text-secondary)`,children:[`Auto-selected by `,s===`bytes`?`largest bytes change`:`largest % change`]}),(0,L.jsxs)(`div`,{className:`mb-2 flex items-center gap-2`,children:[(0,L.jsx)(`span`,{className:`text-[11px] text-(--color-text-secondary)`,children:`Rank by:`}),(0,L.jsxs)(`div`,{className:`inline-flex rounded border border-(--color-border) bg-(--color-bg-tertiary) p-0.5`,"data-testid":`table-size-rank-toggle`,children:[(0,L.jsx)(`button`,{type:`button`,"aria-pressed":s===`bytes`,onClick:()=>c(`bytes`),className:`rounded px-2 py-0.5 text-[11px] ${s===`bytes`?`bg-(--color-bg-secondary) text-(--color-text-primary)`:`text-(--color-text-secondary)`}`,children:`Bytes changed`}),(0,L.jsx)(`button`,{type:`button`,"aria-pressed":s===`percent`,onClick:()=>c(`percent`),className:`rounded px-2 py-0.5 text-[11px] ${s===`percent`?`bg-(--color-bg-secondary) text-(--color-text-primary)`:`text-(--color-text-secondary)`}`,children:`% change`})]})]}),(0,L.jsx)(`div`,{style:{width:`100%`,height:300},children:(0,L.jsx)(od,{width:`100%`,height:`100%`,minWidth:0,children:(0,L.jsxs)(SP,{data:g,children:[(0,L.jsx)(WO,{stroke:l.gridColor,strokeDasharray:`3 3`}),(0,L.jsx)(gM,{dataKey:`time`,type:`number`,domain:[a.startTime,a.endTime],allowDataOverflow:!0,tickFormatter:kP,stroke:l.axisColor,tick:{fontSize:11},allowDuplicatedCategory:!1}),(0,L.jsx)(jM,{stroke:l.axisColor,tick:{fontSize:11},tickFormatter:fz,scale:t===`per-node`?`log`:`auto`,domain:t===`per-node`?[1,`auto`]:[`auto`,`auto`],allowDataOverflow:!0}),(0,L.jsx)(TS,{contentStyle:jP,labelStyle:MP,itemStyle:NP,labelFormatter:e=>AP(Number(e)),formatter:e=>fz(Number(e))}),d.filter(e=>f(e)).map(e=>(0,L.jsx)(Jk,{dataKey:h.get(e),name:`${e} ${sz({points:u,node:e,windowMs:m,rankBy:s,formatBytes:fz})}`.trim(),stroke:Fi(e,o),strokeWidth:2,dot:!1,type:`monotone`,connectNulls:!1},e))]})})}),(0,L.jsx)(Ii,{nodeIds:d,isActive:f,onClickNode:p}),(0,L.jsx)(cz,{tableSet:e.snapshot.tableSet,hasOther:e.snapshot.hasOther,selectedTable:n,onSelectTable:r})]}):(0,L.jsx)(`div`,{className:`flex h-full items-center justify-center text-sm text-(--color-text-secondary)`,children:`Select a table to view trend.`})}function mz(e){return e.snapshot.byNode.map(e=>e.node)}function hz(){return(0,L.jsxs)(`div`,{className:`grid grid-cols-1 gap-4`,children:[(0,L.jsx)(zI,{metric:`table-size`,children:(0,L.jsx)(gz,{})}),(0,L.jsxs)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:[(0,L.jsx)(yR,{metric:`database-size`}),(0,L.jsx)(yR,{metric:`transaction-log-growth`}),(0,L.jsx)(yR,{metric:`storage-volume`})]})]})}function gz(){let{timeRange:e,bucketMs:t,theme:n,instanceParams:r}=gi(),{data:i,isLoading:a,isError:o}=ji({metric:`table-size`,startTime:e.startTime,endTime:e.endTime,instanceParams:r,bucketMs:t}),s=(0,I.useMemo)(()=>{let e=i??[],t=[],n=0;for(let r of e)typeof r.id==`number`?t.push(r):typeof r.time==`number`?t.push({...r,id:r.time}):n++;return n>0&&console.warn(`[table-size] dropped rows missing both id and time`,{dropped:n,total:e.length}),t},[i]),c=(0,I.useMemo)(()=>oz(s,e),[s,e.startTime,e.endTime]),[l,u]=(0,I.useState)(`bytes`),[d,f]=(0,I.useState)(null),p=(0,I.useRef)(null),m=(0,I.useRef)(null),h=(0,I.useMemo)(()=>d&&c.snapshot.tableSet.includes(d)?d:c.defaultSelection(l),[d,c,l]);if(a)return(0,L.jsxs)(D,{children:[(0,L.jsx)(w,{children:(0,L.jsx)(C,{children:`Table sizes`})}),(0,L.jsx)(T,{children:(0,L.jsx)(`div`,{className:`h-64 rounded-md bg-muted/30 animate-pulse`,"aria-label":`Loading`})})]});if(o)return(0,L.jsxs)(D,{children:[(0,L.jsxs)(w,{children:[(0,L.jsx)(C,{children:`Table sizes`}),(0,L.jsx)(E,{children:`Per-table storage breakdown.`})]}),(0,L.jsx)(T,{children:(0,L.jsx)(`div`,{className:`h-32 rounded-md border border-destructive/40 bg-destructive/10 p-4 text-sm text-destructive flex items-center justify-center`,children:`Failed to load table-size data. Try a different time window or refresh.`})})]});if(c.emptyCause===`upstream-empty`)return(0,L.jsxs)(D,{children:[(0,L.jsxs)(w,{children:[(0,L.jsx)(C,{children:`Table sizes`}),(0,L.jsx)(E,{children:`Per-table storage breakdown.`})]}),(0,L.jsx)(T,{children:(0,L.jsx)(`div`,{className:`h-32 rounded-md border border-border bg-muted/20 p-4 text-sm text-muted-foreground flex items-center justify-center`,children:`No table-size data in the selected window.`})})]});let g=e=>(0,L.jsx)(dz,{snapshot:c.snapshot,viewMode:`per-node`,theme:n,selectedTable:h,onChipSelect:f,onBarClick:f,allOtherHint:c.emptyCause===`all-other`}),_=t=>h?(0,L.jsx)(pz,{derived:c,viewMode:`per-node`,theme:n,selectedTable:h,onChipSelect:f,manualSelection:d!==null,range:e,clusterNodeIds:mz(c),rankBy:l,onRankChange:u}):(0,L.jsx)(`div`,{className:`h-64 rounded-md border border-border bg-muted/20 p-4 text-sm text-muted-foreground flex items-center justify-center`,children:`No table selected.`});return(0,L.jsxs)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:[(0,L.jsxs)(D,{ref:p,children:[(0,L.jsxs)(w,{className:`flex flex-row items-start justify-between gap-2`,children:[(0,L.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,L.jsx)(C,{children:`Table size — snapshot`}),(0,L.jsx)(E,{children:`Bytes per table, per node. Click a segment to pin the trend below.`})]}),(0,L.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,L.jsx)(hR,{exportSlug:`table-size-snapshot`,title:`Table size — snapshot`,description:`Bytes per table, per node.`,renderChart:g}),(0,L.jsx)(pR,{captureRef:p,exportSlug:`table-size-snapshot`}),(0,L.jsx)(mR,{captureRef:p,exportSlug:`table-size-snapshot`})]})]}),(0,L.jsx)(T,{children:g()})]}),(0,L.jsxs)(D,{ref:m,children:[(0,L.jsxs)(w,{className:`flex flex-row items-start justify-between gap-2`,children:[(0,L.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,L.jsx)(C,{children:`Table size — trend`}),(0,L.jsx)(E,{children:h?`Growth of ${h} over the selected window.`:`Pick a table to see its trend.`})]}),h&&(0,L.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,L.jsx)(hR,{exportSlug:`table-size-trend`,title:`Table size — trend: ${h}`,description:`Growth of ${h} over the selected window.`,renderChart:_}),(0,L.jsx)(pR,{captureRef:m,exportSlug:`table-size-trend`}),(0,L.jsx)(mR,{captureRef:m,exportSlug:`table-size-trend`})]})]}),(0,L.jsx)(T,{children:_()})]})]})}gI.connections.spec;var _z=gI.connections.Renderer;function vz(){let{timeRange:e}=gi();return(0,L.jsx)(zI,{metric:`connections`,resetKey:`${e.startTime}-${e.endTime}`,children:(0,L.jsx)(yz,{})})}function yz(){let{timeRange:e,bucketMs:t,theme:n,instanceParams:r}=gi(),i=ji({metric:`mqtt-connections`,startTime:e.startTime,endTime:e.endTime,instanceParams:r,bucketMs:t}),a=ji({metric:`ws-connections`,startTime:e.startTime,endTime:e.endTime,instanceParams:r,bucketMs:t}),o=i.isLoading||a.isLoading,s=i.isError||a.isError,c=i.error||a.error,l=(0,I.useMemo)(()=>{let e=[];for(let t of i.data)e.push({...t,type:`mqtt`});for(let t of a.data)e.push({...t,type:`ws`});return e},[i.data,a.data]),u=l.length===0,d=(0,I.useMemo)(()=>vR(l),[l]),f=!o&&!s&&!u,p=(t={fillParent:!1})=>(0,L.jsx)(_z,{records:l,timeRange:e,nodes:d,theme:n,fillParent:t.fillParent});return(0,L.jsx)(gR,{title:`Connections`,description:`Active MQTT + WebSocket sessions — chips solo / Ctrl-toggle.`,expandDescription:`Active MQTT + WebSocket sessions.`,exportSlug:`connections`,canExport:f,renderChart:p,children:(0,L.jsx)(_R,{isLoading:o,isError:s,error:c,isEmpty:u,emptyMessage:`No active sessions in the selected time range.`,onRetry:()=>{i.refetch(),a.refetch()},children:p()})})}var bz=[`mqtt-traffic-sent`,`mqtt-traffic-received`,`bytes-sent`,`bytes-received`,`tls-reused`,`connection`];function xz(){return(0,L.jsxs)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-4`,children:[(0,L.jsx)(vz,{}),bz.map(e=>(0,L.jsx)(yR,{metric:e},e))]})}var Sz=[{id:`health`,label:`Health`},{id:`traffic`,label:`Traffic`},{id:`requests`,label:`Requests`},{id:`database`,label:`Database`},{id:`replication`,label:`Replication`},{id:`storage`,label:`Storage`},{id:`overview`,label:`Overview`}];function Cz({instanceParams:e,isLocalStudio:t}){return(0,L.jsx)(Tz,{instanceParams:e,isLocalStudio:t,capability:Ei(e)})}function wz({capability:e}){return(0,L.jsxs)(`div`,{role:`alert`,className:`px-4 py-8 text-sm text-muted-foreground`,children:[e.isAuthError?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`p`,{className:`mb-1 font-medium text-foreground`,children:`Analytics request was not authorized.`}),(0,L.jsxs)(`p`,{children:[`The Harper instance rejected `,(0,L.jsx)(`code`,{children:`get_analytics`}),` `,`as unauthorized. Your credentials for this instance may have expired — re-enter them, then retry.`]})]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`p`,{className:`mb-1 font-medium text-foreground`,children:`Analytics unavailable on this instance.`}),(0,L.jsxs)(`p`,{children:[`The Harper instance returned an error from`,` `,(0,L.jsx)(`code`,{children:`get_analytics`}),`. Check that the instance is reachable and that analytics is enabled, then retry.`]})]}),(0,L.jsx)(i,{type:`button`,variant:`defaultOutline`,size:`sm`,className:`mt-3`,onClick:e.retry,disabled:e.isFetching,children:e.isFetching?`Retrying…`:`Retry`})]})}function Tz({instanceParams:e,isLocalStudio:t,capability:n}){let r=p(),{tab:i,range:a,refresh:o}=be(u({strict:!1})),[c,l]=(0,I.useState)(0),d=s(),f=(0,I.useRef)(Date.now()),m=(0,I.useCallback)(()=>{f.current=Date.now(),l(e=>e+1)},[]);(0,I.useEffect)(()=>{if(o<=0)return;let t=()=>!document.hidden&&d.isFetching({queryKey:[`get_analytics_raw`,e.entityId]})===0,n=setInterval(()=>{t()&&m()},o),r=()=>{t()&&Date.now()-f.current>=o&&m()};return document.addEventListener(`visibilitychange`,r),()=>{clearInterval(n),document.removeEventListener(`visibilitychange`,r)}},[o,m,d,c,e.entityId]);let h=Di(),g=(0,I.useCallback)(e=>{r({to:`.`,search:{tab:i,range:e,refresh:o}})},[r,i,o]),_=(0,I.useCallback)(e=>{r({to:`.`,search:{tab:e,range:a,refresh:o}})},[r,a,o]),v=(0,I.useCallback)(e=>{r({to:`.`,search:{tab:i,range:a,refresh:e}})},[r,i,a]),y=(0,I.useRef)(!1);(0,I.useEffect)(()=>{if(!n.error){y.current=!1;return}y.current||(y.current=!0,i!==`overview`&&r({to:`.`,search:{tab:`overview`,range:a,refresh:o},replace:!0}))},[n.error,i,r,a,o]);let b=(0,I.useMemo)(()=>{let t=ge(a),n=Date.now();return{timeRange:{startTime:n-t.durationMs,endTime:n},bucketMs:t.bucketMs,theme:h,instanceParams:e}},[a,h,e,c]),x=i===`overview`?null:(0,L.jsx)(bi,{presetId:a,onPresetChange:g,refreshMs:o,onRefreshChange:v,onManualRefresh:m}),S=e=>n.isLoading?(0,L.jsx)(`div`,{role:`status`,"aria-live":`polite`,className:`px-4 py-8 text-sm text-muted-foreground`,children:`Checking analytics availability…`}):n.error?(0,L.jsx)(wz,{capability:n}):(0,L.jsx)(Ez,{picker:x,children:e});return(0,L.jsx)(hi,{value:b,children:(0,L.jsxs)(ne,{value:i,onValueChange:e=>_(e),className:`px-4 py-2`,children:[i!==`overview`&&!n.isLoading&&!n.error&&(0,L.jsx)(pi,{}),(0,L.jsx)(`div`,{className:`md:hidden mb-3`,children:(0,L.jsxs)(ie,{value:i,onValueChange:e=>_(e),children:[(0,L.jsx)(fe,{className:`w-full`,"aria-label":`Select status tab`,children:(0,L.jsx)(me,{})}),(0,L.jsx)(pe,{children:Sz.map(e=>(0,L.jsx)(ae,{value:e.id,children:e.label},e.id))})]})}),(0,L.jsx)(te,{className:`hidden md:inline-flex max-w-full overflow-x-auto mb-4`,children:Sz.map(e=>(0,L.jsx)(N,{value:e.id,children:e.label},e.id))}),(0,L.jsx)(ee,{value:`health`,children:S((0,L.jsx)(wR,{}))}),(0,L.jsx)(ee,{value:`traffic`,children:S((0,L.jsx)(xz,{}))}),(0,L.jsx)(ee,{value:`requests`,children:S((0,L.jsx)(GR,{}))}),(0,L.jsx)(ee,{value:`database`,children:S((0,L.jsx)(SR,{}))}),(0,L.jsx)(ee,{value:`replication`,children:S((0,L.jsx)(UR,{}))}),(0,L.jsx)(ee,{value:`storage`,children:S((0,L.jsx)(hz,{}))}),(0,L.jsx)(ee,{value:`overview`,children:(0,L.jsx)(IR,{instanceParams:e,isLocalStudio:t})})]})})}function Ez({picker:e,children:t}){return(0,L.jsxs)(L.Fragment,{children:[e&&(0,L.jsx)(`div`,{className:`sticky top-0 z-10 -mx-4 px-4 py-2 mb-3 bg-background border-b border-border shadow-sm flex items-center justify-end gap-2`,children:e}),t]})}function Dz(){return(0,L.jsx)(Cz,{instanceParams:ue(),isLocalStudio:!0})}export{Dz as StatusIndex};
|
|
61
|
-
//# sourceMappingURL=status-
|
|
61
|
+
//# sourceMappingURL=status-DG0Maoao.js.map
|