purecontext-mcp 1.0.1
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/LICENSE +21 -0
- package/README.md +207 -0
- package/dist/adapters/actix-web.d.ts +28 -0
- package/dist/adapters/actix-web.d.ts.map +1 -0
- package/dist/adapters/actix-web.js +362 -0
- package/dist/adapters/actix-web.js.map +1 -0
- package/dist/adapters/adapter-registry.d.ts +34 -0
- package/dist/adapters/adapter-registry.d.ts.map +1 -0
- package/dist/adapters/adapter-registry.js +92 -0
- package/dist/adapters/adapter-registry.js.map +1 -0
- package/dist/adapters/angular.d.ts +13 -0
- package/dist/adapters/angular.d.ts.map +1 -0
- package/dist/adapters/angular.js +348 -0
- package/dist/adapters/angular.js.map +1 -0
- package/dist/adapters/axum.d.ts +16 -0
- package/dist/adapters/axum.d.ts.map +1 -0
- package/dist/adapters/axum.js +299 -0
- package/dist/adapters/axum.js.map +1 -0
- package/dist/adapters/django-orm.d.ts +28 -0
- package/dist/adapters/django-orm.d.ts.map +1 -0
- package/dist/adapters/django-orm.js +464 -0
- package/dist/adapters/django-orm.js.map +1 -0
- package/dist/adapters/django.d.ts +16 -0
- package/dist/adapters/django.d.ts.map +1 -0
- package/dist/adapters/django.js +257 -0
- package/dist/adapters/django.js.map +1 -0
- package/dist/adapters/echo.d.ts +15 -0
- package/dist/adapters/echo.d.ts.map +1 -0
- package/dist/adapters/echo.js +142 -0
- package/dist/adapters/echo.js.map +1 -0
- package/dist/adapters/express.d.ts +15 -0
- package/dist/adapters/express.d.ts.map +1 -0
- package/dist/adapters/express.js +126 -0
- package/dist/adapters/express.js.map +1 -0
- package/dist/adapters/fastapi.d.ts +16 -0
- package/dist/adapters/fastapi.d.ts.map +1 -0
- package/dist/adapters/fastapi.js +113 -0
- package/dist/adapters/fastapi.js.map +1 -0
- package/dist/adapters/fastify.d.ts +14 -0
- package/dist/adapters/fastify.d.ts.map +1 -0
- package/dist/adapters/fastify.js +124 -0
- package/dist/adapters/fastify.js.map +1 -0
- package/dist/adapters/fiber.d.ts +15 -0
- package/dist/adapters/fiber.d.ts.map +1 -0
- package/dist/adapters/fiber.js +147 -0
- package/dist/adapters/fiber.js.map +1 -0
- package/dist/adapters/flask.d.ts +18 -0
- package/dist/adapters/flask.d.ts.map +1 -0
- package/dist/adapters/flask.js +175 -0
- package/dist/adapters/flask.js.map +1 -0
- package/dist/adapters/flutter.d.ts +19 -0
- package/dist/adapters/flutter.d.ts.map +1 -0
- package/dist/adapters/flutter.js +251 -0
- package/dist/adapters/flutter.js.map +1 -0
- package/dist/adapters/gin.d.ts +16 -0
- package/dist/adapters/gin.d.ts.map +1 -0
- package/dist/adapters/gin.js +159 -0
- package/dist/adapters/gin.js.map +1 -0
- package/dist/adapters/hibernate.d.ts +24 -0
- package/dist/adapters/hibernate.d.ts.map +1 -0
- package/dist/adapters/hibernate.js +448 -0
- package/dist/adapters/hibernate.js.map +1 -0
- package/dist/adapters/ktor.d.ts +18 -0
- package/dist/adapters/ktor.d.ts.map +1 -0
- package/dist/adapters/ktor.js +219 -0
- package/dist/adapters/ktor.js.map +1 -0
- package/dist/adapters/laravel.d.ts +19 -0
- package/dist/adapters/laravel.d.ts.map +1 -0
- package/dist/adapters/laravel.js +370 -0
- package/dist/adapters/laravel.js.map +1 -0
- package/dist/adapters/micronaut.d.ts +21 -0
- package/dist/adapters/micronaut.d.ts.map +1 -0
- package/dist/adapters/micronaut.js +435 -0
- package/dist/adapters/micronaut.js.map +1 -0
- package/dist/adapters/nestjs.d.ts +12 -0
- package/dist/adapters/nestjs.d.ts.map +1 -0
- package/dist/adapters/nestjs.js +401 -0
- package/dist/adapters/nestjs.js.map +1 -0
- package/dist/adapters/nextjs.d.ts +49 -0
- package/dist/adapters/nextjs.d.ts.map +1 -0
- package/dist/adapters/nextjs.js +412 -0
- package/dist/adapters/nextjs.js.map +1 -0
- package/dist/adapters/nuxt.d.ts +44 -0
- package/dist/adapters/nuxt.d.ts.map +1 -0
- package/dist/adapters/nuxt.js +243 -0
- package/dist/adapters/nuxt.js.map +1 -0
- package/dist/adapters/quarkus.d.ts +21 -0
- package/dist/adapters/quarkus.d.ts.map +1 -0
- package/dist/adapters/quarkus.js +395 -0
- package/dist/adapters/quarkus.js.map +1 -0
- package/dist/adapters/rails.d.ts +18 -0
- package/dist/adapters/rails.d.ts.map +1 -0
- package/dist/adapters/rails.js +363 -0
- package/dist/adapters/rails.js.map +1 -0
- package/dist/adapters/react.d.ts +18 -0
- package/dist/adapters/react.d.ts.map +1 -0
- package/dist/adapters/react.js +95 -0
- package/dist/adapters/react.js.map +1 -0
- package/dist/adapters/rocket.d.ts +19 -0
- package/dist/adapters/rocket.d.ts.map +1 -0
- package/dist/adapters/rocket.js +271 -0
- package/dist/adapters/rocket.js.map +1 -0
- package/dist/adapters/sinatra.d.ts +16 -0
- package/dist/adapters/sinatra.d.ts.map +1 -0
- package/dist/adapters/sinatra.js +114 -0
- package/dist/adapters/sinatra.js.map +1 -0
- package/dist/adapters/spring-boot.d.ts +24 -0
- package/dist/adapters/spring-boot.d.ts.map +1 -0
- package/dist/adapters/spring-boot.js +399 -0
- package/dist/adapters/spring-boot.js.map +1 -0
- package/dist/adapters/spring-kotlin.d.ts +19 -0
- package/dist/adapters/spring-kotlin.d.ts.map +1 -0
- package/dist/adapters/spring-kotlin.js +297 -0
- package/dist/adapters/spring-kotlin.js.map +1 -0
- package/dist/adapters/sqlalchemy.d.ts +28 -0
- package/dist/adapters/sqlalchemy.d.ts.map +1 -0
- package/dist/adapters/sqlalchemy.js +435 -0
- package/dist/adapters/sqlalchemy.js.map +1 -0
- package/dist/adapters/symfony.d.ts +16 -0
- package/dist/adapters/symfony.d.ts.map +1 -0
- package/dist/adapters/symfony.js +242 -0
- package/dist/adapters/symfony.js.map +1 -0
- package/dist/adapters/vapor.d.ts +21 -0
- package/dist/adapters/vapor.d.ts.map +1 -0
- package/dist/adapters/vapor.js +269 -0
- package/dist/adapters/vapor.js.map +1 -0
- package/dist/adapters/vue-preprocessor.d.ts +26 -0
- package/dist/adapters/vue-preprocessor.d.ts.map +1 -0
- package/dist/adapters/vue-preprocessor.js +82 -0
- package/dist/adapters/vue-preprocessor.js.map +1 -0
- package/dist/adapters/vue.d.ts +13 -0
- package/dist/adapters/vue.d.ts.map +1 -0
- package/dist/adapters/vue.js +134 -0
- package/dist/adapters/vue.js.map +1 -0
- package/dist/config/cli.d.ts +26 -0
- package/dist/config/cli.d.ts.map +1 -0
- package/dist/config/cli.js +291 -0
- package/dist/config/cli.js.map +1 -0
- package/dist/config/config-loader.d.ts +26 -0
- package/dist/config/config-loader.d.ts.map +1 -0
- package/dist/config/config-loader.js +168 -0
- package/dist/config/config-loader.js.map +1 -0
- package/dist/config/config-schema.d.ts +228 -0
- package/dist/config/config-schema.d.ts.map +1 -0
- package/dist/config/config-schema.js +400 -0
- package/dist/config/config-schema.js.map +1 -0
- package/dist/config/keys-cli.d.ts +37 -0
- package/dist/config/keys-cli.d.ts.map +1 -0
- package/dist/config/keys-cli.js +179 -0
- package/dist/config/keys-cli.js.map +1 -0
- package/dist/config/workspaces-cli.d.ts +2 -0
- package/dist/config/workspaces-cli.d.ts.map +1 -0
- package/dist/config/workspaces-cli.js +84 -0
- package/dist/config/workspaces-cli.js.map +1 -0
- package/dist/core/db/api-keys.d.ts +95 -0
- package/dist/core/db/api-keys.d.ts.map +1 -0
- package/dist/core/db/api-keys.js +293 -0
- package/dist/core/db/api-keys.js.map +1 -0
- package/dist/core/db/dep-store.d.ts +18 -0
- package/dist/core/db/dep-store.d.ts.map +1 -0
- package/dist/core/db/dep-store.js +155 -0
- package/dist/core/db/dep-store.js.map +1 -0
- package/dist/core/db/embedding-store.d.ts +40 -0
- package/dist/core/db/embedding-store.d.ts.map +1 -0
- package/dist/core/db/embedding-store.js +120 -0
- package/dist/core/db/embedding-store.js.map +1 -0
- package/dist/core/db/file-store.d.ts +27 -0
- package/dist/core/db/file-store.d.ts.map +1 -0
- package/dist/core/db/file-store.js +101 -0
- package/dist/core/db/file-store.js.map +1 -0
- package/dist/core/db/request-log.d.ts +40 -0
- package/dist/core/db/request-log.d.ts.map +1 -0
- package/dist/core/db/request-log.js +90 -0
- package/dist/core/db/request-log.js.map +1 -0
- package/dist/core/db/savings-store.d.ts +9 -0
- package/dist/core/db/savings-store.d.ts.map +1 -0
- package/dist/core/db/savings-store.js +64 -0
- package/dist/core/db/savings-store.js.map +1 -0
- package/dist/core/db/schema.d.ts +14 -0
- package/dist/core/db/schema.d.ts.map +1 -0
- package/dist/core/db/schema.js +235 -0
- package/dist/core/db/schema.js.map +1 -0
- package/dist/core/db/symbol-store.d.ts +64 -0
- package/dist/core/db/symbol-store.d.ts.map +1 -0
- package/dist/core/db/symbol-store.js +243 -0
- package/dist/core/db/symbol-store.js.map +1 -0
- package/dist/core/db/tenants.d.ts +91 -0
- package/dist/core/db/tenants.d.ts.map +1 -0
- package/dist/core/db/tenants.js +219 -0
- package/dist/core/db/tenants.js.map +1 -0
- package/dist/core/errors.d.ts +72 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +140 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/file-discovery.d.ts +17 -0
- package/dist/core/file-discovery.d.ts.map +1 -0
- package/dist/core/file-discovery.js +136 -0
- package/dist/core/file-discovery.js.map +1 -0
- package/dist/core/file-processor.d.ts +21 -0
- package/dist/core/file-processor.d.ts.map +1 -0
- package/dist/core/file-processor.js +110 -0
- package/dist/core/file-processor.js.map +1 -0
- package/dist/core/hash-cache.d.ts +18 -0
- package/dist/core/hash-cache.d.ts.map +1 -0
- package/dist/core/hash-cache.js +35 -0
- package/dist/core/hash-cache.js.map +1 -0
- package/dist/core/index-manager.d.ts +18 -0
- package/dist/core/index-manager.d.ts.map +1 -0
- package/dist/core/index-manager.js +461 -0
- package/dist/core/index-manager.js.map +1 -0
- package/dist/core/indexing-worker.d.ts +60 -0
- package/dist/core/indexing-worker.d.ts.map +1 -0
- package/dist/core/indexing-worker.js +128 -0
- package/dist/core/indexing-worker.js.map +1 -0
- package/dist/core/logger.d.ts +10 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +40 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/parse-dispatcher.d.ts +18 -0
- package/dist/core/parse-dispatcher.d.ts.map +1 -0
- package/dist/core/parse-dispatcher.js +74 -0
- package/dist/core/parse-dispatcher.js.map +1 -0
- package/dist/core/search/query-preprocessor.d.ts +22 -0
- package/dist/core/search/query-preprocessor.d.ts.map +1 -0
- package/dist/core/search/query-preprocessor.js +77 -0
- package/dist/core/search/query-preprocessor.js.map +1 -0
- package/dist/core/search/relevance-ranker.d.ts +34 -0
- package/dist/core/search/relevance-ranker.d.ts.map +1 -0
- package/dist/core/search/relevance-ranker.js +132 -0
- package/dist/core/search/relevance-ranker.js.map +1 -0
- package/dist/core/security.d.ts +40 -0
- package/dist/core/security.d.ts.map +1 -0
- package/dist/core/security.js +133 -0
- package/dist/core/security.js.map +1 -0
- package/dist/core/telemetry.d.ts +19 -0
- package/dist/core/telemetry.d.ts.map +1 -0
- package/dist/core/telemetry.js +101 -0
- package/dist/core/telemetry.js.map +1 -0
- package/dist/core/tenant-context.d.ts +22 -0
- package/dist/core/tenant-context.d.ts.map +1 -0
- package/dist/core/tenant-context.js +16 -0
- package/dist/core/tenant-context.js.map +1 -0
- package/dist/core/token-tracker.d.ts +39 -0
- package/dist/core/token-tracker.d.ts.map +1 -0
- package/dist/core/token-tracker.js +153 -0
- package/dist/core/token-tracker.js.map +1 -0
- package/dist/core/types.d.ts +145 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/watcher/file-watcher.d.ts +18 -0
- package/dist/core/watcher/file-watcher.d.ts.map +1 -0
- package/dist/core/watcher/file-watcher.js +123 -0
- package/dist/core/watcher/file-watcher.js.map +1 -0
- package/dist/core/worker-pool.d.ts +24 -0
- package/dist/core/worker-pool.d.ts.map +1 -0
- package/dist/core/worker-pool.js +92 -0
- package/dist/core/worker-pool.js.map +1 -0
- package/dist/graph/graph-builder.d.ts +16 -0
- package/dist/graph/graph-builder.d.ts.map +1 -0
- package/dist/graph/graph-builder.js +51 -0
- package/dist/graph/graph-builder.js.map +1 -0
- package/dist/graph/graph-traversal.d.ts +57 -0
- package/dist/graph/graph-traversal.d.ts.map +1 -0
- package/dist/graph/graph-traversal.js +144 -0
- package/dist/graph/graph-traversal.js.map +1 -0
- package/dist/graph/path-resolver.d.ts +13 -0
- package/dist/graph/path-resolver.d.ts.map +1 -0
- package/dist/graph/path-resolver.js +161 -0
- package/dist/graph/path-resolver.js.map +1 -0
- package/dist/handlers/c.d.ts +3 -0
- package/dist/handlers/c.d.ts.map +1 -0
- package/dist/handlers/c.js +473 -0
- package/dist/handlers/c.js.map +1 -0
- package/dist/handlers/cpp.d.ts +3 -0
- package/dist/handlers/cpp.d.ts.map +1 -0
- package/dist/handlers/cpp.js +682 -0
- package/dist/handlers/cpp.js.map +1 -0
- package/dist/handlers/csharp.d.ts +3 -0
- package/dist/handlers/csharp.d.ts.map +1 -0
- package/dist/handlers/csharp.js +369 -0
- package/dist/handlers/csharp.js.map +1 -0
- package/dist/handlers/dart.d.ts +3 -0
- package/dist/handlers/dart.d.ts.map +1 -0
- package/dist/handlers/dart.js +596 -0
- package/dist/handlers/dart.js.map +1 -0
- package/dist/handlers/elixir.d.ts +8 -0
- package/dist/handlers/elixir.d.ts.map +1 -0
- package/dist/handlers/elixir.js +412 -0
- package/dist/handlers/elixir.js.map +1 -0
- package/dist/handlers/go.d.ts +3 -0
- package/dist/handlers/go.d.ts.map +1 -0
- package/dist/handlers/go.js +262 -0
- package/dist/handlers/go.js.map +1 -0
- package/dist/handlers/handler-registry.d.ts +20 -0
- package/dist/handlers/handler-registry.d.ts.map +1 -0
- package/dist/handlers/handler-registry.js +69 -0
- package/dist/handlers/handler-registry.js.map +1 -0
- package/dist/handlers/haskell.d.ts +17 -0
- package/dist/handlers/haskell.d.ts.map +1 -0
- package/dist/handlers/haskell.js +356 -0
- package/dist/handlers/haskell.js.map +1 -0
- package/dist/handlers/java.d.ts +3 -0
- package/dist/handlers/java.d.ts.map +1 -0
- package/dist/handlers/java.js +350 -0
- package/dist/handlers/java.js.map +1 -0
- package/dist/handlers/javascript.d.ts +3 -0
- package/dist/handlers/javascript.d.ts.map +1 -0
- package/dist/handlers/javascript.js +232 -0
- package/dist/handlers/javascript.js.map +1 -0
- package/dist/handlers/kotlin.d.ts +3 -0
- package/dist/handlers/kotlin.d.ts.map +1 -0
- package/dist/handlers/kotlin.js +317 -0
- package/dist/handlers/kotlin.js.map +1 -0
- package/dist/handlers/lua.d.ts +3 -0
- package/dist/handlers/lua.d.ts.map +1 -0
- package/dist/handlers/lua.js +328 -0
- package/dist/handlers/lua.js.map +1 -0
- package/dist/handlers/php.d.ts +3 -0
- package/dist/handlers/php.d.ts.map +1 -0
- package/dist/handlers/php.js +343 -0
- package/dist/handlers/php.js.map +1 -0
- package/dist/handlers/python.d.ts +3 -0
- package/dist/handlers/python.d.ts.map +1 -0
- package/dist/handlers/python.js +343 -0
- package/dist/handlers/python.js.map +1 -0
- package/dist/handlers/r.d.ts +9 -0
- package/dist/handlers/r.d.ts.map +1 -0
- package/dist/handlers/r.js +452 -0
- package/dist/handlers/r.js.map +1 -0
- package/dist/handlers/ruby.d.ts +8 -0
- package/dist/handlers/ruby.d.ts.map +1 -0
- package/dist/handlers/ruby.js +271 -0
- package/dist/handlers/ruby.js.map +1 -0
- package/dist/handlers/rust.d.ts +3 -0
- package/dist/handlers/rust.d.ts.map +1 -0
- package/dist/handlers/rust.js +420 -0
- package/dist/handlers/rust.js.map +1 -0
- package/dist/handlers/scala.d.ts +9 -0
- package/dist/handlers/scala.d.ts.map +1 -0
- package/dist/handlers/scala.js +480 -0
- package/dist/handlers/scala.js.map +1 -0
- package/dist/handlers/swift.d.ts +3 -0
- package/dist/handlers/swift.d.ts.map +1 -0
- package/dist/handlers/swift.js +553 -0
- package/dist/handlers/swift.js.map +1 -0
- package/dist/handlers/typescript.d.ts +4 -0
- package/dist/handlers/typescript.d.ts.map +1 -0
- package/dist/handlers/typescript.js +325 -0
- package/dist/handlers/typescript.js.map +1 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +266 -0
- package/dist/index.js.map +1 -0
- package/dist/semantic/embedding-provider.d.ts +66 -0
- package/dist/semantic/embedding-provider.d.ts.map +1 -0
- package/dist/semantic/embedding-provider.js +176 -0
- package/dist/semantic/embedding-provider.js.map +1 -0
- package/dist/semantic/hnsw-index.d.ts +96 -0
- package/dist/semantic/hnsw-index.d.ts.map +1 -0
- package/dist/semantic/hnsw-index.js +364 -0
- package/dist/semantic/hnsw-index.js.map +1 -0
- package/dist/semantic/hybrid-search.d.ts +46 -0
- package/dist/semantic/hybrid-search.d.ts.map +1 -0
- package/dist/semantic/hybrid-search.js +164 -0
- package/dist/semantic/hybrid-search.js.map +1 -0
- package/dist/semantic/query-expansion.d.ts +25 -0
- package/dist/semantic/query-expansion.d.ts.map +1 -0
- package/dist/semantic/query-expansion.js +150 -0
- package/dist/semantic/query-expansion.js.map +1 -0
- package/dist/semantic/semantic-indexer.d.ts +64 -0
- package/dist/semantic/semantic-indexer.d.ts.map +1 -0
- package/dist/semantic/semantic-indexer.js +162 -0
- package/dist/semantic/semantic-indexer.js.map +1 -0
- package/dist/semantic/text-preparation.d.ts +23 -0
- package/dist/semantic/text-preparation.d.ts.map +1 -0
- package/dist/semantic/text-preparation.js +56 -0
- package/dist/semantic/text-preparation.js.map +1 -0
- package/dist/semantic/vector-store.d.ts +81 -0
- package/dist/semantic/vector-store.d.ts.map +1 -0
- package/dist/semantic/vector-store.js +157 -0
- package/dist/semantic/vector-store.js.map +1 -0
- package/dist/server/admin-api.d.ts +88 -0
- package/dist/server/admin-api.d.ts.map +1 -0
- package/dist/server/admin-api.js +661 -0
- package/dist/server/admin-api.js.map +1 -0
- package/dist/server/auth/api-key.d.ts +105 -0
- package/dist/server/auth/api-key.d.ts.map +1 -0
- package/dist/server/auth/api-key.js +276 -0
- package/dist/server/auth/api-key.js.map +1 -0
- package/dist/server/http-server.d.ts +100 -0
- package/dist/server/http-server.d.ts.map +1 -0
- package/dist/server/http-server.js +823 -0
- package/dist/server/http-server.js.map +1 -0
- package/dist/server/mcp-server.d.ts +23 -0
- package/dist/server/mcp-server.d.ts.map +1 -0
- package/dist/server/mcp-server.js +214 -0
- package/dist/server/mcp-server.js.map +1 -0
- package/dist/server/rate-limit-store.d.ts +25 -0
- package/dist/server/rate-limit-store.d.ts.map +1 -0
- package/dist/server/rate-limit-store.js +46 -0
- package/dist/server/rate-limit-store.js.map +1 -0
- package/dist/server/rate-limiter.d.ts +59 -0
- package/dist/server/rate-limiter.d.ts.map +1 -0
- package/dist/server/rate-limiter.js +85 -0
- package/dist/server/rate-limiter.js.map +1 -0
- package/dist/server/tools/_meta.d.ts +24 -0
- package/dist/server/tools/_meta.d.ts.map +1 -0
- package/dist/server/tools/_meta.js +35 -0
- package/dist/server/tools/_meta.js.map +1 -0
- package/dist/server/tools/find-dead-code.d.ts +11 -0
- package/dist/server/tools/find-dead-code.d.ts.map +1 -0
- package/dist/server/tools/find-dead-code.js +45 -0
- package/dist/server/tools/find-dead-code.js.map +1 -0
- package/dist/server/tools/find-importers.d.ts +13 -0
- package/dist/server/tools/find-importers.d.ts.map +1 -0
- package/dist/server/tools/find-importers.js +46 -0
- package/dist/server/tools/find-importers.js.map +1 -0
- package/dist/server/tools/get-blast-radius.d.ts +15 -0
- package/dist/server/tools/get-blast-radius.d.ts.map +1 -0
- package/dist/server/tools/get-blast-radius.js +51 -0
- package/dist/server/tools/get-blast-radius.js.map +1 -0
- package/dist/server/tools/get-context-bundle.d.ts +15 -0
- package/dist/server/tools/get-context-bundle.d.ts.map +1 -0
- package/dist/server/tools/get-context-bundle.js +53 -0
- package/dist/server/tools/get-context-bundle.js.map +1 -0
- package/dist/server/tools/get-file-outline.d.ts +13 -0
- package/dist/server/tools/get-file-outline.d.ts.map +1 -0
- package/dist/server/tools/get-file-outline.js +42 -0
- package/dist/server/tools/get-file-outline.js.map +1 -0
- package/dist/server/tools/get-file-tree.d.ts +11 -0
- package/dist/server/tools/get-file-tree.d.ts.map +1 -0
- package/dist/server/tools/get-file-tree.js +63 -0
- package/dist/server/tools/get-file-tree.js.map +1 -0
- package/dist/server/tools/get-graph.d.ts +46 -0
- package/dist/server/tools/get-graph.d.ts.map +1 -0
- package/dist/server/tools/get-graph.js +168 -0
- package/dist/server/tools/get-graph.js.map +1 -0
- package/dist/server/tools/get-layer-violations.d.ts +37 -0
- package/dist/server/tools/get-layer-violations.d.ts.map +1 -0
- package/dist/server/tools/get-layer-violations.js +138 -0
- package/dist/server/tools/get-layer-violations.js.map +1 -0
- package/dist/server/tools/get-repo-outline.d.ts +13 -0
- package/dist/server/tools/get-repo-outline.d.ts.map +1 -0
- package/dist/server/tools/get-repo-outline.js +72 -0
- package/dist/server/tools/get-repo-outline.js.map +1 -0
- package/dist/server/tools/get-savings-stats.d.ts +11 -0
- package/dist/server/tools/get-savings-stats.d.ts.map +1 -0
- package/dist/server/tools/get-savings-stats.js +56 -0
- package/dist/server/tools/get-savings-stats.js.map +1 -0
- package/dist/server/tools/get-symbol-source.d.ts +13 -0
- package/dist/server/tools/get-symbol-source.d.ts.map +1 -0
- package/dist/server/tools/get-symbol-source.js +93 -0
- package/dist/server/tools/get-symbol-source.js.map +1 -0
- package/dist/server/tools/index-folder.d.ts +15 -0
- package/dist/server/tools/index-folder.d.ts.map +1 -0
- package/dist/server/tools/index-folder.js +45 -0
- package/dist/server/tools/index-folder.js.map +1 -0
- package/dist/server/tools/index-repo.d.ts +26 -0
- package/dist/server/tools/index-repo.d.ts.map +1 -0
- package/dist/server/tools/index-repo.js +164 -0
- package/dist/server/tools/index-repo.js.map +1 -0
- package/dist/server/tools/list-repos.d.ts +11 -0
- package/dist/server/tools/list-repos.d.ts.map +1 -0
- package/dist/server/tools/list-repos.js +60 -0
- package/dist/server/tools/list-repos.js.map +1 -0
- package/dist/server/tools/resolve-repo.d.ts +11 -0
- package/dist/server/tools/resolve-repo.d.ts.map +1 -0
- package/dist/server/tools/resolve-repo.js +44 -0
- package/dist/server/tools/resolve-repo.js.map +1 -0
- package/dist/server/tools/search-semantic.d.ts +56 -0
- package/dist/server/tools/search-semantic.d.ts.map +1 -0
- package/dist/server/tools/search-semantic.js +187 -0
- package/dist/server/tools/search-semantic.js.map +1 -0
- package/dist/server/tools/search-symbols.d.ts +43 -0
- package/dist/server/tools/search-symbols.d.ts.map +1 -0
- package/dist/server/tools/search-symbols.js +197 -0
- package/dist/server/tools/search-symbols.js.map +1 -0
- package/dist/server/tools/search-text.d.ts +21 -0
- package/dist/server/tools/search-text.d.ts.map +1 -0
- package/dist/server/tools/search-text.js +131 -0
- package/dist/server/tools/search-text.js.map +1 -0
- package/dist/server/transport.d.ts +59 -0
- package/dist/server/transport.d.ts.map +1 -0
- package/dist/server/transport.js +92 -0
- package/dist/server/transport.js.map +1 -0
- package/dist/summarizer/ai-summarizer.d.ts +71 -0
- package/dist/summarizer/ai-summarizer.d.ts.map +1 -0
- package/dist/summarizer/ai-summarizer.js +228 -0
- package/dist/summarizer/ai-summarizer.js.map +1 -0
- package/dist/summarizer/docstring-extractor.d.ts +9 -0
- package/dist/summarizer/docstring-extractor.d.ts.map +1 -0
- package/dist/summarizer/docstring-extractor.js +89 -0
- package/dist/summarizer/docstring-extractor.js.map +1 -0
- package/dist/summarizer/embeddings.d.ts +29 -0
- package/dist/summarizer/embeddings.d.ts.map +1 -0
- package/dist/summarizer/embeddings.js +133 -0
- package/dist/summarizer/embeddings.js.map +1 -0
- package/dist/summarizer/summarizer.d.ts +22 -0
- package/dist/summarizer/summarizer.d.ts.map +1 -0
- package/dist/summarizer/summarizer.js +86 -0
- package/dist/summarizer/summarizer.js.map +1 -0
- package/dist/ui/assets/BlastRadius-ccQ3ktbv.js +1 -0
- package/dist/ui/assets/DependencyGraph-BZV40eAE.css +1 -0
- package/dist/ui/assets/DependencyGraph-Ca84q89b.js +27 -0
- package/dist/ui/assets/NotFound-C1wVKP-6.js +1 -0
- package/dist/ui/assets/RepoDetail-B_8qid2Y.js +1 -0
- package/dist/ui/assets/RepoList-BuPu-ODM.js +1 -0
- package/dist/ui/assets/Search-BzZ9Og8E.js +1 -0
- package/dist/ui/assets/SymbolView-FdpKlzql.js +14 -0
- package/dist/ui/assets/client-BANW_tIp.js +1 -0
- package/dist/ui/assets/index-CnwwQi_S.js +61 -0
- package/dist/ui/assets/index-SS2IXr8I.css +1 -0
- package/dist/ui/assets/repoStore-SbGR6YI6.js +1 -0
- package/dist/ui/assets/useSearch-DHyve22h.js +1 -0
- package/dist/ui/index.html +13 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/grammars/tree-sitter-c.wasm +0 -0
- package/grammars/tree-sitter-cpp.wasm +0 -0
- package/grammars/tree-sitter-csharp.wasm +0 -0
- package/grammars/tree-sitter-dart.wasm +0 -0
- package/grammars/tree-sitter-elixir.wasm +0 -0
- package/grammars/tree-sitter-go.wasm +0 -0
- package/grammars/tree-sitter-haskell.wasm +0 -0
- package/grammars/tree-sitter-java.wasm +0 -0
- package/grammars/tree-sitter-javascript.wasm +0 -0
- package/grammars/tree-sitter-kotlin.wasm +0 -0
- package/grammars/tree-sitter-lua.wasm +0 -0
- package/grammars/tree-sitter-php.wasm +0 -0
- package/grammars/tree-sitter-python.wasm +0 -0
- package/grammars/tree-sitter-r.wasm +0 -0
- package/grammars/tree-sitter-ruby.wasm +0 -0
- package/grammars/tree-sitter-rust.wasm +0 -0
- package/grammars/tree-sitter-scala.wasm +0 -0
- package/grammars/tree-sitter-swift.wasm +0 -0
- package/grammars/tree-sitter-tsx.wasm +0 -0
- package/grammars/tree-sitter-typescript.wasm +0 -0
- package/package.json +104 -0
- package/scripts/check-sqlite.js +41 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import{d as va,e as Ao,g as ba,R as _a,r as D,j as _,a as Na,L as Ea}from"./index-CnwwQi_S.js";import{a as Sa}from"./client-BANW_tIp.js";va();function it(t){if(typeof t=="string"||typeof t=="number")return""+t;let e="";if(Array.isArray(t))for(let n=0,r;n<t.length;n++)(r=it(t[n]))!==""&&(e+=(e&&" ")+r);else for(let n in t)t[n]&&(e+=(e&&" ")+n);return e}var Ma={value:()=>{}};function _e(){for(var t=0,e=arguments.length,n={},r;t<e;++t){if(!(r=arguments[t]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new Be(n)}function Be(t){this._=t}function Ca(t,e){return t.trim().split(/^|\s+/).map(function(n){var r="",o=n.indexOf(".");if(o>=0&&(r=n.slice(o+1),n=n.slice(0,o)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}Be.prototype=_e.prototype={constructor:Be,on:function(t,e){var n=this._,r=Ca(t+"",n),o,i=-1,s=r.length;if(arguments.length<2){for(;++i<s;)if((o=(t=r[i]).type)&&(o=ka(n[o],t.name)))return o;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++i<s;)if(o=(t=r[i]).type)n[o]=wr(n[o],t.name,e);else if(e==null)for(o in n)n[o]=wr(n[o],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new Be(t)},call:function(t,e){if((o=arguments.length-2)>0)for(var n=new Array(o),r=0,o,i;r<o;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(i=this._[t],r=0,o=i.length;r<o;++r)i[r].value.apply(e,n)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],o=0,i=r.length;o<i;++o)r[o].value.apply(e,n)}};function ka(t,e){for(var n=0,r=t.length,o;n<r;++n)if((o=t[n]).name===e)return o.value}function wr(t,e,n){for(var r=0,o=t.length;r<o;++r)if(t[r].name===e){t[r]=Ma,t=t.slice(0,r).concat(t.slice(r+1));break}return n!=null&&t.push({name:e,value:n}),t}var In="http://www.w3.org/1999/xhtml";const vr={svg:"http://www.w3.org/2000/svg",xhtml:In,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function nn(t){var e=t+="",n=e.indexOf(":");return n>=0&&(e=t.slice(0,n))!=="xmlns"&&(t=t.slice(n+1)),vr.hasOwnProperty(e)?{space:vr[e],local:t}:t}function Aa(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===In&&e.documentElement.namespaceURI===In?e.createElement(t):e.createElementNS(n,t)}}function Ia(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Io(t){var e=nn(t);return(e.local?Ia:Aa)(e)}function $a(){}function Yn(t){return t==null?$a:function(){return this.querySelector(t)}}function Pa(t){typeof t!="function"&&(t=Yn(t));for(var e=this._groups,n=e.length,r=new Array(n),o=0;o<n;++o)for(var i=e[o],s=i.length,a=r[o]=new Array(s),l,c,f=0;f<s;++f)(l=i[f])&&(c=t.call(l,l.__data__,f,i))&&("__data__"in l&&(c.__data__=l.__data__),a[f]=c);return new ft(r,this._parents)}function Ta(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function za(){return[]}function $o(t){return t==null?za:function(){return this.querySelectorAll(t)}}function Da(t){return function(){return Ta(t.apply(this,arguments))}}function La(t){typeof t=="function"?t=Da(t):t=$o(t);for(var e=this._groups,n=e.length,r=[],o=[],i=0;i<n;++i)for(var s=e[i],a=s.length,l,c=0;c<a;++c)(l=s[c])&&(r.push(t.call(l,l.__data__,c,s)),o.push(l));return new ft(r,o)}function Po(t){return function(){return this.matches(t)}}function To(t){return function(e){return e.matches(t)}}var ja=Array.prototype.find;function Ra(t){return function(){return ja.call(this.children,t)}}function Ha(){return this.firstElementChild}function Va(t){return this.select(t==null?Ha:Ra(typeof t=="function"?t:To(t)))}var Ba=Array.prototype.filter;function Fa(){return Array.from(this.children)}function Oa(t){return function(){return Ba.call(this.children,t)}}function Xa(t){return this.selectAll(t==null?Fa:Oa(typeof t=="function"?t:To(t)))}function Ya(t){typeof t!="function"&&(t=Po(t));for(var e=this._groups,n=e.length,r=new Array(n),o=0;o<n;++o)for(var i=e[o],s=i.length,a=r[o]=[],l,c=0;c<s;++c)(l=i[c])&&t.call(l,l.__data__,c,i)&&a.push(l);return new ft(r,this._parents)}function zo(t){return new Array(t.length)}function Wa(){return new ft(this._enter||this._groups.map(zo),this._parents)}function We(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}We.prototype={constructor:We,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function Ga(t){return function(){return t}}function qa(t,e,n,r,o,i){for(var s=0,a,l=e.length,c=i.length;s<c;++s)(a=e[s])?(a.__data__=i[s],r[s]=a):n[s]=new We(t,i[s]);for(;s<l;++s)(a=e[s])&&(o[s]=a)}function Za(t,e,n,r,o,i,s){var a,l,c=new Map,f=e.length,u=i.length,d=new Array(f),h;for(a=0;a<f;++a)(l=e[a])&&(d[a]=h=s.call(l,l.__data__,a,e)+"",c.has(h)?o[a]=l:c.set(h,l));for(a=0;a<u;++a)h=s.call(t,i[a],a,i)+"",(l=c.get(h))?(r[a]=l,l.__data__=i[a],c.delete(h)):n[a]=new We(t,i[a]);for(a=0;a<f;++a)(l=e[a])&&c.get(d[a])===l&&(o[a]=l)}function Ua(t){return t.__data__}function Ka(t,e){if(!arguments.length)return Array.from(this,Ua);var n=e?Za:qa,r=this._parents,o=this._groups;typeof t!="function"&&(t=Ga(t));for(var i=o.length,s=new Array(i),a=new Array(i),l=new Array(i),c=0;c<i;++c){var f=r[c],u=o[c],d=u.length,h=Qa(t.call(f,f&&f.__data__,c,r)),g=h.length,y=a[c]=new Array(g),p=s[c]=new Array(g),m=l[c]=new Array(d);n(f,u,y,p,m,h,e);for(var v=0,x=0,w,E;v<g;++v)if(w=y[v]){for(v>=x&&(x=v+1);!(E=p[x])&&++x<g;);w._next=E||null}}return s=new ft(s,r),s._enter=a,s._exit=l,s}function Qa(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function Ja(){return new ft(this._exit||this._groups.map(zo),this._parents)}function tc(t,e,n){var r=this.enter(),o=this,i=this.exit();return typeof t=="function"?(r=t(r),r&&(r=r.selection())):r=r.append(t+""),e!=null&&(o=e(o),o&&(o=o.selection())),n==null?i.remove():n(i),r&&o?r.merge(o).order():o}function ec(t){for(var e=t.selection?t.selection():t,n=this._groups,r=e._groups,o=n.length,i=r.length,s=Math.min(o,i),a=new Array(o),l=0;l<s;++l)for(var c=n[l],f=r[l],u=c.length,d=a[l]=new Array(u),h,g=0;g<u;++g)(h=c[g]||f[g])&&(d[g]=h);for(;l<o;++l)a[l]=n[l];return new ft(a,this._parents)}function nc(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r=t[e],o=r.length-1,i=r[o],s;--o>=0;)(s=r[o])&&(i&&s.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(s,i),i=s);return this}function rc(t){t||(t=oc);function e(u,d){return u&&d?t(u.__data__,d.__data__):!u-!d}for(var n=this._groups,r=n.length,o=new Array(r),i=0;i<r;++i){for(var s=n[i],a=s.length,l=o[i]=new Array(a),c,f=0;f<a;++f)(c=s[f])&&(l[f]=c);l.sort(e)}return new ft(o,this._parents).order()}function oc(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function ic(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function sc(){return Array.from(this)}function ac(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],o=0,i=r.length;o<i;++o){var s=r[o];if(s)return s}return null}function cc(){let t=0;for(const e of this)++t;return t}function lc(){return!this.node()}function uc(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var o=e[n],i=0,s=o.length,a;i<s;++i)(a=o[i])&&t.call(a,a.__data__,i,o);return this}function fc(t){return function(){this.removeAttribute(t)}}function dc(t){return function(){this.removeAttributeNS(t.space,t.local)}}function hc(t,e){return function(){this.setAttribute(t,e)}}function gc(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function pc(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttribute(t):this.setAttribute(t,n)}}function mc(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function yc(t,e){var n=nn(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((e==null?n.local?dc:fc:typeof e=="function"?n.local?mc:pc:n.local?gc:hc)(n,e))}function Do(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function xc(t){return function(){this.style.removeProperty(t)}}function wc(t,e,n){return function(){this.style.setProperty(t,e,n)}}function vc(t,e,n){return function(){var r=e.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function bc(t,e,n){return arguments.length>1?this.each((e==null?xc:typeof e=="function"?vc:wc)(t,e,n??"")):qt(this.node(),t)}function qt(t,e){return t.style.getPropertyValue(e)||Do(t).getComputedStyle(t,null).getPropertyValue(e)}function _c(t){return function(){delete this[t]}}function Nc(t,e){return function(){this[t]=e}}function Ec(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function Sc(t,e){return arguments.length>1?this.each((e==null?_c:typeof e=="function"?Ec:Nc)(t,e)):this.node()[t]}function Lo(t){return t.trim().split(/^|\s+/)}function Wn(t){return t.classList||new jo(t)}function jo(t){this._node=t,this._names=Lo(t.getAttribute("class")||"")}jo.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function Ro(t,e){for(var n=Wn(t),r=-1,o=e.length;++r<o;)n.add(e[r])}function Ho(t,e){for(var n=Wn(t),r=-1,o=e.length;++r<o;)n.remove(e[r])}function Mc(t){return function(){Ro(this,t)}}function Cc(t){return function(){Ho(this,t)}}function kc(t,e){return function(){(e.apply(this,arguments)?Ro:Ho)(this,t)}}function Ac(t,e){var n=Lo(t+"");if(arguments.length<2){for(var r=Wn(this.node()),o=-1,i=n.length;++o<i;)if(!r.contains(n[o]))return!1;return!0}return this.each((typeof e=="function"?kc:e?Mc:Cc)(n,e))}function Ic(){this.textContent=""}function $c(t){return function(){this.textContent=t}}function Pc(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function Tc(t){return arguments.length?this.each(t==null?Ic:(typeof t=="function"?Pc:$c)(t)):this.node().textContent}function zc(){this.innerHTML=""}function Dc(t){return function(){this.innerHTML=t}}function Lc(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function jc(t){return arguments.length?this.each(t==null?zc:(typeof t=="function"?Lc:Dc)(t)):this.node().innerHTML}function Rc(){this.nextSibling&&this.parentNode.appendChild(this)}function Hc(){return this.each(Rc)}function Vc(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Bc(){return this.each(Vc)}function Fc(t){var e=typeof t=="function"?t:Io(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}function Oc(){return null}function Xc(t,e){var n=typeof t=="function"?t:Io(t),r=e==null?Oc:typeof e=="function"?e:Yn(e);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Yc(){var t=this.parentNode;t&&t.removeChild(this)}function Wc(){return this.each(Yc)}function Gc(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function qc(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Zc(t){return this.select(t?qc:Gc)}function Uc(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Kc(t){return function(e){t.call(this,e,this.__data__)}}function Qc(t){return t.trim().split(/^|\s+/).map(function(e){var n="",r=e.indexOf(".");return r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),{type:e,name:n}})}function Jc(t){return function(){var e=this.__on;if(e){for(var n=0,r=-1,o=e.length,i;n<o;++n)i=e[n],(!t.type||i.type===t.type)&&i.name===t.name?this.removeEventListener(i.type,i.listener,i.options):e[++r]=i;++r?e.length=r:delete this.__on}}}function tl(t,e,n){return function(){var r=this.__on,o,i=Kc(e);if(r){for(var s=0,a=r.length;s<a;++s)if((o=r[s]).type===t.type&&o.name===t.name){this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=i,o.options=n),o.value=e;return}}this.addEventListener(t.type,i,n),o={type:t.type,name:t.name,value:e,listener:i,options:n},r?r.push(o):this.__on=[o]}}function el(t,e,n){var r=Qc(t+""),o,i=r.length,s;if(arguments.length<2){var a=this.node().__on;if(a){for(var l=0,c=a.length,f;l<c;++l)for(o=0,f=a[l];o<i;++o)if((s=r[o]).type===f.type&&s.name===f.name)return f.value}return}for(a=e?tl:Jc,o=0;o<i;++o)this.each(a(r[o],e,n));return this}function Vo(t,e,n){var r=Do(t),o=r.CustomEvent;typeof o=="function"?o=new o(e,n):(o=r.document.createEvent("Event"),n?(o.initEvent(e,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(e,!1,!1)),t.dispatchEvent(o)}function nl(t,e){return function(){return Vo(this,t,e)}}function rl(t,e){return function(){return Vo(this,t,e.apply(this,arguments))}}function ol(t,e){return this.each((typeof e=="function"?rl:nl)(t,e))}function*il(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],o=0,i=r.length,s;o<i;++o)(s=r[o])&&(yield s)}var Bo=[null];function ft(t,e){this._groups=t,this._parents=e}function Ne(){return new ft([[document.documentElement]],Bo)}function sl(){return this}ft.prototype=Ne.prototype={constructor:ft,select:Pa,selectAll:La,selectChild:Va,selectChildren:Xa,filter:Ya,data:Ka,enter:Wa,exit:Ja,join:tc,merge:ec,selection:sl,order:nc,sort:rc,call:ic,nodes:sc,node:ac,size:cc,empty:lc,each:uc,attr:yc,style:bc,property:Sc,classed:Ac,text:Tc,html:jc,raise:Hc,lower:Bc,append:Fc,insert:Xc,remove:Wc,clone:Zc,datum:Uc,on:el,dispatch:ol,[Symbol.iterator]:il};function ut(t){return typeof t=="string"?new ft([[document.querySelector(t)]],[document.documentElement]):new ft([[t]],Bo)}function al(t){let e;for(;e=t.sourceEvent;)t=e;return t}function dt(t,e){if(t=al(t),e===void 0&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,r=r.matrixTransform(e.getScreenCTM().inverse()),[r.x,r.y]}if(e.getBoundingClientRect){var o=e.getBoundingClientRect();return[t.clientX-o.left-e.clientLeft,t.clientY-o.top-e.clientTop]}}return[t.pageX,t.pageY]}const cl={passive:!1},de={capture:!0,passive:!1};function yn(t){t.stopImmediatePropagation()}function Wt(t){t.preventDefault(),t.stopImmediatePropagation()}function Fo(t){var e=t.document.documentElement,n=ut(t).on("dragstart.drag",Wt,de);"onselectstart"in e?n.on("selectstart.drag",Wt,de):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function Oo(t,e){var n=t.document.documentElement,r=ut(t).on("dragstart.drag",null);e&&(r.on("click.drag",Wt,de),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const Pe=t=>()=>t;function $n(t,{sourceEvent:e,subject:n,target:r,identifier:o,active:i,x:s,y:a,dx:l,dy:c,dispatch:f}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:s,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:f}})}$n.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function ll(t){return!t.ctrlKey&&!t.button}function ul(){return this.parentNode}function fl(t,e){return e??{x:t.x,y:t.y}}function dl(){return navigator.maxTouchPoints||"ontouchstart"in this}function Xo(){var t=ll,e=ul,n=fl,r=dl,o={},i=_e("start","drag","end"),s=0,a,l,c,f,u=0;function d(w){w.on("mousedown.drag",h).filter(r).on("touchstart.drag",p).on("touchmove.drag",m,cl).on("touchend.drag touchcancel.drag",v).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(w,E){if(!(f||!t.call(this,w,E))){var N=x(this,e.call(this,w,E),w,E,"mouse");N&&(ut(w.view).on("mousemove.drag",g,de).on("mouseup.drag",y,de),Fo(w.view),yn(w),c=!1,a=w.clientX,l=w.clientY,N("start",w))}}function g(w){if(Wt(w),!c){var E=w.clientX-a,N=w.clientY-l;c=E*E+N*N>u}o.mouse("drag",w)}function y(w){ut(w.view).on("mousemove.drag mouseup.drag",null),Oo(w.view,c),Wt(w),o.mouse("end",w)}function p(w,E){if(t.call(this,w,E)){var N=w.changedTouches,S=e.call(this,w,E),A=N.length,$,j;for($=0;$<A;++$)(j=x(this,S,w,E,N[$].identifier,N[$]))&&(yn(w),j("start",w,N[$]))}}function m(w){var E=w.changedTouches,N=E.length,S,A;for(S=0;S<N;++S)(A=o[E[S].identifier])&&(Wt(w),A("drag",w,E[S]))}function v(w){var E=w.changedTouches,N=E.length,S,A;for(f&&clearTimeout(f),f=setTimeout(function(){f=null},500),S=0;S<N;++S)(A=o[E[S].identifier])&&(yn(w),A("end",w,E[S]))}function x(w,E,N,S,A,$){var j=i.copy(),k=dt($||N,E),z,H,b;if((b=n.call(w,new $n("beforestart",{sourceEvent:N,target:d,identifier:A,active:s,x:k[0],y:k[1],dx:0,dy:0,dispatch:j}),S))!=null)return z=b.x-k[0]||0,H=b.y-k[1]||0,function P(M,T,I){var C=k,L;switch(M){case"start":o[A]=P,L=s++;break;case"end":delete o[A],--s;case"drag":k=dt(I||T,E),L=s;break}j.call(M,w,new $n(M,{sourceEvent:T,subject:b,target:d,identifier:A,active:L,x:k[0]+z,y:k[1]+H,dx:k[0]-C[0],dy:k[1]-C[1],dispatch:j}),S)}}return d.filter=function(w){return arguments.length?(t=typeof w=="function"?w:Pe(!!w),d):t},d.container=function(w){return arguments.length?(e=typeof w=="function"?w:Pe(w),d):e},d.subject=function(w){return arguments.length?(n=typeof w=="function"?w:Pe(w),d):n},d.touchable=function(w){return arguments.length?(r=typeof w=="function"?w:Pe(!!w),d):r},d.on=function(){var w=i.on.apply(i,arguments);return w===i?d:w},d.clickDistance=function(w){return arguments.length?(u=(w=+w)*w,d):Math.sqrt(u)},d}function Gn(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Yo(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function Ee(){}var he=.7,Ge=1/he,Gt="\\s*([+-]?\\d+)\\s*",ge="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",xt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",hl=/^#([0-9a-f]{3,8})$/,gl=new RegExp(`^rgb\\(${Gt},${Gt},${Gt}\\)$`),pl=new RegExp(`^rgb\\(${xt},${xt},${xt}\\)$`),ml=new RegExp(`^rgba\\(${Gt},${Gt},${Gt},${ge}\\)$`),yl=new RegExp(`^rgba\\(${xt},${xt},${xt},${ge}\\)$`),xl=new RegExp(`^hsl\\(${ge},${xt},${xt}\\)$`),wl=new RegExp(`^hsla\\(${ge},${xt},${xt},${ge}\\)$`),br={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Gn(Ee,Rt,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:_r,formatHex:_r,formatHex8:vl,formatHsl:bl,formatRgb:Nr,toString:Nr});function _r(){return this.rgb().formatHex()}function vl(){return this.rgb().formatHex8()}function bl(){return Wo(this).formatHsl()}function Nr(){return this.rgb().formatRgb()}function Rt(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=hl.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?Er(e):n===3?new lt(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?Te(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?Te(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=gl.exec(t))?new lt(e[1],e[2],e[3],1):(e=pl.exec(t))?new lt(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=ml.exec(t))?Te(e[1],e[2],e[3],e[4]):(e=yl.exec(t))?Te(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=xl.exec(t))?Cr(e[1],e[2]/100,e[3]/100,1):(e=wl.exec(t))?Cr(e[1],e[2]/100,e[3]/100,e[4]):br.hasOwnProperty(t)?Er(br[t]):t==="transparent"?new lt(NaN,NaN,NaN,0):null}function Er(t){return new lt(t>>16&255,t>>8&255,t&255,1)}function Te(t,e,n,r){return r<=0&&(t=e=n=NaN),new lt(t,e,n,r)}function _l(t){return t instanceof Ee||(t=Rt(t)),t?(t=t.rgb(),new lt(t.r,t.g,t.b,t.opacity)):new lt}function Pn(t,e,n,r){return arguments.length===1?_l(t):new lt(t,e,n,r??1)}function lt(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}Gn(lt,Pn,Yo(Ee,{brighter(t){return t=t==null?Ge:Math.pow(Ge,t),new lt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?he:Math.pow(he,t),new lt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new lt(Dt(this.r),Dt(this.g),Dt(this.b),qe(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Sr,formatHex:Sr,formatHex8:Nl,formatRgb:Mr,toString:Mr}));function Sr(){return`#${zt(this.r)}${zt(this.g)}${zt(this.b)}`}function Nl(){return`#${zt(this.r)}${zt(this.g)}${zt(this.b)}${zt((isNaN(this.opacity)?1:this.opacity)*255)}`}function Mr(){const t=qe(this.opacity);return`${t===1?"rgb(":"rgba("}${Dt(this.r)}, ${Dt(this.g)}, ${Dt(this.b)}${t===1?")":`, ${t})`}`}function qe(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Dt(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function zt(t){return t=Dt(t),(t<16?"0":"")+t.toString(16)}function Cr(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new ht(t,e,n,r)}function Wo(t){if(t instanceof ht)return new ht(t.h,t.s,t.l,t.opacity);if(t instanceof Ee||(t=Rt(t)),!t)return new ht;if(t instanceof ht)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,o=Math.min(e,n,r),i=Math.max(e,n,r),s=NaN,a=i-o,l=(i+o)/2;return a?(e===i?s=(n-r)/a+(n<r)*6:n===i?s=(r-e)/a+2:s=(e-n)/a+4,a/=l<.5?i+o:2-i-o,s*=60):a=l>0&&l<1?0:s,new ht(s,a,l,t.opacity)}function El(t,e,n,r){return arguments.length===1?Wo(t):new ht(t,e,n,r??1)}function ht(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}Gn(ht,El,Yo(Ee,{brighter(t){return t=t==null?Ge:Math.pow(Ge,t),new ht(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?he:Math.pow(he,t),new ht(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,o=2*n-r;return new lt(xn(t>=240?t-240:t+120,o,r),xn(t,o,r),xn(t<120?t+240:t-120,o,r),this.opacity)},clamp(){return new ht(kr(this.h),ze(this.s),ze(this.l),qe(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=qe(this.opacity);return`${t===1?"hsl(":"hsla("}${kr(this.h)}, ${ze(this.s)*100}%, ${ze(this.l)*100}%${t===1?")":`, ${t})`}`}}));function kr(t){return t=(t||0)%360,t<0?t+360:t}function ze(t){return Math.max(0,Math.min(1,t||0))}function xn(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const qn=t=>()=>t;function Sl(t,e){return function(n){return t+n*e}}function Ml(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function Cl(t){return(t=+t)==1?Go:function(e,n){return n-e?Ml(e,n,t):qn(isNaN(e)?n:e)}}function Go(t,e){var n=e-t;return n?Sl(t,n):qn(isNaN(t)?e:t)}const Ze=(function t(e){var n=Cl(e);function r(o,i){var s=n((o=Pn(o)).r,(i=Pn(i)).r),a=n(o.g,i.g),l=n(o.b,i.b),c=Go(o.opacity,i.opacity);return function(f){return o.r=s(f),o.g=a(f),o.b=l(f),o.opacity=c(f),o+""}}return r.gamma=t,r})(1);function kl(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),o;return function(i){for(o=0;o<n;++o)r[o]=t[o]*(1-i)+e[o]*i;return r}}function Al(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Il(t,e){var n=e?e.length:0,r=t?Math.min(n,t.length):0,o=new Array(r),i=new Array(n),s;for(s=0;s<r;++s)o[s]=ue(t[s],e[s]);for(;s<n;++s)i[s]=e[s];return function(a){for(s=0;s<r;++s)i[s]=o[s](a);return i}}function $l(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function yt(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function Pl(t,e){var n={},r={},o;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(o in e)o in t?n[o]=ue(t[o],e[o]):r[o]=e[o];return function(i){for(o in n)r[o]=n[o](i);return r}}var Tn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,wn=new RegExp(Tn.source,"g");function Tl(t){return function(){return t}}function zl(t){return function(e){return t(e)+""}}function qo(t,e){var n=Tn.lastIndex=wn.lastIndex=0,r,o,i,s=-1,a=[],l=[];for(t=t+"",e=e+"";(r=Tn.exec(t))&&(o=wn.exec(e));)(i=o.index)>n&&(i=e.slice(n,i),a[s]?a[s]+=i:a[++s]=i),(r=r[0])===(o=o[0])?a[s]?a[s]+=o:a[++s]=o:(a[++s]=null,l.push({i:s,x:yt(r,o)})),n=wn.lastIndex;return n<e.length&&(i=e.slice(n),a[s]?a[s]+=i:a[++s]=i),a.length<2?l[0]?zl(l[0].x):Tl(e):(e=l.length,function(c){for(var f=0,u;f<e;++f)a[(u=l[f]).i]=u.x(c);return a.join("")})}function ue(t,e){var n=typeof e,r;return e==null||n==="boolean"?qn(e):(n==="number"?yt:n==="string"?(r=Rt(e))?(e=r,Ze):qo:e instanceof Rt?Ze:e instanceof Date?$l:Al(e)?kl:Array.isArray(e)?Il:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?Pl:yt)(t,e)}var Ar=180/Math.PI,zn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Zo(t,e,n,r,o,i){var s,a,l;return(s=Math.sqrt(t*t+e*e))&&(t/=s,e/=s),(l=t*n+e*r)&&(n-=t*l,r-=e*l),(a=Math.sqrt(n*n+r*r))&&(n/=a,r/=a,l/=a),t*r<e*n&&(t=-t,e=-e,l=-l,s=-s),{translateX:o,translateY:i,rotate:Math.atan2(e,t)*Ar,skewX:Math.atan(l)*Ar,scaleX:s,scaleY:a}}var De;function Dl(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?zn:Zo(e.a,e.b,e.c,e.d,e.e,e.f)}function Ll(t){return t==null||(De||(De=document.createElementNS("http://www.w3.org/2000/svg","g")),De.setAttribute("transform",t),!(t=De.transform.baseVal.consolidate()))?zn:(t=t.matrix,Zo(t.a,t.b,t.c,t.d,t.e,t.f))}function Uo(t,e,n,r){function o(c){return c.length?c.pop()+" ":""}function i(c,f,u,d,h,g){if(c!==u||f!==d){var y=h.push("translate(",null,e,null,n);g.push({i:y-4,x:yt(c,u)},{i:y-2,x:yt(f,d)})}else(u||d)&&h.push("translate("+u+e+d+n)}function s(c,f,u,d){c!==f?(c-f>180?f+=360:f-c>180&&(c+=360),d.push({i:u.push(o(u)+"rotate(",null,r)-2,x:yt(c,f)})):f&&u.push(o(u)+"rotate("+f+r)}function a(c,f,u,d){c!==f?d.push({i:u.push(o(u)+"skewX(",null,r)-2,x:yt(c,f)}):f&&u.push(o(u)+"skewX("+f+r)}function l(c,f,u,d,h,g){if(c!==u||f!==d){var y=h.push(o(h)+"scale(",null,",",null,")");g.push({i:y-4,x:yt(c,u)},{i:y-2,x:yt(f,d)})}else(u!==1||d!==1)&&h.push(o(h)+"scale("+u+","+d+")")}return function(c,f){var u=[],d=[];return c=t(c),f=t(f),i(c.translateX,c.translateY,f.translateX,f.translateY,u,d),s(c.rotate,f.rotate,u,d),a(c.skewX,f.skewX,u,d),l(c.scaleX,c.scaleY,f.scaleX,f.scaleY,u,d),c=f=null,function(h){for(var g=-1,y=d.length,p;++g<y;)u[(p=d[g]).i]=p.x(h);return u.join("")}}}var jl=Uo(Dl,"px, ","px)","deg)"),Rl=Uo(Ll,", ",")",")"),Hl=1e-12;function Ir(t){return((t=Math.exp(t))+1/t)/2}function Vl(t){return((t=Math.exp(t))-1/t)/2}function Bl(t){return((t=Math.exp(2*t))-1)/(t+1)}const Fe=(function t(e,n,r){function o(i,s){var a=i[0],l=i[1],c=i[2],f=s[0],u=s[1],d=s[2],h=f-a,g=u-l,y=h*h+g*g,p,m;if(y<Hl)m=Math.log(d/c)/e,p=function(S){return[a+S*h,l+S*g,c*Math.exp(e*S*m)]};else{var v=Math.sqrt(y),x=(d*d-c*c+r*y)/(2*c*n*v),w=(d*d-c*c-r*y)/(2*d*n*v),E=Math.log(Math.sqrt(x*x+1)-x),N=Math.log(Math.sqrt(w*w+1)-w);m=(N-E)/e,p=function(S){var A=S*m,$=Ir(E),j=c/(n*v)*($*Bl(e*A+E)-Vl(E));return[a+j*h,l+j*g,c*$/Ir(e*A+E)]}}return p.duration=m*1e3*e/Math.SQRT2,p}return o.rho=function(i){var s=Math.max(.001,+i),a=s*s,l=a*a;return t(s,a,l)},o})(Math.SQRT2,2,4);var Zt=0,ce=0,se=0,Ko=1e3,Ue,le,Ke=0,Ht=0,rn=0,pe=typeof performance=="object"&&performance.now?performance:Date,Qo=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Zn(){return Ht||(Qo(Fl),Ht=pe.now()+rn)}function Fl(){Ht=0}function Qe(){this._call=this._time=this._next=null}Qe.prototype=Un.prototype={constructor:Qe,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?Zn():+n)+(e==null?0:+e),!this._next&&le!==this&&(le?le._next=this:Ue=this,le=this),this._call=t,this._time=n,Dn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Dn())}};function Un(t,e,n){var r=new Qe;return r.restart(t,e,n),r}function Ol(){Zn(),++Zt;for(var t=Ue,e;t;)(e=Ht-t._time)>=0&&t._call.call(void 0,e),t=t._next;--Zt}function $r(){Ht=(Ke=pe.now())+rn,Zt=ce=0;try{Ol()}finally{Zt=0,Yl(),Ht=0}}function Xl(){var t=pe.now(),e=t-Ke;e>Ko&&(rn-=e,Ke=t)}function Yl(){for(var t,e=Ue,n,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:Ue=n);le=t,Dn(r)}function Dn(t){if(!Zt){ce&&(ce=clearTimeout(ce));var e=t-Ht;e>24?(t<1/0&&(ce=setTimeout($r,t-pe.now()-rn)),se&&(se=clearInterval(se))):(se||(Ke=pe.now(),se=setInterval(Xl,Ko)),Zt=1,Qo($r))}}function Pr(t,e,n){var r=new Qe;return e=e==null?0:+e,r.restart(o=>{r.stop(),t(o+e)},e,n),r}var Wl=_e("start","end","cancel","interrupt"),Gl=[],Jo=0,Tr=1,Ln=2,Oe=3,zr=4,jn=5,Xe=6;function on(t,e,n,r,o,i){var s=t.__transition;if(!s)t.__transition={};else if(n in s)return;ql(t,n,{name:e,index:r,group:o,on:Wl,tween:Gl,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:Jo})}function Kn(t,e){var n=mt(t,e);if(n.state>Jo)throw new Error("too late; already scheduled");return n}function vt(t,e){var n=mt(t,e);if(n.state>Oe)throw new Error("too late; already running");return n}function mt(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function ql(t,e,n){var r=t.__transition,o;r[e]=n,n.timer=Un(i,0,n.time);function i(c){n.state=Tr,n.timer.restart(s,n.delay,n.time),n.delay<=c&&s(c-n.delay)}function s(c){var f,u,d,h;if(n.state!==Tr)return l();for(f in r)if(h=r[f],h.name===n.name){if(h.state===Oe)return Pr(s);h.state===zr?(h.state=Xe,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete r[f]):+f<e&&(h.state=Xe,h.timer.stop(),h.on.call("cancel",t,t.__data__,h.index,h.group),delete r[f])}if(Pr(function(){n.state===Oe&&(n.state=zr,n.timer.restart(a,n.delay,n.time),a(c))}),n.state=Ln,n.on.call("start",t,t.__data__,n.index,n.group),n.state===Ln){for(n.state=Oe,o=new Array(d=n.tween.length),f=0,u=-1;f<d;++f)(h=n.tween[f].value.call(t,t.__data__,n.index,n.group))&&(o[++u]=h);o.length=u+1}}function a(c){for(var f=c<n.duration?n.ease.call(null,c/n.duration):(n.timer.restart(l),n.state=jn,1),u=-1,d=o.length;++u<d;)o[u].call(t,f);n.state===jn&&(n.on.call("end",t,t.__data__,n.index,n.group),l())}function l(){n.state=Xe,n.timer.stop(),delete r[e];for(var c in r)return;delete t.__transition}}function Ye(t,e){var n=t.__transition,r,o,i=!0,s;if(n){e=e==null?null:e+"";for(s in n){if((r=n[s]).name!==e){i=!1;continue}o=r.state>Ln&&r.state<jn,r.state=Xe,r.timer.stop(),r.on.call(o?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete n[s]}i&&delete t.__transition}}function Zl(t){return this.each(function(){Ye(this,t)})}function Ul(t,e){var n,r;return function(){var o=vt(this,t),i=o.tween;if(i!==n){r=n=i;for(var s=0,a=r.length;s<a;++s)if(r[s].name===e){r=r.slice(),r.splice(s,1);break}}o.tween=r}}function Kl(t,e,n){var r,o;if(typeof n!="function")throw new Error;return function(){var i=vt(this,t),s=i.tween;if(s!==r){o=(r=s).slice();for(var a={name:e,value:n},l=0,c=o.length;l<c;++l)if(o[l].name===e){o[l]=a;break}l===c&&o.push(a)}i.tween=o}}function Ql(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r=mt(this.node(),n).tween,o=0,i=r.length,s;o<i;++o)if((s=r[o]).name===t)return s.value;return null}return this.each((e==null?Ul:Kl)(n,t,e))}function Qn(t,e,n){var r=t._id;return t.each(function(){var o=vt(this,r);(o.value||(o.value={}))[e]=n.apply(this,arguments)}),function(o){return mt(o,r).value[e]}}function ti(t,e){var n;return(typeof e=="number"?yt:e instanceof Rt?Ze:(n=Rt(e))?(e=n,Ze):qo)(t,e)}function Jl(t){return function(){this.removeAttribute(t)}}function tu(t){return function(){this.removeAttributeNS(t.space,t.local)}}function eu(t,e,n){var r,o=n+"",i;return function(){var s=this.getAttribute(t);return s===o?null:s===r?i:i=e(r=s,n)}}function nu(t,e,n){var r,o=n+"",i;return function(){var s=this.getAttributeNS(t.space,t.local);return s===o?null:s===r?i:i=e(r=s,n)}}function ru(t,e,n){var r,o,i;return function(){var s,a=n(this),l;return a==null?void this.removeAttribute(t):(s=this.getAttribute(t),l=a+"",s===l?null:s===r&&l===o?i:(o=l,i=e(r=s,a)))}}function ou(t,e,n){var r,o,i;return function(){var s,a=n(this),l;return a==null?void this.removeAttributeNS(t.space,t.local):(s=this.getAttributeNS(t.space,t.local),l=a+"",s===l?null:s===r&&l===o?i:(o=l,i=e(r=s,a)))}}function iu(t,e){var n=nn(t),r=n==="transform"?Rl:ti;return this.attrTween(t,typeof e=="function"?(n.local?ou:ru)(n,r,Qn(this,"attr."+t,e)):e==null?(n.local?tu:Jl)(n):(n.local?nu:eu)(n,r,e))}function su(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function au(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function cu(t,e){var n,r;function o(){var i=e.apply(this,arguments);return i!==r&&(n=(r=i)&&au(t,i)),n}return o._value=e,o}function lu(t,e){var n,r;function o(){var i=e.apply(this,arguments);return i!==r&&(n=(r=i)&&su(t,i)),n}return o._value=e,o}function uu(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;var r=nn(t);return this.tween(n,(r.local?cu:lu)(r,e))}function fu(t,e){return function(){Kn(this,t).delay=+e.apply(this,arguments)}}function du(t,e){return e=+e,function(){Kn(this,t).delay=e}}function hu(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?fu:du)(e,t)):mt(this.node(),e).delay}function gu(t,e){return function(){vt(this,t).duration=+e.apply(this,arguments)}}function pu(t,e){return e=+e,function(){vt(this,t).duration=e}}function mu(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?gu:pu)(e,t)):mt(this.node(),e).duration}function yu(t,e){if(typeof e!="function")throw new Error;return function(){vt(this,t).ease=e}}function xu(t){var e=this._id;return arguments.length?this.each(yu(e,t)):mt(this.node(),e).ease}function wu(t,e){return function(){var n=e.apply(this,arguments);if(typeof n!="function")throw new Error;vt(this,t).ease=n}}function vu(t){if(typeof t!="function")throw new Error;return this.each(wu(this._id,t))}function bu(t){typeof t!="function"&&(t=Po(t));for(var e=this._groups,n=e.length,r=new Array(n),o=0;o<n;++o)for(var i=e[o],s=i.length,a=r[o]=[],l,c=0;c<s;++c)(l=i[c])&&t.call(l,l.__data__,c,i)&&a.push(l);return new St(r,this._parents,this._name,this._id)}function _u(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,r=e.length,o=n.length,i=Math.min(r,o),s=new Array(r),a=0;a<i;++a)for(var l=e[a],c=n[a],f=l.length,u=s[a]=new Array(f),d,h=0;h<f;++h)(d=l[h]||c[h])&&(u[h]=d);for(;a<r;++a)s[a]=e[a];return new St(s,this._parents,this._name,this._id)}function Nu(t){return(t+"").trim().split(/^|\s+/).every(function(e){var n=e.indexOf(".");return n>=0&&(e=e.slice(0,n)),!e||e==="start"})}function Eu(t,e,n){var r,o,i=Nu(e)?Kn:vt;return function(){var s=i(this,t),a=s.on;a!==r&&(o=(r=a).copy()).on(e,n),s.on=o}}function Su(t,e){var n=this._id;return arguments.length<2?mt(this.node(),n).on.on(t):this.each(Eu(n,t,e))}function Mu(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function Cu(){return this.on("end.remove",Mu(this._id))}function ku(t){var e=this._name,n=this._id;typeof t!="function"&&(t=Yn(t));for(var r=this._groups,o=r.length,i=new Array(o),s=0;s<o;++s)for(var a=r[s],l=a.length,c=i[s]=new Array(l),f,u,d=0;d<l;++d)(f=a[d])&&(u=t.call(f,f.__data__,d,a))&&("__data__"in f&&(u.__data__=f.__data__),c[d]=u,on(c[d],e,n,d,c,mt(f,n)));return new St(i,this._parents,e,n)}function Au(t){var e=this._name,n=this._id;typeof t!="function"&&(t=$o(t));for(var r=this._groups,o=r.length,i=[],s=[],a=0;a<o;++a)for(var l=r[a],c=l.length,f,u=0;u<c;++u)if(f=l[u]){for(var d=t.call(f,f.__data__,u,l),h,g=mt(f,n),y=0,p=d.length;y<p;++y)(h=d[y])&&on(h,e,n,y,d,g);i.push(d),s.push(f)}return new St(i,s,e,n)}var Iu=Ne.prototype.constructor;function $u(){return new Iu(this._groups,this._parents)}function Pu(t,e){var n,r,o;return function(){var i=qt(this,t),s=(this.style.removeProperty(t),qt(this,t));return i===s?null:i===n&&s===r?o:o=e(n=i,r=s)}}function ei(t){return function(){this.style.removeProperty(t)}}function Tu(t,e,n){var r,o=n+"",i;return function(){var s=qt(this,t);return s===o?null:s===r?i:i=e(r=s,n)}}function zu(t,e,n){var r,o,i;return function(){var s=qt(this,t),a=n(this),l=a+"";return a==null&&(l=a=(this.style.removeProperty(t),qt(this,t))),s===l?null:s===r&&l===o?i:(o=l,i=e(r=s,a))}}function Du(t,e){var n,r,o,i="style."+e,s="end."+i,a;return function(){var l=vt(this,t),c=l.on,f=l.value[i]==null?a||(a=ei(e)):void 0;(c!==n||o!==f)&&(r=(n=c).copy()).on(s,o=f),l.on=r}}function Lu(t,e,n){var r=(t+="")=="transform"?jl:ti;return e==null?this.styleTween(t,Pu(t,r)).on("end.style."+t,ei(t)):typeof e=="function"?this.styleTween(t,zu(t,r,Qn(this,"style."+t,e))).each(Du(this._id,t)):this.styleTween(t,Tu(t,r,e),n).on("end.style."+t,null)}function ju(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}function Ru(t,e,n){var r,o;function i(){var s=e.apply(this,arguments);return s!==o&&(r=(o=s)&&ju(t,s,n)),r}return i._value=e,i}function Hu(t,e,n){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(e==null)return this.tween(r,null);if(typeof e!="function")throw new Error;return this.tween(r,Ru(t,e,n??""))}function Vu(t){return function(){this.textContent=t}}function Bu(t){return function(){var e=t(this);this.textContent=e??""}}function Fu(t){return this.tween("text",typeof t=="function"?Bu(Qn(this,"text",t)):Vu(t==null?"":t+""))}function Ou(t){return function(e){this.textContent=t.call(this,e)}}function Xu(t){var e,n;function r(){var o=t.apply(this,arguments);return o!==n&&(e=(n=o)&&Ou(o)),e}return r._value=t,r}function Yu(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!="function")throw new Error;return this.tween(e,Xu(t))}function Wu(){for(var t=this._name,e=this._id,n=ni(),r=this._groups,o=r.length,i=0;i<o;++i)for(var s=r[i],a=s.length,l,c=0;c<a;++c)if(l=s[c]){var f=mt(l,e);on(l,t,n,c,s,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new St(r,this._parents,t,n)}function Gu(){var t,e,n=this,r=n._id,o=n.size();return new Promise(function(i,s){var a={value:s},l={value:function(){--o===0&&i()}};n.each(function(){var c=vt(this,r),f=c.on;f!==t&&(e=(t=f).copy(),e._.cancel.push(a),e._.interrupt.push(a),e._.end.push(l)),c.on=e}),o===0&&i()})}var qu=0;function St(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function ni(){return++qu}var _t=Ne.prototype;St.prototype={constructor:St,select:ku,selectAll:Au,selectChild:_t.selectChild,selectChildren:_t.selectChildren,filter:bu,merge:_u,selection:$u,transition:Wu,call:_t.call,nodes:_t.nodes,node:_t.node,size:_t.size,empty:_t.empty,each:_t.each,on:Su,attr:iu,attrTween:uu,style:Lu,styleTween:Hu,text:Fu,textTween:Yu,remove:Cu,tween:Ql,delay:hu,duration:mu,ease:xu,easeVarying:vu,end:Gu,[Symbol.iterator]:_t[Symbol.iterator]};function Zu(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Uu={time:null,delay:0,duration:250,ease:Zu};function Ku(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}function Qu(t){var e,n;t instanceof St?(e=t._id,t=t._name):(e=ni(),(n=Uu).time=Zn(),t=t==null?null:t+"");for(var r=this._groups,o=r.length,i=0;i<o;++i)for(var s=r[i],a=s.length,l,c=0;c<a;++c)(l=s[c])&&on(l,t,e,c,s,n||Ku(l,e));return new St(r,this._parents,t,e)}Ne.prototype.interrupt=Zl;Ne.prototype.transition=Qu;const Le=t=>()=>t;function Ju(t,{sourceEvent:e,target:n,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function Nt(t,e,n){this.k=t,this.x=e,this.y=n}Nt.prototype={constructor:Nt,scale:function(t){return t===1?this:new Nt(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new Nt(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var sn=new Nt(1,0,0);ri.prototype=Nt.prototype;function ri(t){for(;!t.__zoom;)if(!(t=t.parentNode))return sn;return t.__zoom}function vn(t){t.stopImmediatePropagation()}function ae(t){t.preventDefault(),t.stopImmediatePropagation()}function tf(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function ef(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function Dr(){return this.__zoom||sn}function nf(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function rf(){return navigator.maxTouchPoints||"ontouchstart"in this}function of(t,e,n){var r=t.invertX(e[0][0])-n[0][0],o=t.invertX(e[1][0])-n[1][0],i=t.invertY(e[0][1])-n[0][1],s=t.invertY(e[1][1])-n[1][1];return t.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),s>i?(i+s)/2:Math.min(0,i)||Math.max(0,s))}function oi(){var t=tf,e=ef,n=of,r=nf,o=rf,i=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],a=250,l=Fe,c=_e("start","zoom","end"),f,u,d,h=500,g=150,y=0,p=10;function m(b){b.property("__zoom",Dr).on("wheel.zoom",A,{passive:!1}).on("mousedown.zoom",$).on("dblclick.zoom",j).filter(o).on("touchstart.zoom",k).on("touchmove.zoom",z).on("touchend.zoom touchcancel.zoom",H).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}m.transform=function(b,P,M,T){var I=b.selection?b.selection():b;I.property("__zoom",Dr),b!==I?E(b,P,M,T):I.interrupt().each(function(){N(this,arguments).event(T).start().zoom(null,typeof P=="function"?P.apply(this,arguments):P).end()})},m.scaleBy=function(b,P,M,T){m.scaleTo(b,function(){var I=this.__zoom.k,C=typeof P=="function"?P.apply(this,arguments):P;return I*C},M,T)},m.scaleTo=function(b,P,M,T){m.transform(b,function(){var I=e.apply(this,arguments),C=this.__zoom,L=M==null?w(I):typeof M=="function"?M.apply(this,arguments):M,V=C.invert(L),R=typeof P=="function"?P.apply(this,arguments):P;return n(x(v(C,R),L,V),I,s)},M,T)},m.translateBy=function(b,P,M,T){m.transform(b,function(){return n(this.__zoom.translate(typeof P=="function"?P.apply(this,arguments):P,typeof M=="function"?M.apply(this,arguments):M),e.apply(this,arguments),s)},null,T)},m.translateTo=function(b,P,M,T,I){m.transform(b,function(){var C=e.apply(this,arguments),L=this.__zoom,V=T==null?w(C):typeof T=="function"?T.apply(this,arguments):T;return n(sn.translate(V[0],V[1]).scale(L.k).translate(typeof P=="function"?-P.apply(this,arguments):-P,typeof M=="function"?-M.apply(this,arguments):-M),C,s)},T,I)};function v(b,P){return P=Math.max(i[0],Math.min(i[1],P)),P===b.k?b:new Nt(P,b.x,b.y)}function x(b,P,M){var T=P[0]-M[0]*b.k,I=P[1]-M[1]*b.k;return T===b.x&&I===b.y?b:new Nt(b.k,T,I)}function w(b){return[(+b[0][0]+ +b[1][0])/2,(+b[0][1]+ +b[1][1])/2]}function E(b,P,M,T){b.on("start.zoom",function(){N(this,arguments).event(T).start()}).on("interrupt.zoom end.zoom",function(){N(this,arguments).event(T).end()}).tween("zoom",function(){var I=this,C=arguments,L=N(I,C).event(T),V=e.apply(I,C),R=M==null?w(V):typeof M=="function"?M.apply(I,C):M,F=Math.max(V[1][0]-V[0][0],V[1][1]-V[0][1]),O=I.__zoom,Y=typeof P=="function"?P.apply(I,C):P,Z=l(O.invert(R).concat(F/O.k),Y.invert(R).concat(F/Y.k));return function(G){if(G===1)G=Y;else{var B=Z(G),W=F/B[2];G=new Nt(W,R[0]-B[0]*W,R[1]-B[1]*W)}L.zoom(null,G)}})}function N(b,P,M){return!M&&b.__zooming||new S(b,P)}function S(b,P){this.that=b,this.args=P,this.active=0,this.sourceEvent=null,this.extent=e.apply(b,P),this.taps=0}S.prototype={event:function(b){return b&&(this.sourceEvent=b),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(b,P){return this.mouse&&b!=="mouse"&&(this.mouse[1]=P.invert(this.mouse[0])),this.touch0&&b!=="touch"&&(this.touch0[1]=P.invert(this.touch0[0])),this.touch1&&b!=="touch"&&(this.touch1[1]=P.invert(this.touch1[0])),this.that.__zoom=P,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(b){var P=ut(this.that).datum();c.call(b,this.that,new Ju(b,{sourceEvent:this.sourceEvent,target:m,transform:this.that.__zoom,dispatch:c}),P)}};function A(b,...P){if(!t.apply(this,arguments))return;var M=N(this,P).event(b),T=this.__zoom,I=Math.max(i[0],Math.min(i[1],T.k*Math.pow(2,r.apply(this,arguments)))),C=dt(b);if(M.wheel)(M.mouse[0][0]!==C[0]||M.mouse[0][1]!==C[1])&&(M.mouse[1]=T.invert(M.mouse[0]=C)),clearTimeout(M.wheel);else{if(T.k===I)return;M.mouse=[C,T.invert(C)],Ye(this),M.start()}ae(b),M.wheel=setTimeout(L,g),M.zoom("mouse",n(x(v(T,I),M.mouse[0],M.mouse[1]),M.extent,s));function L(){M.wheel=null,M.end()}}function $(b,...P){if(d||!t.apply(this,arguments))return;var M=b.currentTarget,T=N(this,P,!0).event(b),I=ut(b.view).on("mousemove.zoom",R,!0).on("mouseup.zoom",F,!0),C=dt(b,M),L=b.clientX,V=b.clientY;Fo(b.view),vn(b),T.mouse=[C,this.__zoom.invert(C)],Ye(this),T.start();function R(O){if(ae(O),!T.moved){var Y=O.clientX-L,Z=O.clientY-V;T.moved=Y*Y+Z*Z>y}T.event(O).zoom("mouse",n(x(T.that.__zoom,T.mouse[0]=dt(O,M),T.mouse[1]),T.extent,s))}function F(O){I.on("mousemove.zoom mouseup.zoom",null),Oo(O.view,T.moved),ae(O),T.event(O).end()}}function j(b,...P){if(t.apply(this,arguments)){var M=this.__zoom,T=dt(b.changedTouches?b.changedTouches[0]:b,this),I=M.invert(T),C=M.k*(b.shiftKey?.5:2),L=n(x(v(M,C),T,I),e.apply(this,P),s);ae(b),a>0?ut(this).transition().duration(a).call(E,L,T,b):ut(this).call(m.transform,L,T,b)}}function k(b,...P){if(t.apply(this,arguments)){var M=b.touches,T=M.length,I=N(this,P,b.changedTouches.length===T).event(b),C,L,V,R;for(vn(b),L=0;L<T;++L)V=M[L],R=dt(V,this),R=[R,this.__zoom.invert(R),V.identifier],I.touch0?!I.touch1&&I.touch0[2]!==R[2]&&(I.touch1=R,I.taps=0):(I.touch0=R,C=!0,I.taps=1+!!f);f&&(f=clearTimeout(f)),C&&(I.taps<2&&(u=R[0],f=setTimeout(function(){f=null},h)),Ye(this),I.start())}}function z(b,...P){if(this.__zooming){var M=N(this,P).event(b),T=b.changedTouches,I=T.length,C,L,V,R;for(ae(b),C=0;C<I;++C)L=T[C],V=dt(L,this),M.touch0&&M.touch0[2]===L.identifier?M.touch0[0]=V:M.touch1&&M.touch1[2]===L.identifier&&(M.touch1[0]=V);if(L=M.that.__zoom,M.touch1){var F=M.touch0[0],O=M.touch0[1],Y=M.touch1[0],Z=M.touch1[1],G=(G=Y[0]-F[0])*G+(G=Y[1]-F[1])*G,B=(B=Z[0]-O[0])*B+(B=Z[1]-O[1])*B;L=v(L,Math.sqrt(G/B)),V=[(F[0]+Y[0])/2,(F[1]+Y[1])/2],R=[(O[0]+Z[0])/2,(O[1]+Z[1])/2]}else if(M.touch0)V=M.touch0[0],R=M.touch0[1];else return;M.zoom("touch",n(x(L,V,R),M.extent,s))}}function H(b,...P){if(this.__zooming){var M=N(this,P).event(b),T=b.changedTouches,I=T.length,C,L;for(vn(b),d&&clearTimeout(d),d=setTimeout(function(){d=null},h),C=0;C<I;++C)L=T[C],M.touch0&&M.touch0[2]===L.identifier?delete M.touch0:M.touch1&&M.touch1[2]===L.identifier&&delete M.touch1;if(M.touch1&&!M.touch0&&(M.touch0=M.touch1,delete M.touch1),M.touch0)M.touch0[1]=this.__zoom.invert(M.touch0[0]);else if(M.end(),M.taps===2&&(L=dt(L,this),Math.hypot(u[0]-L[0],u[1]-L[1])<p)){var V=ut(this).on("dblclick.zoom");V&&V.apply(this,arguments)}}}return m.wheelDelta=function(b){return arguments.length?(r=typeof b=="function"?b:Le(+b),m):r},m.filter=function(b){return arguments.length?(t=typeof b=="function"?b:Le(!!b),m):t},m.touchable=function(b){return arguments.length?(o=typeof b=="function"?b:Le(!!b),m):o},m.extent=function(b){return arguments.length?(e=typeof b=="function"?b:Le([[+b[0][0],+b[0][1]],[+b[1][0],+b[1][1]]]),m):e},m.scaleExtent=function(b){return arguments.length?(i[0]=+b[0],i[1]=+b[1],m):[i[0],i[1]]},m.translateExtent=function(b){return arguments.length?(s[0][0]=+b[0][0],s[1][0]=+b[1][0],s[0][1]=+b[0][1],s[1][1]=+b[1][1],m):[[s[0][0],s[0][1]],[s[1][0],s[1][1]]]},m.constrain=function(b){return arguments.length?(n=b,m):n},m.duration=function(b){return arguments.length?(a=+b,m):a},m.interpolate=function(b){return arguments.length?(l=b,m):l},m.on=function(){var b=c.on.apply(c,arguments);return b===c?m:b},m.clickDistance=function(b){return arguments.length?(y=(b=+b)*b,m):Math.sqrt(y)},m.tapDistance=function(b){return arguments.length?(p=+b,m):p},m}const wt={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:t=>`Node type "${t}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:t=>`The old edge with id=${t} does not exist.`,error009:t=>`Marker type "${t}" doesn't exist.`,error008:(t,{id:e,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${t} handle id: "${t==="source"?n:r}", edge id: ${e}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:t=>`Edge type "${t}" not found. Using fallback type "default".`,error012:t=>`Node with id "${t}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(t="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${t}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},me=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],ii=["Enter"," ","Escape"],si={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:t,x:e,y:n})=>`Moved selected node ${t}. New position, x: ${e}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var Ut;(function(t){t.Strict="strict",t.Loose="loose"})(Ut||(Ut={}));var Lt;(function(t){t.Free="free",t.Vertical="vertical",t.Horizontal="horizontal"})(Lt||(Lt={}));var ye;(function(t){t.Partial="partial",t.Full="full"})(ye||(ye={}));const ai={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var It;(function(t){t.Bezier="default",t.Straight="straight",t.Step="step",t.SmoothStep="smoothstep",t.SimpleBezier="simplebezier"})(It||(It={}));var xe;(function(t){t.Arrow="arrow",t.ArrowClosed="arrowclosed"})(xe||(xe={}));var X;(function(t){t.Left="left",t.Top="top",t.Right="right",t.Bottom="bottom"})(X||(X={}));const Lr={[X.Left]:X.Right,[X.Right]:X.Left,[X.Top]:X.Bottom,[X.Bottom]:X.Top};function ci(t){return t===null?null:t?"valid":"invalid"}const li=t=>"id"in t&&"source"in t&&"target"in t,sf=t=>"id"in t&&"position"in t&&!("source"in t)&&!("target"in t),Jn=t=>"id"in t&&"internals"in t&&!("source"in t)&&!("target"in t),Se=(t,e=[0,0])=>{const{width:n,height:r}=Mt(t),o=t.origin??e,i=n*o[0],s=r*o[1];return{x:t.position.x-i,y:t.position.y-s}},af=(t,e={nodeOrigin:[0,0]})=>{if(t.length===0)return{x:0,y:0,width:0,height:0};const n=t.reduce((r,o)=>{const i=typeof o=="string";let s=!e.nodeLookup&&!i?o:void 0;e.nodeLookup&&(s=i?e.nodeLookup.get(o):Jn(o)?o:e.nodeLookup.get(o.id));const a=s?Je(s,e.nodeOrigin):{x:0,y:0,x2:0,y2:0};return an(r,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return cn(n)},Me=(t,e={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return t.forEach(o=>{(e.filter===void 0||e.filter(o))&&(n=an(n,Je(o)),r=!0)}),r?cn(n):{x:0,y:0,width:0,height:0}},tr=(t,e,[n,r,o]=[0,0,1],i=!1,s=!1)=>{const a={...ke(e,[n,r,o]),width:e.width/o,height:e.height/o},l=[];for(const c of t.values()){const{measured:f,selectable:u=!0,hidden:d=!1}=c;if(s&&!u||d)continue;const h=f.width??c.width??c.initialWidth??null,g=f.height??c.height??c.initialHeight??null,y=we(a,Qt(c)),p=(h??0)*(g??0),m=i&&y>0;(!c.internals.handleBounds||m||y>=p||c.dragging)&&l.push(c)}return l},cf=(t,e)=>{const n=new Set;return t.forEach(r=>{n.add(r.id)}),e.filter(r=>n.has(r.source)||n.has(r.target))};function lf(t,e){const n=new Map,r=e!=null&&e.nodes?new Set(e.nodes.map(o=>o.id)):null;return t.forEach(o=>{o.measured.width&&o.measured.height&&((e==null?void 0:e.includeHiddenNodes)||!o.hidden)&&(!r||r.has(o.id))&&n.set(o.id,o)}),n}async function uf({nodes:t,width:e,height:n,panZoom:r,minZoom:o,maxZoom:i},s){if(t.size===0)return Promise.resolve(!0);const a=lf(t,s),l=Me(a),c=er(l,e,n,(s==null?void 0:s.minZoom)??o,(s==null?void 0:s.maxZoom)??i,(s==null?void 0:s.padding)??.1);return await r.setViewport(c,{duration:s==null?void 0:s.duration,ease:s==null?void 0:s.ease,interpolate:s==null?void 0:s.interpolate}),Promise.resolve(!0)}function ui({nodeId:t,nextPosition:e,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:o,onError:i}){const s=n.get(t),a=s.parentId?n.get(s.parentId):void 0,{x:l,y:c}=a?a.internals.positionAbsolute:{x:0,y:0},f=s.origin??r;let u=s.extent||o;if(s.extent==="parent"&&!s.expandParent)if(!a)i==null||i("005",wt.error005());else{const h=a.measured.width,g=a.measured.height;h&&g&&(u=[[l,c],[l+h,c+g]])}else a&&Jt(s.extent)&&(u=[[s.extent[0][0]+l,s.extent[0][1]+c],[s.extent[1][0]+l,s.extent[1][1]+c]]);const d=Jt(u)?Vt(e,u,s.measured):e;return(s.measured.width===void 0||s.measured.height===void 0)&&(i==null||i("015",wt.error015())),{position:{x:d.x-l+(s.measured.width??0)*f[0],y:d.y-c+(s.measured.height??0)*f[1]},positionAbsolute:d}}async function ff({nodesToRemove:t=[],edgesToRemove:e=[],nodes:n,edges:r,onBeforeDelete:o}){const i=new Set(t.map(d=>d.id)),s=[];for(const d of n){if(d.deletable===!1)continue;const h=i.has(d.id),g=!h&&d.parentId&&s.find(y=>y.id===d.parentId);(h||g)&&s.push(d)}const a=new Set(e.map(d=>d.id)),l=r.filter(d=>d.deletable!==!1),f=cf(s,l);for(const d of l)a.has(d.id)&&!f.find(g=>g.id===d.id)&&f.push(d);if(!o)return{edges:f,nodes:s};const u=await o({nodes:s,edges:f});return typeof u=="boolean"?u?{edges:f,nodes:s}:{edges:[],nodes:[]}:u}const Kt=(t,e=0,n=1)=>Math.min(Math.max(t,e),n),Vt=(t={x:0,y:0},e,n)=>({x:Kt(t.x,e[0][0],e[1][0]-((n==null?void 0:n.width)??0)),y:Kt(t.y,e[0][1],e[1][1]-((n==null?void 0:n.height)??0))});function fi(t,e,n){const{width:r,height:o}=Mt(n),{x:i,y:s}=n.internals.positionAbsolute;return Vt(t,[[i,s],[i+r,s+o]],e)}const jr=(t,e,n)=>t<e?Kt(Math.abs(t-e),1,e)/e:t>n?-Kt(Math.abs(t-n),1,e)/e:0,di=(t,e,n=15,r=40)=>{const o=jr(t.x,r,e.width-r)*n,i=jr(t.y,r,e.height-r)*n;return[o,i]},an=(t,e)=>({x:Math.min(t.x,e.x),y:Math.min(t.y,e.y),x2:Math.max(t.x2,e.x2),y2:Math.max(t.y2,e.y2)}),Rn=({x:t,y:e,width:n,height:r})=>({x:t,y:e,x2:t+n,y2:e+r}),cn=({x:t,y:e,x2:n,y2:r})=>({x:t,y:e,width:n-t,height:r-e}),Qt=(t,e=[0,0])=>{var o,i;const{x:n,y:r}=Jn(t)?t.internals.positionAbsolute:Se(t,e);return{x:n,y:r,width:((o=t.measured)==null?void 0:o.width)??t.width??t.initialWidth??0,height:((i=t.measured)==null?void 0:i.height)??t.height??t.initialHeight??0}},Je=(t,e=[0,0])=>{var o,i;const{x:n,y:r}=Jn(t)?t.internals.positionAbsolute:Se(t,e);return{x:n,y:r,x2:n+(((o=t.measured)==null?void 0:o.width)??t.width??t.initialWidth??0),y2:r+(((i=t.measured)==null?void 0:i.height)??t.height??t.initialHeight??0)}},hi=(t,e)=>cn(an(Rn(t),Rn(e))),we=(t,e)=>{const n=Math.max(0,Math.min(t.x+t.width,e.x+e.width)-Math.max(t.x,e.x)),r=Math.max(0,Math.min(t.y+t.height,e.y+e.height)-Math.max(t.y,e.y));return Math.ceil(n*r)},Rr=t=>gt(t.width)&>(t.height)&>(t.x)&>(t.y),gt=t=>!isNaN(t)&&isFinite(t),df=(t,e)=>{},Ce=(t,e=[1,1])=>({x:e[0]*Math.round(t.x/e[0]),y:e[1]*Math.round(t.y/e[1])}),ke=({x:t,y:e},[n,r,o],i=!1,s=[1,1])=>{const a={x:(t-n)/o,y:(e-r)/o};return i?Ce(a,s):a},tn=({x:t,y:e},[n,r,o])=>({x:t*o+n,y:e*o+r});function Ot(t,e){if(typeof t=="number")return Math.floor((e-e/(1+t))*.5);if(typeof t=="string"&&t.endsWith("px")){const n=parseFloat(t);if(!Number.isNaN(n))return Math.floor(n)}if(typeof t=="string"&&t.endsWith("%")){const n=parseFloat(t);if(!Number.isNaN(n))return Math.floor(e*n*.01)}return console.error(`[React Flow] The padding value "${t}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function hf(t,e,n){if(typeof t=="string"||typeof t=="number"){const r=Ot(t,n),o=Ot(t,e);return{top:r,right:o,bottom:r,left:o,x:o*2,y:r*2}}if(typeof t=="object"){const r=Ot(t.top??t.y??0,n),o=Ot(t.bottom??t.y??0,n),i=Ot(t.left??t.x??0,e),s=Ot(t.right??t.x??0,e);return{top:r,right:s,bottom:o,left:i,x:i+s,y:r+o}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function gf(t,e,n,r,o,i){const{x:s,y:a}=tn(t,[e,n,r]),{x:l,y:c}=tn({x:t.x+t.width,y:t.y+t.height},[e,n,r]),f=o-l,u=i-c;return{left:Math.floor(s),top:Math.floor(a),right:Math.floor(f),bottom:Math.floor(u)}}const er=(t,e,n,r,o,i)=>{const s=hf(i,e,n),a=(e-s.x)/t.width,l=(n-s.y)/t.height,c=Math.min(a,l),f=Kt(c,r,o),u=t.x+t.width/2,d=t.y+t.height/2,h=e/2-u*f,g=n/2-d*f,y=gf(t,h,g,f,e,n),p={left:Math.min(y.left-s.left,0),top:Math.min(y.top-s.top,0),right:Math.min(y.right-s.right,0),bottom:Math.min(y.bottom-s.bottom,0)};return{x:h-p.left+p.right,y:g-p.top+p.bottom,zoom:f}},ve=()=>{var t;return typeof navigator<"u"&&((t=navigator==null?void 0:navigator.userAgent)==null?void 0:t.indexOf("Mac"))>=0};function Jt(t){return t!=null&&t!=="parent"}function Mt(t){var e,n;return{width:((e=t.measured)==null?void 0:e.width)??t.width??t.initialWidth??0,height:((n=t.measured)==null?void 0:n.height)??t.height??t.initialHeight??0}}function gi(t){var e,n;return(((e=t.measured)==null?void 0:e.width)??t.width??t.initialWidth)!==void 0&&(((n=t.measured)==null?void 0:n.height)??t.height??t.initialHeight)!==void 0}function pi(t,e={width:0,height:0},n,r,o){const i={...t},s=r.get(n);if(s){const a=s.origin||o;i.x+=s.internals.positionAbsolute.x-(e.width??0)*a[0],i.y+=s.internals.positionAbsolute.y-(e.height??0)*a[1]}return i}function Hr(t,e){if(t.size!==e.size)return!1;for(const n of t)if(!e.has(n))return!1;return!0}function pf(){let t,e;return{promise:new Promise((r,o)=>{t=r,e=o}),resolve:t,reject:e}}function mf(t){return{...si,...t||{}}}function fe(t,{snapGrid:e=[0,0],snapToGrid:n=!1,transform:r,containerBounds:o}){const{x:i,y:s}=pt(t),a=ke({x:i-((o==null?void 0:o.left)??0),y:s-((o==null?void 0:o.top)??0)},r),{x:l,y:c}=n?Ce(a,e):a;return{xSnapped:l,ySnapped:c,...a}}const nr=t=>({width:t.offsetWidth,height:t.offsetHeight}),mi=t=>{var e;return((e=t==null?void 0:t.getRootNode)==null?void 0:e.call(t))||(window==null?void 0:window.document)},yf=["INPUT","SELECT","TEXTAREA"];function yi(t){var r,o;const e=((o=(r=t.composedPath)==null?void 0:r.call(t))==null?void 0:o[0])||t.target;return(e==null?void 0:e.nodeType)!==1?!1:yf.includes(e.nodeName)||e.hasAttribute("contenteditable")||!!e.closest(".nokey")}const xi=t=>"clientX"in t,pt=(t,e)=>{var i,s;const n=xi(t),r=n?t.clientX:(i=t.touches)==null?void 0:i[0].clientX,o=n?t.clientY:(s=t.touches)==null?void 0:s[0].clientY;return{x:r-((e==null?void 0:e.left)??0),y:o-((e==null?void 0:e.top)??0)}},Vr=(t,e,n,r,o)=>{const i=e.querySelectorAll(`.${t}`);return!i||!i.length?null:Array.from(i).map(s=>{const a=s.getBoundingClientRect();return{id:s.getAttribute("data-handleid"),type:t,nodeId:o,position:s.getAttribute("data-handlepos"),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...nr(s)}})};function wi({sourceX:t,sourceY:e,targetX:n,targetY:r,sourceControlX:o,sourceControlY:i,targetControlX:s,targetControlY:a}){const l=t*.125+o*.375+s*.375+n*.125,c=e*.125+i*.375+a*.375+r*.125,f=Math.abs(l-t),u=Math.abs(c-e);return[l,c,f,u]}function je(t,e){return t>=0?.5*t:e*25*Math.sqrt(-t)}function Br({pos:t,x1:e,y1:n,x2:r,y2:o,c:i}){switch(t){case X.Left:return[e-je(e-r,i),n];case X.Right:return[e+je(r-e,i),n];case X.Top:return[e,n-je(n-o,i)];case X.Bottom:return[e,n+je(o-n,i)]}}function vi({sourceX:t,sourceY:e,sourcePosition:n=X.Bottom,targetX:r,targetY:o,targetPosition:i=X.Top,curvature:s=.25}){const[a,l]=Br({pos:n,x1:t,y1:e,x2:r,y2:o,c:s}),[c,f]=Br({pos:i,x1:r,y1:o,x2:t,y2:e,c:s}),[u,d,h,g]=wi({sourceX:t,sourceY:e,targetX:r,targetY:o,sourceControlX:a,sourceControlY:l,targetControlX:c,targetControlY:f});return[`M${t},${e} C${a},${l} ${c},${f} ${r},${o}`,u,d,h,g]}function bi({sourceX:t,sourceY:e,targetX:n,targetY:r}){const o=Math.abs(n-t)/2,i=n<t?n+o:n-o,s=Math.abs(r-e)/2,a=r<e?r+s:r-s;return[i,a,o,s]}function xf({sourceNode:t,targetNode:e,selected:n=!1,zIndex:r=0,elevateOnSelect:o=!1,zIndexMode:i="basic"}){if(i==="manual")return r;const s=o&&n?r+1e3:r,a=Math.max(t.parentId||o&&t.selected?t.internals.z:0,e.parentId||o&&e.selected?e.internals.z:0);return s+a}function wf({sourceNode:t,targetNode:e,width:n,height:r,transform:o}){const i=an(Je(t),Je(e));i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1);const s={x:-o[0]/o[2],y:-o[1]/o[2],width:n/o[2],height:r/o[2]};return we(s,cn(i))>0}const vf=({source:t,sourceHandle:e,target:n,targetHandle:r})=>`xy-edge__${t}${e||""}-${n}${r||""}`,bf=(t,e)=>e.some(n=>n.source===t.source&&n.target===t.target&&(n.sourceHandle===t.sourceHandle||!n.sourceHandle&&!t.sourceHandle)&&(n.targetHandle===t.targetHandle||!n.targetHandle&&!t.targetHandle)),_f=(t,e,n={})=>{if(!t.source||!t.target)return e;const r=n.getEdgeId||vf;let o;return li(t)?o={...t}:o={...t,id:r(t)},bf(o,e)?e:(o.sourceHandle===null&&delete o.sourceHandle,o.targetHandle===null&&delete o.targetHandle,e.concat(o))};function _i({sourceX:t,sourceY:e,targetX:n,targetY:r}){const[o,i,s,a]=bi({sourceX:t,sourceY:e,targetX:n,targetY:r});return[`M ${t},${e}L ${n},${r}`,o,i,s,a]}const Fr={[X.Left]:{x:-1,y:0},[X.Right]:{x:1,y:0},[X.Top]:{x:0,y:-1},[X.Bottom]:{x:0,y:1}},Nf=({source:t,sourcePosition:e=X.Bottom,target:n})=>e===X.Left||e===X.Right?t.x<n.x?{x:1,y:0}:{x:-1,y:0}:t.y<n.y?{x:0,y:1}:{x:0,y:-1},Or=(t,e)=>Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2));function Ef({source:t,sourcePosition:e=X.Bottom,target:n,targetPosition:r=X.Top,center:o,offset:i,stepPosition:s}){const a=Fr[e],l=Fr[r],c={x:t.x+a.x*i,y:t.y+a.y*i},f={x:n.x+l.x*i,y:n.y+l.y*i},u=Nf({source:c,sourcePosition:e,target:f}),d=u.x!==0?"x":"y",h=u[d];let g=[],y,p;const m={x:0,y:0},v={x:0,y:0},[,,x,w]=bi({sourceX:t.x,sourceY:t.y,targetX:n.x,targetY:n.y});if(a[d]*l[d]===-1){d==="x"?(y=o.x??c.x+(f.x-c.x)*s,p=o.y??(c.y+f.y)/2):(y=o.x??(c.x+f.x)/2,p=o.y??c.y+(f.y-c.y)*s);const A=[{x:y,y:c.y},{x:y,y:f.y}],$=[{x:c.x,y:p},{x:f.x,y:p}];a[d]===h?g=d==="x"?A:$:g=d==="x"?$:A}else{const A=[{x:c.x,y:f.y}],$=[{x:f.x,y:c.y}];if(d==="x"?g=a.x===h?$:A:g=a.y===h?A:$,e===r){const b=Math.abs(t[d]-n[d]);if(b<=i){const P=Math.min(i-1,i-b);a[d]===h?m[d]=(c[d]>t[d]?-1:1)*P:v[d]=(f[d]>n[d]?-1:1)*P}}if(e!==r){const b=d==="x"?"y":"x",P=a[d]===l[b],M=c[b]>f[b],T=c[b]<f[b];(a[d]===1&&(!P&&M||P&&T)||a[d]!==1&&(!P&&T||P&&M))&&(g=d==="x"?A:$)}const j={x:c.x+m.x,y:c.y+m.y},k={x:f.x+v.x,y:f.y+v.y},z=Math.max(Math.abs(j.x-g[0].x),Math.abs(k.x-g[0].x)),H=Math.max(Math.abs(j.y-g[0].y),Math.abs(k.y-g[0].y));z>=H?(y=(j.x+k.x)/2,p=g[0].y):(y=g[0].x,p=(j.y+k.y)/2)}const E={x:c.x+m.x,y:c.y+m.y},N={x:f.x+v.x,y:f.y+v.y};return[[t,...E.x!==g[0].x||E.y!==g[0].y?[E]:[],...g,...N.x!==g[g.length-1].x||N.y!==g[g.length-1].y?[N]:[],n],y,p,x,w]}function Sf(t,e,n,r){const o=Math.min(Or(t,e)/2,Or(e,n)/2,r),{x:i,y:s}=e;if(t.x===i&&i===n.x||t.y===s&&s===n.y)return`L${i} ${s}`;if(t.y===s){const c=t.x<n.x?-1:1,f=t.y<n.y?1:-1;return`L ${i+o*c},${s}Q ${i},${s} ${i},${s+o*f}`}const a=t.x<n.x?1:-1,l=t.y<n.y?-1:1;return`L ${i},${s+o*l}Q ${i},${s} ${i+o*a},${s}`}function Hn({sourceX:t,sourceY:e,sourcePosition:n=X.Bottom,targetX:r,targetY:o,targetPosition:i=X.Top,borderRadius:s=5,centerX:a,centerY:l,offset:c=20,stepPosition:f=.5}){const[u,d,h,g,y]=Ef({source:{x:t,y:e},sourcePosition:n,target:{x:r,y:o},targetPosition:i,center:{x:a,y:l},offset:c,stepPosition:f});let p=`M${u[0].x} ${u[0].y}`;for(let m=1;m<u.length-1;m++)p+=Sf(u[m-1],u[m],u[m+1],s);return p+=`L${u[u.length-1].x} ${u[u.length-1].y}`,[p,d,h,g,y]}function Xr(t){var e;return t&&!!(t.internals.handleBounds||(e=t.handles)!=null&&e.length)&&!!(t.measured.width||t.width||t.initialWidth)}function Mf(t){var u;const{sourceNode:e,targetNode:n}=t;if(!Xr(e)||!Xr(n))return null;const r=e.internals.handleBounds||Yr(e.handles),o=n.internals.handleBounds||Yr(n.handles),i=Wr((r==null?void 0:r.source)??[],t.sourceHandle),s=Wr(t.connectionMode===Ut.Strict?(o==null?void 0:o.target)??[]:((o==null?void 0:o.target)??[]).concat((o==null?void 0:o.source)??[]),t.targetHandle);if(!i||!s)return(u=t.onError)==null||u.call(t,"008",wt.error008(i?"target":"source",{id:t.id,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle})),null;const a=(i==null?void 0:i.position)||X.Bottom,l=(s==null?void 0:s.position)||X.Top,c=Bt(e,i,a),f=Bt(n,s,l);return{sourceX:c.x,sourceY:c.y,targetX:f.x,targetY:f.y,sourcePosition:a,targetPosition:l}}function Yr(t){if(!t)return null;const e=[],n=[];for(const r of t)r.width=r.width??1,r.height=r.height??1,r.type==="source"?e.push(r):r.type==="target"&&n.push(r);return{source:e,target:n}}function Bt(t,e,n=X.Left,r=!1){const o=((e==null?void 0:e.x)??0)+t.internals.positionAbsolute.x,i=((e==null?void 0:e.y)??0)+t.internals.positionAbsolute.y,{width:s,height:a}=e??Mt(t);if(r)return{x:o+s/2,y:i+a/2};switch((e==null?void 0:e.position)??n){case X.Top:return{x:o+s/2,y:i};case X.Right:return{x:o+s,y:i+a/2};case X.Bottom:return{x:o+s/2,y:i+a};case X.Left:return{x:o,y:i+a/2}}}function Wr(t,e){return t&&(e?t.find(n=>n.id===e):t[0])||null}function Vn(t,e){return t?typeof t=="string"?t:`${e?`${e}__`:""}${Object.keys(t).sort().map(r=>`${r}=${t[r]}`).join("&")}`:""}function Cf(t,{id:e,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:o}){const i=new Set;return t.reduce((s,a)=>([a.markerStart||r,a.markerEnd||o].forEach(l=>{if(l&&typeof l=="object"){const c=Vn(l,e);i.has(c)||(s.push({id:c,color:l.color||n,...l}),i.add(c))}}),s),[]).sort((s,a)=>s.id.localeCompare(a.id))}const Ni=1e3,kf=10,rr={nodeOrigin:[0,0],nodeExtent:me,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},Af={...rr,checkEquality:!0};function or(t,e){const n={...t};for(const r in e)e[r]!==void 0&&(n[r]=e[r]);return n}function If(t,e,n){const r=or(rr,n);for(const o of t.values())if(o.parentId)sr(o,t,e,r);else{const i=Se(o,r.nodeOrigin),s=Jt(o.extent)?o.extent:r.nodeExtent,a=Vt(i,s,Mt(o));o.internals.positionAbsolute=a}}function $f(t,e){if(!t.handles)return t.measured?e==null?void 0:e.internals.handleBounds:void 0;const n=[],r=[];for(const o of t.handles){const i={id:o.id,width:o.width??1,height:o.height??1,nodeId:t.id,x:o.x,y:o.y,position:o.position,type:o.type};o.type==="source"?n.push(i):o.type==="target"&&r.push(i)}return{source:n,target:r}}function ir(t){return t==="manual"}function Bn(t,e,n,r={}){var f,u;const o=or(Af,r),i={i:0},s=new Map(e),a=o!=null&&o.elevateNodesOnSelect&&!ir(o.zIndexMode)?Ni:0;let l=t.length>0,c=!1;e.clear(),n.clear();for(const d of t){let h=s.get(d.id);if(o.checkEquality&&d===(h==null?void 0:h.internals.userNode))e.set(d.id,h);else{const g=Se(d,o.nodeOrigin),y=Jt(d.extent)?d.extent:o.nodeExtent,p=Vt(g,y,Mt(d));h={...o.defaults,...d,measured:{width:(f=d.measured)==null?void 0:f.width,height:(u=d.measured)==null?void 0:u.height},internals:{positionAbsolute:p,handleBounds:$f(d,h),z:Ei(d,a,o.zIndexMode),userNode:d}},e.set(d.id,h)}(h.measured===void 0||h.measured.width===void 0||h.measured.height===void 0)&&!h.hidden&&(l=!1),d.parentId&&sr(h,e,n,r,i),c||(c=d.selected??!1)}return{nodesInitialized:l,hasSelectedNodes:c}}function Pf(t,e){if(!t.parentId)return;const n=e.get(t.parentId);n?n.set(t.id,t):e.set(t.parentId,new Map([[t.id,t]]))}function sr(t,e,n,r,o){const{elevateNodesOnSelect:i,nodeOrigin:s,nodeExtent:a,zIndexMode:l}=or(rr,r),c=t.parentId,f=e.get(c);if(!f){console.warn(`Parent node ${c} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}Pf(t,n),o&&!f.parentId&&f.internals.rootParentIndex===void 0&&l==="auto"&&(f.internals.rootParentIndex=++o.i,f.internals.z=f.internals.z+o.i*kf),o&&f.internals.rootParentIndex!==void 0&&(o.i=f.internals.rootParentIndex);const u=i&&!ir(l)?Ni:0,{x:d,y:h,z:g}=Tf(t,f,s,a,u,l),{positionAbsolute:y}=t.internals,p=d!==y.x||h!==y.y;(p||g!==t.internals.z)&&e.set(t.id,{...t,internals:{...t.internals,positionAbsolute:p?{x:d,y:h}:y,z:g}})}function Ei(t,e,n){const r=gt(t.zIndex)?t.zIndex:0;return ir(n)?r:r+(t.selected?e:0)}function Tf(t,e,n,r,o,i){const{x:s,y:a}=e.internals.positionAbsolute,l=Mt(t),c=Se(t,n),f=Jt(t.extent)?Vt(c,t.extent,l):c;let u=Vt({x:s+f.x,y:a+f.y},r,l);t.extent==="parent"&&(u=fi(u,l,e));const d=Ei(t,o,i),h=e.internals.z??0;return{x:u.x,y:u.y,z:h>=d?h+1:d}}function ar(t,e,n,r=[0,0]){var s;const o=[],i=new Map;for(const a of t){const l=e.get(a.parentId);if(!l)continue;const c=((s=i.get(a.parentId))==null?void 0:s.expandedRect)??Qt(l),f=hi(c,a.rect);i.set(a.parentId,{expandedRect:f,parent:l})}return i.size>0&&i.forEach(({expandedRect:a,parent:l},c)=>{var x;const f=l.internals.positionAbsolute,u=Mt(l),d=l.origin??r,h=a.x<f.x?Math.round(Math.abs(f.x-a.x)):0,g=a.y<f.y?Math.round(Math.abs(f.y-a.y)):0,y=Math.max(u.width,Math.round(a.width)),p=Math.max(u.height,Math.round(a.height)),m=(y-u.width)*d[0],v=(p-u.height)*d[1];(h>0||g>0||m||v)&&(o.push({id:c,type:"position",position:{x:l.position.x-h+m,y:l.position.y-g+v}}),(x=n.get(c))==null||x.forEach(w=>{t.some(E=>E.id===w.id)||o.push({id:w.id,type:"position",position:{x:w.position.x+h,y:w.position.y+g}})})),(u.width<a.width||u.height<a.height||h||g)&&o.push({id:c,type:"dimensions",setAttributes:!0,dimensions:{width:y+(h?d[0]*h-m:0),height:p+(g?d[1]*g-v:0)}})}),o}function zf(t,e,n,r,o,i,s){const a=r==null?void 0:r.querySelector(".xyflow__viewport");let l=!1;if(!a)return{changes:[],updatedInternals:l};const c=[],f=window.getComputedStyle(a),{m22:u}=new window.DOMMatrixReadOnly(f.transform),d=[];for(const h of t.values()){const g=e.get(h.id);if(!g)continue;if(g.hidden){e.set(g.id,{...g,internals:{...g.internals,handleBounds:void 0}}),l=!0;continue}const y=nr(h.nodeElement),p=g.measured.width!==y.width||g.measured.height!==y.height;if(!!(y.width&&y.height&&(p||!g.internals.handleBounds||h.force))){const v=h.nodeElement.getBoundingClientRect(),x=Jt(g.extent)?g.extent:i;let{positionAbsolute:w}=g.internals;g.parentId&&g.extent==="parent"?w=fi(w,y,e.get(g.parentId)):x&&(w=Vt(w,x,y));const E={...g,measured:y,internals:{...g.internals,positionAbsolute:w,handleBounds:{source:Vr("source",h.nodeElement,v,u,g.id),target:Vr("target",h.nodeElement,v,u,g.id)}}};e.set(g.id,E),g.parentId&&sr(E,e,n,{nodeOrigin:o,zIndexMode:s}),l=!0,p&&(c.push({id:g.id,type:"dimensions",dimensions:y}),g.expandParent&&g.parentId&&d.push({id:g.id,parentId:g.parentId,rect:Qt(E,o)}))}}if(d.length>0){const h=ar(d,e,n,o);c.push(...h)}return{changes:c,updatedInternals:l}}async function Df({delta:t,panZoom:e,transform:n,translateExtent:r,width:o,height:i}){if(!e||!t.x&&!t.y)return Promise.resolve(!1);const s=await e.setViewportConstrained({x:n[0]+t.x,y:n[1]+t.y,zoom:n[2]},[[0,0],[o,i]],r),a=!!s&&(s.x!==n[0]||s.y!==n[1]||s.k!==n[2]);return Promise.resolve(a)}function Gr(t,e,n,r,o,i){let s=o;const a=r.get(s)||new Map;r.set(s,a.set(n,e)),s=`${o}-${t}`;const l=r.get(s)||new Map;if(r.set(s,l.set(n,e)),i){s=`${o}-${t}-${i}`;const c=r.get(s)||new Map;r.set(s,c.set(n,e))}}function Si(t,e,n){t.clear(),e.clear();for(const r of n){const{source:o,target:i,sourceHandle:s=null,targetHandle:a=null}=r,l={edgeId:r.id,source:o,target:i,sourceHandle:s,targetHandle:a},c=`${o}-${s}--${i}-${a}`,f=`${i}-${a}--${o}-${s}`;Gr("source",l,f,t,o,s),Gr("target",l,c,t,i,a),e.set(r.id,r)}}function Mi(t,e){if(!t.parentId)return!1;const n=e.get(t.parentId);return n?n.selected?!0:Mi(n,e):!1}function qr(t,e,n){var o;let r=t;do{if((o=r==null?void 0:r.matches)!=null&&o.call(r,e))return!0;if(r===n)return!1;r=r==null?void 0:r.parentElement}while(r);return!1}function Lf(t,e,n,r){const o=new Map;for(const[i,s]of t)if((s.selected||s.id===r)&&(!s.parentId||!Mi(s,t))&&(s.draggable||e&&typeof s.draggable>"u")){const a=t.get(i);a&&o.set(i,{id:i,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return o}function bn({nodeId:t,dragItems:e,nodeLookup:n,dragging:r=!0}){var s,a,l;const o=[];for(const[c,f]of e){const u=(s=n.get(c))==null?void 0:s.internals.userNode;u&&o.push({...u,position:f.position,dragging:r})}if(!t)return[o[0],o];const i=(a=n.get(t))==null?void 0:a.internals.userNode;return[i?{...i,position:((l=e.get(t))==null?void 0:l.position)||i.position,dragging:r}:o[0],o]}function jf({dragItems:t,snapGrid:e,x:n,y:r}){const o=t.values().next().value;if(!o)return null;const i={x:n-o.distance.x,y:r-o.distance.y},s=Ce(i,e);return{x:s.x-i.x,y:s.y-i.y}}function Rf({onNodeMouseDown:t,getStoreItems:e,onDragStart:n,onDrag:r,onDragStop:o}){let i={x:null,y:null},s=0,a=new Map,l=!1,c={x:0,y:0},f=null,u=!1,d=null,h=!1,g=!1,y=null;function p({noDragClassName:v,handleSelector:x,domNode:w,isSelectable:E,nodeId:N,nodeClickDistance:S=0}){d=ut(w);function A({x:z,y:H}){const{nodeLookup:b,nodeExtent:P,snapGrid:M,snapToGrid:T,nodeOrigin:I,onNodeDrag:C,onSelectionDrag:L,onError:V,updateNodePositions:R}=e();i={x:z,y:H};let F=!1;const O=a.size>1,Y=O&&P?Rn(Me(a)):null,Z=O&&T?jf({dragItems:a,snapGrid:M,x:z,y:H}):null;for(const[G,B]of a){if(!b.has(G))continue;let W={x:z-B.distance.x,y:H-B.distance.y};T&&(W=Z?{x:Math.round(W.x+Z.x),y:Math.round(W.y+Z.y)}:Ce(W,M));let Q=null;if(O&&P&&!B.extent&&Y){const{positionAbsolute:q}=B.internals,et=q.x-Y.x+P[0][0],nt=q.x+B.measured.width-Y.x2+P[1][0],tt=q.y-Y.y+P[0][1],st=q.y+B.measured.height-Y.y2+P[1][1];Q=[[et,tt],[nt,st]]}const{position:K,positionAbsolute:U}=ui({nodeId:G,nextPosition:W,nodeLookup:b,nodeExtent:Q||P,nodeOrigin:I,onError:V});F=F||B.position.x!==K.x||B.position.y!==K.y,B.position=K,B.internals.positionAbsolute=U}if(g=g||F,!!F&&(R(a,!0),y&&(r||C||!N&&L))){const[G,B]=bn({nodeId:N,dragItems:a,nodeLookup:b});r==null||r(y,a,G,B),C==null||C(y,G,B),N||L==null||L(y,B)}}async function $(){if(!f)return;const{transform:z,panBy:H,autoPanSpeed:b,autoPanOnNodeDrag:P}=e();if(!P){l=!1,cancelAnimationFrame(s);return}const[M,T]=di(c,f,b);(M!==0||T!==0)&&(i.x=(i.x??0)-M/z[2],i.y=(i.y??0)-T/z[2],await H({x:M,y:T})&&A(i)),s=requestAnimationFrame($)}function j(z){var O;const{nodeLookup:H,multiSelectionActive:b,nodesDraggable:P,transform:M,snapGrid:T,snapToGrid:I,selectNodesOnDrag:C,onNodeDragStart:L,onSelectionDragStart:V,unselectNodesAndEdges:R}=e();u=!0,(!C||!E)&&!b&&N&&((O=H.get(N))!=null&&O.selected||R()),E&&C&&N&&(t==null||t(N));const F=fe(z.sourceEvent,{transform:M,snapGrid:T,snapToGrid:I,containerBounds:f});if(i=F,a=Lf(H,P,F,N),a.size>0&&(n||L||!N&&V)){const[Y,Z]=bn({nodeId:N,dragItems:a,nodeLookup:H});n==null||n(z.sourceEvent,a,Y,Z),L==null||L(z.sourceEvent,Y,Z),N||V==null||V(z.sourceEvent,Z)}}const k=Xo().clickDistance(S).on("start",z=>{const{domNode:H,nodeDragThreshold:b,transform:P,snapGrid:M,snapToGrid:T}=e();f=(H==null?void 0:H.getBoundingClientRect())||null,h=!1,g=!1,y=z.sourceEvent,b===0&&j(z),i=fe(z.sourceEvent,{transform:P,snapGrid:M,snapToGrid:T,containerBounds:f}),c=pt(z.sourceEvent,f)}).on("drag",z=>{const{autoPanOnNodeDrag:H,transform:b,snapGrid:P,snapToGrid:M,nodeDragThreshold:T,nodeLookup:I}=e(),C=fe(z.sourceEvent,{transform:b,snapGrid:P,snapToGrid:M,containerBounds:f});if(y=z.sourceEvent,(z.sourceEvent.type==="touchmove"&&z.sourceEvent.touches.length>1||N&&!I.has(N))&&(h=!0),!h){if(!l&&H&&u&&(l=!0,$()),!u){const L=pt(z.sourceEvent,f),V=L.x-c.x,R=L.y-c.y;Math.sqrt(V*V+R*R)>T&&j(z)}(i.x!==C.xSnapped||i.y!==C.ySnapped)&&a&&u&&(c=pt(z.sourceEvent,f),A(C))}}).on("end",z=>{if(!(!u||h)&&(l=!1,u=!1,cancelAnimationFrame(s),a.size>0)){const{nodeLookup:H,updateNodePositions:b,onNodeDragStop:P,onSelectionDragStop:M}=e();if(g&&(b(a,!1),g=!1),o||P||!N&&M){const[T,I]=bn({nodeId:N,dragItems:a,nodeLookup:H,dragging:!1});o==null||o(z.sourceEvent,a,T,I),P==null||P(z.sourceEvent,T,I),N||M==null||M(z.sourceEvent,I)}}}).filter(z=>{const H=z.target;return!z.button&&(!v||!qr(H,`.${v}`,w))&&(!x||qr(H,x,w))});d.call(k)}function m(){d==null||d.on(".drag",null)}return{update:p,destroy:m}}function Hf(t,e,n){const r=[],o={x:t.x-n,y:t.y-n,width:n*2,height:n*2};for(const i of e.values())we(o,Qt(i))>0&&r.push(i);return r}const Vf=250;function Bf(t,e,n,r){var a,l;let o=[],i=1/0;const s=Hf(t,n,e+Vf);for(const c of s){const f=[...((a=c.internals.handleBounds)==null?void 0:a.source)??[],...((l=c.internals.handleBounds)==null?void 0:l.target)??[]];for(const u of f){if(r.nodeId===u.nodeId&&r.type===u.type&&r.id===u.id)continue;const{x:d,y:h}=Bt(c,u,u.position,!0),g=Math.sqrt(Math.pow(d-t.x,2)+Math.pow(h-t.y,2));g>e||(g<i?(o=[{...u,x:d,y:h}],i=g):g===i&&o.push({...u,x:d,y:h}))}}if(!o.length)return null;if(o.length>1){const c=r.type==="source"?"target":"source";return o.find(f=>f.type===c)??o[0]}return o[0]}function Ci(t,e,n,r,o,i=!1){var c,f,u;const s=r.get(t);if(!s)return null;const a=o==="strict"?(c=s.internals.handleBounds)==null?void 0:c[e]:[...((f=s.internals.handleBounds)==null?void 0:f.source)??[],...((u=s.internals.handleBounds)==null?void 0:u.target)??[]],l=(n?a==null?void 0:a.find(d=>d.id===n):a==null?void 0:a[0])??null;return l&&i?{...l,...Bt(s,l,l.position,!0)}:l}function ki(t,e){return t||(e!=null&&e.classList.contains("target")?"target":e!=null&&e.classList.contains("source")?"source":null)}function Ff(t,e){let n=null;return e?n=!0:t&&!e&&(n=!1),n}const Ai=()=>!0;function Of(t,{connectionMode:e,connectionRadius:n,handleId:r,nodeId:o,edgeUpdaterType:i,isTarget:s,domNode:a,nodeLookup:l,lib:c,autoPanOnConnect:f,flowId:u,panBy:d,cancelConnection:h,onConnectStart:g,onConnect:y,onConnectEnd:p,isValidConnection:m=Ai,onReconnectEnd:v,updateConnection:x,getTransform:w,getFromHandle:E,autoPanSpeed:N,dragThreshold:S=1,handleDomNode:A}){const $=mi(t.target);let j=0,k;const{x:z,y:H}=pt(t),b=ki(i,A),P=a==null?void 0:a.getBoundingClientRect();let M=!1;if(!P||!b)return;const T=Ci(o,b,r,l,e);if(!T)return;let I=pt(t,P),C=!1,L=null,V=!1,R=null;function F(){if(!f||!P)return;const[K,U]=di(I,P,N);d({x:K,y:U}),j=requestAnimationFrame(F)}const O={...T,nodeId:o,type:b,position:T.position},Y=l.get(o);let G={inProgress:!0,isValid:null,from:Bt(Y,O,X.Left,!0),fromHandle:O,fromPosition:O.position,fromNode:Y,to:I,toHandle:null,toPosition:Lr[O.position],toNode:null,pointer:I};function B(){M=!0,x(G),g==null||g(t,{nodeId:o,handleId:r,handleType:b})}S===0&&B();function W(K){if(!M){const{x:st,y:Ct}=pt(K),bt=st-z,Pt=Ct-H;if(!(bt*bt+Pt*Pt>S*S))return;B()}if(!E()||!O){Q(K);return}const U=w();I=pt(K,P),k=Bf(ke(I,U,!1,[1,1]),n,l,O),C||(F(),C=!0);const q=Ii(K,{handle:k,connectionMode:e,fromNodeId:o,fromHandleId:r,fromType:s?"target":"source",isValidConnection:m,doc:$,lib:c,flowId:u,nodeLookup:l});R=q.handleDomNode,L=q.connection,V=Ff(!!k,q.isValid);const et=l.get(o),nt=et?Bt(et,O,X.Left,!0):G.from,tt={...G,from:nt,isValid:V,to:q.toHandle&&V?tn({x:q.toHandle.x,y:q.toHandle.y},U):I,toHandle:q.toHandle,toPosition:V&&q.toHandle?q.toHandle.position:Lr[O.position],toNode:q.toHandle?l.get(q.toHandle.nodeId):null,pointer:I};x(tt),G=tt}function Q(K){if(!("touches"in K&&K.touches.length>0)){if(M){(k||R)&&L&&V&&(y==null||y(L));const{inProgress:U,...q}=G,et={...q,toPosition:G.toHandle?G.toPosition:null};p==null||p(K,et),i&&(v==null||v(K,et))}h(),cancelAnimationFrame(j),C=!1,V=!1,L=null,R=null,$.removeEventListener("mousemove",W),$.removeEventListener("mouseup",Q),$.removeEventListener("touchmove",W),$.removeEventListener("touchend",Q)}}$.addEventListener("mousemove",W),$.addEventListener("mouseup",Q),$.addEventListener("touchmove",W),$.addEventListener("touchend",Q)}function Ii(t,{handle:e,connectionMode:n,fromNodeId:r,fromHandleId:o,fromType:i,doc:s,lib:a,flowId:l,isValidConnection:c=Ai,nodeLookup:f}){const u=i==="target",d=e?s.querySelector(`.${a}-flow__handle[data-id="${l}-${e==null?void 0:e.nodeId}-${e==null?void 0:e.id}-${e==null?void 0:e.type}"]`):null,{x:h,y:g}=pt(t),y=s.elementFromPoint(h,g),p=y!=null&&y.classList.contains(`${a}-flow__handle`)?y:d,m={handleDomNode:p,isValid:!1,connection:null,toHandle:null};if(p){const v=ki(void 0,p),x=p.getAttribute("data-nodeid"),w=p.getAttribute("data-handleid"),E=p.classList.contains("connectable"),N=p.classList.contains("connectableend");if(!x||!v)return m;const S={source:u?x:r,sourceHandle:u?w:o,target:u?r:x,targetHandle:u?o:w};m.connection=S;const $=E&&N&&(n===Ut.Strict?u&&v==="source"||!u&&v==="target":x!==r||w!==o);m.isValid=$&&c(S),m.toHandle=Ci(x,v,w,f,n,!0)}return m}const Fn={onPointerDown:Of,isValid:Ii};function Xf({domNode:t,panZoom:e,getTransform:n,getViewScale:r}){const o=ut(t);function i({translateExtent:a,width:l,height:c,zoomStep:f=1,pannable:u=!0,zoomable:d=!0,inversePan:h=!1}){const g=x=>{if(x.sourceEvent.type!=="wheel"||!e)return;const w=n(),E=x.sourceEvent.ctrlKey&&ve()?10:1,N=-x.sourceEvent.deltaY*(x.sourceEvent.deltaMode===1?.05:x.sourceEvent.deltaMode?1:.002)*f,S=w[2]*Math.pow(2,N*E);e.scaleTo(S)};let y=[0,0];const p=x=>{(x.sourceEvent.type==="mousedown"||x.sourceEvent.type==="touchstart")&&(y=[x.sourceEvent.clientX??x.sourceEvent.touches[0].clientX,x.sourceEvent.clientY??x.sourceEvent.touches[0].clientY])},m=x=>{const w=n();if(x.sourceEvent.type!=="mousemove"&&x.sourceEvent.type!=="touchmove"||!e)return;const E=[x.sourceEvent.clientX??x.sourceEvent.touches[0].clientX,x.sourceEvent.clientY??x.sourceEvent.touches[0].clientY],N=[E[0]-y[0],E[1]-y[1]];y=E;const S=r()*Math.max(w[2],Math.log(w[2]))*(h?-1:1),A={x:w[0]-N[0]*S,y:w[1]-N[1]*S},$=[[0,0],[l,c]];e.setViewportConstrained({x:A.x,y:A.y,zoom:w[2]},$,a)},v=oi().on("start",p).on("zoom",u?m:null).on("zoom.wheel",d?g:null);o.call(v,{})}function s(){o.on("zoom",null)}return{update:i,destroy:s,pointer:dt}}const ln=t=>({x:t.x,y:t.y,zoom:t.k}),_n=({x:t,y:e,zoom:n})=>sn.translate(t,e).scale(n),Xt=(t,e)=>t.target.closest(`.${e}`),$i=(t,e)=>e===2&&Array.isArray(t)&&t.includes(2),Yf=t=>((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2,Nn=(t,e=0,n=Yf,r=()=>{})=>{const o=typeof e=="number"&&e>0;return o||r(),o?t.transition().duration(e).ease(n).on("end",r):t},Pi=t=>{const e=t.ctrlKey&&ve()?10:1;return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*e};function Wf({zoomPanValues:t,noWheelClassName:e,d3Selection:n,d3Zoom:r,panOnScrollMode:o,panOnScrollSpeed:i,zoomOnPinch:s,onPanZoomStart:a,onPanZoom:l,onPanZoomEnd:c}){return f=>{if(Xt(f,e))return f.ctrlKey&&f.preventDefault(),!1;f.preventDefault(),f.stopImmediatePropagation();const u=n.property("__zoom").k||1;if(f.ctrlKey&&s){const p=dt(f),m=Pi(f),v=u*Math.pow(2,m);r.scaleTo(n,v,p,f);return}const d=f.deltaMode===1?20:1;let h=o===Lt.Vertical?0:f.deltaX*d,g=o===Lt.Horizontal?0:f.deltaY*d;!ve()&&f.shiftKey&&o!==Lt.Vertical&&(h=f.deltaY*d,g=0),r.translateBy(n,-(h/u)*i,-(g/u)*i,{internal:!0});const y=ln(n.property("__zoom"));clearTimeout(t.panScrollTimeout),t.isPanScrolling?(l==null||l(f,y),t.panScrollTimeout=setTimeout(()=>{c==null||c(f,y),t.isPanScrolling=!1},150)):(t.isPanScrolling=!0,a==null||a(f,y))}}function Gf({noWheelClassName:t,preventScrolling:e,d3ZoomHandler:n}){return function(r,o){const i=r.type==="wheel",s=!e&&i&&!r.ctrlKey,a=Xt(r,t);if(r.ctrlKey&&i&&a&&r.preventDefault(),s||a)return null;r.preventDefault(),n.call(this,r,o)}}function qf({zoomPanValues:t,onDraggingChange:e,onPanZoomStart:n}){return r=>{var i,s,a;if((i=r.sourceEvent)!=null&&i.internal)return;const o=ln(r.transform);t.mouseButton=((s=r.sourceEvent)==null?void 0:s.button)||0,t.isZoomingOrPanning=!0,t.prevViewport=o,((a=r.sourceEvent)==null?void 0:a.type)==="mousedown"&&e(!0),n&&(n==null||n(r.sourceEvent,o))}}function Zf({zoomPanValues:t,panOnDrag:e,onPaneContextMenu:n,onTransformChange:r,onPanZoom:o}){return i=>{var s,a;t.usedRightMouseButton=!!(n&&$i(e,t.mouseButton??0)),(s=i.sourceEvent)!=null&&s.sync||r([i.transform.x,i.transform.y,i.transform.k]),o&&!((a=i.sourceEvent)!=null&&a.internal)&&(o==null||o(i.sourceEvent,ln(i.transform)))}}function Uf({zoomPanValues:t,panOnDrag:e,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:o,onPaneContextMenu:i}){return s=>{var a;if(!((a=s.sourceEvent)!=null&&a.internal)&&(t.isZoomingOrPanning=!1,i&&$i(e,t.mouseButton??0)&&!t.usedRightMouseButton&&s.sourceEvent&&i(s.sourceEvent),t.usedRightMouseButton=!1,r(!1),o)){const l=ln(s.transform);t.prevViewport=l,clearTimeout(t.timerId),t.timerId=setTimeout(()=>{o==null||o(s.sourceEvent,l)},n?150:0)}}}function Kf({zoomActivationKeyPressed:t,zoomOnScroll:e,zoomOnPinch:n,panOnDrag:r,panOnScroll:o,zoomOnDoubleClick:i,userSelectionActive:s,noWheelClassName:a,noPanClassName:l,lib:c,connectionInProgress:f}){return u=>{var p;const d=t||e,h=n&&u.ctrlKey,g=u.type==="wheel";if(u.button===1&&u.type==="mousedown"&&(Xt(u,`${c}-flow__node`)||Xt(u,`${c}-flow__edge`)))return!0;if(!r&&!d&&!o&&!i&&!n||s||f&&!g||Xt(u,a)&&g||Xt(u,l)&&(!g||o&&g&&!t)||!n&&u.ctrlKey&&g)return!1;if(!n&&u.type==="touchstart"&&((p=u.touches)==null?void 0:p.length)>1)return u.preventDefault(),!1;if(!d&&!o&&!h&&g||!r&&(u.type==="mousedown"||u.type==="touchstart")||Array.isArray(r)&&!r.includes(u.button)&&u.type==="mousedown")return!1;const y=Array.isArray(r)&&r.includes(u.button)||!u.button||u.button<=1;return(!u.ctrlKey||g)&&y}}function Qf({domNode:t,minZoom:e,maxZoom:n,translateExtent:r,viewport:o,onPanZoom:i,onPanZoomStart:s,onPanZoomEnd:a,onDraggingChange:l}){const c={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},f=t.getBoundingClientRect(),u=oi().scaleExtent([e,n]).translateExtent(r),d=ut(t).call(u);v({x:o.x,y:o.y,zoom:Kt(o.zoom,e,n)},[[0,0],[f.width,f.height]],r);const h=d.on("wheel.zoom"),g=d.on("dblclick.zoom");u.wheelDelta(Pi);function y(k,z){return d?new Promise(H=>{u==null||u.interpolate((z==null?void 0:z.interpolate)==="linear"?ue:Fe).transform(Nn(d,z==null?void 0:z.duration,z==null?void 0:z.ease,()=>H(!0)),k)}):Promise.resolve(!1)}function p({noWheelClassName:k,noPanClassName:z,onPaneContextMenu:H,userSelectionActive:b,panOnScroll:P,panOnDrag:M,panOnScrollMode:T,panOnScrollSpeed:I,preventScrolling:C,zoomOnPinch:L,zoomOnScroll:V,zoomOnDoubleClick:R,zoomActivationKeyPressed:F,lib:O,onTransformChange:Y,connectionInProgress:Z,paneClickDistance:G,selectionOnDrag:B}){b&&!c.isZoomingOrPanning&&m();const W=P&&!F&&!b;u.clickDistance(B?1/0:!gt(G)||G<0?0:G);const Q=W?Wf({zoomPanValues:c,noWheelClassName:k,d3Selection:d,d3Zoom:u,panOnScrollMode:T,panOnScrollSpeed:I,zoomOnPinch:L,onPanZoomStart:s,onPanZoom:i,onPanZoomEnd:a}):Gf({noWheelClassName:k,preventScrolling:C,d3ZoomHandler:h});if(d.on("wheel.zoom",Q,{passive:!1}),!b){const U=qf({zoomPanValues:c,onDraggingChange:l,onPanZoomStart:s});u.on("start",U);const q=Zf({zoomPanValues:c,panOnDrag:M,onPaneContextMenu:!!H,onPanZoom:i,onTransformChange:Y});u.on("zoom",q);const et=Uf({zoomPanValues:c,panOnDrag:M,panOnScroll:P,onPaneContextMenu:H,onPanZoomEnd:a,onDraggingChange:l});u.on("end",et)}const K=Kf({zoomActivationKeyPressed:F,panOnDrag:M,zoomOnScroll:V,panOnScroll:P,zoomOnDoubleClick:R,zoomOnPinch:L,userSelectionActive:b,noPanClassName:z,noWheelClassName:k,lib:O,connectionInProgress:Z});u.filter(K),R?d.on("dblclick.zoom",g):d.on("dblclick.zoom",null)}function m(){u.on("zoom",null)}async function v(k,z,H){const b=_n(k),P=u==null?void 0:u.constrain()(b,z,H);return P&&await y(P),new Promise(M=>M(P))}async function x(k,z){const H=_n(k);return await y(H,z),new Promise(b=>b(H))}function w(k){if(d){const z=_n(k),H=d.property("__zoom");(H.k!==k.zoom||H.x!==k.x||H.y!==k.y)&&(u==null||u.transform(d,z,null,{sync:!0}))}}function E(){const k=d?ri(d.node()):{x:0,y:0,k:1};return{x:k.x,y:k.y,zoom:k.k}}function N(k,z){return d?new Promise(H=>{u==null||u.interpolate((z==null?void 0:z.interpolate)==="linear"?ue:Fe).scaleTo(Nn(d,z==null?void 0:z.duration,z==null?void 0:z.ease,()=>H(!0)),k)}):Promise.resolve(!1)}function S(k,z){return d?new Promise(H=>{u==null||u.interpolate((z==null?void 0:z.interpolate)==="linear"?ue:Fe).scaleBy(Nn(d,z==null?void 0:z.duration,z==null?void 0:z.ease,()=>H(!0)),k)}):Promise.resolve(!1)}function A(k){u==null||u.scaleExtent(k)}function $(k){u==null||u.translateExtent(k)}function j(k){const z=!gt(k)||k<0?0:k;u==null||u.clickDistance(z)}return{update:p,destroy:m,setViewport:x,setViewportConstrained:v,getViewport:E,scaleTo:N,scaleBy:S,setScaleExtent:A,setTranslateExtent:$,syncViewport:w,setClickDistance:j}}var te;(function(t){t.Line="line",t.Handle="handle"})(te||(te={}));function Jf({width:t,prevWidth:e,height:n,prevHeight:r,affectsX:o,affectsY:i}){const s=t-e,a=n-r,l=[s>0?1:s<0?-1:0,a>0?1:a<0?-1:0];return s&&o&&(l[0]=l[0]*-1),a&&i&&(l[1]=l[1]*-1),l}function Zr(t){const e=t.includes("right")||t.includes("left"),n=t.includes("bottom")||t.includes("top"),r=t.includes("left"),o=t.includes("top");return{isHorizontal:e,isVertical:n,affectsX:r,affectsY:o}}function kt(t,e){return Math.max(0,e-t)}function At(t,e){return Math.max(0,t-e)}function Re(t,e,n){return Math.max(0,e-t,t-n)}function Ur(t,e){return t?!e:e}function td(t,e,n,r,o,i,s,a){let{affectsX:l,affectsY:c}=e;const{isHorizontal:f,isVertical:u}=e,d=f&&u,{xSnapped:h,ySnapped:g}=n,{minWidth:y,maxWidth:p,minHeight:m,maxHeight:v}=r,{x,y:w,width:E,height:N,aspectRatio:S}=t;let A=Math.floor(f?h-t.pointerX:0),$=Math.floor(u?g-t.pointerY:0);const j=E+(l?-A:A),k=N+(c?-$:$),z=-i[0]*E,H=-i[1]*N;let b=Re(j,y,p),P=Re(k,m,v);if(s){let I=0,C=0;l&&A<0?I=kt(x+A+z,s[0][0]):!l&&A>0&&(I=At(x+j+z,s[1][0])),c&&$<0?C=kt(w+$+H,s[0][1]):!c&&$>0&&(C=At(w+k+H,s[1][1])),b=Math.max(b,I),P=Math.max(P,C)}if(a){let I=0,C=0;l&&A>0?I=At(x+A,a[0][0]):!l&&A<0&&(I=kt(x+j,a[1][0])),c&&$>0?C=At(w+$,a[0][1]):!c&&$<0&&(C=kt(w+k,a[1][1])),b=Math.max(b,I),P=Math.max(P,C)}if(o){if(f){const I=Re(j/S,m,v)*S;if(b=Math.max(b,I),s){let C=0;!l&&!c||l&&!c&&d?C=At(w+H+j/S,s[1][1])*S:C=kt(w+H+(l?A:-A)/S,s[0][1])*S,b=Math.max(b,C)}if(a){let C=0;!l&&!c||l&&!c&&d?C=kt(w+j/S,a[1][1])*S:C=At(w+(l?A:-A)/S,a[0][1])*S,b=Math.max(b,C)}}if(u){const I=Re(k*S,y,p)/S;if(P=Math.max(P,I),s){let C=0;!l&&!c||c&&!l&&d?C=At(x+k*S+z,s[1][0])/S:C=kt(x+(c?$:-$)*S+z,s[0][0])/S,P=Math.max(P,C)}if(a){let C=0;!l&&!c||c&&!l&&d?C=kt(x+k*S,a[1][0])/S:C=At(x+(c?$:-$)*S,a[0][0])/S,P=Math.max(P,C)}}}$=$+($<0?P:-P),A=A+(A<0?b:-b),o&&(d?j>k*S?$=(Ur(l,c)?-A:A)/S:A=(Ur(l,c)?-$:$)*S:f?($=A/S,c=l):(A=$*S,l=c));const M=l?x+A:x,T=c?w+$:w;return{width:E+(l?-A:A),height:N+(c?-$:$),x:i[0]*A*(l?-1:1)+M,y:i[1]*$*(c?-1:1)+T}}const Ti={width:0,height:0,x:0,y:0},ed={...Ti,pointerX:0,pointerY:0,aspectRatio:1};function nd(t){return[[0,0],[t.measured.width,t.measured.height]]}function rd(t,e,n){const r=e.position.x+t.position.x,o=e.position.y+t.position.y,i=t.measured.width??0,s=t.measured.height??0,a=n[0]*i,l=n[1]*s;return[[r-a,o-l],[r+i-a,o+s-l]]}function od({domNode:t,nodeId:e,getStoreItems:n,onChange:r,onEnd:o}){const i=ut(t);let s={controlDirection:Zr("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:c,boundaries:f,keepAspectRatio:u,resizeDirection:d,onResizeStart:h,onResize:g,onResizeEnd:y,shouldResize:p}){let m={...Ti},v={...ed};s={boundaries:f,resizeDirection:d,keepAspectRatio:u,controlDirection:Zr(c)};let x,w=null,E=[],N,S,A,$=!1;const j=Xo().on("start",k=>{const{nodeLookup:z,transform:H,snapGrid:b,snapToGrid:P,nodeOrigin:M,paneDomNode:T}=n();if(x=z.get(e),!x)return;w=(T==null?void 0:T.getBoundingClientRect())??null;const{xSnapped:I,ySnapped:C}=fe(k.sourceEvent,{transform:H,snapGrid:b,snapToGrid:P,containerBounds:w});m={width:x.measured.width??0,height:x.measured.height??0,x:x.position.x??0,y:x.position.y??0},v={...m,pointerX:I,pointerY:C,aspectRatio:m.width/m.height},N=void 0,x.parentId&&(x.extent==="parent"||x.expandParent)&&(N=z.get(x.parentId),S=N&&x.extent==="parent"?nd(N):void 0),E=[],A=void 0;for(const[L,V]of z)if(V.parentId===e&&(E.push({id:L,position:{...V.position},extent:V.extent}),V.extent==="parent"||V.expandParent)){const R=rd(V,x,V.origin??M);A?A=[[Math.min(R[0][0],A[0][0]),Math.min(R[0][1],A[0][1])],[Math.max(R[1][0],A[1][0]),Math.max(R[1][1],A[1][1])]]:A=R}h==null||h(k,{...m})}).on("drag",k=>{const{transform:z,snapGrid:H,snapToGrid:b,nodeOrigin:P}=n(),M=fe(k.sourceEvent,{transform:z,snapGrid:H,snapToGrid:b,containerBounds:w}),T=[];if(!x)return;const{x:I,y:C,width:L,height:V}=m,R={},F=x.origin??P,{width:O,height:Y,x:Z,y:G}=td(v,s.controlDirection,M,s.boundaries,s.keepAspectRatio,F,S,A),B=O!==L,W=Y!==V,Q=Z!==I&&B,K=G!==C&&W;if(!Q&&!K&&!B&&!W)return;if((Q||K||F[0]===1||F[1]===1)&&(R.x=Q?Z:m.x,R.y=K?G:m.y,m.x=R.x,m.y=R.y,E.length>0)){const nt=Z-I,tt=G-C;for(const st of E)st.position={x:st.position.x-nt+F[0]*(O-L),y:st.position.y-tt+F[1]*(Y-V)},T.push(st)}if((B||W)&&(R.width=B&&(!s.resizeDirection||s.resizeDirection==="horizontal")?O:m.width,R.height=W&&(!s.resizeDirection||s.resizeDirection==="vertical")?Y:m.height,m.width=R.width,m.height=R.height),N&&x.expandParent){const nt=F[0]*(R.width??0);R.x&&R.x<nt&&(m.x=nt,v.x=v.x-(R.x-nt));const tt=F[1]*(R.height??0);R.y&&R.y<tt&&(m.y=tt,v.y=v.y-(R.y-tt))}const U=Jf({width:m.width,prevWidth:L,height:m.height,prevHeight:V,affectsX:s.controlDirection.affectsX,affectsY:s.controlDirection.affectsY}),q={...m,direction:U};(p==null?void 0:p(k,q))!==!1&&($=!0,g==null||g(k,q),r(R,T))}).on("end",k=>{$&&(y==null||y(k,{...m}),o==null||o({...m}),$=!1)});i.call(j)}function l(){i.on(".drag",null)}return{update:a,destroy:l}}var En={exports:{}},Sn={},Mn={exports:{}},Cn={};/**
|
|
2
|
+
* @license React
|
|
3
|
+
* use-sync-external-store-shim.production.js
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/var Kr;function id(){if(Kr)return Cn;Kr=1;var t=Ao();function e(u,d){return u===d&&(u!==0||1/u===1/d)||u!==u&&d!==d}var n=typeof Object.is=="function"?Object.is:e,r=t.useState,o=t.useEffect,i=t.useLayoutEffect,s=t.useDebugValue;function a(u,d){var h=d(),g=r({inst:{value:h,getSnapshot:d}}),y=g[0].inst,p=g[1];return i(function(){y.value=h,y.getSnapshot=d,l(y)&&p({inst:y})},[u,h,d]),o(function(){return l(y)&&p({inst:y}),u(function(){l(y)&&p({inst:y})})},[u]),s(h),h}function l(u){var d=u.getSnapshot;u=u.value;try{var h=d();return!n(u,h)}catch{return!0}}function c(u,d){return d()}var f=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?c:a;return Cn.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:f,Cn}var Qr;function sd(){return Qr||(Qr=1,Mn.exports=id()),Mn.exports}/**
|
|
10
|
+
* @license React
|
|
11
|
+
* use-sync-external-store-shim/with-selector.production.js
|
|
12
|
+
*
|
|
13
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
14
|
+
*
|
|
15
|
+
* This source code is licensed under the MIT license found in the
|
|
16
|
+
* LICENSE file in the root directory of this source tree.
|
|
17
|
+
*/var Jr;function ad(){if(Jr)return Sn;Jr=1;var t=Ao(),e=sd();function n(c,f){return c===f&&(c!==0||1/c===1/f)||c!==c&&f!==f}var r=typeof Object.is=="function"?Object.is:n,o=e.useSyncExternalStore,i=t.useRef,s=t.useEffect,a=t.useMemo,l=t.useDebugValue;return Sn.useSyncExternalStoreWithSelector=function(c,f,u,d,h){var g=i(null);if(g.current===null){var y={hasValue:!1,value:null};g.current=y}else y=g.current;g=a(function(){function m(N){if(!v){if(v=!0,x=N,N=d(N),h!==void 0&&y.hasValue){var S=y.value;if(h(S,N))return w=S}return w=N}if(S=w,r(x,N))return S;var A=d(N);return h!==void 0&&h(S,A)?(x=N,S):(x=N,w=A)}var v=!1,x,w,E=u===void 0?null:u;return[function(){return m(f())},E===null?void 0:function(){return m(E())}]},[f,u,d,h]);var p=o(c,g[0],g[1]);return s(function(){y.hasValue=!0,y.value=p},[p]),l(p),p},Sn}var to;function cd(){return to||(to=1,En.exports=ad()),En.exports}var ld=cd();const ud=ba(ld),fd={},eo=t=>{let e;const n=new Set,r=(f,u)=>{const d=typeof f=="function"?f(e):f;if(!Object.is(d,e)){const h=e;e=u??(typeof d!="object"||d===null)?d:Object.assign({},e,d),n.forEach(g=>g(e,h))}},o=()=>e,l={setState:r,getState:o,getInitialState:()=>c,subscribe:f=>(n.add(f),()=>n.delete(f)),destroy:()=>{(fd?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},c=e=t(r,o,l);return l},dd=t=>t?eo(t):eo,{useDebugValue:hd}=_a,{useSyncExternalStoreWithSelector:gd}=ud,pd=t=>t;function zi(t,e=pd,n){const r=gd(t.subscribe,t.getState,t.getServerState||t.getInitialState,e,n);return hd(r),r}const no=(t,e)=>{const n=dd(t),r=(o,i=e)=>zi(n,o,i);return Object.assign(r,n),r},md=(t,e)=>t?no(t,e):no;function rt(t,e){if(Object.is(t,e))return!0;if(typeof t!="object"||t===null||typeof e!="object"||e===null)return!1;if(t instanceof Map&&e instanceof Map){if(t.size!==e.size)return!1;for(const[r,o]of t)if(!Object.is(o,e.get(r)))return!1;return!0}if(t instanceof Set&&e instanceof Set){if(t.size!==e.size)return!1;for(const r of t)if(!e.has(r))return!1;return!0}const n=Object.keys(t);if(n.length!==Object.keys(e).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(e,r)||!Object.is(t[r],e[r]))return!1;return!0}const un=D.createContext(null),yd=un.Provider,Di=wt.error001();function J(t,e){const n=D.useContext(un);if(n===null)throw new Error(Di);return zi(n,t,e)}function ot(){const t=D.useContext(un);if(t===null)throw new Error(Di);return D.useMemo(()=>({getState:t.getState,setState:t.setState,subscribe:t.subscribe}),[t])}const ro={display:"none"},xd={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Li="react-flow__node-desc",ji="react-flow__edge-desc",wd="react-flow__aria-live",vd=t=>t.ariaLiveMessage,bd=t=>t.ariaLabelConfig;function _d({rfId:t}){const e=J(vd);return _.jsx("div",{id:`${wd}-${t}`,"aria-live":"assertive","aria-atomic":"true",style:xd,children:e})}function Nd({rfId:t,disableKeyboardA11y:e}){const n=J(bd);return _.jsxs(_.Fragment,{children:[_.jsx("div",{id:`${Li}-${t}`,style:ro,children:e?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),_.jsx("div",{id:`${ji}-${t}`,style:ro,children:n["edge.a11yDescription.default"]}),!e&&_.jsx(_d,{rfId:t})]})}const fn=D.forwardRef(({position:t="top-left",children:e,className:n,style:r,...o},i)=>{const s=`${t}`.split("-");return _.jsx("div",{className:it(["react-flow__panel",n,...s]),style:r,ref:i,...o,children:e})});fn.displayName="Panel";function Ed({proOptions:t,position:e="bottom-right"}){return t!=null&&t.hideAttribution?null:_.jsx(fn,{position:e,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:_.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const Sd=t=>{const e=[],n=[];for(const[,r]of t.nodeLookup)r.selected&&e.push(r.internals.userNode);for(const[,r]of t.edgeLookup)r.selected&&n.push(r);return{selectedNodes:e,selectedEdges:n}},He=t=>t.id;function Md(t,e){return rt(t.selectedNodes.map(He),e.selectedNodes.map(He))&&rt(t.selectedEdges.map(He),e.selectedEdges.map(He))}function Cd({onSelectionChange:t}){const e=ot(),{selectedNodes:n,selectedEdges:r}=J(Sd,Md);return D.useEffect(()=>{const o={nodes:n,edges:r};t==null||t(o),e.getState().onSelectionChangeHandlers.forEach(i=>i(o))},[n,r,t]),null}const kd=t=>!!t.onSelectionChangeHandlers;function Ad({onSelectionChange:t}){const e=J(kd);return t||e?_.jsx(Cd,{onSelectionChange:t}):null}const On=typeof window<"u"?D.useLayoutEffect:D.useEffect,Ri=[0,0],Id={x:0,y:0,zoom:1},$d=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],oo=[...$d,"rfId"],Pd=t=>({setNodes:t.setNodes,setEdges:t.setEdges,setMinZoom:t.setMinZoom,setMaxZoom:t.setMaxZoom,setTranslateExtent:t.setTranslateExtent,setNodeExtent:t.setNodeExtent,reset:t.reset,setDefaultNodesAndEdges:t.setDefaultNodesAndEdges}),io={translateExtent:me,nodeOrigin:Ri,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function Td(t){const{setNodes:e,setEdges:n,setMinZoom:r,setMaxZoom:o,setTranslateExtent:i,setNodeExtent:s,reset:a,setDefaultNodesAndEdges:l}=J(Pd,rt),c=ot();On(()=>(l(t.defaultNodes,t.defaultEdges),()=>{f.current=io,a()}),[]);const f=D.useRef(io);return On(()=>{for(const u of oo){const d=t[u],h=f.current[u];d!==h&&(typeof t[u]>"u"||(u==="nodes"?e(d):u==="edges"?n(d):u==="minZoom"?r(d):u==="maxZoom"?o(d):u==="translateExtent"?i(d):u==="nodeExtent"?s(d):u==="ariaLabelConfig"?c.setState({ariaLabelConfig:mf(d)}):u==="fitView"?c.setState({fitViewQueued:d}):u==="fitViewOptions"?c.setState({fitViewOptions:d}):c.setState({[u]:d})))}f.current=t},oo.map(u=>t[u])),null}function so(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function zd(t){var r;const[e,n]=D.useState(t==="system"?null:t);return D.useEffect(()=>{if(t!=="system"){n(t);return}const o=so(),i=()=>n(o!=null&&o.matches?"dark":"light");return i(),o==null||o.addEventListener("change",i),()=>{o==null||o.removeEventListener("change",i)}},[t]),e!==null?e:(r=so())!=null&&r.matches?"dark":"light"}const ao=typeof document<"u"?document:null;function be(t=null,e={target:ao,actInsideInputWithModifier:!0}){const[n,r]=D.useState(!1),o=D.useRef(!1),i=D.useRef(new Set([])),[s,a]=D.useMemo(()=>{if(t!==null){const c=(Array.isArray(t)?t:[t]).filter(u=>typeof u=="string").map(u=>u.replace("+",`
|
|
18
|
+
`).replace(`
|
|
19
|
+
|
|
20
|
+
`,`
|
|
21
|
+
+`).split(`
|
|
22
|
+
`)),f=c.reduce((u,d)=>u.concat(...d),[]);return[c,f]}return[[],[]]},[t]);return D.useEffect(()=>{const l=(e==null?void 0:e.target)??ao,c=(e==null?void 0:e.actInsideInputWithModifier)??!0;if(t!==null){const f=h=>{var p,m;if(o.current=h.ctrlKey||h.metaKey||h.shiftKey||h.altKey,(!o.current||o.current&&!c)&&yi(h))return!1;const y=lo(h.code,a);if(i.current.add(h[y]),co(s,i.current,!1)){const v=((m=(p=h.composedPath)==null?void 0:p.call(h))==null?void 0:m[0])||h.target,x=(v==null?void 0:v.nodeName)==="BUTTON"||(v==null?void 0:v.nodeName)==="A";e.preventDefault!==!1&&(o.current||!x)&&h.preventDefault(),r(!0)}},u=h=>{const g=lo(h.code,a);co(s,i.current,!0)?(r(!1),i.current.clear()):i.current.delete(h[g]),h.key==="Meta"&&i.current.clear(),o.current=!1},d=()=>{i.current.clear(),r(!1)};return l==null||l.addEventListener("keydown",f),l==null||l.addEventListener("keyup",u),window.addEventListener("blur",d),window.addEventListener("contextmenu",d),()=>{l==null||l.removeEventListener("keydown",f),l==null||l.removeEventListener("keyup",u),window.removeEventListener("blur",d),window.removeEventListener("contextmenu",d)}}},[t,r]),n}function co(t,e,n){return t.filter(r=>n||r.length===e.size).some(r=>r.every(o=>e.has(o)))}function lo(t,e){return e.includes(t)?"code":"key"}const Dd=()=>{const t=ot();return D.useMemo(()=>({zoomIn:e=>{const{panZoom:n}=t.getState();return n?n.scaleBy(1.2,e):Promise.resolve(!1)},zoomOut:e=>{const{panZoom:n}=t.getState();return n?n.scaleBy(1/1.2,e):Promise.resolve(!1)},zoomTo:(e,n)=>{const{panZoom:r}=t.getState();return r?r.scaleTo(e,n):Promise.resolve(!1)},getZoom:()=>t.getState().transform[2],setViewport:async(e,n)=>{const{transform:[r,o,i],panZoom:s}=t.getState();return s?(await s.setViewport({x:e.x??r,y:e.y??o,zoom:e.zoom??i},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[e,n,r]=t.getState().transform;return{x:e,y:n,zoom:r}},setCenter:async(e,n,r)=>t.getState().setCenter(e,n,r),fitBounds:async(e,n)=>{const{width:r,height:o,minZoom:i,maxZoom:s,panZoom:a}=t.getState(),l=er(e,r,o,i,s,(n==null?void 0:n.padding)??.1);return a?(await a.setViewport(l,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(e,n={})=>{const{transform:r,snapGrid:o,snapToGrid:i,domNode:s}=t.getState();if(!s)return e;const{x:a,y:l}=s.getBoundingClientRect(),c={x:e.x-a,y:e.y-l},f=n.snapGrid??o,u=n.snapToGrid??i;return ke(c,r,u,f)},flowToScreenPosition:e=>{const{transform:n,domNode:r}=t.getState();if(!r)return e;const{x:o,y:i}=r.getBoundingClientRect(),s=tn(e,n);return{x:s.x+o,y:s.y+i}}}),[])};function Hi(t,e){const n=[],r=new Map,o=[];for(const i of t)if(i.type==="add"){o.push(i);continue}else if(i.type==="remove"||i.type==="replace")r.set(i.id,[i]);else{const s=r.get(i.id);s?s.push(i):r.set(i.id,[i])}for(const i of e){const s=r.get(i.id);if(!s){n.push(i);continue}if(s[0].type==="remove")continue;if(s[0].type==="replace"){n.push({...s[0].item});continue}const a={...i};for(const l of s)Ld(l,a);n.push(a)}return o.length&&o.forEach(i=>{i.index!==void 0?n.splice(i.index,0,{...i.item}):n.push({...i.item})}),n}function Ld(t,e){switch(t.type){case"select":{e.selected=t.selected;break}case"position":{typeof t.position<"u"&&(e.position=t.position),typeof t.dragging<"u"&&(e.dragging=t.dragging);break}case"dimensions":{typeof t.dimensions<"u"&&(e.measured={...t.dimensions},t.setAttributes&&((t.setAttributes===!0||t.setAttributes==="width")&&(e.width=t.dimensions.width),(t.setAttributes===!0||t.setAttributes==="height")&&(e.height=t.dimensions.height))),typeof t.resizing=="boolean"&&(e.resizing=t.resizing);break}}}function Vi(t,e){return Hi(t,e)}function Bi(t,e){return Hi(t,e)}function Tt(t,e){return{id:t,type:"select",selected:e}}function Yt(t,e=new Set,n=!1){const r=[];for(const[o,i]of t){const s=e.has(o);!(i.selected===void 0&&!s)&&i.selected!==s&&(n&&(i.selected=s),r.push(Tt(i.id,s)))}return r}function uo({items:t=[],lookup:e}){var o;const n=[],r=new Map(t.map(i=>[i.id,i]));for(const[i,s]of t.entries()){const a=e.get(s.id),l=((o=a==null?void 0:a.internals)==null?void 0:o.userNode)??a;l!==void 0&&l!==s&&n.push({id:s.id,item:s,type:"replace"}),l===void 0&&n.push({item:s,type:"add",index:i})}for(const[i]of e)r.get(i)===void 0&&n.push({id:i,type:"remove"});return n}function fo(t){return{id:t.id,type:"remove"}}const ho=t=>sf(t),jd=t=>li(t);function Fi(t){return D.forwardRef(t)}function go(t){const[e,n]=D.useState(BigInt(0)),[r]=D.useState(()=>Rd(()=>n(o=>o+BigInt(1))));return On(()=>{const o=r.get();o.length&&(t(o),r.reset())},[e]),r}function Rd(t){let e=[];return{get:()=>e,reset:()=>{e=[]},push:n=>{e.push(n),t()}}}const Oi=D.createContext(null);function Hd({children:t}){const e=ot(),n=D.useCallback(a=>{const{nodes:l=[],setNodes:c,hasDefaultNodes:f,onNodesChange:u,nodeLookup:d,fitViewQueued:h,onNodesChangeMiddlewareMap:g}=e.getState();let y=l;for(const m of a)y=typeof m=="function"?m(y):m;let p=uo({items:y,lookup:d});for(const m of g.values())p=m(p);f&&c(y),p.length>0?u==null||u(p):h&&window.requestAnimationFrame(()=>{const{fitViewQueued:m,nodes:v,setNodes:x}=e.getState();m&&x(v)})},[]),r=go(n),o=D.useCallback(a=>{const{edges:l=[],setEdges:c,hasDefaultEdges:f,onEdgesChange:u,edgeLookup:d}=e.getState();let h=l;for(const g of a)h=typeof g=="function"?g(h):g;f?c(h):u&&u(uo({items:h,lookup:d}))},[]),i=go(o),s=D.useMemo(()=>({nodeQueue:r,edgeQueue:i}),[]);return _.jsx(Oi.Provider,{value:s,children:t})}function Vd(){const t=D.useContext(Oi);if(!t)throw new Error("useBatchContext must be used within a BatchProvider");return t}const Bd=t=>!!t.panZoom;function Ae(){const t=Dd(),e=ot(),n=Vd(),r=J(Bd),o=D.useMemo(()=>{const i=u=>e.getState().nodeLookup.get(u),s=u=>{n.nodeQueue.push(u)},a=u=>{n.edgeQueue.push(u)},l=u=>{var m,v;const{nodeLookup:d,nodeOrigin:h}=e.getState(),g=ho(u)?u:d.get(u.id),y=g.parentId?pi(g.position,g.measured,g.parentId,d,h):g.position,p={...g,position:y,width:((m=g.measured)==null?void 0:m.width)??g.width,height:((v=g.measured)==null?void 0:v.height)??g.height};return Qt(p)},c=(u,d,h={replace:!1})=>{s(g=>g.map(y=>{if(y.id===u){const p=typeof d=="function"?d(y):d;return h.replace&&ho(p)?p:{...y,...p}}return y}))},f=(u,d,h={replace:!1})=>{a(g=>g.map(y=>{if(y.id===u){const p=typeof d=="function"?d(y):d;return h.replace&&jd(p)?p:{...y,...p}}return y}))};return{getNodes:()=>e.getState().nodes.map(u=>({...u})),getNode:u=>{var d;return(d=i(u))==null?void 0:d.internals.userNode},getInternalNode:i,getEdges:()=>{const{edges:u=[]}=e.getState();return u.map(d=>({...d}))},getEdge:u=>e.getState().edgeLookup.get(u),setNodes:s,setEdges:a,addNodes:u=>{const d=Array.isArray(u)?u:[u];n.nodeQueue.push(h=>[...h,...d])},addEdges:u=>{const d=Array.isArray(u)?u:[u];n.edgeQueue.push(h=>[...h,...d])},toObject:()=>{const{nodes:u=[],edges:d=[],transform:h}=e.getState(),[g,y,p]=h;return{nodes:u.map(m=>({...m})),edges:d.map(m=>({...m})),viewport:{x:g,y,zoom:p}}},deleteElements:async({nodes:u=[],edges:d=[]})=>{const{nodes:h,edges:g,onNodesDelete:y,onEdgesDelete:p,triggerNodeChanges:m,triggerEdgeChanges:v,onDelete:x,onBeforeDelete:w}=e.getState(),{nodes:E,edges:N}=await ff({nodesToRemove:u,edgesToRemove:d,nodes:h,edges:g,onBeforeDelete:w}),S=N.length>0,A=E.length>0;if(S){const $=N.map(fo);p==null||p(N),v($)}if(A){const $=E.map(fo);y==null||y(E),m($)}return(A||S)&&(x==null||x({nodes:E,edges:N})),{deletedNodes:E,deletedEdges:N}},getIntersectingNodes:(u,d=!0,h)=>{const g=Rr(u),y=g?u:l(u),p=h!==void 0;return y?(h||e.getState().nodes).filter(m=>{const v=e.getState().nodeLookup.get(m.id);if(v&&!g&&(m.id===u.id||!v.internals.positionAbsolute))return!1;const x=Qt(p?m:v),w=we(x,y);return d&&w>0||w>=x.width*x.height||w>=y.width*y.height}):[]},isNodeIntersecting:(u,d,h=!0)=>{const y=Rr(u)?u:l(u);if(!y)return!1;const p=we(y,d);return h&&p>0||p>=d.width*d.height||p>=y.width*y.height},updateNode:c,updateNodeData:(u,d,h={replace:!1})=>{c(u,g=>{const y=typeof d=="function"?d(g):d;return h.replace?{...g,data:y}:{...g,data:{...g.data,...y}}},h)},updateEdge:f,updateEdgeData:(u,d,h={replace:!1})=>{f(u,g=>{const y=typeof d=="function"?d(g):d;return h.replace?{...g,data:y}:{...g,data:{...g.data,...y}}},h)},getNodesBounds:u=>{const{nodeLookup:d,nodeOrigin:h}=e.getState();return af(u,{nodeLookup:d,nodeOrigin:h})},getHandleConnections:({type:u,id:d,nodeId:h})=>{var g;return Array.from(((g=e.getState().connectionLookup.get(`${h}-${u}${d?`-${d}`:""}`))==null?void 0:g.values())??[])},getNodeConnections:({type:u,handleId:d,nodeId:h})=>{var g;return Array.from(((g=e.getState().connectionLookup.get(`${h}${u?d?`-${u}-${d}`:`-${u}`:""}`))==null?void 0:g.values())??[])},fitView:async u=>{const d=e.getState().fitViewResolver??pf();return e.setState({fitViewQueued:!0,fitViewOptions:u,fitViewResolver:d}),n.nodeQueue.push(h=>[...h]),d.promise}}},[]);return D.useMemo(()=>({...o,...t,viewportInitialized:r}),[r])}const po=t=>t.selected,Fd=typeof window<"u"?window:void 0;function Od({deleteKeyCode:t,multiSelectionKeyCode:e}){const n=ot(),{deleteElements:r}=Ae(),o=be(t,{actInsideInputWithModifier:!1}),i=be(e,{target:Fd});D.useEffect(()=>{if(o){const{edges:s,nodes:a}=n.getState();r({nodes:a.filter(po),edges:s.filter(po)}),n.setState({nodesSelectionActive:!1})}},[o]),D.useEffect(()=>{n.setState({multiSelectionActive:i})},[i])}function Xd(t){const e=ot();D.useEffect(()=>{const n=()=>{var o,i,s,a;if(!t.current||!(((i=(o=t.current).checkVisibility)==null?void 0:i.call(o))??!0))return!1;const r=nr(t.current);(r.height===0||r.width===0)&&((a=(s=e.getState()).onError)==null||a.call(s,"004",wt.error004())),e.setState({width:r.width||500,height:r.height||500})};if(t.current){n(),window.addEventListener("resize",n);const r=new ResizeObserver(()=>n());return r.observe(t.current),()=>{window.removeEventListener("resize",n),r&&t.current&&r.unobserve(t.current)}}},[])}const dn={position:"absolute",width:"100%",height:"100%",top:0,left:0},Yd=t=>({userSelectionActive:t.userSelectionActive,lib:t.lib,connectionInProgress:t.connection.inProgress});function Wd({onPaneContextMenu:t,zoomOnScroll:e=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:o=.5,panOnScrollMode:i=Lt.Free,zoomOnDoubleClick:s=!0,panOnDrag:a=!0,defaultViewport:l,translateExtent:c,minZoom:f,maxZoom:u,zoomActivationKeyCode:d,preventScrolling:h=!0,children:g,noWheelClassName:y,noPanClassName:p,onViewportChange:m,isControlledViewport:v,paneClickDistance:x,selectionOnDrag:w}){const E=ot(),N=D.useRef(null),{userSelectionActive:S,lib:A,connectionInProgress:$}=J(Yd,rt),j=be(d),k=D.useRef();Xd(N);const z=D.useCallback(H=>{m==null||m({x:H[0],y:H[1],zoom:H[2]}),v||E.setState({transform:H})},[m,v]);return D.useEffect(()=>{if(N.current){k.current=Qf({domNode:N.current,minZoom:f,maxZoom:u,translateExtent:c,viewport:l,onDraggingChange:M=>E.setState(T=>T.paneDragging===M?T:{paneDragging:M}),onPanZoomStart:(M,T)=>{const{onViewportChangeStart:I,onMoveStart:C}=E.getState();C==null||C(M,T),I==null||I(T)},onPanZoom:(M,T)=>{const{onViewportChange:I,onMove:C}=E.getState();C==null||C(M,T),I==null||I(T)},onPanZoomEnd:(M,T)=>{const{onViewportChangeEnd:I,onMoveEnd:C}=E.getState();C==null||C(M,T),I==null||I(T)}});const{x:H,y:b,zoom:P}=k.current.getViewport();return E.setState({panZoom:k.current,transform:[H,b,P],domNode:N.current.closest(".react-flow")}),()=>{var M;(M=k.current)==null||M.destroy()}}},[]),D.useEffect(()=>{var H;(H=k.current)==null||H.update({onPaneContextMenu:t,zoomOnScroll:e,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:o,panOnScrollMode:i,zoomOnDoubleClick:s,panOnDrag:a,zoomActivationKeyPressed:j,preventScrolling:h,noPanClassName:p,userSelectionActive:S,noWheelClassName:y,lib:A,onTransformChange:z,connectionInProgress:$,selectionOnDrag:w,paneClickDistance:x})},[t,e,n,r,o,i,s,a,j,h,p,S,y,A,z,$,w,x]),_.jsx("div",{className:"react-flow__renderer",ref:N,style:dn,children:g})}const Gd=t=>({userSelectionActive:t.userSelectionActive,userSelectionRect:t.userSelectionRect});function qd(){const{userSelectionActive:t,userSelectionRect:e}=J(Gd,rt);return t&&e?_.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:e.width,height:e.height,transform:`translate(${e.x}px, ${e.y}px)`}}):null}const kn=(t,e)=>n=>{n.target===e.current&&(t==null||t(n))},Zd=t=>({userSelectionActive:t.userSelectionActive,elementsSelectable:t.elementsSelectable,connectionInProgress:t.connection.inProgress,dragging:t.paneDragging});function Ud({isSelecting:t,selectionKeyPressed:e,selectionMode:n=ye.Full,panOnDrag:r,paneClickDistance:o,selectionOnDrag:i,onSelectionStart:s,onSelectionEnd:a,onPaneClick:l,onPaneContextMenu:c,onPaneScroll:f,onPaneMouseEnter:u,onPaneMouseMove:d,onPaneMouseLeave:h,children:g}){const y=ot(),{userSelectionActive:p,elementsSelectable:m,dragging:v,connectionInProgress:x}=J(Zd,rt),w=m&&(t||p),E=D.useRef(null),N=D.useRef(),S=D.useRef(new Set),A=D.useRef(new Set),$=D.useRef(!1),j=I=>{if($.current||x){$.current=!1;return}l==null||l(I),y.getState().resetSelectedElements(),y.setState({nodesSelectionActive:!1})},k=I=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){I.preventDefault();return}c==null||c(I)},z=f?I=>f(I):void 0,H=I=>{$.current&&(I.stopPropagation(),$.current=!1)},b=I=>{var Y,Z;const{domNode:C}=y.getState();if(N.current=C==null?void 0:C.getBoundingClientRect(),!N.current)return;const L=I.target===E.current;if(!L&&!!I.target.closest(".nokey")||!t||!(i&&L||e)||I.button!==0||!I.isPrimary)return;(Z=(Y=I.target)==null?void 0:Y.setPointerCapture)==null||Z.call(Y,I.pointerId),$.current=!1;const{x:F,y:O}=pt(I.nativeEvent,N.current);y.setState({userSelectionRect:{width:0,height:0,startX:F,startY:O,x:F,y:O}}),L||(I.stopPropagation(),I.preventDefault())},P=I=>{const{userSelectionRect:C,transform:L,nodeLookup:V,edgeLookup:R,connectionLookup:F,triggerNodeChanges:O,triggerEdgeChanges:Y,defaultEdgeOptions:Z,resetSelectedElements:G}=y.getState();if(!N.current||!C)return;const{x:B,y:W}=pt(I.nativeEvent,N.current),{startX:Q,startY:K}=C;if(!$.current){const tt=e?0:o;if(Math.hypot(B-Q,W-K)<=tt)return;G(),s==null||s(I)}$.current=!0;const U={startX:Q,startY:K,x:B<Q?B:Q,y:W<K?W:K,width:Math.abs(B-Q),height:Math.abs(W-K)},q=S.current,et=A.current;S.current=new Set(tr(V,U,L,n===ye.Partial,!0).map(tt=>tt.id)),A.current=new Set;const nt=(Z==null?void 0:Z.selectable)??!0;for(const tt of S.current){const st=F.get(tt);if(st)for(const{edgeId:Ct}of st.values()){const bt=R.get(Ct);bt&&(bt.selectable??nt)&&A.current.add(Ct)}}if(!Hr(q,S.current)){const tt=Yt(V,S.current,!0);O(tt)}if(!Hr(et,A.current)){const tt=Yt(R,A.current);Y(tt)}y.setState({userSelectionRect:U,userSelectionActive:!0,nodesSelectionActive:!1})},M=I=>{var C,L;I.button===0&&((L=(C=I.target)==null?void 0:C.releasePointerCapture)==null||L.call(C,I.pointerId),!p&&I.target===E.current&&y.getState().userSelectionRect&&(j==null||j(I)),y.setState({userSelectionActive:!1,userSelectionRect:null}),$.current&&(a==null||a(I),y.setState({nodesSelectionActive:S.current.size>0})))},T=r===!0||Array.isArray(r)&&r.includes(0);return _.jsxs("div",{className:it(["react-flow__pane",{draggable:T,dragging:v,selection:t}]),onClick:w?void 0:kn(j,E),onContextMenu:kn(k,E),onWheel:kn(z,E),onPointerEnter:w?void 0:u,onPointerMove:w?P:d,onPointerUp:w?M:void 0,onPointerDownCapture:w?b:void 0,onClickCapture:w?H:void 0,onPointerLeave:h,ref:E,style:dn,children:[g,_.jsx(qd,{})]})}function Xn({id:t,store:e,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:o,unselectNodesAndEdges:i,multiSelectionActive:s,nodeLookup:a,onError:l}=e.getState(),c=a.get(t);if(!c){l==null||l("012",wt.error012(t));return}e.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&s)&&(i({nodes:[c],edges:[]}),requestAnimationFrame(()=>{var f;return(f=r==null?void 0:r.current)==null?void 0:f.blur()})):o([t])}function Xi({nodeRef:t,disabled:e=!1,noDragClassName:n,handleSelector:r,nodeId:o,isSelectable:i,nodeClickDistance:s}){const a=ot(),[l,c]=D.useState(!1),f=D.useRef();return D.useEffect(()=>{f.current=Rf({getStoreItems:()=>a.getState(),onNodeMouseDown:u=>{Xn({id:u,store:a,nodeRef:t})},onDragStart:()=>{c(!0)},onDragStop:()=>{c(!1)}})},[]),D.useEffect(()=>{if(!(e||!t.current||!f.current))return f.current.update({noDragClassName:n,handleSelector:r,domNode:t.current,isSelectable:i,nodeId:o,nodeClickDistance:s}),()=>{var u;(u=f.current)==null||u.destroy()}},[n,r,e,i,t,o,s]),l}const Kd=t=>e=>e.selected&&(e.draggable||t&&typeof e.draggable>"u");function Yi(){const t=ot();return D.useCallback(n=>{const{nodeExtent:r,snapToGrid:o,snapGrid:i,nodesDraggable:s,onError:a,updateNodePositions:l,nodeLookup:c,nodeOrigin:f}=t.getState(),u=new Map,d=Kd(s),h=o?i[0]:5,g=o?i[1]:5,y=n.direction.x*h*n.factor,p=n.direction.y*g*n.factor;for(const[,m]of c){if(!d(m))continue;let v={x:m.internals.positionAbsolute.x+y,y:m.internals.positionAbsolute.y+p};o&&(v=Ce(v,i));const{position:x,positionAbsolute:w}=ui({nodeId:m.id,nextPosition:v,nodeLookup:c,nodeExtent:r,nodeOrigin:f,onError:a});m.position=x,m.internals.positionAbsolute=w,u.set(m.id,m)}l(u)},[])}const cr=D.createContext(null),Qd=cr.Provider;cr.Consumer;const Wi=()=>D.useContext(cr),Jd=t=>({connectOnClick:t.connectOnClick,noPanClassName:t.noPanClassName,rfId:t.rfId}),th=(t,e,n)=>r=>{const{connectionClickStartHandle:o,connectionMode:i,connection:s}=r,{fromHandle:a,toHandle:l,isValid:c}=s,f=(l==null?void 0:l.nodeId)===t&&(l==null?void 0:l.id)===e&&(l==null?void 0:l.type)===n;return{connectingFrom:(a==null?void 0:a.nodeId)===t&&(a==null?void 0:a.id)===e&&(a==null?void 0:a.type)===n,connectingTo:f,clickConnecting:(o==null?void 0:o.nodeId)===t&&(o==null?void 0:o.id)===e&&(o==null?void 0:o.type)===n,isPossibleEndHandle:i===Ut.Strict?(a==null?void 0:a.type)!==n:t!==(a==null?void 0:a.nodeId)||e!==(a==null?void 0:a.id),connectionInProcess:!!a,clickConnectionInProcess:!!o,valid:f&&c}};function eh({type:t="source",position:e=X.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:o=!0,isConnectableEnd:i=!0,id:s,onConnect:a,children:l,className:c,onMouseDown:f,onTouchStart:u,...d},h){var P,M;const g=s||null,y=t==="target",p=ot(),m=Wi(),{connectOnClick:v,noPanClassName:x,rfId:w}=J(Jd,rt),{connectingFrom:E,connectingTo:N,clickConnecting:S,isPossibleEndHandle:A,connectionInProcess:$,clickConnectionInProcess:j,valid:k}=J(th(m,g,t),rt);m||(M=(P=p.getState()).onError)==null||M.call(P,"010",wt.error010());const z=T=>{const{defaultEdgeOptions:I,onConnect:C,hasDefaultEdges:L}=p.getState(),V={...I,...T};if(L){const{edges:R,setEdges:F}=p.getState();F(_f(V,R))}C==null||C(V),a==null||a(V)},H=T=>{if(!m)return;const I=xi(T.nativeEvent);if(o&&(I&&T.button===0||!I)){const C=p.getState();Fn.onPointerDown(T.nativeEvent,{handleDomNode:T.currentTarget,autoPanOnConnect:C.autoPanOnConnect,connectionMode:C.connectionMode,connectionRadius:C.connectionRadius,domNode:C.domNode,nodeLookup:C.nodeLookup,lib:C.lib,isTarget:y,handleId:g,nodeId:m,flowId:C.rfId,panBy:C.panBy,cancelConnection:C.cancelConnection,onConnectStart:C.onConnectStart,onConnectEnd:(...L)=>{var V,R;return(R=(V=p.getState()).onConnectEnd)==null?void 0:R.call(V,...L)},updateConnection:C.updateConnection,onConnect:z,isValidConnection:n||((...L)=>{var V,R;return((R=(V=p.getState()).isValidConnection)==null?void 0:R.call(V,...L))??!0}),getTransform:()=>p.getState().transform,getFromHandle:()=>p.getState().connection.fromHandle,autoPanSpeed:C.autoPanSpeed,dragThreshold:C.connectionDragThreshold})}I?f==null||f(T):u==null||u(T)},b=T=>{const{onClickConnectStart:I,onClickConnectEnd:C,connectionClickStartHandle:L,connectionMode:V,isValidConnection:R,lib:F,rfId:O,nodeLookup:Y,connection:Z}=p.getState();if(!m||!L&&!o)return;if(!L){I==null||I(T.nativeEvent,{nodeId:m,handleId:g,handleType:t}),p.setState({connectionClickStartHandle:{nodeId:m,type:t,id:g}});return}const G=mi(T.target),B=n||R,{connection:W,isValid:Q}=Fn.isValid(T.nativeEvent,{handle:{nodeId:m,id:g,type:t},connectionMode:V,fromNodeId:L.nodeId,fromHandleId:L.id||null,fromType:L.type,isValidConnection:B,flowId:O,doc:G,lib:F,nodeLookup:Y});Q&&W&&z(W);const K=structuredClone(Z);delete K.inProgress,K.toPosition=K.toHandle?K.toHandle.position:null,C==null||C(T,K),p.setState({connectionClickStartHandle:null})};return _.jsx("div",{"data-handleid":g,"data-nodeid":m,"data-handlepos":e,"data-id":`${w}-${m}-${g}-${t}`,className:it(["react-flow__handle",`react-flow__handle-${e}`,"nodrag",x,c,{source:!y,target:y,connectable:r,connectablestart:o,connectableend:i,clickconnecting:S,connectingfrom:E,connectingto:N,valid:k,connectionindicator:r&&(!$||A)&&($||j?i:o)}]),onMouseDown:H,onTouchStart:H,onClick:v?b:void 0,ref:h,...d,children:l})}const ee=D.memo(Fi(eh));function nh({data:t,isConnectable:e,sourcePosition:n=X.Bottom}){return _.jsxs(_.Fragment,{children:[t==null?void 0:t.label,_.jsx(ee,{type:"source",position:n,isConnectable:e})]})}function rh({data:t,isConnectable:e,targetPosition:n=X.Top,sourcePosition:r=X.Bottom}){return _.jsxs(_.Fragment,{children:[_.jsx(ee,{type:"target",position:n,isConnectable:e}),t==null?void 0:t.label,_.jsx(ee,{type:"source",position:r,isConnectable:e})]})}function oh(){return null}function ih({data:t,isConnectable:e,targetPosition:n=X.Top}){return _.jsxs(_.Fragment,{children:[_.jsx(ee,{type:"target",position:n,isConnectable:e}),t==null?void 0:t.label]})}const en={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},mo={input:nh,default:rh,output:ih,group:oh};function sh(t){var e,n,r,o;return t.internals.handleBounds===void 0?{width:t.width??t.initialWidth??((e=t.style)==null?void 0:e.width),height:t.height??t.initialHeight??((n=t.style)==null?void 0:n.height)}:{width:t.width??((r=t.style)==null?void 0:r.width),height:t.height??((o=t.style)==null?void 0:o.height)}}const ah=t=>{const{width:e,height:n,x:r,y:o}=Me(t.nodeLookup,{filter:i=>!!i.selected});return{width:gt(e)?e:null,height:gt(n)?n:null,userSelectionActive:t.userSelectionActive,transformString:`translate(${t.transform[0]}px,${t.transform[1]}px) scale(${t.transform[2]}) translate(${r}px,${o}px)`}};function ch({onSelectionContextMenu:t,noPanClassName:e,disableKeyboardA11y:n}){const r=ot(),{width:o,height:i,transformString:s,userSelectionActive:a}=J(ah,rt),l=Yi(),c=D.useRef(null);D.useEffect(()=>{var h;n||(h=c.current)==null||h.focus({preventScroll:!0})},[n]);const f=!a&&o!==null&&i!==null;if(Xi({nodeRef:c,disabled:!f}),!f)return null;const u=t?h=>{const g=r.getState().nodes.filter(y=>y.selected);t(h,g)}:void 0,d=h=>{Object.prototype.hasOwnProperty.call(en,h.key)&&(h.preventDefault(),l({direction:en[h.key],factor:h.shiftKey?4:1}))};return _.jsx("div",{className:it(["react-flow__nodesselection","react-flow__container",e]),style:{transform:s},children:_.jsx("div",{ref:c,className:"react-flow__nodesselection-rect",onContextMenu:u,tabIndex:n?void 0:-1,onKeyDown:n?void 0:d,style:{width:o,height:i}})})}const yo=typeof window<"u"?window:void 0,lh=t=>({nodesSelectionActive:t.nodesSelectionActive,userSelectionActive:t.userSelectionActive});function Gi({children:t,onPaneClick:e,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:s,paneClickDistance:a,deleteKeyCode:l,selectionKeyCode:c,selectionOnDrag:f,selectionMode:u,onSelectionStart:d,onSelectionEnd:h,multiSelectionKeyCode:g,panActivationKeyCode:y,zoomActivationKeyCode:p,elementsSelectable:m,zoomOnScroll:v,zoomOnPinch:x,panOnScroll:w,panOnScrollSpeed:E,panOnScrollMode:N,zoomOnDoubleClick:S,panOnDrag:A,defaultViewport:$,translateExtent:j,minZoom:k,maxZoom:z,preventScrolling:H,onSelectionContextMenu:b,noWheelClassName:P,noPanClassName:M,disableKeyboardA11y:T,onViewportChange:I,isControlledViewport:C}){const{nodesSelectionActive:L,userSelectionActive:V}=J(lh,rt),R=be(c,{target:yo}),F=be(y,{target:yo}),O=F||A,Y=F||w,Z=f&&O!==!0,G=R||V||Z;return Od({deleteKeyCode:l,multiSelectionKeyCode:g}),_.jsx(Wd,{onPaneContextMenu:i,elementsSelectable:m,zoomOnScroll:v,zoomOnPinch:x,panOnScroll:Y,panOnScrollSpeed:E,panOnScrollMode:N,zoomOnDoubleClick:S,panOnDrag:!R&&O,defaultViewport:$,translateExtent:j,minZoom:k,maxZoom:z,zoomActivationKeyCode:p,preventScrolling:H,noWheelClassName:P,noPanClassName:M,onViewportChange:I,isControlledViewport:C,paneClickDistance:a,selectionOnDrag:Z,children:_.jsxs(Ud,{onSelectionStart:d,onSelectionEnd:h,onPaneClick:e,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:s,panOnDrag:O,isSelecting:!!G,selectionMode:u,selectionKeyPressed:R,paneClickDistance:a,selectionOnDrag:Z,children:[t,L&&_.jsx(ch,{onSelectionContextMenu:b,noPanClassName:M,disableKeyboardA11y:T})]})})}Gi.displayName="FlowRenderer";const uh=D.memo(Gi),fh=t=>e=>t?tr(e.nodeLookup,{x:0,y:0,width:e.width,height:e.height},e.transform,!0).map(n=>n.id):Array.from(e.nodeLookup.keys());function dh(t){return J(D.useCallback(fh(t),[t]),rt)}const hh=t=>t.updateNodeInternals;function gh(){const t=J(hh),[e]=D.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(o=>{const i=o.target.getAttribute("data-id");r.set(i,{id:i,nodeElement:o.target,force:!0})}),t(r)}));return D.useEffect(()=>()=>{e==null||e.disconnect()},[e]),e}function ph({node:t,nodeType:e,hasDimensions:n,resizeObserver:r}){const o=ot(),i=D.useRef(null),s=D.useRef(null),a=D.useRef(t.sourcePosition),l=D.useRef(t.targetPosition),c=D.useRef(e),f=n&&!!t.internals.handleBounds;return D.useEffect(()=>{i.current&&!t.hidden&&(!f||s.current!==i.current)&&(s.current&&(r==null||r.unobserve(s.current)),r==null||r.observe(i.current),s.current=i.current)},[f,t.hidden]),D.useEffect(()=>()=>{s.current&&(r==null||r.unobserve(s.current),s.current=null)},[]),D.useEffect(()=>{if(i.current){const u=c.current!==e,d=a.current!==t.sourcePosition,h=l.current!==t.targetPosition;(u||d||h)&&(c.current=e,a.current=t.sourcePosition,l.current=t.targetPosition,o.getState().updateNodeInternals(new Map([[t.id,{id:t.id,nodeElement:i.current,force:!0}]])))}},[t.id,e,t.sourcePosition,t.targetPosition]),i}function mh({id:t,onClick:e,onMouseEnter:n,onMouseMove:r,onMouseLeave:o,onContextMenu:i,onDoubleClick:s,nodesDraggable:a,elementsSelectable:l,nodesConnectable:c,nodesFocusable:f,resizeObserver:u,noDragClassName:d,noPanClassName:h,disableKeyboardA11y:g,rfId:y,nodeTypes:p,nodeClickDistance:m,onError:v}){const{node:x,internals:w,isParent:E}=J(B=>{const W=B.nodeLookup.get(t),Q=B.parentLookup.has(t);return{node:W,internals:W.internals,isParent:Q}},rt);let N=x.type||"default",S=(p==null?void 0:p[N])||mo[N];S===void 0&&(v==null||v("003",wt.error003(N)),N="default",S=(p==null?void 0:p.default)||mo.default);const A=!!(x.draggable||a&&typeof x.draggable>"u"),$=!!(x.selectable||l&&typeof x.selectable>"u"),j=!!(x.connectable||c&&typeof x.connectable>"u"),k=!!(x.focusable||f&&typeof x.focusable>"u"),z=ot(),H=gi(x),b=ph({node:x,nodeType:N,hasDimensions:H,resizeObserver:u}),P=Xi({nodeRef:b,disabled:x.hidden||!A,noDragClassName:d,handleSelector:x.dragHandle,nodeId:t,isSelectable:$,nodeClickDistance:m}),M=Yi();if(x.hidden)return null;const T=Mt(x),I=sh(x),C=$||A||e||n||r||o,L=n?B=>n(B,{...w.userNode}):void 0,V=r?B=>r(B,{...w.userNode}):void 0,R=o?B=>o(B,{...w.userNode}):void 0,F=i?B=>i(B,{...w.userNode}):void 0,O=s?B=>s(B,{...w.userNode}):void 0,Y=B=>{const{selectNodesOnDrag:W,nodeDragThreshold:Q}=z.getState();$&&(!W||!A||Q>0)&&Xn({id:t,store:z,nodeRef:b}),e&&e(B,{...w.userNode})},Z=B=>{if(!(yi(B.nativeEvent)||g)){if(ii.includes(B.key)&&$){const W=B.key==="Escape";Xn({id:t,store:z,unselect:W,nodeRef:b})}else if(A&&x.selected&&Object.prototype.hasOwnProperty.call(en,B.key)){B.preventDefault();const{ariaLabelConfig:W}=z.getState();z.setState({ariaLiveMessage:W["node.a11yDescription.ariaLiveMessage"]({direction:B.key.replace("Arrow","").toLowerCase(),x:~~w.positionAbsolute.x,y:~~w.positionAbsolute.y})}),M({direction:en[B.key],factor:B.shiftKey?4:1})}}},G=()=>{var et;if(g||!((et=b.current)!=null&&et.matches(":focus-visible")))return;const{transform:B,width:W,height:Q,autoPanOnNodeFocus:K,setCenter:U}=z.getState();if(!K)return;tr(new Map([[t,x]]),{x:0,y:0,width:W,height:Q},B,!0).length>0||U(x.position.x+T.width/2,x.position.y+T.height/2,{zoom:B[2]})};return _.jsx("div",{className:it(["react-flow__node",`react-flow__node-${N}`,{[h]:A},x.className,{selected:x.selected,selectable:$,parent:E,draggable:A,dragging:P}]),ref:b,style:{zIndex:w.z,transform:`translate(${w.positionAbsolute.x}px,${w.positionAbsolute.y}px)`,pointerEvents:C?"all":"none",visibility:H?"visible":"hidden",...x.style,...I},"data-id":t,"data-testid":`rf__node-${t}`,onMouseEnter:L,onMouseMove:V,onMouseLeave:R,onContextMenu:F,onClick:Y,onDoubleClick:O,onKeyDown:k?Z:void 0,tabIndex:k?0:void 0,onFocus:k?G:void 0,role:x.ariaRole??(k?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${Li}-${y}`,"aria-label":x.ariaLabel,...x.domAttributes,children:_.jsx(Qd,{value:t,children:_.jsx(S,{id:t,data:x.data,type:N,positionAbsoluteX:w.positionAbsolute.x,positionAbsoluteY:w.positionAbsolute.y,selected:x.selected??!1,selectable:$,draggable:A,deletable:x.deletable??!0,isConnectable:j,sourcePosition:x.sourcePosition,targetPosition:x.targetPosition,dragging:P,dragHandle:x.dragHandle,zIndex:w.z,parentId:x.parentId,...T})})})}var yh=D.memo(mh);const xh=t=>({nodesDraggable:t.nodesDraggable,nodesConnectable:t.nodesConnectable,nodesFocusable:t.nodesFocusable,elementsSelectable:t.elementsSelectable,onError:t.onError});function qi(t){const{nodesDraggable:e,nodesConnectable:n,nodesFocusable:r,elementsSelectable:o,onError:i}=J(xh,rt),s=dh(t.onlyRenderVisibleElements),a=gh();return _.jsx("div",{className:"react-flow__nodes",style:dn,children:s.map(l=>_.jsx(yh,{id:l,nodeTypes:t.nodeTypes,nodeExtent:t.nodeExtent,onClick:t.onNodeClick,onMouseEnter:t.onNodeMouseEnter,onMouseMove:t.onNodeMouseMove,onMouseLeave:t.onNodeMouseLeave,onContextMenu:t.onNodeContextMenu,onDoubleClick:t.onNodeDoubleClick,noDragClassName:t.noDragClassName,noPanClassName:t.noPanClassName,rfId:t.rfId,disableKeyboardA11y:t.disableKeyboardA11y,resizeObserver:a,nodesDraggable:e,nodesConnectable:n,nodesFocusable:r,elementsSelectable:o,nodeClickDistance:t.nodeClickDistance,onError:i},l))})}qi.displayName="NodeRenderer";const wh=D.memo(qi);function vh(t){return J(D.useCallback(n=>{if(!t)return n.edges.map(o=>o.id);const r=[];if(n.width&&n.height)for(const o of n.edges){const i=n.nodeLookup.get(o.source),s=n.nodeLookup.get(o.target);i&&s&&wf({sourceNode:i,targetNode:s,width:n.width,height:n.height,transform:n.transform})&&r.push(o.id)}return r},[t]),rt)}const bh=({color:t="none",strokeWidth:e=1})=>{const n={strokeWidth:e,...t&&{stroke:t}};return _.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},_h=({color:t="none",strokeWidth:e=1})=>{const n={strokeWidth:e,...t&&{stroke:t,fill:t}};return _.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},xo={[xe.Arrow]:bh,[xe.ArrowClosed]:_h};function Nh(t){const e=ot();return D.useMemo(()=>{var o,i;return Object.prototype.hasOwnProperty.call(xo,t)?xo[t]:((i=(o=e.getState()).onError)==null||i.call(o,"009",wt.error009(t)),null)},[t])}const Eh=({id:t,type:e,color:n,width:r=12.5,height:o=12.5,markerUnits:i="strokeWidth",strokeWidth:s,orient:a="auto-start-reverse"})=>{const l=Nh(e);return l?_.jsx("marker",{className:"react-flow__arrowhead",id:t,markerWidth:`${r}`,markerHeight:`${o}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:a,refX:"0",refY:"0",children:_.jsx(l,{color:n,strokeWidth:s})}):null},Zi=({defaultColor:t,rfId:e})=>{const n=J(i=>i.edges),r=J(i=>i.defaultEdgeOptions),o=D.useMemo(()=>Cf(n,{id:e,defaultColor:t,defaultMarkerStart:r==null?void 0:r.markerStart,defaultMarkerEnd:r==null?void 0:r.markerEnd}),[n,r,e,t]);return o.length?_.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:_.jsx("defs",{children:o.map(i=>_.jsx(Eh,{id:i.id,type:i.type,color:i.color,width:i.width,height:i.height,markerUnits:i.markerUnits,strokeWidth:i.strokeWidth,orient:i.orient},i.id))})}):null};Zi.displayName="MarkerDefinitions";var Sh=D.memo(Zi);function Ui({x:t,y:e,label:n,labelStyle:r,labelShowBg:o=!0,labelBgStyle:i,labelBgPadding:s=[2,4],labelBgBorderRadius:a=2,children:l,className:c,...f}){const[u,d]=D.useState({x:1,y:0,width:0,height:0}),h=it(["react-flow__edge-textwrapper",c]),g=D.useRef(null);return D.useEffect(()=>{if(g.current){const y=g.current.getBBox();d({x:y.x,y:y.y,width:y.width,height:y.height})}},[n]),n?_.jsxs("g",{transform:`translate(${t-u.width/2} ${e-u.height/2})`,className:h,visibility:u.width?"visible":"hidden",...f,children:[o&&_.jsx("rect",{width:u.width+2*s[0],x:-s[0],y:-s[1],height:u.height+2*s[1],className:"react-flow__edge-textbg",style:i,rx:a,ry:a}),_.jsx("text",{className:"react-flow__edge-text",y:u.height/2,dy:"0.3em",ref:g,style:r,children:n}),l]}):null}Ui.displayName="EdgeText";const Mh=D.memo(Ui);function hn({path:t,labelX:e,labelY:n,label:r,labelStyle:o,labelShowBg:i,labelBgStyle:s,labelBgPadding:a,labelBgBorderRadius:l,interactionWidth:c=20,...f}){return _.jsxs(_.Fragment,{children:[_.jsx("path",{...f,d:t,fill:"none",className:it(["react-flow__edge-path",f.className])}),c?_.jsx("path",{d:t,fill:"none",strokeOpacity:0,strokeWidth:c,className:"react-flow__edge-interaction"}):null,r&>(e)&>(n)?_.jsx(Mh,{x:e,y:n,label:r,labelStyle:o,labelShowBg:i,labelBgStyle:s,labelBgPadding:a,labelBgBorderRadius:l}):null]})}function wo({pos:t,x1:e,y1:n,x2:r,y2:o}){return t===X.Left||t===X.Right?[.5*(e+r),n]:[e,.5*(n+o)]}function Ki({sourceX:t,sourceY:e,sourcePosition:n=X.Bottom,targetX:r,targetY:o,targetPosition:i=X.Top}){const[s,a]=wo({pos:n,x1:t,y1:e,x2:r,y2:o}),[l,c]=wo({pos:i,x1:r,y1:o,x2:t,y2:e}),[f,u,d,h]=wi({sourceX:t,sourceY:e,targetX:r,targetY:o,sourceControlX:s,sourceControlY:a,targetControlX:l,targetControlY:c});return[`M${t},${e} C${s},${a} ${l},${c} ${r},${o}`,f,u,d,h]}function Qi(t){return D.memo(({id:e,sourceX:n,sourceY:r,targetX:o,targetY:i,sourcePosition:s,targetPosition:a,label:l,labelStyle:c,labelShowBg:f,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:g,markerEnd:y,markerStart:p,interactionWidth:m})=>{const[v,x,w]=Ki({sourceX:n,sourceY:r,sourcePosition:s,targetX:o,targetY:i,targetPosition:a}),E=t.isInternal?void 0:e;return _.jsx(hn,{id:E,path:v,labelX:x,labelY:w,label:l,labelStyle:c,labelShowBg:f,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:g,markerEnd:y,markerStart:p,interactionWidth:m})})}const Ch=Qi({isInternal:!1}),Ji=Qi({isInternal:!0});Ch.displayName="SimpleBezierEdge";Ji.displayName="SimpleBezierEdgeInternal";function ts(t){return D.memo(({id:e,sourceX:n,sourceY:r,targetX:o,targetY:i,label:s,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:u,style:d,sourcePosition:h=X.Bottom,targetPosition:g=X.Top,markerEnd:y,markerStart:p,pathOptions:m,interactionWidth:v})=>{const[x,w,E]=Hn({sourceX:n,sourceY:r,sourcePosition:h,targetX:o,targetY:i,targetPosition:g,borderRadius:m==null?void 0:m.borderRadius,offset:m==null?void 0:m.offset,stepPosition:m==null?void 0:m.stepPosition}),N=t.isInternal?void 0:e;return _.jsx(hn,{id:N,path:x,labelX:w,labelY:E,label:s,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:u,style:d,markerEnd:y,markerStart:p,interactionWidth:v})})}const es=ts({isInternal:!1}),ns=ts({isInternal:!0});es.displayName="SmoothStepEdge";ns.displayName="SmoothStepEdgeInternal";function rs(t){return D.memo(({id:e,...n})=>{var o;const r=t.isInternal?void 0:e;return _.jsx(es,{...n,id:r,pathOptions:D.useMemo(()=>{var i;return{borderRadius:0,offset:(i=n.pathOptions)==null?void 0:i.offset}},[(o=n.pathOptions)==null?void 0:o.offset])})})}const kh=rs({isInternal:!1}),os=rs({isInternal:!0});kh.displayName="StepEdge";os.displayName="StepEdgeInternal";function is(t){return D.memo(({id:e,sourceX:n,sourceY:r,targetX:o,targetY:i,label:s,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:u,style:d,markerEnd:h,markerStart:g,interactionWidth:y})=>{const[p,m,v]=_i({sourceX:n,sourceY:r,targetX:o,targetY:i}),x=t.isInternal?void 0:e;return _.jsx(hn,{id:x,path:p,labelX:m,labelY:v,label:s,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:u,style:d,markerEnd:h,markerStart:g,interactionWidth:y})})}const Ah=is({isInternal:!1}),ss=is({isInternal:!0});Ah.displayName="StraightEdge";ss.displayName="StraightEdgeInternal";function as(t){return D.memo(({id:e,sourceX:n,sourceY:r,targetX:o,targetY:i,sourcePosition:s=X.Bottom,targetPosition:a=X.Top,label:l,labelStyle:c,labelShowBg:f,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:g,markerEnd:y,markerStart:p,pathOptions:m,interactionWidth:v})=>{const[x,w,E]=vi({sourceX:n,sourceY:r,sourcePosition:s,targetX:o,targetY:i,targetPosition:a,curvature:m==null?void 0:m.curvature}),N=t.isInternal?void 0:e;return _.jsx(hn,{id:N,path:x,labelX:w,labelY:E,label:l,labelStyle:c,labelShowBg:f,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:g,markerEnd:y,markerStart:p,interactionWidth:v})})}const Ih=as({isInternal:!1}),cs=as({isInternal:!0});Ih.displayName="BezierEdge";cs.displayName="BezierEdgeInternal";const vo={default:cs,straight:ss,step:os,smoothstep:ns,simplebezier:Ji},bo={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},$h=(t,e,n)=>n===X.Left?t-e:n===X.Right?t+e:t,Ph=(t,e,n)=>n===X.Top?t-e:n===X.Bottom?t+e:t,_o="react-flow__edgeupdater";function No({position:t,centerX:e,centerY:n,radius:r=10,onMouseDown:o,onMouseEnter:i,onMouseOut:s,type:a}){return _.jsx("circle",{onMouseDown:o,onMouseEnter:i,onMouseOut:s,className:it([_o,`${_o}-${a}`]),cx:$h(e,r,t),cy:Ph(n,r,t),r,stroke:"transparent",fill:"transparent"})}function Th({isReconnectable:t,reconnectRadius:e,edge:n,sourceX:r,sourceY:o,targetX:i,targetY:s,sourcePosition:a,targetPosition:l,onReconnect:c,onReconnectStart:f,onReconnectEnd:u,setReconnecting:d,setUpdateHover:h}){const g=ot(),y=(w,E)=>{if(w.button!==0)return;const{autoPanOnConnect:N,domNode:S,connectionMode:A,connectionRadius:$,lib:j,onConnectStart:k,cancelConnection:z,nodeLookup:H,rfId:b,panBy:P,updateConnection:M}=g.getState(),T=E.type==="target",I=(V,R)=>{d(!1),u==null||u(V,n,E.type,R)},C=V=>c==null?void 0:c(n,V),L=(V,R)=>{d(!0),f==null||f(w,n,E.type),k==null||k(V,R)};Fn.onPointerDown(w.nativeEvent,{autoPanOnConnect:N,connectionMode:A,connectionRadius:$,domNode:S,handleId:E.id,nodeId:E.nodeId,nodeLookup:H,isTarget:T,edgeUpdaterType:E.type,lib:j,flowId:b,cancelConnection:z,panBy:P,isValidConnection:(...V)=>{var R,F;return((F=(R=g.getState()).isValidConnection)==null?void 0:F.call(R,...V))??!0},onConnect:C,onConnectStart:L,onConnectEnd:(...V)=>{var R,F;return(F=(R=g.getState()).onConnectEnd)==null?void 0:F.call(R,...V)},onReconnectEnd:I,updateConnection:M,getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,dragThreshold:g.getState().connectionDragThreshold,handleDomNode:w.currentTarget})},p=w=>y(w,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),m=w=>y(w,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),v=()=>h(!0),x=()=>h(!1);return _.jsxs(_.Fragment,{children:[(t===!0||t==="source")&&_.jsx(No,{position:a,centerX:r,centerY:o,radius:e,onMouseDown:p,onMouseEnter:v,onMouseOut:x,type:"source"}),(t===!0||t==="target")&&_.jsx(No,{position:l,centerX:i,centerY:s,radius:e,onMouseDown:m,onMouseEnter:v,onMouseOut:x,type:"target"})]})}function zh({id:t,edgesFocusable:e,edgesReconnectable:n,elementsSelectable:r,onClick:o,onDoubleClick:i,onContextMenu:s,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,reconnectRadius:f,onReconnect:u,onReconnectStart:d,onReconnectEnd:h,rfId:g,edgeTypes:y,noPanClassName:p,onError:m,disableKeyboardA11y:v}){let x=J(U=>U.edgeLookup.get(t));const w=J(U=>U.defaultEdgeOptions);x=w?{...w,...x}:x;let E=x.type||"default",N=(y==null?void 0:y[E])||vo[E];N===void 0&&(m==null||m("011",wt.error011(E)),E="default",N=(y==null?void 0:y.default)||vo.default);const S=!!(x.focusable||e&&typeof x.focusable>"u"),A=typeof u<"u"&&(x.reconnectable||n&&typeof x.reconnectable>"u"),$=!!(x.selectable||r&&typeof x.selectable>"u"),j=D.useRef(null),[k,z]=D.useState(!1),[H,b]=D.useState(!1),P=ot(),{zIndex:M,sourceX:T,sourceY:I,targetX:C,targetY:L,sourcePosition:V,targetPosition:R}=J(D.useCallback(U=>{const q=U.nodeLookup.get(x.source),et=U.nodeLookup.get(x.target);if(!q||!et)return{zIndex:x.zIndex,...bo};const nt=Mf({id:t,sourceNode:q,targetNode:et,sourceHandle:x.sourceHandle||null,targetHandle:x.targetHandle||null,connectionMode:U.connectionMode,onError:m});return{zIndex:xf({selected:x.selected,zIndex:x.zIndex,sourceNode:q,targetNode:et,elevateOnSelect:U.elevateEdgesOnSelect,zIndexMode:U.zIndexMode}),...nt||bo}},[x.source,x.target,x.sourceHandle,x.targetHandle,x.selected,x.zIndex]),rt),F=D.useMemo(()=>x.markerStart?`url('#${Vn(x.markerStart,g)}')`:void 0,[x.markerStart,g]),O=D.useMemo(()=>x.markerEnd?`url('#${Vn(x.markerEnd,g)}')`:void 0,[x.markerEnd,g]);if(x.hidden||T===null||I===null||C===null||L===null)return null;const Y=U=>{var tt;const{addSelectedEdges:q,unselectNodesAndEdges:et,multiSelectionActive:nt}=P.getState();$&&(P.setState({nodesSelectionActive:!1}),x.selected&&nt?(et({nodes:[],edges:[x]}),(tt=j.current)==null||tt.blur()):q([t])),o&&o(U,x)},Z=i?U=>{i(U,{...x})}:void 0,G=s?U=>{s(U,{...x})}:void 0,B=a?U=>{a(U,{...x})}:void 0,W=l?U=>{l(U,{...x})}:void 0,Q=c?U=>{c(U,{...x})}:void 0,K=U=>{var q;if(!v&&ii.includes(U.key)&&$){const{unselectNodesAndEdges:et,addSelectedEdges:nt}=P.getState();U.key==="Escape"?((q=j.current)==null||q.blur(),et({edges:[x]})):nt([t])}};return _.jsx("svg",{style:{zIndex:M},children:_.jsxs("g",{className:it(["react-flow__edge",`react-flow__edge-${E}`,x.className,p,{selected:x.selected,animated:x.animated,inactive:!$&&!o,updating:k,selectable:$}]),onClick:Y,onDoubleClick:Z,onContextMenu:G,onMouseEnter:B,onMouseMove:W,onMouseLeave:Q,onKeyDown:S?K:void 0,tabIndex:S?0:void 0,role:x.ariaRole??(S?"group":"img"),"aria-roledescription":"edge","data-id":t,"data-testid":`rf__edge-${t}`,"aria-label":x.ariaLabel===null?void 0:x.ariaLabel||`Edge from ${x.source} to ${x.target}`,"aria-describedby":S?`${ji}-${g}`:void 0,ref:j,...x.domAttributes,children:[!H&&_.jsx(N,{id:t,source:x.source,target:x.target,type:x.type,selected:x.selected,animated:x.animated,selectable:$,deletable:x.deletable??!0,label:x.label,labelStyle:x.labelStyle,labelShowBg:x.labelShowBg,labelBgStyle:x.labelBgStyle,labelBgPadding:x.labelBgPadding,labelBgBorderRadius:x.labelBgBorderRadius,sourceX:T,sourceY:I,targetX:C,targetY:L,sourcePosition:V,targetPosition:R,data:x.data,style:x.style,sourceHandleId:x.sourceHandle,targetHandleId:x.targetHandle,markerStart:F,markerEnd:O,pathOptions:"pathOptions"in x?x.pathOptions:void 0,interactionWidth:x.interactionWidth}),A&&_.jsx(Th,{edge:x,isReconnectable:A,reconnectRadius:f,onReconnect:u,onReconnectStart:d,onReconnectEnd:h,sourceX:T,sourceY:I,targetX:C,targetY:L,sourcePosition:V,targetPosition:R,setUpdateHover:z,setReconnecting:b})]})})}var Dh=D.memo(zh);const Lh=t=>({edgesFocusable:t.edgesFocusable,edgesReconnectable:t.edgesReconnectable,elementsSelectable:t.elementsSelectable,connectionMode:t.connectionMode,onError:t.onError});function ls({defaultMarkerColor:t,onlyRenderVisibleElements:e,rfId:n,edgeTypes:r,noPanClassName:o,onReconnect:i,onEdgeContextMenu:s,onEdgeMouseEnter:a,onEdgeMouseMove:l,onEdgeMouseLeave:c,onEdgeClick:f,reconnectRadius:u,onEdgeDoubleClick:d,onReconnectStart:h,onReconnectEnd:g,disableKeyboardA11y:y}){const{edgesFocusable:p,edgesReconnectable:m,elementsSelectable:v,onError:x}=J(Lh,rt),w=vh(e);return _.jsxs("div",{className:"react-flow__edges",children:[_.jsx(Sh,{defaultColor:t,rfId:n}),w.map(E=>_.jsx(Dh,{id:E,edgesFocusable:p,edgesReconnectable:m,elementsSelectable:v,noPanClassName:o,onReconnect:i,onContextMenu:s,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,onClick:f,reconnectRadius:u,onDoubleClick:d,onReconnectStart:h,onReconnectEnd:g,rfId:n,onError:x,edgeTypes:r,disableKeyboardA11y:y},E))]})}ls.displayName="EdgeRenderer";const jh=D.memo(ls),Rh=t=>`translate(${t.transform[0]}px,${t.transform[1]}px) scale(${t.transform[2]})`;function Hh({children:t}){const e=J(Rh);return _.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:e},children:t})}function Vh(t){const e=Ae(),n=D.useRef(!1);D.useEffect(()=>{!n.current&&e.viewportInitialized&&t&&(setTimeout(()=>t(e),1),n.current=!0)},[t,e.viewportInitialized])}const Bh=t=>{var e;return(e=t.panZoom)==null?void 0:e.syncViewport};function Fh(t){const e=J(Bh),n=ot();return D.useEffect(()=>{t&&(e==null||e(t),n.setState({transform:[t.x,t.y,t.zoom]}))},[t,e]),null}function Oh(t){return t.connection.inProgress?{...t.connection,to:ke(t.connection.to,t.transform)}:{...t.connection}}function Xh(t){return Oh}function Yh(t){const e=Xh();return J(e,rt)}const Wh=t=>({nodesConnectable:t.nodesConnectable,isValid:t.connection.isValid,inProgress:t.connection.inProgress,width:t.width,height:t.height});function Gh({containerStyle:t,style:e,type:n,component:r}){const{nodesConnectable:o,width:i,height:s,isValid:a,inProgress:l}=J(Wh,rt);return!(i&&o&&l)?null:_.jsx("svg",{style:t,width:i,height:s,className:"react-flow__connectionline react-flow__container",children:_.jsx("g",{className:it(["react-flow__connection",ci(a)]),children:_.jsx(us,{style:e,type:n,CustomComponent:r,isValid:a})})})}const us=({style:t,type:e=It.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:o,from:i,fromNode:s,fromHandle:a,fromPosition:l,to:c,toNode:f,toHandle:u,toPosition:d,pointer:h}=Yh();if(!o)return;if(n)return _.jsx(n,{connectionLineType:e,connectionLineStyle:t,fromNode:s,fromHandle:a,fromX:i.x,fromY:i.y,toX:c.x,toY:c.y,fromPosition:l,toPosition:d,connectionStatus:ci(r),toNode:f,toHandle:u,pointer:h});let g="";const y={sourceX:i.x,sourceY:i.y,sourcePosition:l,targetX:c.x,targetY:c.y,targetPosition:d};switch(e){case It.Bezier:[g]=vi(y);break;case It.SimpleBezier:[g]=Ki(y);break;case It.Step:[g]=Hn({...y,borderRadius:0});break;case It.SmoothStep:[g]=Hn(y);break;default:[g]=_i(y)}return _.jsx("path",{d:g,fill:"none",className:"react-flow__connection-path",style:t})};us.displayName="ConnectionLine";const qh={};function Eo(t=qh){D.useRef(t),ot(),D.useEffect(()=>{},[t])}function Zh(){ot(),D.useRef(!1),D.useEffect(()=>{},[])}function fs({nodeTypes:t,edgeTypes:e,onInit:n,onNodeClick:r,onEdgeClick:o,onNodeDoubleClick:i,onEdgeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:f,onSelectionContextMenu:u,onSelectionStart:d,onSelectionEnd:h,connectionLineType:g,connectionLineStyle:y,connectionLineComponent:p,connectionLineContainerStyle:m,selectionKeyCode:v,selectionOnDrag:x,selectionMode:w,multiSelectionKeyCode:E,panActivationKeyCode:N,zoomActivationKeyCode:S,deleteKeyCode:A,onlyRenderVisibleElements:$,elementsSelectable:j,defaultViewport:k,translateExtent:z,minZoom:H,maxZoom:b,preventScrolling:P,defaultMarkerColor:M,zoomOnScroll:T,zoomOnPinch:I,panOnScroll:C,panOnScrollSpeed:L,panOnScrollMode:V,zoomOnDoubleClick:R,panOnDrag:F,onPaneClick:O,onPaneMouseEnter:Y,onPaneMouseMove:Z,onPaneMouseLeave:G,onPaneScroll:B,onPaneContextMenu:W,paneClickDistance:Q,nodeClickDistance:K,onEdgeContextMenu:U,onEdgeMouseEnter:q,onEdgeMouseMove:et,onEdgeMouseLeave:nt,reconnectRadius:tt,onReconnect:st,onReconnectStart:Ct,onReconnectEnd:bt,noDragClassName:Pt,noWheelClassName:ne,noPanClassName:re,disableKeyboardA11y:oe,nodeExtent:gn,rfId:Ie,viewport:Ft,onViewportChange:ie}){return Eo(t),Eo(e),Zh(),Vh(n),Fh(Ft),_.jsx(uh,{onPaneClick:O,onPaneMouseEnter:Y,onPaneMouseMove:Z,onPaneMouseLeave:G,onPaneContextMenu:W,onPaneScroll:B,paneClickDistance:Q,deleteKeyCode:A,selectionKeyCode:v,selectionOnDrag:x,selectionMode:w,onSelectionStart:d,onSelectionEnd:h,multiSelectionKeyCode:E,panActivationKeyCode:N,zoomActivationKeyCode:S,elementsSelectable:j,zoomOnScroll:T,zoomOnPinch:I,zoomOnDoubleClick:R,panOnScroll:C,panOnScrollSpeed:L,panOnScrollMode:V,panOnDrag:F,defaultViewport:k,translateExtent:z,minZoom:H,maxZoom:b,onSelectionContextMenu:u,preventScrolling:P,noDragClassName:Pt,noWheelClassName:ne,noPanClassName:re,disableKeyboardA11y:oe,onViewportChange:ie,isControlledViewport:!!Ft,children:_.jsxs(Hh,{children:[_.jsx(jh,{edgeTypes:e,onEdgeClick:o,onEdgeDoubleClick:s,onReconnect:st,onReconnectStart:Ct,onReconnectEnd:bt,onlyRenderVisibleElements:$,onEdgeContextMenu:U,onEdgeMouseEnter:q,onEdgeMouseMove:et,onEdgeMouseLeave:nt,reconnectRadius:tt,defaultMarkerColor:M,noPanClassName:re,disableKeyboardA11y:oe,rfId:Ie}),_.jsx(Gh,{style:y,type:g,component:p,containerStyle:m}),_.jsx("div",{className:"react-flow__edgelabel-renderer"}),_.jsx(wh,{nodeTypes:t,onNodeClick:r,onNodeDoubleClick:i,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:f,nodeClickDistance:K,onlyRenderVisibleElements:$,noPanClassName:re,noDragClassName:Pt,disableKeyboardA11y:oe,nodeExtent:gn,rfId:Ie}),_.jsx("div",{className:"react-flow__viewport-portal"})]})})}fs.displayName="GraphView";const Uh=D.memo(fs),So=({nodes:t,edges:e,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:s,fitViewOptions:a,minZoom:l=.5,maxZoom:c=2,nodeOrigin:f,nodeExtent:u,zIndexMode:d="basic"}={})=>{const h=new Map,g=new Map,y=new Map,p=new Map,m=r??e??[],v=n??t??[],x=f??[0,0],w=u??me;Si(y,p,m);const{nodesInitialized:E}=Bn(v,h,g,{nodeOrigin:x,nodeExtent:w,zIndexMode:d});let N=[0,0,1];if(s&&o&&i){const S=Me(h,{filter:k=>!!((k.width||k.initialWidth)&&(k.height||k.initialHeight))}),{x:A,y:$,zoom:j}=er(S,o,i,l,c,(a==null?void 0:a.padding)??.1);N=[A,$,j]}return{rfId:"1",width:o??0,height:i??0,transform:N,nodes:v,nodesInitialized:E,nodeLookup:h,parentLookup:g,edges:m,edgeLookup:p,connectionLookup:y,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:l,maxZoom:c,translateExtent:me,nodeExtent:w,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Ut.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:x,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:s??!1,fitViewOptions:a,fitViewResolver:null,connection:{...ai},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:df,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:si,zIndexMode:d,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},Kh=({nodes:t,edges:e,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:s,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:f,nodeExtent:u,zIndexMode:d})=>md((h,g)=>{async function y(){const{nodeLookup:p,panZoom:m,fitViewOptions:v,fitViewResolver:x,width:w,height:E,minZoom:N,maxZoom:S}=g();m&&(await uf({nodes:p,width:w,height:E,panZoom:m,minZoom:N,maxZoom:S},v),x==null||x.resolve(!0),h({fitViewResolver:null}))}return{...So({nodes:t,edges:e,width:o,height:i,fitView:s,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:f,nodeExtent:u,defaultNodes:n,defaultEdges:r,zIndexMode:d}),setNodes:p=>{const{nodeLookup:m,parentLookup:v,nodeOrigin:x,elevateNodesOnSelect:w,fitViewQueued:E,zIndexMode:N,nodesSelectionActive:S}=g(),{nodesInitialized:A,hasSelectedNodes:$}=Bn(p,m,v,{nodeOrigin:x,nodeExtent:u,elevateNodesOnSelect:w,checkEquality:!0,zIndexMode:N}),j=S&&$;E&&A?(y(),h({nodes:p,nodesInitialized:A,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:j})):h({nodes:p,nodesInitialized:A,nodesSelectionActive:j})},setEdges:p=>{const{connectionLookup:m,edgeLookup:v}=g();Si(m,v,p),h({edges:p})},setDefaultNodesAndEdges:(p,m)=>{if(p){const{setNodes:v}=g();v(p),h({hasDefaultNodes:!0})}if(m){const{setEdges:v}=g();v(m),h({hasDefaultEdges:!0})}},updateNodeInternals:p=>{const{triggerNodeChanges:m,nodeLookup:v,parentLookup:x,domNode:w,nodeOrigin:E,nodeExtent:N,debug:S,fitViewQueued:A,zIndexMode:$}=g(),{changes:j,updatedInternals:k}=zf(p,v,x,w,E,N,$);k&&(If(v,x,{nodeOrigin:E,nodeExtent:N,zIndexMode:$}),A?(y(),h({fitViewQueued:!1,fitViewOptions:void 0})):h({}),(j==null?void 0:j.length)>0&&(S&&console.log("React Flow: trigger node changes",j),m==null||m(j)))},updateNodePositions:(p,m=!1)=>{const v=[];let x=[];const{nodeLookup:w,triggerNodeChanges:E,connection:N,updateConnection:S,onNodesChangeMiddlewareMap:A}=g();for(const[$,j]of p){const k=w.get($),z=!!(k!=null&&k.expandParent&&(k!=null&&k.parentId)&&(j!=null&&j.position)),H={id:$,type:"position",position:z?{x:Math.max(0,j.position.x),y:Math.max(0,j.position.y)}:j.position,dragging:m};if(k&&N.inProgress&&N.fromNode.id===k.id){const b=Bt(k,N.fromHandle,X.Left,!0);S({...N,from:b})}z&&k.parentId&&v.push({id:$,parentId:k.parentId,rect:{...j.internals.positionAbsolute,width:j.measured.width??0,height:j.measured.height??0}}),x.push(H)}if(v.length>0){const{parentLookup:$,nodeOrigin:j}=g(),k=ar(v,w,$,j);x.push(...k)}for(const $ of A.values())x=$(x);E(x)},triggerNodeChanges:p=>{const{onNodesChange:m,setNodes:v,nodes:x,hasDefaultNodes:w,debug:E}=g();if(p!=null&&p.length){if(w){const N=Vi(p,x);v(N)}E&&console.log("React Flow: trigger node changes",p),m==null||m(p)}},triggerEdgeChanges:p=>{const{onEdgesChange:m,setEdges:v,edges:x,hasDefaultEdges:w,debug:E}=g();if(p!=null&&p.length){if(w){const N=Bi(p,x);v(N)}E&&console.log("React Flow: trigger edge changes",p),m==null||m(p)}},addSelectedNodes:p=>{const{multiSelectionActive:m,edgeLookup:v,nodeLookup:x,triggerNodeChanges:w,triggerEdgeChanges:E}=g();if(m){const N=p.map(S=>Tt(S,!0));w(N);return}w(Yt(x,new Set([...p]),!0)),E(Yt(v))},addSelectedEdges:p=>{const{multiSelectionActive:m,edgeLookup:v,nodeLookup:x,triggerNodeChanges:w,triggerEdgeChanges:E}=g();if(m){const N=p.map(S=>Tt(S,!0));E(N);return}E(Yt(v,new Set([...p]))),w(Yt(x,new Set,!0))},unselectNodesAndEdges:({nodes:p,edges:m}={})=>{const{edges:v,nodes:x,nodeLookup:w,triggerNodeChanges:E,triggerEdgeChanges:N}=g(),S=p||x,A=m||v,$=[];for(const k of S){if(!k.selected)continue;const z=w.get(k.id);z&&(z.selected=!1),$.push(Tt(k.id,!1))}const j=[];for(const k of A)k.selected&&j.push(Tt(k.id,!1));E($),N(j)},setMinZoom:p=>{const{panZoom:m,maxZoom:v}=g();m==null||m.setScaleExtent([p,v]),h({minZoom:p})},setMaxZoom:p=>{const{panZoom:m,minZoom:v}=g();m==null||m.setScaleExtent([v,p]),h({maxZoom:p})},setTranslateExtent:p=>{var m;(m=g().panZoom)==null||m.setTranslateExtent(p),h({translateExtent:p})},resetSelectedElements:()=>{const{edges:p,nodes:m,triggerNodeChanges:v,triggerEdgeChanges:x,elementsSelectable:w}=g();if(!w)return;const E=m.reduce((S,A)=>A.selected?[...S,Tt(A.id,!1)]:S,[]),N=p.reduce((S,A)=>A.selected?[...S,Tt(A.id,!1)]:S,[]);v(E),x(N)},setNodeExtent:p=>{const{nodes:m,nodeLookup:v,parentLookup:x,nodeOrigin:w,elevateNodesOnSelect:E,nodeExtent:N,zIndexMode:S}=g();p[0][0]===N[0][0]&&p[0][1]===N[0][1]&&p[1][0]===N[1][0]&&p[1][1]===N[1][1]||(Bn(m,v,x,{nodeOrigin:w,nodeExtent:p,elevateNodesOnSelect:E,checkEquality:!1,zIndexMode:S}),h({nodeExtent:p}))},panBy:p=>{const{transform:m,width:v,height:x,panZoom:w,translateExtent:E}=g();return Df({delta:p,panZoom:w,transform:m,translateExtent:E,width:v,height:x})},setCenter:async(p,m,v)=>{const{width:x,height:w,maxZoom:E,panZoom:N}=g();if(!N)return Promise.resolve(!1);const S=typeof(v==null?void 0:v.zoom)<"u"?v.zoom:E;return await N.setViewport({x:x/2-p*S,y:w/2-m*S,zoom:S},{duration:v==null?void 0:v.duration,ease:v==null?void 0:v.ease,interpolate:v==null?void 0:v.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{h({connection:{...ai}})},updateConnection:p=>{h({connection:p})},reset:()=>h({...So()})}},Object.is);function ds({initialNodes:t,initialEdges:e,defaultNodes:n,defaultEdges:r,initialWidth:o,initialHeight:i,initialMinZoom:s,initialMaxZoom:a,initialFitViewOptions:l,fitView:c,nodeOrigin:f,nodeExtent:u,zIndexMode:d,children:h}){const[g]=D.useState(()=>Kh({nodes:t,edges:e,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:c,minZoom:s,maxZoom:a,fitViewOptions:l,nodeOrigin:f,nodeExtent:u,zIndexMode:d}));return _.jsx(yd,{value:g,children:_.jsx(Hd,{children:h})})}function Qh({children:t,nodes:e,edges:n,defaultNodes:r,defaultEdges:o,width:i,height:s,fitView:a,fitViewOptions:l,minZoom:c,maxZoom:f,nodeOrigin:u,nodeExtent:d,zIndexMode:h}){return D.useContext(un)?_.jsx(_.Fragment,{children:t}):_.jsx(ds,{initialNodes:e,initialEdges:n,defaultNodes:r,defaultEdges:o,initialWidth:i,initialHeight:s,fitView:a,initialFitViewOptions:l,initialMinZoom:c,initialMaxZoom:f,nodeOrigin:u,nodeExtent:d,zIndexMode:h,children:t})}const Jh={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function tg({nodes:t,edges:e,defaultNodes:n,defaultEdges:r,className:o,nodeTypes:i,edgeTypes:s,onNodeClick:a,onEdgeClick:l,onInit:c,onMove:f,onMoveStart:u,onMoveEnd:d,onConnect:h,onConnectStart:g,onConnectEnd:y,onClickConnectStart:p,onClickConnectEnd:m,onNodeMouseEnter:v,onNodeMouseMove:x,onNodeMouseLeave:w,onNodeContextMenu:E,onNodeDoubleClick:N,onNodeDragStart:S,onNodeDrag:A,onNodeDragStop:$,onNodesDelete:j,onEdgesDelete:k,onDelete:z,onSelectionChange:H,onSelectionDragStart:b,onSelectionDrag:P,onSelectionDragStop:M,onSelectionContextMenu:T,onSelectionStart:I,onSelectionEnd:C,onBeforeDelete:L,connectionMode:V,connectionLineType:R=It.Bezier,connectionLineStyle:F,connectionLineComponent:O,connectionLineContainerStyle:Y,deleteKeyCode:Z="Backspace",selectionKeyCode:G="Shift",selectionOnDrag:B=!1,selectionMode:W=ye.Full,panActivationKeyCode:Q="Space",multiSelectionKeyCode:K=ve()?"Meta":"Control",zoomActivationKeyCode:U=ve()?"Meta":"Control",snapToGrid:q,snapGrid:et,onlyRenderVisibleElements:nt=!1,selectNodesOnDrag:tt,nodesDraggable:st,autoPanOnNodeFocus:Ct,nodesConnectable:bt,nodesFocusable:Pt,nodeOrigin:ne=Ri,edgesFocusable:re,edgesReconnectable:oe,elementsSelectable:gn=!0,defaultViewport:Ie=Id,minZoom:Ft=.5,maxZoom:ie=2,translateExtent:fr=me,preventScrolling:ys=!0,nodeExtent:pn,defaultMarkerColor:xs="#b1b1b7",zoomOnScroll:ws=!0,zoomOnPinch:vs=!0,panOnScroll:bs=!1,panOnScrollSpeed:_s=.5,panOnScrollMode:Ns=Lt.Free,zoomOnDoubleClick:Es=!0,panOnDrag:Ss=!0,onPaneClick:Ms,onPaneMouseEnter:Cs,onPaneMouseMove:ks,onPaneMouseLeave:As,onPaneScroll:Is,onPaneContextMenu:$s,paneClickDistance:Ps=1,nodeClickDistance:Ts=0,children:zs,onReconnect:Ds,onReconnectStart:Ls,onReconnectEnd:js,onEdgeContextMenu:Rs,onEdgeDoubleClick:Hs,onEdgeMouseEnter:Vs,onEdgeMouseMove:Bs,onEdgeMouseLeave:Fs,reconnectRadius:Os=10,onNodesChange:Xs,onEdgesChange:Ys,noDragClassName:Ws="nodrag",noWheelClassName:Gs="nowheel",noPanClassName:dr="nopan",fitView:hr,fitViewOptions:gr,connectOnClick:qs,attributionPosition:Zs,proOptions:Us,defaultEdgeOptions:Ks,elevateNodesOnSelect:Qs=!0,elevateEdgesOnSelect:Js=!1,disableKeyboardA11y:pr=!1,autoPanOnConnect:ta,autoPanOnNodeDrag:ea,autoPanSpeed:na,connectionRadius:ra,isValidConnection:oa,onError:ia,style:sa,id:mr,nodeDragThreshold:aa,connectionDragThreshold:ca,viewport:la,onViewportChange:ua,width:fa,height:da,colorMode:ha="light",debug:ga,onScroll:$e,ariaLabelConfig:pa,zIndexMode:yr="basic",...ma},ya){const mn=mr||"1",xa=zd(ha),wa=D.useCallback(xr=>{xr.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),$e==null||$e(xr)},[$e]);return _.jsx("div",{"data-testid":"rf__wrapper",...ma,onScroll:wa,style:{...sa,...Jh},ref:ya,className:it(["react-flow",o,xa]),id:mr,role:"application",children:_.jsxs(Qh,{nodes:t,edges:e,width:fa,height:da,fitView:hr,fitViewOptions:gr,minZoom:Ft,maxZoom:ie,nodeOrigin:ne,nodeExtent:pn,zIndexMode:yr,children:[_.jsx(Td,{nodes:t,edges:e,defaultNodes:n,defaultEdges:r,onConnect:h,onConnectStart:g,onConnectEnd:y,onClickConnectStart:p,onClickConnectEnd:m,nodesDraggable:st,autoPanOnNodeFocus:Ct,nodesConnectable:bt,nodesFocusable:Pt,edgesFocusable:re,edgesReconnectable:oe,elementsSelectable:gn,elevateNodesOnSelect:Qs,elevateEdgesOnSelect:Js,minZoom:Ft,maxZoom:ie,nodeExtent:pn,onNodesChange:Xs,onEdgesChange:Ys,snapToGrid:q,snapGrid:et,connectionMode:V,translateExtent:fr,connectOnClick:qs,defaultEdgeOptions:Ks,fitView:hr,fitViewOptions:gr,onNodesDelete:j,onEdgesDelete:k,onDelete:z,onNodeDragStart:S,onNodeDrag:A,onNodeDragStop:$,onSelectionDrag:P,onSelectionDragStart:b,onSelectionDragStop:M,onMove:f,onMoveStart:u,onMoveEnd:d,noPanClassName:dr,nodeOrigin:ne,rfId:mn,autoPanOnConnect:ta,autoPanOnNodeDrag:ea,autoPanSpeed:na,onError:ia,connectionRadius:ra,isValidConnection:oa,selectNodesOnDrag:tt,nodeDragThreshold:aa,connectionDragThreshold:ca,onBeforeDelete:L,debug:ga,ariaLabelConfig:pa,zIndexMode:yr}),_.jsx(Uh,{onInit:c,onNodeClick:a,onEdgeClick:l,onNodeMouseEnter:v,onNodeMouseMove:x,onNodeMouseLeave:w,onNodeContextMenu:E,onNodeDoubleClick:N,nodeTypes:i,edgeTypes:s,connectionLineType:R,connectionLineStyle:F,connectionLineComponent:O,connectionLineContainerStyle:Y,selectionKeyCode:G,selectionOnDrag:B,selectionMode:W,deleteKeyCode:Z,multiSelectionKeyCode:K,panActivationKeyCode:Q,zoomActivationKeyCode:U,onlyRenderVisibleElements:nt,defaultViewport:Ie,translateExtent:fr,minZoom:Ft,maxZoom:ie,preventScrolling:ys,zoomOnScroll:ws,zoomOnPinch:vs,zoomOnDoubleClick:Es,panOnScroll:bs,panOnScrollSpeed:_s,panOnScrollMode:Ns,panOnDrag:Ss,onPaneClick:Ms,onPaneMouseEnter:Cs,onPaneMouseMove:ks,onPaneMouseLeave:As,onPaneScroll:Is,onPaneContextMenu:$s,paneClickDistance:Ps,nodeClickDistance:Ts,onSelectionContextMenu:T,onSelectionStart:I,onSelectionEnd:C,onReconnect:Ds,onReconnectStart:Ls,onReconnectEnd:js,onEdgeContextMenu:Rs,onEdgeDoubleClick:Hs,onEdgeMouseEnter:Vs,onEdgeMouseMove:Bs,onEdgeMouseLeave:Fs,reconnectRadius:Os,defaultMarkerColor:xs,noDragClassName:Ws,noWheelClassName:Gs,noPanClassName:dr,rfId:mn,disableKeyboardA11y:pr,nodeExtent:pn,viewport:la,onViewportChange:ua}),_.jsx(Ad,{onSelectionChange:H}),zs,_.jsx(Ed,{proOptions:Us,position:Zs}),_.jsx(Nd,{rfId:mn,disableKeyboardA11y:pr})]})})}var eg=Fi(tg);function ng(t){const[e,n]=D.useState(t),r=D.useCallback(o=>n(i=>Vi(o,i)),[]);return[e,n,r]}function rg(t){const[e,n]=D.useState(t),r=D.useCallback(o=>n(i=>Bi(o,i)),[]);return[e,n,r]}function og({dimensions:t,lineWidth:e,variant:n,className:r}){return _.jsx("path",{strokeWidth:e,d:`M${t[0]/2} 0 V${t[1]} M0 ${t[1]/2} H${t[0]}`,className:it(["react-flow__background-pattern",n,r])})}function ig({radius:t,className:e}){return _.jsx("circle",{cx:t,cy:t,r:t,className:it(["react-flow__background-pattern","dots",e])})}var Et;(function(t){t.Lines="lines",t.Dots="dots",t.Cross="cross"})(Et||(Et={}));const sg={[Et.Dots]:1,[Et.Lines]:1,[Et.Cross]:6},ag=t=>({transform:t.transform,patternId:`pattern-${t.rfId}`});function hs({id:t,variant:e=Et.Dots,gap:n=20,size:r,lineWidth:o=1,offset:i=0,color:s,bgColor:a,style:l,className:c,patternClassName:f}){const u=D.useRef(null),{transform:d,patternId:h}=J(ag,rt),g=r||sg[e],y=e===Et.Dots,p=e===Et.Cross,m=Array.isArray(n)?n:[n,n],v=[m[0]*d[2]||1,m[1]*d[2]||1],x=g*d[2],w=Array.isArray(i)?i:[i,i],E=p?[x,x]:v,N=[w[0]*d[2]||1+E[0]/2,w[1]*d[2]||1+E[1]/2],S=`${h}${t||""}`;return _.jsxs("svg",{className:it(["react-flow__background",c]),style:{...l,...dn,"--xy-background-color-props":a,"--xy-background-pattern-color-props":s},ref:u,"data-testid":"rf__background",children:[_.jsx("pattern",{id:S,x:d[0]%v[0],y:d[1]%v[1],width:v[0],height:v[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${N[0]},-${N[1]})`,children:y?_.jsx(ig,{radius:x/2,className:f}):_.jsx(og,{dimensions:E,lineWidth:o,variant:e,className:f})}),_.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${S})`})]})}hs.displayName="Background";const cg=D.memo(hs);function lg(){return _.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:_.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function ug(){return _.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:_.jsx("path",{d:"M0 0h32v4.2H0z"})})}function fg(){return _.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:_.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function dg(){return _.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:_.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function hg(){return _.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:_.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function Ve({children:t,className:e,...n}){return _.jsx("button",{type:"button",className:it(["react-flow__controls-button",e]),...n,children:t})}const gg=t=>({isInteractive:t.nodesDraggable||t.nodesConnectable||t.elementsSelectable,minZoomReached:t.transform[2]<=t.minZoom,maxZoomReached:t.transform[2]>=t.maxZoom,ariaLabelConfig:t.ariaLabelConfig});function gs({style:t,showZoom:e=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:o,onZoomIn:i,onZoomOut:s,onFitView:a,onInteractiveChange:l,className:c,children:f,position:u="bottom-left",orientation:d="vertical","aria-label":h}){const g=ot(),{isInteractive:y,minZoomReached:p,maxZoomReached:m,ariaLabelConfig:v}=J(gg,rt),{zoomIn:x,zoomOut:w,fitView:E}=Ae(),N=()=>{x(),i==null||i()},S=()=>{w(),s==null||s()},A=()=>{E(o),a==null||a()},$=()=>{g.setState({nodesDraggable:!y,nodesConnectable:!y,elementsSelectable:!y}),l==null||l(!y)},j=d==="horizontal"?"horizontal":"vertical";return _.jsxs(fn,{className:it(["react-flow__controls",j,c]),position:u,style:t,"data-testid":"rf__controls","aria-label":h??v["controls.ariaLabel"],children:[e&&_.jsxs(_.Fragment,{children:[_.jsx(Ve,{onClick:N,className:"react-flow__controls-zoomin",title:v["controls.zoomIn.ariaLabel"],"aria-label":v["controls.zoomIn.ariaLabel"],disabled:m,children:_.jsx(lg,{})}),_.jsx(Ve,{onClick:S,className:"react-flow__controls-zoomout",title:v["controls.zoomOut.ariaLabel"],"aria-label":v["controls.zoomOut.ariaLabel"],disabled:p,children:_.jsx(ug,{})})]}),n&&_.jsx(Ve,{className:"react-flow__controls-fitview",onClick:A,title:v["controls.fitView.ariaLabel"],"aria-label":v["controls.fitView.ariaLabel"],children:_.jsx(fg,{})}),r&&_.jsx(Ve,{className:"react-flow__controls-interactive",onClick:$,title:v["controls.interactive.ariaLabel"],"aria-label":v["controls.interactive.ariaLabel"],children:y?_.jsx(hg,{}):_.jsx(dg,{})}),f]})}gs.displayName="Controls";D.memo(gs);function pg({id:t,x:e,y:n,width:r,height:o,style:i,color:s,strokeColor:a,strokeWidth:l,className:c,borderRadius:f,shapeRendering:u,selected:d,onClick:h}){const{background:g,backgroundColor:y}=i||{},p=s||g||y;return _.jsx("rect",{className:it(["react-flow__minimap-node",{selected:d},c]),x:e,y:n,rx:f,ry:f,width:r,height:o,style:{fill:p,stroke:a,strokeWidth:l},shapeRendering:u,onClick:h?m=>h(m,t):void 0})}const mg=D.memo(pg),yg=t=>t.nodes.map(e=>e.id),An=t=>t instanceof Function?t:()=>t;function xg({nodeStrokeColor:t,nodeColor:e,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:o,nodeComponent:i=mg,onClick:s}){const a=J(yg,rt),l=An(e),c=An(t),f=An(n),u=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return _.jsx(_.Fragment,{children:a.map(d=>_.jsx(vg,{id:d,nodeColorFunc:l,nodeStrokeColorFunc:c,nodeClassNameFunc:f,nodeBorderRadius:r,nodeStrokeWidth:o,NodeComponent:i,onClick:s,shapeRendering:u},d))})}function wg({id:t,nodeColorFunc:e,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:o,nodeStrokeWidth:i,shapeRendering:s,NodeComponent:a,onClick:l}){const{node:c,x:f,y:u,width:d,height:h}=J(g=>{const y=g.nodeLookup.get(t);if(!y)return{node:void 0,x:0,y:0,width:0,height:0};const p=y.internals.userNode,{x:m,y:v}=y.internals.positionAbsolute,{width:x,height:w}=Mt(p);return{node:p,x:m,y:v,width:x,height:w}},rt);return!c||c.hidden||!gi(c)?null:_.jsx(a,{x:f,y:u,width:d,height:h,style:c.style,selected:!!c.selected,className:r(c),color:e(c),borderRadius:o,strokeColor:n(c),strokeWidth:i,shapeRendering:s,onClick:l,id:c.id})}const vg=D.memo(wg);var bg=D.memo(xg);const _g=200,Ng=150,Eg=t=>!t.hidden,Sg=t=>{const e={x:-t.transform[0]/t.transform[2],y:-t.transform[1]/t.transform[2],width:t.width/t.transform[2],height:t.height/t.transform[2]};return{viewBB:e,boundingRect:t.nodeLookup.size>0?hi(Me(t.nodeLookup,{filter:Eg}),e):e,rfId:t.rfId,panZoom:t.panZoom,translateExtent:t.translateExtent,flowWidth:t.width,flowHeight:t.height,ariaLabelConfig:t.ariaLabelConfig}},Mg="react-flow__minimap-desc";function ps({style:t,className:e,nodeStrokeColor:n,nodeColor:r,nodeClassName:o="",nodeBorderRadius:i=5,nodeStrokeWidth:s,nodeComponent:a,bgColor:l,maskColor:c,maskStrokeColor:f,maskStrokeWidth:u,position:d="bottom-right",onClick:h,onNodeClick:g,pannable:y=!1,zoomable:p=!1,ariaLabel:m,inversePan:v,zoomStep:x=1,offsetScale:w=5}){const E=ot(),N=D.useRef(null),{boundingRect:S,viewBB:A,rfId:$,panZoom:j,translateExtent:k,flowWidth:z,flowHeight:H,ariaLabelConfig:b}=J(Sg,rt),P=(t==null?void 0:t.width)??_g,M=(t==null?void 0:t.height)??Ng,T=S.width/P,I=S.height/M,C=Math.max(T,I),L=C*P,V=C*M,R=w*C,F=S.x-(L-S.width)/2-R,O=S.y-(V-S.height)/2-R,Y=L+R*2,Z=V+R*2,G=`${Mg}-${$}`,B=D.useRef(0),W=D.useRef();B.current=C,D.useEffect(()=>{if(N.current&&j)return W.current=Xf({domNode:N.current,panZoom:j,getTransform:()=>E.getState().transform,getViewScale:()=>B.current}),()=>{var q;(q=W.current)==null||q.destroy()}},[j]),D.useEffect(()=>{var q;(q=W.current)==null||q.update({translateExtent:k,width:z,height:H,inversePan:v,pannable:y,zoomStep:x,zoomable:p})},[y,p,v,x,k,z,H]);const Q=h?q=>{var tt;const[et,nt]=((tt=W.current)==null?void 0:tt.pointer(q))||[0,0];h(q,{x:et,y:nt})}:void 0,K=g?D.useCallback((q,et)=>{const nt=E.getState().nodeLookup.get(et).internals.userNode;g(q,nt)},[]):void 0,U=m??b["minimap.ariaLabel"];return _.jsx(fn,{position:d,style:{...t,"--xy-minimap-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-stroke-color-props":typeof f=="string"?f:void 0,"--xy-minimap-mask-stroke-width-props":typeof u=="number"?u*C:void 0,"--xy-minimap-node-background-color-props":typeof r=="string"?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof s=="number"?s:void 0},className:it(["react-flow__minimap",e]),"data-testid":"rf__minimap",children:_.jsxs("svg",{width:P,height:M,viewBox:`${F} ${O} ${Y} ${Z}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":G,ref:N,onClick:Q,children:[U&&_.jsx("title",{id:G,children:U}),_.jsx(bg,{onClick:K,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:o,nodeStrokeWidth:s,nodeComponent:a}),_.jsx("path",{className:"react-flow__minimap-mask",d:`M${F-R},${O-R}h${Y+R*2}v${Z+R*2}h${-Y-R*2}z
|
|
23
|
+
M${A.x},${A.y}h${A.width}v${A.height}h${-A.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}ps.displayName="MiniMap";D.memo(ps);const Cg=t=>e=>t?`${Math.max(1/e.transform[2],1)}`:void 0,kg={[te.Line]:"right",[te.Handle]:"bottom-right"};function Ag({nodeId:t,position:e,variant:n=te.Handle,className:r,style:o=void 0,children:i,color:s,minWidth:a=10,minHeight:l=10,maxWidth:c=Number.MAX_VALUE,maxHeight:f=Number.MAX_VALUE,keepAspectRatio:u=!1,resizeDirection:d,autoScale:h=!0,shouldResize:g,onResizeStart:y,onResize:p,onResizeEnd:m}){const v=Wi(),x=typeof t=="string"?t:v,w=ot(),E=D.useRef(null),N=n===te.Handle,S=J(D.useCallback(Cg(N&&h),[N,h]),rt),A=D.useRef(null),$=e??kg[n];D.useEffect(()=>{if(!(!E.current||!x))return A.current||(A.current=od({domNode:E.current,nodeId:x,getStoreItems:()=>{const{nodeLookup:k,transform:z,snapGrid:H,snapToGrid:b,nodeOrigin:P,domNode:M}=w.getState();return{nodeLookup:k,transform:z,snapGrid:H,snapToGrid:b,nodeOrigin:P,paneDomNode:M}},onChange:(k,z)=>{const{triggerNodeChanges:H,nodeLookup:b,parentLookup:P,nodeOrigin:M}=w.getState(),T=[],I={x:k.x,y:k.y},C=b.get(x);if(C&&C.expandParent&&C.parentId){const L=C.origin??M,V=k.width??C.measured.width??0,R=k.height??C.measured.height??0,F={id:C.id,parentId:C.parentId,rect:{width:V,height:R,...pi({x:k.x??C.position.x,y:k.y??C.position.y},{width:V,height:R},C.parentId,b,L)}},O=ar([F],b,P,M);T.push(...O),I.x=k.x?Math.max(L[0]*V,k.x):void 0,I.y=k.y?Math.max(L[1]*R,k.y):void 0}if(I.x!==void 0&&I.y!==void 0){const L={id:x,type:"position",position:{...I}};T.push(L)}if(k.width!==void 0&&k.height!==void 0){const V={id:x,type:"dimensions",resizing:!0,setAttributes:d?d==="horizontal"?"width":"height":!0,dimensions:{width:k.width,height:k.height}};T.push(V)}for(const L of z){const V={...L,type:"position"};T.push(V)}H(T)},onEnd:({width:k,height:z})=>{const H={id:x,type:"dimensions",resizing:!1,dimensions:{width:k,height:z}};w.getState().triggerNodeChanges([H])}})),A.current.update({controlPosition:$,boundaries:{minWidth:a,minHeight:l,maxWidth:c,maxHeight:f},keepAspectRatio:u,resizeDirection:d,onResizeStart:y,onResize:p,onResizeEnd:m,shouldResize:g}),()=>{var k;(k=A.current)==null||k.destroy()}},[$,a,l,c,f,u,y,p,m,g]);const j=$.split("-");return _.jsx("div",{className:it(["react-flow__resize-control","nodrag",...j,n,r]),ref:E,style:{...o,scale:S,...s&&{[N?"backgroundColor":"borderColor"]:s}},children:i})}D.memo(Ag);function Ig(t,e){var n,r=1;t==null&&(t=0),e==null&&(e=0);function o(){var i,s=n.length,a,l=0,c=0;for(i=0;i<s;++i)a=n[i],l+=a.x,c+=a.y;for(l=(l/s-t)*r,c=(c/s-e)*r,i=0;i<s;++i)a=n[i],a.x-=l,a.y-=c}return o.initialize=function(i){n=i},o.x=function(i){return arguments.length?(t=+i,o):t},o.y=function(i){return arguments.length?(e=+i,o):e},o.strength=function(i){return arguments.length?(r=+i,o):r},o}function $g(t){const e=+this._x.call(null,t),n=+this._y.call(null,t);return ms(this.cover(e,n),e,n,t)}function ms(t,e,n,r){if(isNaN(e)||isNaN(n))return t;var o,i=t._root,s={data:r},a=t._x0,l=t._y0,c=t._x1,f=t._y1,u,d,h,g,y,p,m,v;if(!i)return t._root=s,t;for(;i.length;)if((y=e>=(u=(a+c)/2))?a=u:c=u,(p=n>=(d=(l+f)/2))?l=d:f=d,o=i,!(i=i[m=p<<1|y]))return o[m]=s,t;if(h=+t._x.call(null,i.data),g=+t._y.call(null,i.data),e===h&&n===g)return s.next=i,o?o[m]=s:t._root=s,t;do o=o?o[m]=new Array(4):t._root=new Array(4),(y=e>=(u=(a+c)/2))?a=u:c=u,(p=n>=(d=(l+f)/2))?l=d:f=d;while((m=p<<1|y)===(v=(g>=d)<<1|h>=u));return o[v]=i,o[m]=s,t}function Pg(t){var e,n,r=t.length,o,i,s=new Array(r),a=new Array(r),l=1/0,c=1/0,f=-1/0,u=-1/0;for(n=0;n<r;++n)isNaN(o=+this._x.call(null,e=t[n]))||isNaN(i=+this._y.call(null,e))||(s[n]=o,a[n]=i,o<l&&(l=o),o>f&&(f=o),i<c&&(c=i),i>u&&(u=i));if(l>f||c>u)return this;for(this.cover(l,c).cover(f,u),n=0;n<r;++n)ms(this,s[n],a[n],t[n]);return this}function Tg(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,r=this._y0,o=this._x1,i=this._y1;if(isNaN(n))o=(n=Math.floor(t))+1,i=(r=Math.floor(e))+1;else{for(var s=o-n||1,a=this._root,l,c;n>t||t>=o||r>e||e>=i;)switch(c=(e<r)<<1|t<n,l=new Array(4),l[c]=a,a=l,s*=2,c){case 0:o=n+s,i=r+s;break;case 1:n=o-s,i=r+s;break;case 2:o=n+s,r=i-s;break;case 3:n=o-s,r=i-s;break}this._root&&this._root.length&&(this._root=a)}return this._x0=n,this._y0=r,this._x1=o,this._y1=i,this}function zg(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function Dg(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function at(t,e,n,r,o){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=o}function Lg(t,e,n){var r,o=this._x0,i=this._y0,s,a,l,c,f=this._x1,u=this._y1,d=[],h=this._root,g,y;for(h&&d.push(new at(h,o,i,f,u)),n==null?n=1/0:(o=t-n,i=e-n,f=t+n,u=e+n,n*=n);g=d.pop();)if(!(!(h=g.node)||(s=g.x0)>f||(a=g.y0)>u||(l=g.x1)<o||(c=g.y1)<i))if(h.length){var p=(s+l)/2,m=(a+c)/2;d.push(new at(h[3],p,m,l,c),new at(h[2],s,m,p,c),new at(h[1],p,a,l,m),new at(h[0],s,a,p,m)),(y=(e>=m)<<1|t>=p)&&(g=d[d.length-1],d[d.length-1]=d[d.length-1-y],d[d.length-1-y]=g)}else{var v=t-+this._x.call(null,h.data),x=e-+this._y.call(null,h.data),w=v*v+x*x;if(w<n){var E=Math.sqrt(n=w);o=t-E,i=e-E,f=t+E,u=e+E,r=h.data}}return r}function jg(t){if(isNaN(f=+this._x.call(null,t))||isNaN(u=+this._y.call(null,t)))return this;var e,n=this._root,r,o,i,s=this._x0,a=this._y0,l=this._x1,c=this._y1,f,u,d,h,g,y,p,m;if(!n)return this;if(n.length)for(;;){if((g=f>=(d=(s+l)/2))?s=d:l=d,(y=u>=(h=(a+c)/2))?a=h:c=h,e=n,!(n=n[p=y<<1|g]))return this;if(!n.length)break;(e[p+1&3]||e[p+2&3]||e[p+3&3])&&(r=e,m=p)}for(;n.data!==t;)if(o=n,!(n=n.next))return this;return(i=n.next)&&delete n.next,o?(i?o.next=i:delete o.next,this):e?(i?e[p]=i:delete e[p],(n=e[0]||e[1]||e[2]||e[3])&&n===(e[3]||e[2]||e[1]||e[0])&&!n.length&&(r?r[m]=n:this._root=n),this):(this._root=i,this)}function Rg(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function Hg(){return this._root}function Vg(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function Bg(t){var e=[],n,r=this._root,o,i,s,a,l;for(r&&e.push(new at(r,this._x0,this._y0,this._x1,this._y1));n=e.pop();)if(!t(r=n.node,i=n.x0,s=n.y0,a=n.x1,l=n.y1)&&r.length){var c=(i+a)/2,f=(s+l)/2;(o=r[3])&&e.push(new at(o,c,f,a,l)),(o=r[2])&&e.push(new at(o,i,f,c,l)),(o=r[1])&&e.push(new at(o,c,s,a,f)),(o=r[0])&&e.push(new at(o,i,s,c,f))}return this}function Fg(t){var e=[],n=[],r;for(this._root&&e.push(new at(this._root,this._x0,this._y0,this._x1,this._y1));r=e.pop();){var o=r.node;if(o.length){var i,s=r.x0,a=r.y0,l=r.x1,c=r.y1,f=(s+l)/2,u=(a+c)/2;(i=o[0])&&e.push(new at(i,s,a,f,u)),(i=o[1])&&e.push(new at(i,f,a,l,u)),(i=o[2])&&e.push(new at(i,s,u,f,c)),(i=o[3])&&e.push(new at(i,f,u,l,c))}n.push(r)}for(;r=n.pop();)t(r.node,r.x0,r.y0,r.x1,r.y1);return this}function Og(t){return t[0]}function Xg(t){return arguments.length?(this._x=t,this):this._x}function Yg(t){return t[1]}function Wg(t){return arguments.length?(this._y=t,this):this._y}function lr(t,e,n){var r=new ur(e??Og,n??Yg,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function ur(t,e,n,r,o,i){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=o,this._y1=i,this._root=void 0}function Mo(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var ct=lr.prototype=ur.prototype;ct.copy=function(){var t=new ur(this._x,this._y,this._x0,this._y0,this._x1,this._y1),e=this._root,n,r;if(!e)return t;if(!e.length)return t._root=Mo(e),t;for(n=[{source:e,target:t._root=new Array(4)}];e=n.pop();)for(var o=0;o<4;++o)(r=e.source[o])&&(r.length?n.push({source:r,target:e.target[o]=new Array(4)}):e.target[o]=Mo(r));return t};ct.add=$g;ct.addAll=Pg;ct.cover=Tg;ct.data=zg;ct.extent=Dg;ct.find=Lg;ct.remove=jg;ct.removeAll=Rg;ct.root=Hg;ct.size=Vg;ct.visit=Bg;ct.visitAfter=Fg;ct.x=Xg;ct.y=Wg;function jt(t){return function(){return t}}function $t(t){return(t()-.5)*1e-6}function Gg(t){return t.x+t.vx}function qg(t){return t.y+t.vy}function Zg(t){var e,n,r,o=1,i=1;typeof t!="function"&&(t=jt(t==null?1:+t));function s(){for(var c,f=e.length,u,d,h,g,y,p,m=0;m<i;++m)for(u=lr(e,Gg,qg).visitAfter(a),c=0;c<f;++c)d=e[c],y=n[d.index],p=y*y,h=d.x+d.vx,g=d.y+d.vy,u.visit(v);function v(x,w,E,N,S){var A=x.data,$=x.r,j=y+$;if(A){if(A.index>d.index){var k=h-A.x-A.vx,z=g-A.y-A.vy,H=k*k+z*z;H<j*j&&(k===0&&(k=$t(r),H+=k*k),z===0&&(z=$t(r),H+=z*z),H=(j-(H=Math.sqrt(H)))/H*o,d.vx+=(k*=H)*(j=($*=$)/(p+$)),d.vy+=(z*=H)*j,A.vx-=k*(j=1-j),A.vy-=z*j)}return}return w>h+j||N<h-j||E>g+j||S<g-j}}function a(c){if(c.data)return c.r=n[c.data.index];for(var f=c.r=0;f<4;++f)c[f]&&c[f].r>c.r&&(c.r=c[f].r)}function l(){if(e){var c,f=e.length,u;for(n=new Array(f),c=0;c<f;++c)u=e[c],n[u.index]=+t(u,c,e)}}return s.initialize=function(c,f){e=c,r=f,l()},s.iterations=function(c){return arguments.length?(i=+c,s):i},s.strength=function(c){return arguments.length?(o=+c,s):o},s.radius=function(c){return arguments.length?(t=typeof c=="function"?c:jt(+c),l(),s):t},s}function Ug(t){return t.index}function Co(t,e){var n=t.get(e);if(!n)throw new Error("node not found: "+e);return n}function Kg(t){var e=Ug,n=u,r,o=jt(30),i,s,a,l,c,f=1;t==null&&(t=[]);function u(p){return 1/Math.min(a[p.source.index],a[p.target.index])}function d(p){for(var m=0,v=t.length;m<f;++m)for(var x=0,w,E,N,S,A,$,j;x<v;++x)w=t[x],E=w.source,N=w.target,S=N.x+N.vx-E.x-E.vx||$t(c),A=N.y+N.vy-E.y-E.vy||$t(c),$=Math.sqrt(S*S+A*A),$=($-i[x])/$*p*r[x],S*=$,A*=$,N.vx-=S*(j=l[x]),N.vy-=A*j,E.vx+=S*(j=1-j),E.vy+=A*j}function h(){if(s){var p,m=s.length,v=t.length,x=new Map(s.map((E,N)=>[e(E,N,s),E])),w;for(p=0,a=new Array(m);p<v;++p)w=t[p],w.index=p,typeof w.source!="object"&&(w.source=Co(x,w.source)),typeof w.target!="object"&&(w.target=Co(x,w.target)),a[w.source.index]=(a[w.source.index]||0)+1,a[w.target.index]=(a[w.target.index]||0)+1;for(p=0,l=new Array(v);p<v;++p)w=t[p],l[p]=a[w.source.index]/(a[w.source.index]+a[w.target.index]);r=new Array(v),g(),i=new Array(v),y()}}function g(){if(s)for(var p=0,m=t.length;p<m;++p)r[p]=+n(t[p],p,t)}function y(){if(s)for(var p=0,m=t.length;p<m;++p)i[p]=+o(t[p],p,t)}return d.initialize=function(p,m){s=p,c=m,h()},d.links=function(p){return arguments.length?(t=p,h(),d):t},d.id=function(p){return arguments.length?(e=p,d):e},d.iterations=function(p){return arguments.length?(f=+p,d):f},d.strength=function(p){return arguments.length?(n=typeof p=="function"?p:jt(+p),g(),d):n},d.distance=function(p){return arguments.length?(o=typeof p=="function"?p:jt(+p),y(),d):o},d}const Qg=1664525,Jg=1013904223,ko=4294967296;function t0(){let t=1;return()=>(t=(Qg*t+Jg)%ko)/ko}function e0(t){return t.x}function n0(t){return t.y}var r0=10,o0=Math.PI*(3-Math.sqrt(5));function i0(t){var e,n=1,r=.001,o=1-Math.pow(r,1/300),i=0,s=.6,a=new Map,l=Un(u),c=_e("tick","end"),f=t0();t==null&&(t=[]);function u(){d(),c.call("tick",e),n<r&&(l.stop(),c.call("end",e))}function d(y){var p,m=t.length,v;y===void 0&&(y=1);for(var x=0;x<y;++x)for(n+=(i-n)*o,a.forEach(function(w){w(n)}),p=0;p<m;++p)v=t[p],v.fx==null?v.x+=v.vx*=s:(v.x=v.fx,v.vx=0),v.fy==null?v.y+=v.vy*=s:(v.y=v.fy,v.vy=0);return e}function h(){for(var y=0,p=t.length,m;y<p;++y){if(m=t[y],m.index=y,m.fx!=null&&(m.x=m.fx),m.fy!=null&&(m.y=m.fy),isNaN(m.x)||isNaN(m.y)){var v=r0*Math.sqrt(.5+y),x=y*o0;m.x=v*Math.cos(x),m.y=v*Math.sin(x)}(isNaN(m.vx)||isNaN(m.vy))&&(m.vx=m.vy=0)}}function g(y){return y.initialize&&y.initialize(t,f),y}return h(),e={tick:d,restart:function(){return l.restart(u),e},stop:function(){return l.stop(),e},nodes:function(y){return arguments.length?(t=y,h(),a.forEach(g),e):t},alpha:function(y){return arguments.length?(n=+y,e):n},alphaMin:function(y){return arguments.length?(r=+y,e):r},alphaDecay:function(y){return arguments.length?(o=+y,e):+o},alphaTarget:function(y){return arguments.length?(i=+y,e):i},velocityDecay:function(y){return arguments.length?(s=1-y,e):1-s},randomSource:function(y){return arguments.length?(f=y,a.forEach(g),e):f},force:function(y,p){return arguments.length>1?(p==null?a.delete(y):a.set(y,g(p)),e):a.get(y)},find:function(y,p,m){var v=0,x=t.length,w,E,N,S,A;for(m==null?m=1/0:m*=m,v=0;v<x;++v)S=t[v],w=y-S.x,E=p-S.y,N=w*w+E*E,N<m&&(A=S,m=N);return A},on:function(y,p){return arguments.length>1?(c.on(y,p),e):c.on(y)}}}function s0(){var t,e,n,r,o=jt(-30),i,s=1,a=1/0,l=.81;function c(h){var g,y=t.length,p=lr(t,e0,n0).visitAfter(u);for(r=h,g=0;g<y;++g)e=t[g],p.visit(d)}function f(){if(t){var h,g=t.length,y;for(i=new Array(g),h=0;h<g;++h)y=t[h],i[y.index]=+o(y,h,t)}}function u(h){var g=0,y,p,m=0,v,x,w;if(h.length){for(v=x=w=0;w<4;++w)(y=h[w])&&(p=Math.abs(y.value))&&(g+=y.value,m+=p,v+=p*y.x,x+=p*y.y);h.x=v/m,h.y=x/m}else{y=h,y.x=y.data.x,y.y=y.data.y;do g+=i[y.data.index];while(y=y.next)}h.value=g}function d(h,g,y,p){if(!h.value)return!0;var m=h.x-e.x,v=h.y-e.y,x=p-g,w=m*m+v*v;if(x*x/l<w)return w<a&&(m===0&&(m=$t(n),w+=m*m),v===0&&(v=$t(n),w+=v*v),w<s&&(w=Math.sqrt(s*w)),e.vx+=m*h.value*r/w,e.vy+=v*h.value*r/w),!0;if(h.length||w>=a)return;(h.data!==e||h.next)&&(m===0&&(m=$t(n),w+=m*m),v===0&&(v=$t(n),w+=v*v),w<s&&(w=Math.sqrt(s*w)));do h.data!==e&&(x=i[h.data.index]*r/w,e.vx+=m*x,e.vy+=v*x);while(h=h.next)}return c.initialize=function(h,g){t=h,n=g,f()},c.strength=function(h){return arguments.length?(o=typeof h=="function"?h:jt(+h),f(),c):o},c.distanceMin=function(h){return arguments.length?(s=h*h,c):Math.sqrt(s)},c.distanceMax=function(h){return arguments.length?(a=h*h,c):Math.sqrt(a)},c.theta=function(h){return arguments.length?(l=h*h,c):Math.sqrt(l)},c}function a0({layout:t,onLayoutChange:e,depth:n,onDepthChange:r,nodeCount:o,edgeCount:i,truncated:s,onRelayout:a}){const{zoomIn:l,zoomOut:c,fitView:f}=Ae();return _.jsxs("div",{"data-testid":"graph-controls",className:"flex flex-col gap-3 p-3 bg-gray-900 border border-gray-700 rounded-lg shadow-lg",style:{width:220},children:[_.jsxs("div",{className:"flex items-center gap-1.5",children:[_.jsx("button",{type:"button",onClick:()=>l({duration:200}),className:"flex-1 py-1 text-xs bg-gray-800 hover:bg-gray-700 border border-gray-700 rounded text-gray-300 transition-colors","aria-label":"Zoom in",children:"+ Zoom In"}),_.jsx("button",{type:"button",onClick:()=>c({duration:200}),className:"flex-1 py-1 text-xs bg-gray-800 hover:bg-gray-700 border border-gray-700 rounded text-gray-300 transition-colors","aria-label":"Zoom out",children:"− Zoom Out"})]}),_.jsx("button",{type:"button",onClick:()=>f({duration:300,padding:.1}),className:"py-1 text-xs bg-gray-800 hover:bg-gray-700 border border-gray-700 rounded text-gray-300 transition-colors","aria-label":"Fit to view",children:"Fit to View"}),_.jsxs("div",{children:[_.jsx("label",{className:"block text-xs text-gray-500 mb-1",children:"Layout"}),_.jsxs("select",{value:t,onChange:u=>e(u.target.value),className:"w-full px-2 py-1 text-xs bg-gray-800 border border-gray-700 rounded text-gray-300 focus:outline-none focus:border-blue-500","aria-label":"Layout algorithm",children:[_.jsx("option",{value:"force",children:"Force-directed"}),_.jsx("option",{value:"hierarchical",children:"Hierarchical"}),_.jsx("option",{value:"radial",children:"Radial"})]})]}),_.jsxs("div",{children:[_.jsxs("label",{className:"flex items-center justify-between text-xs text-gray-500 mb-1",children:[_.jsx("span",{children:"Depth"}),_.jsx("span",{className:"text-gray-300",children:n})]}),_.jsx("input",{type:"range",min:1,max:10,value:n,onChange:u=>r(Number(u.target.value)),className:"w-full accent-blue-500","aria-label":"Traversal depth","data-testid":"depth-slider"}),_.jsxs("div",{className:"flex justify-between text-gray-600 mt-0.5",style:{fontSize:"0.6rem"},children:[_.jsx("span",{children:"1"}),_.jsx("span",{children:"10"})]})]}),_.jsx("button",{type:"button",onClick:a,className:"py-1 text-xs bg-blue-600 hover:bg-blue-500 rounded text-white transition-colors","aria-label":"Re-run layout",children:"Re-layout"}),_.jsxs("div",{className:"border-t border-gray-800 pt-2 text-gray-500",style:{fontSize:"0.65rem"},children:[_.jsxs("div",{children:[o," nodes · ",i," edges"]}),s&&_.jsx("div",{className:"text-amber-500 mt-0.5",children:"Graph truncated (limit reached)"})]})]})}function c0({ext:t}){const e=t==="ts"||t==="tsx"?"#3b82f6":t==="js"||t==="jsx"?"#eab308":t==="vue"?"#22c55e":t==="py"?"#a78bfa":"#9ca3af";return _.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true",className:"shrink-0",children:[_.jsx("rect",{x:"1",y:"1",width:"8",height:"10",rx:"1",stroke:e,strokeWidth:"1.2"}),_.jsx("path",{d:"M7 1v3h3",stroke:e,strokeWidth:"1.2",strokeLinecap:"round"}),_.jsx("line",{x1:"3",y1:"6",x2:"9",y2:"6",stroke:e,strokeWidth:"1",strokeLinecap:"round"}),_.jsx("line",{x1:"3",y1:"8",x2:"7",y2:"8",stroke:e,strokeWidth:"1",strokeLinecap:"round"})]})}const l0=D.memo(function({data:e,selected:n}){const r=e.label??"",o=r.includes(".")?r.split(".").pop()??"":"";return _.jsxs("div",{"data-testid":"graph-file-node",className:`
|
|
24
|
+
rounded border px-2.5 py-1.5 text-xs font-mono select-none
|
|
25
|
+
bg-gray-900 text-gray-200 transition-colors
|
|
26
|
+
${n?"border-blue-500 shadow-lg shadow-blue-500/20":"border-gray-700 hover:border-gray-500"}
|
|
27
|
+
`,style:{minWidth:120,maxWidth:200},children:[_.jsx(ee,{type:"target",position:X.Top,style:{background:"#4b5563",width:6,height:6}}),_.jsxs("div",{className:"flex items-center gap-1.5 truncate",children:[_.jsx(c0,{ext:o}),_.jsx("span",{className:"truncate",title:e.path,children:r})]}),e.symbolCount>0&&_.jsxs("div",{className:"mt-0.5 text-gray-500",style:{fontSize:"0.65rem"},children:[e.symbolCount," symbol",e.symbolCount!==1?"s":""]}),_.jsx(ee,{type:"source",position:X.Bottom,style:{background:"#4b5563",width:6,height:6}})]})}),u0={file:l0};function f0(t,e,n,r){const o=t.map((a,l)=>({id:a.id,x:(Math.random()-.5)*n,y:(Math.random()-.5)*r,index:l})),i=new Map(o.map(a=>[a.id,a])),s=e.map(a=>({source:i.get(a.source),target:i.get(a.target)})).filter(a=>!!a.source&&!!a.target);return i0(o).force("link",Kg(s).id(a=>a.id).distance(120).strength(.8)).force("charge",s0().strength(-400)).force("center",Ig(0,0)).force("collide",Zg(70)).stop().tick(200),new Map(o.map(a=>[a.id,{x:a.x,y:a.y}]))}function d0(t,e){var c;const n=new Map(t.map(f=>[f.id,0]));for(const f of e)n.set(f.target,(n.get(f.target)??0)+1);const r=new Map(t.map(f=>[f.id,[]]));for(const f of e)(c=r.get(f.source))==null||c.push(f.target);const o=new Map,i=[];for(const[f,u]of n)u===0&&(o.set(f,0),i.push(f));i.length===0&&t.length>0&&(o.set(t[0].id,0),i.push(t[0].id));for(let f=0;f<i.length;f++){const u=i[f],d=o.get(u)??0;for(const h of r.get(u)??[])o.has(h)||(o.set(h,d+1),i.push(h))}const s=new Map;for(const[f,u]of o)s.has(u)||s.set(u,[]),s.get(u).push(f);const a=new Map;for(const[f,u]of s){const d=u.length*180;u.forEach((h,g)=>{a.set(h,{x:g*180-d/2,y:f*140})})}let l=0;for(const f of t)a.has(f.id)||(a.set(f.id,{x:l,y:0}),l+=180);return a}function h0(t,e){if(t.length===0)return new Map;const n=new Map(t.map(c=>[c.id,0]));for(const c of e)n.set(c.source,(n.get(c.source)??0)+1),n.set(c.target,(n.get(c.target)??0)+1);const r=[...t].sort((c,f)=>(n.get(f.id)??0)-(n.get(c.id)??0)),o=new Map,i=r[0];o.set(i.id,{x:0,y:0});const s=r.slice(1),a=[s.slice(0,8),s.slice(8,24),s.slice(24)],l=[200,380,560];for(let c=0;c<a.length;c++){const f=a[c];if(f.length===0)continue;const u=l[c];f.forEach((d,h)=>{const g=2*Math.PI*h/f.length;o.set(d.id,{x:u*Math.cos(g),y:u*Math.sin(g)})})}return o}function g0(t,e,n){return t.map(r=>{const o=e.get(r.id)??{x:0,y:0};return{id:r.id,type:"file",position:o,data:r.data,style:n&&r.id===n?{filter:"drop-shadow(0 0 8px rgba(59,130,246,0.8))"}:void 0}})}function p0(t){return t.map(e=>({id:e.id,source:e.source,target:e.target,markerEnd:{type:xe.ArrowClosed,color:"#4b5563",width:12,height:12},style:{stroke:"#4b5563",strokeWidth:1.5},data:e.data,type:"smoothstep"}))}function m0({apiNodes:t,apiEdges:e,focusFile:n,layout:r,depth:o,onDepthChange:i,onLayoutChange:s,truncated:a,onNodeClick:l}){const{fitView:c}=Ae(),[f,u,d]=ng([]),[h,g,y]=rg([]),p=D.useRef(null),m=D.useRef(0),v=D.useCallback(()=>{var A,$;if(t.length===0){u([]),g([]);return}const E=((A=p.current)==null?void 0:A.clientWidth)??800,N=(($=p.current)==null?void 0:$.clientHeight)??600;let S;r==="force"?S=f0(t,e,E,N):r==="hierarchical"?S=d0(t,e):S=h0(t,e),u(g0(t,S,n)),g(p0(e)),m.current++,setTimeout(()=>c({duration:300,padding:.1}),50)},[t,e,n,r,u,g,c]);D.useEffect(()=>{v()},[v]);const x=D.useCallback((E,N)=>{const S=N.data.path;S&&(l==null||l(S))},[l]),w=D.useMemo(()=>({nodeCount:t.length,edgeCount:e.length}),[t,e]);return _.jsxs("div",{ref:p,className:"relative w-full h-full","data-testid":"graph-viewer",children:[_.jsx(eg,{nodes:f,edges:h,onNodesChange:d,onEdgesChange:y,onNodeClick:x,nodeTypes:u0,minZoom:.05,maxZoom:3,fitView:!0,attributionPosition:"bottom-right",className:"bg-gray-950",children:_.jsx(cg,{variant:Et.Dots,gap:24,size:1,color:"#1f2937"})}),_.jsx("div",{className:"absolute top-3 right-3 z-10",children:_.jsx(a0,{layout:r,onLayoutChange:s,depth:o,onDepthChange:i,nodeCount:w.nodeCount,edgeCount:w.edgeCount,truncated:a,onRelayout:v})})]})}function y0(t){return _.jsx(ds,{children:_.jsx(m0,{...t})})}function x0(){return _.jsxs("div",{className:"flex items-center justify-center h-full text-gray-500 gap-2",children:[_.jsx("div",{className:"w-4 h-4 rounded-full bg-blue-500 animate-pulse"}),_.jsx("span",{className:"text-sm",children:"Loading graph…"})]})}function w0({message:t}){return _.jsx("div",{className:"flex items-center justify-center h-full",children:_.jsxs("div",{className:"text-center max-w-sm",children:[_.jsx("div",{className:"text-red-400 font-medium mb-1",children:"Failed to load graph"}),_.jsx("div",{className:"text-sm text-gray-500",children:t})]})})}function v0(){return _.jsx("div",{className:"flex items-center justify-center h-full",children:_.jsxs("div",{className:"text-center text-gray-500",children:[_.jsx("div",{className:"text-lg mb-1",children:"No dependency data"}),_.jsx("div",{className:"text-sm",children:"Index this repository first to see dependency edges."})]})})}function N0(){const{id:t}=Na(),[e,n]=D.useState(null),[r,o]=D.useState(!0),[i,s]=D.useState(null),[a,l]=D.useState(void 0),[c,f]=D.useState(3),[u,d]=D.useState("force"),h=D.useCallback(async()=>{if(t){o(!0),s(null);try{const p=await Sa.getGraph(t,{filePath:a,depth:c,limit:200});n(p)}catch(p){s(p instanceof Error?p.message:String(p))}finally{o(!1)}}},[t,a,c]);D.useEffect(()=>{h()},[h]);const g=D.useCallback(p=>{l(m=>m===p?void 0:p)},[]),y=D.useCallback(p=>{f(p)},[]);return _.jsxs("div",{className:"h-full flex flex-col overflow-hidden",children:[_.jsxs("div",{className:"flex items-center gap-4 px-4 py-2 border-b border-gray-800 shrink-0 bg-gray-900",children:[t&&_.jsx(Ea,{to:`/repos/${encodeURIComponent(t)}`,className:"text-xs text-gray-500 hover:text-gray-300 transition-colors",children:"← Back to repo"}),_.jsx("h1",{className:"text-sm font-semibold text-gray-200",children:"Dependency Graph"}),a&&_.jsxs("div",{className:"flex items-center gap-2 ml-auto",children:[_.jsx("span",{className:"text-xs text-gray-500",children:"Focus:"}),_.jsx("code",{className:"text-xs text-blue-400 font-mono truncate max-w-xs",children:a}),_.jsx("button",{type:"button",onClick:()=>l(void 0),className:"text-xs text-gray-500 hover:text-gray-300 transition-colors","aria-label":"Clear focus",children:"✕"})]}),!a&&_.jsx("span",{className:"text-xs text-gray-600 ml-auto",children:"Click a node to focus on its neighborhood"}),_.jsx("button",{type:"button",onClick:()=>void h(),className:"ml-2 px-2 py-1 text-xs bg-gray-800 hover:bg-gray-700 border border-gray-700 rounded text-gray-300 transition-colors","aria-label":"Refresh graph",children:"Refresh"})]}),_.jsxs("div",{className:"flex-1 overflow-hidden relative",children:[r&&_.jsx(x0,{}),!r&&i&&_.jsx(w0,{message:i}),!r&&!i&&e&&e.nodes.length===0&&_.jsx(v0,{}),!r&&!i&&e&&e.nodes.length>0&&_.jsx(y0,{apiNodes:e.nodes,apiEdges:e.edges,focusFile:a,layout:u,depth:c,onDepthChange:y,onLayoutChange:d,truncated:e.truncated,onNodeClick:g})]})]})}export{N0 as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as s,j as e}from"./index-CnwwQi_S.js";function o(){const t=s();return e.jsxs("div",{className:"flex flex-col items-center justify-center h-full gap-4 text-center",children:[e.jsx("p",{className:"text-6xl font-bold text-gray-800",children:"404"}),e.jsx("p",{className:"text-gray-400",children:"Page not found"}),e.jsx("button",{onClick:()=>t("/"),className:"px-4 py-2 bg-blue-600 rounded text-sm hover:bg-blue-700 transition-colors",children:"Go home"})]})}export{o as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as e,a as $,u as K,r as d,L as A}from"./index-CnwwQi_S.js";import{a as C,A as R}from"./client-BANW_tIp.js";import{u as o}from"./repoStore-SbGR6YI6.js";function G(t){var n;const s=((n=t.split(".").pop())==null?void 0:n.toLowerCase())??"";return{ts:"TS",tsx:"TX",js:"JS",jsx:"JX",vue:"VU",svelte:"SV",astro:"AS",py:"PY",go:"GO",rs:"RS",rb:"RB",java:"JV",kt:"KT",cs:"C#",cpp:"C+",c:"C ",h:"H ",php:"PHP",lua:"LU",r:"R ",dart:"DA",swift:"SW",ex:"EX",hs:"HS",scala:"SC",elixir:"EX",json:"JSON",yaml:"YAML",yml:"YML",toml:"TOML",md:"MD",txt:"TXT",css:"CSS",scss:"SCSS",html:"HTM",svg:"SVG",sh:"SH",bash:"SH",zsh:"SH",sql:"SQL",graphql:"GQL"}[s]??" "}function U({name:t}){const s=G(t);return e.jsx("span",{className:"shrink-0 text-[9px] font-bold w-6 h-4 flex items-center justify-center rounded bg-gray-800 text-gray-500 font-mono leading-none","aria-hidden":"true",children:s})}function P(t){return Object.entries(t).sort(([s,a],[n,l])=>a.type!==l.type?a.type==="dir"?-1:1:s.localeCompare(n))}function D({name:t,node:s,path:a,repoId:n,depth:l,onFileClick:f}){const x=o(i=>i.expandedDirs[n]),g=o(i=>i.toggleDir),y=o(i=>i.selectedFilePath),p=8+l*14,u=s.type==="dir"&&((x==null?void 0:x.has(a))??!1),h=s.type==="file"&&y===a;return s.type==="dir"?e.jsxs("div",{children:[e.jsxs("button",{onClick:()=>g(n,a),style:{paddingLeft:`${p}px`},className:"flex items-center gap-1.5 w-full text-left py-[3px] pr-2 text-sm text-gray-400 hover:text-gray-100 hover:bg-gray-800/60 rounded transition-colors","aria-expanded":u,children:[e.jsx("svg",{className:`shrink-0 w-3 h-3 text-gray-600 transition-transform ${u?"rotate-90":""}`,viewBox:"0 0 6 10",fill:"currentColor","aria-hidden":"true",children:e.jsx("path",{d:"M1 1l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"})}),e.jsx("svg",{className:"shrink-0 w-4 h-4 text-blue-400/70",viewBox:"0 0 16 16",fill:"currentColor","aria-hidden":"true",children:u?e.jsx("path",{d:"M1.5 3A1.5 1.5 0 0 0 0 4.5v8A1.5 1.5 0 0 0 1.5 14h13a1.5 1.5 0 0 0 1.5-1.5V6.5A1.5 1.5 0 0 0 14.5 5H8.414l-1.5-1.5H1.5z"}):e.jsx("path",{d:"M.54 3.87.5 3a2 2 0 0 1 2-2h3.672a2 2 0 0 1 1.414.586l.828.828A2 2 0 0 0 9.828 3h3.982a2 2 0 0 1 1.992 2.181l-.637 7A2 2 0 0 1 13.174 14H2.826a2 2 0 0 1-1.991-1.819l-.637-7a2 2 0 0 1 .342-1.31zM8 1H2.5a1 1 0 0 0-1 1l.006.017A4.97 4.97 0 0 1 3.982 2h5.845A2 2 0 0 0 8 1z"})}),e.jsx("span",{className:"truncate text-xs font-medium",children:t}),e.jsx("span",{className:"ml-auto shrink-0 text-[10px] text-gray-600",children:s.fileCount})]}),u&&e.jsx("div",{role:"group","aria-label":t,children:P(s.children).map(([i,m])=>e.jsx(D,{name:i,node:m,path:`${a}/${i}`,repoId:n,depth:l+1,onFileClick:f},i))})]}):e.jsxs("button",{onClick:()=>f(a),style:{paddingLeft:`${p}px`},className:`flex items-center gap-1.5 w-full text-left py-[3px] pr-2 text-sm rounded transition-colors ${h?"bg-blue-900/50 text-blue-200":"text-gray-400 hover:text-gray-100 hover:bg-gray-800/60"}`,"aria-current":h?"true":void 0,children:[e.jsx("span",{className:"w-3 shrink-0","aria-hidden":"true"}),e.jsx(U,{name:t}),e.jsx("span",{className:"truncate text-xs",children:t})]})}function V({tree:t,repoId:s,onFileClick:a}){return Object.keys(t).length===0?e.jsx("div",{className:"flex items-center justify-center h-32 text-gray-600 text-sm",children:"No files found"}):e.jsx("div",{className:"overflow-y-auto h-full scrollbar-thin py-1",role:"tree","aria-label":"File tree",children:P(t).map(([n,l])=>e.jsx(D,{name:n,node:l,path:n,repoId:s,depth:0,onFileClick:a},n))})}const E=["class","interface","type","enum","component","composable","hook","function","method","const","route","middleware","decorator"],I={class:"Classes",interface:"Interfaces",type:"Types",enum:"Enums",component:"Components",composable:"Composables",hook:"Hooks",function:"Functions",method:"Methods",const:"Constants",route:"Routes",middleware:"Middleware",decorator:"Decorators"},X={class:"cls",interface:"int",type:"typ",enum:"enm",component:"cmp",composable:"cps",hook:"hk",function:"fn",method:"mth",const:"cst",route:"rte",middleware:"mdw",decorator:"dec"};function z(t){switch(t){case"class":return"bg-blue-900/70 text-blue-300";case"interface":return"bg-indigo-900/70 text-indigo-300";case"type":return"bg-purple-900/70 text-purple-300";case"enum":return"bg-violet-900/70 text-violet-300";case"component":return"bg-emerald-900/70 text-emerald-300";case"composable":return"bg-teal-900/70 text-teal-300";case"hook":return"bg-cyan-900/70 text-cyan-300";case"function":return"bg-yellow-900/70 text-yellow-300";case"method":return"bg-orange-900/70 text-orange-300";case"const":return"bg-gray-800 text-gray-400";case"route":return"bg-rose-900/70 text-rose-300";case"middleware":return"bg-pink-900/70 text-pink-300";case"decorator":return"bg-amber-900/70 text-amber-300";default:return"bg-gray-800 text-gray-400"}}function J({symbol:t,onSymbolClick:s}){return e.jsxs("button",{onClick:()=>s==null?void 0:s(t.id),className:"w-full text-left px-3 py-1.5 hover:bg-gray-800/60 rounded transition-colors group",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx("span",{className:`shrink-0 text-[9px] font-bold font-mono px-1 py-0.5 rounded ${z(t.kind)}`,"aria-label":t.kind,children:X[t.kind]??t.kind.slice(0,3)}),e.jsx("span",{className:"text-sm text-gray-200 font-medium truncate group-hover:text-blue-300 transition-colors",children:t.name})]}),t.signature&&e.jsx("p",{className:"text-[11px] text-gray-500 mt-0.5 truncate font-mono pl-8",children:t.signature}),t.summary&&e.jsx("p",{className:"text-[11px] text-gray-600 mt-0.5 truncate pl-8",children:t.summary})]})}function W({kind:t,symbols:s,onSymbolClick:a}){return e.jsxs("section",{"aria-label":I[t]??t,className:"mb-3",children:[e.jsxs("div",{className:"flex items-center gap-2 px-3 py-1",children:[e.jsx("span",{className:"text-[10px] font-semibold text-gray-500 uppercase tracking-wider",children:I[t]??t}),e.jsxs("span",{className:"text-[10px] text-gray-600",children:["(",s.length,")"]})]}),e.jsx("div",{children:s.map(n=>e.jsx(J,{symbol:n,onSymbolClick:a},n.id))})]})}function Y(t){const s=new Map;for(const n of t){const l=s.get(n.kind)??[];l.push(n),s.set(n.kind,l)}return[...E.filter(n=>s.has(n)),...Array.from(s.keys()).filter(n=>!E.includes(n)).sort()].map(n=>[n,s.get(n)])}function _({fileSummary:t,onSymbolClick:s}){if(!t)return e.jsx("div",{className:"flex items-center justify-center h-full text-gray-600 text-sm",children:"Select a file to view its symbols"});if(t.symbols.length===0)return e.jsxs("div",{className:"h-full overflow-y-auto scrollbar-thin",children:[e.jsx("div",{className:"px-3 py-2 border-b border-gray-800",children:e.jsx("p",{className:"text-xs text-gray-500 truncate",children:t.filePath})}),e.jsx("div",{className:"flex items-center justify-center h-32 text-gray-600 text-sm",children:"No symbols in this file"})]});const a=Y(t.symbols);return e.jsxs("div",{className:"h-full overflow-y-auto scrollbar-thin",children:[e.jsxs("div",{className:"px-3 py-2 border-b border-gray-800 shrink-0",children:[e.jsx("p",{className:"text-xs text-gray-400 truncate font-mono",children:t.filePath}),e.jsxs("p",{className:"text-[11px] text-gray-600 mt-0.5",children:[t.symbols.length," symbol",t.symbols.length!==1?"s":""]})]}),e.jsx("div",{className:"py-2",children:a.map(([n,l])=>e.jsx(W,{kind:n,symbols:l,onSymbolClick:s},n))})]})}function q({repo:t,selectedFile:s}){const a=t.rootPath.split(/[/\\]/).pop()??t.repoId;return e.jsxs("nav",{"aria-label":"Breadcrumb",className:"flex items-center gap-1.5 text-sm text-gray-500 min-w-0",children:[e.jsx(A,{to:"/",className:"hover:text-gray-300 transition-colors shrink-0",children:"Repos"}),e.jsx("span",{"aria-hidden":"true",className:"text-gray-700",children:"/"}),e.jsx("span",{className:`truncate ${s?"hover:text-gray-300 cursor-pointer":"text-gray-300"}`,children:a}),s&&e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":"true",className:"text-gray-700 shrink-0",children:"/"}),e.jsx("span",{className:"text-gray-300 truncate text-xs font-mono",children:s})]})]})}function F({label:t,value:s}){return e.jsxs("div",{className:"flex flex-col items-center px-4 py-2 bg-gray-800/50 rounded-lg border border-gray-700/50",children:[e.jsx("span",{className:"text-xs text-gray-500",children:t}),e.jsx("span",{className:"text-lg font-bold text-gray-100 mt-0.5",children:s})]})}function Q({repo:t}){const s=new Date(t.lastIndexed).toLocaleString();return e.jsxs("div",{className:"flex flex-wrap items-center gap-3 px-6 py-3 border-b border-gray-800 bg-gray-900/50",children:[e.jsx(F,{label:"Symbols",value:t.symbolCount.toLocaleString()}),e.jsx(F,{label:"Files",value:t.fileCount.toLocaleString()}),e.jsxs(A,{to:`/repos/${encodeURIComponent(t.repoId)}/graph`,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs bg-gray-800 hover:bg-gray-700 border border-gray-700 rounded text-gray-300 transition-colors",children:[e.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true",children:[e.jsx("circle",{cx:"2",cy:"6",r:"1.5",fill:"currentColor"}),e.jsx("circle",{cx:"10",cy:"2",r:"1.5",fill:"currentColor"}),e.jsx("circle",{cx:"10",cy:"10",r:"1.5",fill:"currentColor"}),e.jsx("line",{x1:"3.5",y1:"5.2",x2:"8.5",y2:"2.8",stroke:"currentColor",strokeWidth:"1"}),e.jsx("line",{x1:"3.5",y1:"6.8",x2:"8.5",y2:"9.2",stroke:"currentColor",strokeWidth:"1"})]}),"Dep Graph"]}),e.jsxs("div",{className:"ml-auto text-xs text-gray-600 hidden sm:block",children:["Last indexed: ",e.jsx("span",{className:"text-gray-500",children:s})]})]})}function Z(){return e.jsx("div",{className:"p-3 space-y-1.5 animate-pulse",children:[80,65,90,55,70,45,75].map((t,s)=>e.jsx("div",{className:"h-5 bg-gray-800 rounded",style:{width:`${t}%`}},s))})}function T({message:t}){return e.jsx("div",{className:"m-3 p-3 bg-red-950 border border-red-800 rounded text-red-300 text-sm",children:t})}function re(){const{id:t}=$(),s=K(),a=o(r=>r.repos),n=o(r=>r.reposLoaded),l=o(r=>r.trees),f=o(r=>r.outlines),x=o(r=>r.selectedFilePath),g=o(r=>r.setRepos),y=o(r=>r.setTree),p=o(r=>r.setOutline),u=o(r=>r.selectRepo),h=o(r=>r.selectFile),[i,m]=d.useState(!1),[v,S]=d.useState(null),[B,N]=d.useState(!1),[k,L]=d.useState(null),w=a.find(r=>r.repoId===t),j=t?l[t]:void 0,b=t?f[t]:void 0;d.useEffect(()=>{n||!t||C.listRepos().then(r=>g(r.repos)).catch(()=>{})},[n,t,g]),d.useEffect(()=>{t&&u(t)},[t,u]),d.useEffect(()=>{if(!t||j)return;let r=!1;return m(!0),S(null),C.getFileTree(t).then(c=>{r||(y(t,c),m(!1))}).catch(c=>{r||(S(c instanceof R?c.message:String(c)),m(!1))}),()=>{r=!0}},[t,j,y]),d.useEffect(()=>{if(!t||b)return;let r=!1;return N(!0),L(null),C.getRepoOutline(t).then(c=>{r||(p(t,c.files),N(!1))}).catch(c=>{r||(L(c instanceof R?c.message:String(c)),N(!1))}),()=>{r=!0}},[t,b,p]);const H=d.useCallback(r=>{h(r)},[h]),M=d.useCallback(r=>{t&&s(`/symbols/${encodeURIComponent(r)}?repoId=${encodeURIComponent(t)}`)},[t,s]),O=!x||!b?null:b.find(r=>r.filePath===x)??{filePath:x,symbols:[]};return t?e.jsxs("div",{className:"h-full flex flex-col overflow-hidden",children:[e.jsx("div",{className:"px-6 py-3 border-b border-gray-800 shrink-0 min-w-0",children:e.jsx(q,{repo:w??{repoId:t,rootPath:t,symbolCount:0,fileCount:0,lastIndexed:""},selectedFile:x})}),w&&e.jsx(Q,{repo:w}),e.jsxs("div",{className:"flex-1 flex overflow-hidden",children:[e.jsxs("div",{className:"w-64 shrink-0 border-r border-gray-800 flex flex-col overflow-hidden",children:[e.jsx("div",{className:"px-3 py-2 border-b border-gray-800 shrink-0",children:e.jsx("span",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wide",children:"Files"})}),e.jsxs("div",{className:"flex-1 overflow-hidden",children:[i&&e.jsx(Z,{}),v&&e.jsx(T,{message:v}),!i&&!v&&j&&e.jsx(V,{tree:j.tree,repoId:t,onFileClick:H})]})]}),e.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden",children:[e.jsxs("div",{className:"px-3 py-2 border-b border-gray-800 shrink-0",children:[e.jsx("span",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wide",children:"Symbols"}),B&&e.jsx("span",{className:"ml-2 text-[10px] text-gray-600 animate-pulse",children:"loading…"})]}),e.jsxs("div",{className:"flex-1 overflow-hidden",children:[k&&e.jsx(T,{message:k}),!k&&e.jsx(_,{fileSummary:O,onSymbolClick:M})]})]})]})]}):e.jsx("div",{className:"flex items-center justify-center h-full text-gray-500",children:"Invalid repository ID."})}export{re as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as n,j as e,u as p}from"./index-CnwwQi_S.js";import{a as h,A as g}from"./client-BANW_tIp.js";function f({repo:t}){const o=p(),l=new Date(t.lastIndexed).toLocaleString(),i=t.rootPath.length>60?"…"+t.rootPath.slice(-57):t.rootPath;return e.jsxs("div",{role:"button",tabIndex:0,onClick:()=>o(`/repos/${encodeURIComponent(t.repoId)}`),onKeyDown:r=>{(r.key==="Enter"||r.key===" ")&&o(`/repos/${encodeURIComponent(t.repoId)}`)},className:"border border-gray-800 rounded-lg p-5 bg-gray-900 hover:border-blue-600 transition-colors cursor-pointer group","aria-label":`Open ${t.rootPath.split("/").pop()??t.repoId}`,children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("h3",{className:"font-semibold text-gray-100 truncate group-hover:text-blue-400 transition-colors",children:t.rootPath.split(/[/\\]/).pop()??t.repoId}),e.jsx("p",{className:"text-xs text-gray-500 mt-1 truncate",title:t.rootPath,children:i})]}),e.jsx("span",{className:"text-xs font-mono text-gray-600 shrink-0 mt-0.5",children:t.repoId})]}),e.jsxs("div",{className:"flex items-center gap-6 mt-4 text-sm text-gray-400",children:[e.jsx(x,{label:"Symbols",value:t.symbolCount.toLocaleString()}),e.jsx(x,{label:"Files",value:t.fileCount.toLocaleString()}),e.jsx(x,{label:"Indexed",value:l})]})]})}function x({label:t,value:o}){return e.jsxs("div",{children:[e.jsxs("span",{className:"text-gray-600 text-xs",children:[t," "]}),e.jsx("span",{className:"font-medium text-gray-300",children:o})]})}function y(){return e.jsxs("div",{className:"flex flex-col items-center justify-center h-64 text-center text-gray-500 gap-3",children:[e.jsx("div",{className:"text-5xl opacity-30",children:"🔍"}),e.jsx("p",{className:"text-lg font-medium text-gray-400",children:"No repositories indexed"}),e.jsxs("p",{className:"text-sm max-w-xs",children:["Use ",e.jsx("code",{className:"bg-gray-800 px-1 rounded text-gray-300",children:"purecontext-mcp index_folder"})," to index a project."]})]})}function N(){const[t,o]=n.useState([]),[l,i]=n.useState(!0),[r,m]=n.useState(null),[c,u]=n.useState("");n.useEffect(()=>{let s=!1;return i(!0),m(null),h.listRepos().then(a=>{s||o(a.repos)}).catch(a=>{s||m(a instanceof g?a.message:String(a))}).finally(()=>{s||i(!1)}),()=>{s=!0}},[]);const d=t.filter(s=>{const a=c.toLowerCase();return s.rootPath.toLowerCase().includes(a)||s.repoId.toLowerCase().includes(a)});return e.jsx("div",{className:"h-full overflow-y-auto scrollbar-thin p-6",children:e.jsxs("div",{className:"max-w-4xl mx-auto space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsx("h1",{className:"text-xl font-bold text-gray-100",children:"Repositories"}),e.jsx("input",{type:"search",placeholder:"Filter repositories…",value:c,onChange:s=>u(s.target.value),className:"w-64 px-3 py-1.5 bg-gray-800 border border-gray-700 rounded text-sm text-gray-100 placeholder-gray-500 focus:outline-none focus:border-blue-500"})]}),l&&e.jsx("div",{className:"space-y-3",children:[0,1,2].map(s=>e.jsx("div",{className:"h-28 bg-gray-900 border border-gray-800 rounded-lg animate-pulse"},s))}),r&&e.jsx("div",{className:"p-4 bg-red-950 border border-red-800 rounded-lg text-red-300 text-sm",children:r}),!l&&!r&&d.length===0&&(t.length===0?e.jsx(y,{}):e.jsxs("p",{className:"text-gray-500 text-sm",children:["No repositories match “",c,"”."]})),!l&&!r&&d.length>0&&e.jsx("div",{className:"space-y-3",children:d.map(s=>e.jsx(f,{repo:s},s.repoId))})]})})}export{N as default};
|