@kong-ui-public/entities-plugins 9.67.3 → 9.67.4

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.
@@ -1,4 +1,4 @@
1
- (function(he,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("vue"),require("@kong-ui-public/entities-shared"),require("marked"),require("vue-router"),require("@kong-ui-public/i18n"),require("@kong-ui-public/entities-plugins-metadata"),require("@kong-ui-public/forms"),require("@kong-ui-public/entities-vaults"),require("@kong-ui-public/entities-vaults/dist/style.css"),require("@kong/icons"),require("@kong/kongponents"),require("@kong-ui-public/entities-redis-configurations"),require("@kong-ui-public/entities-redis-configurations/dist/style.css"),require("@vueuse/core"),require("monaco-editor"),require("@kong-ui-public/entities-plugins-icon")):typeof define=="function"&&define.amd?define(["exports","vue","@kong-ui-public/entities-shared","marked","vue-router","@kong-ui-public/i18n","@kong-ui-public/entities-plugins-metadata","@kong-ui-public/forms","@kong-ui-public/entities-vaults","@kong-ui-public/entities-vaults/dist/style.css","@kong/icons","@kong/kongponents","@kong-ui-public/entities-redis-configurations","@kong-ui-public/entities-redis-configurations/dist/style.css","@vueuse/core","monaco-editor","@kong-ui-public/entities-plugins-icon"],n):(he=typeof globalThis<"u"?globalThis:he||self,n(he["kong-ui-public-entities-plugins"]={},he.Vue,he["kong-ui-public-entities-shared"],he.marked,he.VueRouter,he["kong-ui-public-i18n"],he.entitiesPluginsMetadata,he.forms,he.entitiesVaults,null,he.KongIcons,he.Kongponents,he.entitiesRedisConfigurations,null,he.core$1,he.monaco,he.entitiesPluginsIcon))})(this,function(he,n,ce,Zo,no,Re,H,ve,Jo,QR,Ee,Ie,oo,eD,Je,pm,ro){"use strict";var ZR=Object.defineProperty;var JR=(he,n,ce)=>n in he?ZR(he,n,{enumerable:!0,configurable:!0,writable:!0,value:ce}):he[n]=ce;var Ke=(he,n,ce)=>JR(he,typeof n!="symbol"?n+"":n,ce);function mm(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const r=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,r.get?r:{enumerable:!0,get:()=>e[o]})}}return t.default=e,Object.freeze(t)}const Qo=mm(pm),je={actions:{cancel:"Cancel",view_configuration:"View Configuration",create:"New plugin",create_custom:"Create",copy_id:"Copy ID",copy_json:"Copy JSON",edit:"Edit",enable:"Enable",enabled:"Enabled",delete:"Delete",confirm_delete:"Yes, delete",view:"View Details",configure_dynamic_ordering:"Configure Dynamic Ordering",go_to_plugins:"Go to Plugins",save:"Save",add_entity:"Add {entity}",remove_entity:"Remove {entity}"},view_configuration:{title:"Configuration",message:"Export configurations for core Kong Gateway objects, like services, routes, and plugins, to either YAML, JSON, or Terraform. This allows for straightforward importing into APIOps tools like decK with YAML, Insomnia and cURL with JSON, or Terraform products with Terraform.",yaml:"YAML",terraform:"Terraform",json:"JSON"},delete:{title:"Delete a Plugin",custom_title:"Delete {name}",custom_plugin:"Custom Plugin",description:"This action cannot be reversed.",description_custom:"Please ensure this plugin is not in use. This action cannot be reversed.",plugin_schema_in_use_title:"Unable to Delete Custom Plugin",plugin_schema_in_use_message:"The custom plugin schema {name} is being used in this control plane, please delete any existing instances before you delete this schema.",confirmModalText1:"Are you sure you want to delete",confirmModalText2:"Please ensure this plugin is not in use. This delete action cannot be reversed.",confirm_text:"Type {name} to confirm your action",success_message:"Successfully deleted custom plugin {name}"},copy:{success:"Copied {val} to clipboard",success_brief:"Successfully copied to clipboard",tooltip:"Copy {label}",success_tooltip:"Copied!"},errors:{general:"Plugins could not be retrieved",delete:"The plugin could not be deleted at this time.",copy:"Failed to copy to clipboard",load_results:"Error loading available plugins",load_schema:"Error loading plugin schema"},search:{placeholder:{konnect:"Filter by name",exact:"Filter by exact instance name or ID",kongManager:"Filter by exact instance name or ID",select:"Filter plugins"},filter:{field:{enabled:"Enabled"}},no_results:'No results found for "{filter}"'},plugins:{title:"Plugins",list:{toolbar_actions:{new_plugin:"New plugin"},table_headers:{applied_to:"Applied To",applied_to_badges:{consumer:"Consumer",global:"Global",route:"Route",service:"Service",consumer_group:"Consumer Group"},id:"ID",name:"Name",instance_name:"Instance Name",ordering:"Ordering",ordering_badge:{dynamic:"Dynamic",static:"Static"},enabled:"Enabled",tags:"Tags"},empty_state:{title:"Configure a New Plugin",description:"Plugins are used to extend Kong functionality."},empty_state_v2:{title:"Configure your first plugin",description:"Plugins extend gateways functionalities, offering features like authentication, rate limiting, and request transformations to enhance security and performance.",create_cta:"New plugin",group:"Plugins created in gateways within this group will automatically appear here."}},meta:{"basic-auth":{name:"Basic Authentication",credential_name:"Basic Auth Credential",description:"Add Basic Authentication to your Services"},"hmac-auth":{name:"HMAC Authentication",credential_name:"HMAC Credential",description:"Add HMAC Authentication to your Services"},"jwt-signer":{name:"JWT Signer",description:"Verify and (re-)sign one or two tokens in a request"},jwt:{name:"JWT",credential_name:"JWT Credential",description:"Verify and authenticate JSON Web Tokens"},"key-auth":{name:"Key Authentication",credential_name:"Key Auth Credential",description:"Add key authentication to your Services"},"key-auth-enc":{name:"Key Authentication Encrypted",credential_name:"Key Auth Encrypted",description:"Add key authentication to your Services with an encrypted token"},"ldap-auth-advanced":{name:"LDAP Authentication Advanced",description:"Integrate Kong with a LDAP server"},"ldap-auth":{name:"LDAP Authentication",description:"Integrate Kong with a LDAP server"},"oauth2-introspection":{name:"OAuth 2.0 Introspection",description:"Integrate Kong with a third-party OAuth 2.0 Authorization Server"},oauth2:{name:"OAuth 2.0 Authentication",credential_name:"OAuth 2.0 Application",description:"Add OAuth 2.0 authentication to your Services"},"openid-connect":{name:"OpenID Connect",description:"Integrate Kong with a third-party OpenID Connect 1.0 Provider"},"mtls-auth":{name:"Mutual TLS Authentication",description:"Secure routes and services with client certificate and mutual TLS authentication"},"vault-auth":{name:"Vault Authentication",description:"Secure routes and services with an access token and secret token, stored securely via Vault"},"bot-detection":{name:"Bot Detection",description:"Detect and clock bots or custom clients"},cors:{name:"CORS",description:"Allow developers to make requests from the browser"},"ip-restriction":{name:"IP Restriction",description:"Whitelist or blacklist IPs that can make requests"},opa:{name:"OPA",description:"Authorize requests against Open Policy Agent"},"kubernetes-sidecar-injector":{name:"Kubernetes Sidecar Injector",description:"This plugin will inject Kong dataplane nodes and form a service mesh on top of Kubernetes"},"request-validator":{name:"Request Validator",description:"Validate requests before they reach their upstream Service. "},acl:{name:"ACL",credential_name:"Access Control Group",description:"Control which consumers can access Services"},canary:{name:"Canary Release",description:"Methodically roll out software changes to a subset of users"},"forward-proxy":{name:"Forward Proxy",description:"Allow Kong to connect to intermediary transparent HTTP proxies"},"proxy-cache":{name:"Proxy Caching",description:"Cache and serve commonly requested responses in Kong"},"proxy-cache-advanced":{name:"Proxy Caching Advanced",description:"Cache and serve commonly requested responses in Kong"},"graphql-proxy-cache-advanced":{name:"GraphQL Proxy Caching Advanced",description:"Cache and serve commonly requested responses in Kong"},"rate-limiting-advanced":{name:"Rate Limiting Advanced",description:"Rate-limit how many HTTP requests a developer can make"},"rate-limiting":{name:"Rate Limiting",description:"Rate-limit how many HTTP requests a developer can make"},"graphql-rate-limiting-advanced":{name:"GraphQL Rate Limiting Advanced",description:"Rate-limit how many HTTP requests a developer can make"},mocking:{name:"Mocking",description:"Provide mock endpoints to test your APIs in development against your services"},"request-size-limiting":{name:"Request Size Limiting",description:"Block requests with bodies greater than a specific size"},"request-termination":{name:"Request Termination",description:"Terminate all requests with a specific response"},"response-ratelimiting":{name:"Response Rate Limiting",description:"Rate-Limiting based on a custom response header value"},"route-by-header":{name:"Route by Header",description:"Route requests based on request headers"},"ai-proxy":{name:"AI Proxy",description:"Directly call a configured LLM, with mediated security and tuning parameters, and using standardised Kong request and response formats."},"ai-prompt-decorator":{name:"AI Prompt Decorator",description:"Prepend and append chat prompts to AI Proxy plugin LLM requests."},"ai-prompt-template":{name:"AI Prompt Template",description:"Define a set of templates, containing string variable placeholders, that can be consumed by users when used with the AI Proxy plugin."},"ai-prompt-guard":{name:"AI Prompt Guard",description:"Define a set of valid, and a set of invalid, regular expression patterns when calling LLM models with the AI Proxy plugin."},"ai-request-transformer":{name:"AI Request Transformer",description:"Use an LLM to transform API request from a user, before sending to the upstream service."},"ai-response-transformer":{name:"AI Response Transformer",description:"Use an LLM to transform API responses from the upstream service, before returning to the user."},"ai-rate-limiting-advanced":{name:"AI Rate Limiting Advanced",description:"Provides rate limiting for the providers used by any AI plugins."},"ai-azure-content-safety":{name:"AI Azure Content Safety",description:"Allows checking and auditing of AI-Proxy plugin messages, using Azure Cognitive Services, before proxying to upstream large-language model."},"aws-lambda":{name:"AWS Lambda",description:"Invoke and manage AWS Lambda functions from Kong"},"azure-functions":{name:"Azure Functions",description:"Invoke Azure functions"},openwhisk:{name:"OpenWhisk",description:"Invoke and manage OpenWhisk actions from Kong"},"pre-function":{name:"Kong Functions (Pre-Plugins)",description:"Add and manage custom lua functions to run before other plugins"},"post-function":{name:"Kong Functions (Post-Plugins)",description:"Add and manage custom lua functions to run after other plugins"},datadog:{name:"Datadog",description:"Visualize metrics on Datadog"},prometheus:{name:"Prometheus",description:"Export performance metrics to Prometheus"},zipkin:{name:"Zipkin",description:"Propagate zipkin spans and report spans to a zipkin server"},collector:{name:"Collector",description:"Automate spec-driven development & anomaly detection (Early Access)"},"response-transformer-advanced":{name:"Response Transformer Advanced",description:"Transform the response sent by the upstream server on the fly on Kong, before returning the response to the client."},"correlation-id":{name:"Correlation ID",description:"Correlate requests and responses using a unique ID"},"request-transformer-advanced":{name:"Request Transformer Advanced",description:"Use powerful regular expressions, variables and templates to transform API requests"},"request-transformer":{name:"Request Transformer",description:"Modify the request before hitting the upstream server"},"response-transformer":{name:"Response Transformer",description:"Modify the upstream response before returning it to the client"},"route-transformer-advanced":{name:"Route Transformer Advanced",description:"Transforms the routing on the fly in Kong, changing the upstream server/port/path to hit"},"kafka-upstream":{name:"Kafka Upstream",description:"Transform requests into Kafka messages in a topic"},degraphql:{name:"DeGraphQL",description:"Transform a GraphQL upstream into a REST API"},"exit-transformer":{name:"Exit Transformer",description:"Customize Kong exit responses sent downstream"},jq:{name:"jq",description:"Transform JSON objects included in API requests or responses using jq programs"},"file-log":{name:"File Log",description:"Append request and response data to a log file on disk"},"http-log":{name:"HTTP Log",description:"Send request and response logs to an HTTP server"},loggly:{name:"Loggly",description:"Send request and response logs to Loggly"},"statsd-advanced":{name:"StatsD Advanced",description:"Send traffic and Kong performance metrics to StatsD"},statsd:{name:"StatsD",description:"Send request and response logs to StatsD"},syslog:{name:"Syslog",description:"Send request and response logs to Syslog"},"tcp-log":{name:"TCP Log",description:"Send request and response logs to a TCP server"},"udp-log":{name:"UDP Log",description:"Send request and response logs to a UDP server"},"kafka-log":{name:"Kafka Log",description:"Publish request and response logs to a Kafka topic"},session:{name:"Session",description:"Sessions for Kong authentication"},"upstream-tls":{name:"Upstream TLS",description:"Enable TLS on upstream traffic by providing Kong with a list of trusted certificates."},"application-registration":{name:"Portal Application Registration",description:"Allow portal developers to register applications against services"},"konnect-application-auth":{name:"Konnect Application Auth",description:"Allow Konnect portal developers to register applications against services"},acme:{name:"ACME",description:"Let's Encrypt and ACMEv2 integration with Kong"},"grpc-gateway":{name:"gRPC Gateway",description:"Access gRPC services through HTTP REST"},"grpc-web":{name:"gRPC Web",description:"Allow browser clients to call gRPC services"},"upstream-timeout":{name:"Upstream Timeout",description:"Configure read, send and connect timeouts to an upstream"},opentelemetry:{name:"OpenTelemetry",description:"Propagate distributed tracing spans and report low-level spans to a OTLP-compatible server"},"websocket-validator":{name:"WebSocket Validator",description:"Validate individual WebSocket messages against to a user-specified schema before proxying them"},"websocket-size-limit":{name:"WebSocket Size Limit",description:"Allows operators to specify a maximum size for incoming WebSocket messages"},"tls-metadata-headers":{name:"TLS Metadata Headers",description:"Detects client certificates in requests, retrieves the TLS metadata, and proxies this metadata via HTTP headers"},"tls-handshake-modifier":{name:"TLS Handshake Modifier",description:"Requests the client certificate and if it exists, makes it available to other plugins acting on the request"},"oas-validation":{name:"OAS Validation",description:"Validate HTTP requests and responses based on an API Specification."},"jwe-decrypt":{name:"Kong JWE Decrypt",description:"The Kong JWE Decrypt plugin makes it possible to decrypt an inbound token(JWE) in a request."},"xml-threat-protection":{name:"XML Threat Protection",description:"Reduce the risk of XML attacks by checking the structure of XML payloads."},saml:{name:"SAML",description:"Security Assertion Markup Language (SAML) is an open standard for exchanging authentication and authorization data between an identity provider and a service provider."},"app-dynamics":{name:"AppDynamics",description:"This plugin integrates Kong with the AppDynamics APM platform so that proxy requests handled by Kong can be identified and analyzed in AppDynamics."},"json-threat-protection":{name:"JSON Threat Protection",description:"Apply size checks on JSON payload and minimize risk of content-level attacks"},"standard-webhooks":{name:"Standard Webhooks",description:"Validate incoming webhooks adhere to the Standard Webhooks specification, to which Kong is a contributor"},"ai-proxy-advanced":{name:"AI Proxy Advanced",description:"Route across different LLMs and models using advanced load balancing algorithms, including semantic routing."},"ai-semantic-cache":{name:"AI Semantic Cache",description:"Semantically cache AI requests to any LLM to reduce latency, improve end-user experiences and optimize GenAI costs."},"ai-semantic-prompt-guard":{name:"AI Semantic Prompt Guard",description:"Semantically and intelligently create allow and deny lists of topics that can be requested across every LLM."},"header-cert-auth":{name:"Header Certificate Authentication",description:"Authenticate clients with MTLS certificate passed in header by a WAF or load balancer"},"upstream-oauth":{name:"Upstream OAuth",description:"Configure Kong to obtain a OAuth2 token to consume an upstream API"},confluent:{name:"Confluent",description:"Streamlines integration with Confluent Cloud and transforms requests into messages published to a Confluent topic."},"service-protection":{name:"Service Protection",description:"Prevent abuse and protect services with absolute limits on the number of requests reaching the service."},"injection-protection":{name:"Injection Protection",description:"Protect against injection attacks by rejecting requests that match common injections patterns."},redirect:{name:"Redirect",description:"Redirect incoming requests to a new URL"},"kafka-consume":{name:"Kafka Consume",description:"Consume messages from Kafka topics over HTTP protocols."},"confluent-consume":{name:"Confluent Consume",description:"Consume messages from Confluent Kafka topics over HTTP protocols"},"request-callout":{name:"Request Callout",description:"Callout to third party APIs as part of request processing."},"ai-sanitizer":{name:"AI Sanitizer",description:"Sanitize personal or sensitive information from prompts before sending to LLM."},"ai-rag-injector":{name:"AI RAG Injector",description:"Attach contextual knowledge from vector databases with flexible template to LLM prompts."},datakit:{name:"Datakit",description:"Datakit is a workflow engine for working with external APIs."},"ai-prompt-compressor":{name:"AI Prompt Compressor",description:"The AI Prompt Compressor reduces costs associated with LLMs by compressing prompts."},"solace-upstream":{name:"Solace Upstream",description:"Transform requests into Solace messages in a Solace queue or topic."},"ai-aws-guardrails":{name:"AI AWS GuardRails",description:"The AI AWS GuardRails enables enforcement of introspection with the AWS GuardRails service for all requests processed by the AI Proxy plugin."}},fields:{service:"Service ID",route:"Route ID",consumer:"Consumer ID",consumer_group:"Consumer Group ID"},select:{custom_badge_text:"This plugin is data plane node specific",unavailable_tooltip:"This plugin is not available",already_exists:"This plugin is already applied to this resource",misc_plugins:"Other Plugins",view_more:"View more",view_less:"View less",tabs:{kong:{title:"Kong Plugins",description:"Kong plugins are bundled by default with Kong Gateway and are available across all control planes.",empty_title:"No Plugins",empty_description:"No plugins are available."},custom:{title:"Custom Plugins",description:"Custom plugins will be available in this control plane only.",disabled_tooltip:"Custom Plugins are not available with this Gateway. Create a Hybrid or Dedicated Cloud Gateway to leverage Custom Plugins.",empty_title:"No Custom Plugins",empty_description:"No custom plugins have been added to this Control Plane.",create:{name:"Custom Plugin",description:"Upload schema file to create custom plugin"}}},highlighted_plugins:{title:"Highlighted Plugins"}},form:{no_selection:"No selection...",fields:{enabled:{label:"Enabled",on_text:"This plugin is Enabled",off_text:"This plugin is Disabled"},instance_name:{label:"Instance Name",help:"A custom name for this plugin instance to help identifying from the list view."},protocols:{label:"Protocols",placeholder:"Select valid protocols for the plugin",placeholderWithDefaultValues:"Select valid protocols for the plugin. Default protocols: {protocols}",help:"A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type."},tags:{help:"An optional set of strings for grouping and filtering, separated by commas.",placeholder:"Enter list of tags"}},scoping:{label:"Scoped",global:{label:"Global",help:"All services, routes, and consumers"},gateway_service:{label:"Gateway Service",help:"The Gateway Service to which this plugin configuration will apply",placeholder:"Select a Gateway Service",plural:"Gateway Services"},route:{label:"Route",help:"The Route that this Plugin configuration will target",placeholder:"Select a Route",plural:"Routes"},consumer:{label:"Consumer",help:"The Consumer that this plugin configuration will target",placeholder:"Select a Consumer",plural:"Consumers"},consumer_group:{label:"Consumer Group",help:"The Consumer Group that this plugin configuration will target",placeholder:"Select a Consumer Group",plural:"Consumer Groups"}},grouping:{plugin_configuration:{title:"Plugin Configuration",description:"Configuration parameters for this plugin. View advanced parameters for extended configuration.",empty:"This plugin does not have required parameters."},advanced_parameters:{view:"View Advanced Parameters",hide:"Hide Advanced Parameters"}},field_rules:{at_least_one_of:"At least one of these parameters is required: {parameters}",only_one_of:"Exactly one of these parameters is required: {parameters}",mutually_required:"All of these parameters are required: {parameters}",only_one_of_mutually_required:"Exactly one of the following parameter combinations is required (all parameters within a chosen combination are required):"},sections:{general_info:{title:"General information",description:"Add details to help identify and manage your plugin."},plugin_config:{title:"Plugin configuration",description:"Configure parameters for this plugin by using a form or a YAML file."}}},"free-form":{"ai-mcp":{tool_item_label:"Tool #{index}"},"request-callout":{entity_name:"Request Callout",by_lua_placeholder:"Enter Lua script here..."},redis_partial:{redis_partial_modal_title:"New shared configuration",partial_created_success_message:"Successfully created a new Redis configuration."},datakit:{description_code:"Configure this plugin by using YAML configuration. If you are copy/pasting in examples from the documentation - paste from below the <code>config</code> block.",description_flow:"Configure this plugin by using the flow editor.",description_example:"Start with a use case:",examples:{authenticate:"Authenticate Kong to a third-party service",combine:"Combine multiple API responses",manipulate:"Manipulate request headers"},flow_editor:{mode:"Flow Editor",name:"Datakit Flow Editor",cta:"Go to flow editor",done:"Done",view_docs:"View Docs",expand_panel:"Expand panel",collapse_panel:"Collapse panel",return_to_config:"Return to Plugin configuration",node_panel:{title:"Node types",description:"Drag a node onto the canvas to add it to your data flow."},node_types:{call:{name:"call",summary:"Call a third-party API",description:"Send an HTTP request and retrieve the response."},jq:{name:"jq",summary:"Transform data and cast variables with jq",description:'The jq node executes a jq script for processing JSON. See the official <a href="https://jqlang.org" target="_blank">jq docs</a> for more details.'},exit:{name:"exit",summary:"Return a response directly to the client",description:"Trigger an early exit that produces a direct response, rather than forwarding a proxied response."},property:{name:"property",summary:"Get and set Kong Gateway configuration data",description:"Get and set Kong Gateway host and request properties."},static:{name:"static",summary:"Define static values to use for call nodes",description:"Emits static values to be used as inputs for other nodes. The static node can help you with hardcoding some known value for an input."},request:{name:"request",description:"Reads incoming client request properties. You cannot specify request node input."},response:{name:"response",description:"Updates properties of the outgoing client response."},service_request:{name:"service request",description:"Updates properties of the request sent to the service being proxied to."},service_response:{name:"service response",description:"Reads response properties from the service being proxied to."}},node_properties:{name:"Name",Configuration:"Configuration",input:{placeholder:"Select output(s)",add_button:"Add an input"},input_name:{label:"Input Name",placeholder:"Input Name"},timeout:{label:"Timeout(s)"},jq:{label:"jq script"},output_value:{label:"Output value",value_name:"Value name",value:"Value",add_button:"Add a value"},property:{get:"get",set:"set"},errors:{invalid_identifier_format:"{fieldName} must start with a letter or underscore and contain only letters, numbers, underscores, or hyphens",invalid_url_format:"Not a valid URL format",not_empty:"{fieldName} is required",not_float:"{fieldName} must be a float",not_integer:"{fieldName} must be an integer",not_number:"{fieldName} must be a number",not_unique:"{fieldName} must be unique",number_range:"{fieldName} must be between {min} and {max}",string_len_range:"{fieldName} must be between {min} and {max} characters"}}},code_editor:{mode:"Code Editor"}},vault_picker:{component_error:"The vault secret picker is not available"}}},redis:{title:"Redis Configuration",shared_configuration:{label:"Use shared configuration",description:"Select an existing shared Redis configuration or create a new one. Any updates to this configuration will automatically apply to all associated plugins.",title:"Shared Redis Configuration",error:"Fetching shared Redis configurations failed.",tooltip:"Only compatible {type} redis configurations will be listed here.",configuration_selector_label:"Select stored Redis configuration",configuration_selector_placeholder:"Pick Redis configuration",create_new_configuration:"New {type} shared configuration",open_source:"open source",enterprise:"enterprise",empty_state:"No shared configurations",badge:"Recommended",selector:{title:"Select a Redis configuration",placeholder:"Filter Configurations",description:"Select an existing shared Redis configuration or create a new one. Any updates to this configuration will automatically apply to all associated plugins."},type_label:{host_port:"Host/Port",sentinel:"Sentinel",cluster:"Cluster"}},dedicated_configuration:{label:"Use dedicated configuration",description:"Create a Redis configuration exclusively for this plugin, with settings that won’t impact other plugins.",title:"Connection Settings"},config_card:{common_fields:{created_at_label:"Created at",updated_at_label:"Last Updated at",type_label:"Redis Type"}},custom_plugin:{alert:"Note: For custom plugins, we cannot determine the correct Redis configuration type. Please ensure you select the appropriate option manually.",tooltip:"To apply a shared redis configuration, the redis fields must defined as Kong plugins in plugin schema."}},glossary:{plugin:"plugin"},custom_field:{key_auth_identity_realms:{cp_label:"Current Control Plane",cp_group_label:"Control Plane",realm_group_label:"Realms (Can only select one)"}},sp:{window_type:{label:"Rate Limit Window Type",help:"Sets the time window type to either <code>sliding</code> (default) or <code>fixed</code>.<br><ul><li>Sliding windows apply the rate limiting logic while taking into account previous hit rates (from the window that immediately precedes the current) using a dynamic weight.</li><li>Fixed windows consist of buckets that are statically assigned to a definitive time range, each request is mapped to only one fixed window based on its timestamp and will affect only that window&#39;s counters.</li></ul>",options:{fixed:"Fixed",sliding:"Sliding"}},request_limits:{title:"Request Limits",subtitle:"Set one or more limits on the number of API requests allowed within a defined timeframe.",label:"Limit",label_index:"Limit {index}",request_number:"Request number",time_interval:"Time interval",interval_determiner:"Every",seconds:"Seconds"},error_message:{label:"Error Message",code_placeholder:"Code Message",message_placeholder:"Error Message",help:"Set a custom error code and message to be returned when the rate limit is exceeded."},start_with_a_use_case:"Start with a use case:",use_cases:{fixed:{hourly_500:{label:"500 requests every hour",description:"A fixed limit of 500 requests per hour resetting sharply on the hour, ensuring no user can exceed this limit."},half_hourly_200:{label:"200 requests every 30 minutes",description:"Users are allowed 200 requests per 30 minutes, resetting exactly on the 30 minute mark with no carryover of unused limits."},daily_500:{label:"500 requests every day",description:"A strict limit of 5000 requests per day resetting promptly at midnight, preventing any burst traffic or inconsistent user experiences."}},sliding:{hourly_100:{label:"100 requests every hour",description:"Maximum of 100 requests every rolling hour, continuously adjusting the count over the course of the hour. No hard limit or known reset."},half_hourly_300:{label:"300 requests every 30 minutes",description:"Each user can make up to 300 requests in any rolling 30 minute period, with older requests dropping off as new requests are made."},hourly_500:{label:"500 requests every hour",description:`Each user is allowed 500 requests per hour.
1
+ (function(he,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("vue"),require("@kong-ui-public/entities-shared"),require("marked"),require("vue-router"),require("@kong-ui-public/i18n"),require("@kong-ui-public/entities-plugins-metadata"),require("@kong-ui-public/forms"),require("@kong-ui-public/entities-vaults"),require("@kong-ui-public/entities-vaults/dist/style.css"),require("@kong/icons"),require("@kong/kongponents"),require("@kong-ui-public/entities-redis-configurations"),require("@kong-ui-public/entities-redis-configurations/dist/style.css"),require("@vueuse/core"),require("monaco-editor"),require("@kong-ui-public/entities-plugins-icon")):typeof define=="function"&&define.amd?define(["exports","vue","@kong-ui-public/entities-shared","marked","vue-router","@kong-ui-public/i18n","@kong-ui-public/entities-plugins-metadata","@kong-ui-public/forms","@kong-ui-public/entities-vaults","@kong-ui-public/entities-vaults/dist/style.css","@kong/icons","@kong/kongponents","@kong-ui-public/entities-redis-configurations","@kong-ui-public/entities-redis-configurations/dist/style.css","@vueuse/core","monaco-editor","@kong-ui-public/entities-plugins-icon"],n):(he=typeof globalThis<"u"?globalThis:he||self,n(he["kong-ui-public-entities-plugins"]={},he.Vue,he["kong-ui-public-entities-shared"],he.marked,he.VueRouter,he["kong-ui-public-i18n"],he.entitiesPluginsMetadata,he.forms,he.entitiesVaults,null,he.KongIcons,he.Kongponents,he.entitiesRedisConfigurations,null,he.core$1,he.monaco,he.entitiesPluginsIcon))})(this,function(he,n,ce,Zo,no,Re,H,ve,Jo,ZR,Ee,Ie,oo,JR,Je,pm,ro){"use strict";var WR=Object.defineProperty;var XR=(he,n,ce)=>n in he?WR(he,n,{enumerable:!0,configurable:!0,writable:!0,value:ce}):he[n]=ce;var Ke=(he,n,ce)=>XR(he,typeof n!="symbol"?n+"":n,ce);function mm(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const r=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,r.get?r:{enumerable:!0,get:()=>e[o]})}}return t.default=e,Object.freeze(t)}const Qo=mm(pm),je={actions:{cancel:"Cancel",view_configuration:"View Configuration",create:"New plugin",create_custom:"Create",copy_id:"Copy ID",copy_json:"Copy JSON",edit:"Edit",enable:"Enable",enabled:"Enabled",delete:"Delete",confirm_delete:"Yes, delete",view:"View Details",configure_dynamic_ordering:"Configure Dynamic Ordering",go_to_plugins:"Go to Plugins",save:"Save",add_entity:"Add {entity}",remove_entity:"Remove {entity}"},view_configuration:{title:"Configuration",message:"Export configurations for core Kong Gateway objects, like services, routes, and plugins, to either YAML, JSON, or Terraform. This allows for straightforward importing into APIOps tools like decK with YAML, Insomnia and cURL with JSON, or Terraform products with Terraform.",yaml:"YAML",terraform:"Terraform",json:"JSON"},delete:{title:"Delete a Plugin",custom_title:"Delete {name}",custom_plugin:"Custom Plugin",description:"This action cannot be reversed.",description_custom:"Please ensure this plugin is not in use. This action cannot be reversed.",plugin_schema_in_use_title:"Unable to Delete Custom Plugin",plugin_schema_in_use_message:"The custom plugin schema {name} is being used in this control plane, please delete any existing instances before you delete this schema.",confirmModalText1:"Are you sure you want to delete",confirmModalText2:"Please ensure this plugin is not in use. This delete action cannot be reversed.",confirm_text:"Type {name} to confirm your action",success_message:"Successfully deleted custom plugin {name}"},copy:{success:"Copied {val} to clipboard",success_brief:"Successfully copied to clipboard",tooltip:"Copy {label}",success_tooltip:"Copied!"},errors:{general:"Plugins could not be retrieved",delete:"The plugin could not be deleted at this time.",copy:"Failed to copy to clipboard",load_results:"Error loading available plugins",load_schema:"Error loading plugin schema"},search:{placeholder:{konnect:"Filter by name",exact:"Filter by exact instance name or ID",kongManager:"Filter by exact instance name or ID",select:"Filter plugins"},filter:{field:{enabled:"Enabled"}},no_results:'No results found for "{filter}"'},plugins:{title:"Plugins",list:{toolbar_actions:{new_plugin:"New plugin"},table_headers:{applied_to:"Applied To",applied_to_badges:{consumer:"Consumer",global:"Global",route:"Route",service:"Service",consumer_group:"Consumer Group"},id:"ID",name:"Name",instance_name:"Instance Name",ordering:"Ordering",ordering_badge:{dynamic:"Dynamic",static:"Static"},enabled:"Enabled",tags:"Tags"},empty_state:{title:"Configure a New Plugin",description:"Plugins are used to extend Kong functionality."},empty_state_v2:{title:"Configure your first plugin",description:"Plugins extend gateways functionalities, offering features like authentication, rate limiting, and request transformations to enhance security and performance.",create_cta:"New plugin",group:"Plugins created in gateways within this group will automatically appear here."}},meta:{"basic-auth":{name:"Basic Authentication",credential_name:"Basic Auth Credential",description:"Add Basic Authentication to your Services"},"hmac-auth":{name:"HMAC Authentication",credential_name:"HMAC Credential",description:"Add HMAC Authentication to your Services"},"jwt-signer":{name:"JWT Signer",description:"Verify and (re-)sign one or two tokens in a request"},jwt:{name:"JWT",credential_name:"JWT Credential",description:"Verify and authenticate JSON Web Tokens"},"key-auth":{name:"Key Authentication",credential_name:"Key Auth Credential",description:"Add key authentication to your Services"},"key-auth-enc":{name:"Key Authentication Encrypted",credential_name:"Key Auth Encrypted",description:"Add key authentication to your Services with an encrypted token"},"ldap-auth-advanced":{name:"LDAP Authentication Advanced",description:"Integrate Kong with a LDAP server"},"ldap-auth":{name:"LDAP Authentication",description:"Integrate Kong with a LDAP server"},"oauth2-introspection":{name:"OAuth 2.0 Introspection",description:"Integrate Kong with a third-party OAuth 2.0 Authorization Server"},oauth2:{name:"OAuth 2.0 Authentication",credential_name:"OAuth 2.0 Application",description:"Add OAuth 2.0 authentication to your Services"},"openid-connect":{name:"OpenID Connect",description:"Integrate Kong with a third-party OpenID Connect 1.0 Provider"},"mtls-auth":{name:"Mutual TLS Authentication",description:"Secure routes and services with client certificate and mutual TLS authentication"},"vault-auth":{name:"Vault Authentication",description:"Secure routes and services with an access token and secret token, stored securely via Vault"},"bot-detection":{name:"Bot Detection",description:"Detect and clock bots or custom clients"},cors:{name:"CORS",description:"Allow developers to make requests from the browser"},"ip-restriction":{name:"IP Restriction",description:"Whitelist or blacklist IPs that can make requests"},opa:{name:"OPA",description:"Authorize requests against Open Policy Agent"},"kubernetes-sidecar-injector":{name:"Kubernetes Sidecar Injector",description:"This plugin will inject Kong dataplane nodes and form a service mesh on top of Kubernetes"},"request-validator":{name:"Request Validator",description:"Validate requests before they reach their upstream Service. "},acl:{name:"ACL",credential_name:"Access Control Group",description:"Control which consumers can access Services"},canary:{name:"Canary Release",description:"Methodically roll out software changes to a subset of users"},"forward-proxy":{name:"Forward Proxy",description:"Allow Kong to connect to intermediary transparent HTTP proxies"},"proxy-cache":{name:"Proxy Caching",description:"Cache and serve commonly requested responses in Kong"},"proxy-cache-advanced":{name:"Proxy Caching Advanced",description:"Cache and serve commonly requested responses in Kong"},"graphql-proxy-cache-advanced":{name:"GraphQL Proxy Caching Advanced",description:"Cache and serve commonly requested responses in Kong"},"rate-limiting-advanced":{name:"Rate Limiting Advanced",description:"Rate-limit how many HTTP requests a developer can make"},"rate-limiting":{name:"Rate Limiting",description:"Rate-limit how many HTTP requests a developer can make"},"graphql-rate-limiting-advanced":{name:"GraphQL Rate Limiting Advanced",description:"Rate-limit how many HTTP requests a developer can make"},mocking:{name:"Mocking",description:"Provide mock endpoints to test your APIs in development against your services"},"request-size-limiting":{name:"Request Size Limiting",description:"Block requests with bodies greater than a specific size"},"request-termination":{name:"Request Termination",description:"Terminate all requests with a specific response"},"response-ratelimiting":{name:"Response Rate Limiting",description:"Rate-Limiting based on a custom response header value"},"route-by-header":{name:"Route by Header",description:"Route requests based on request headers"},"ai-proxy":{name:"AI Proxy",description:"Directly call a configured LLM, with mediated security and tuning parameters, and using standardised Kong request and response formats."},"ai-prompt-decorator":{name:"AI Prompt Decorator",description:"Prepend and append chat prompts to AI Proxy plugin LLM requests."},"ai-prompt-template":{name:"AI Prompt Template",description:"Define a set of templates, containing string variable placeholders, that can be consumed by users when used with the AI Proxy plugin."},"ai-prompt-guard":{name:"AI Prompt Guard",description:"Define a set of valid, and a set of invalid, regular expression patterns when calling LLM models with the AI Proxy plugin."},"ai-request-transformer":{name:"AI Request Transformer",description:"Use an LLM to transform API request from a user, before sending to the upstream service."},"ai-response-transformer":{name:"AI Response Transformer",description:"Use an LLM to transform API responses from the upstream service, before returning to the user."},"ai-rate-limiting-advanced":{name:"AI Rate Limiting Advanced",description:"Provides rate limiting for the providers used by any AI plugins."},"ai-azure-content-safety":{name:"AI Azure Content Safety",description:"Allows checking and auditing of AI-Proxy plugin messages, using Azure Cognitive Services, before proxying to upstream large-language model."},"aws-lambda":{name:"AWS Lambda",description:"Invoke and manage AWS Lambda functions from Kong"},"azure-functions":{name:"Azure Functions",description:"Invoke Azure functions"},openwhisk:{name:"OpenWhisk",description:"Invoke and manage OpenWhisk actions from Kong"},"pre-function":{name:"Kong Functions (Pre-Plugins)",description:"Add and manage custom lua functions to run before other plugins"},"post-function":{name:"Kong Functions (Post-Plugins)",description:"Add and manage custom lua functions to run after other plugins"},datadog:{name:"Datadog",description:"Visualize metrics on Datadog"},prometheus:{name:"Prometheus",description:"Export performance metrics to Prometheus"},zipkin:{name:"Zipkin",description:"Propagate zipkin spans and report spans to a zipkin server"},collector:{name:"Collector",description:"Automate spec-driven development & anomaly detection (Early Access)"},"response-transformer-advanced":{name:"Response Transformer Advanced",description:"Transform the response sent by the upstream server on the fly on Kong, before returning the response to the client."},"correlation-id":{name:"Correlation ID",description:"Correlate requests and responses using a unique ID"},"request-transformer-advanced":{name:"Request Transformer Advanced",description:"Use powerful regular expressions, variables and templates to transform API requests"},"request-transformer":{name:"Request Transformer",description:"Modify the request before hitting the upstream server"},"response-transformer":{name:"Response Transformer",description:"Modify the upstream response before returning it to the client"},"route-transformer-advanced":{name:"Route Transformer Advanced",description:"Transforms the routing on the fly in Kong, changing the upstream server/port/path to hit"},"kafka-upstream":{name:"Kafka Upstream",description:"Transform requests into Kafka messages in a topic"},degraphql:{name:"DeGraphQL",description:"Transform a GraphQL upstream into a REST API"},"exit-transformer":{name:"Exit Transformer",description:"Customize Kong exit responses sent downstream"},jq:{name:"jq",description:"Transform JSON objects included in API requests or responses using jq programs"},"file-log":{name:"File Log",description:"Append request and response data to a log file on disk"},"http-log":{name:"HTTP Log",description:"Send request and response logs to an HTTP server"},loggly:{name:"Loggly",description:"Send request and response logs to Loggly"},"statsd-advanced":{name:"StatsD Advanced",description:"Send traffic and Kong performance metrics to StatsD"},statsd:{name:"StatsD",description:"Send request and response logs to StatsD"},syslog:{name:"Syslog",description:"Send request and response logs to Syslog"},"tcp-log":{name:"TCP Log",description:"Send request and response logs to a TCP server"},"udp-log":{name:"UDP Log",description:"Send request and response logs to a UDP server"},"kafka-log":{name:"Kafka Log",description:"Publish request and response logs to a Kafka topic"},session:{name:"Session",description:"Sessions for Kong authentication"},"upstream-tls":{name:"Upstream TLS",description:"Enable TLS on upstream traffic by providing Kong with a list of trusted certificates."},"application-registration":{name:"Portal Application Registration",description:"Allow portal developers to register applications against services"},"konnect-application-auth":{name:"Konnect Application Auth",description:"Allow Konnect portal developers to register applications against services"},acme:{name:"ACME",description:"Let's Encrypt and ACMEv2 integration with Kong"},"grpc-gateway":{name:"gRPC Gateway",description:"Access gRPC services through HTTP REST"},"grpc-web":{name:"gRPC Web",description:"Allow browser clients to call gRPC services"},"upstream-timeout":{name:"Upstream Timeout",description:"Configure read, send and connect timeouts to an upstream"},opentelemetry:{name:"OpenTelemetry",description:"Propagate distributed tracing spans and report low-level spans to a OTLP-compatible server"},"websocket-validator":{name:"WebSocket Validator",description:"Validate individual WebSocket messages against to a user-specified schema before proxying them"},"websocket-size-limit":{name:"WebSocket Size Limit",description:"Allows operators to specify a maximum size for incoming WebSocket messages"},"tls-metadata-headers":{name:"TLS Metadata Headers",description:"Detects client certificates in requests, retrieves the TLS metadata, and proxies this metadata via HTTP headers"},"tls-handshake-modifier":{name:"TLS Handshake Modifier",description:"Requests the client certificate and if it exists, makes it available to other plugins acting on the request"},"oas-validation":{name:"OAS Validation",description:"Validate HTTP requests and responses based on an API Specification."},"jwe-decrypt":{name:"Kong JWE Decrypt",description:"The Kong JWE Decrypt plugin makes it possible to decrypt an inbound token(JWE) in a request."},"xml-threat-protection":{name:"XML Threat Protection",description:"Reduce the risk of XML attacks by checking the structure of XML payloads."},saml:{name:"SAML",description:"Security Assertion Markup Language (SAML) is an open standard for exchanging authentication and authorization data between an identity provider and a service provider."},"app-dynamics":{name:"AppDynamics",description:"This plugin integrates Kong with the AppDynamics APM platform so that proxy requests handled by Kong can be identified and analyzed in AppDynamics."},"json-threat-protection":{name:"JSON Threat Protection",description:"Apply size checks on JSON payload and minimize risk of content-level attacks"},"standard-webhooks":{name:"Standard Webhooks",description:"Validate incoming webhooks adhere to the Standard Webhooks specification, to which Kong is a contributor"},"ai-proxy-advanced":{name:"AI Proxy Advanced",description:"Route across different LLMs and models using advanced load balancing algorithms, including semantic routing."},"ai-semantic-cache":{name:"AI Semantic Cache",description:"Semantically cache AI requests to any LLM to reduce latency, improve end-user experiences and optimize GenAI costs."},"ai-semantic-prompt-guard":{name:"AI Semantic Prompt Guard",description:"Semantically and intelligently create allow and deny lists of topics that can be requested across every LLM."},"header-cert-auth":{name:"Header Certificate Authentication",description:"Authenticate clients with MTLS certificate passed in header by a WAF or load balancer"},"upstream-oauth":{name:"Upstream OAuth",description:"Configure Kong to obtain a OAuth2 token to consume an upstream API"},confluent:{name:"Confluent",description:"Streamlines integration with Confluent Cloud and transforms requests into messages published to a Confluent topic."},"service-protection":{name:"Service Protection",description:"Prevent abuse and protect services with absolute limits on the number of requests reaching the service."},"injection-protection":{name:"Injection Protection",description:"Protect against injection attacks by rejecting requests that match common injections patterns."},redirect:{name:"Redirect",description:"Redirect incoming requests to a new URL"},"kafka-consume":{name:"Kafka Consume",description:"Consume messages from Kafka topics over HTTP protocols."},"confluent-consume":{name:"Confluent Consume",description:"Consume messages from Confluent Kafka topics over HTTP protocols"},"request-callout":{name:"Request Callout",description:"Callout to third party APIs as part of request processing."},"ai-sanitizer":{name:"AI Sanitizer",description:"Sanitize personal or sensitive information from prompts before sending to LLM."},"ai-rag-injector":{name:"AI RAG Injector",description:"Attach contextual knowledge from vector databases with flexible template to LLM prompts."},datakit:{name:"Datakit",description:"Datakit is a workflow engine for working with external APIs."},"ai-prompt-compressor":{name:"AI Prompt Compressor",description:"The AI Prompt Compressor reduces costs associated with LLMs by compressing prompts."},"solace-upstream":{name:"Solace Upstream",description:"Transform requests into Solace messages in a Solace queue or topic."},"ai-aws-guardrails":{name:"AI AWS GuardRails",description:"The AI AWS GuardRails enables enforcement of introspection with the AWS GuardRails service for all requests processed by the AI Proxy plugin."}},fields:{service:"Service ID",route:"Route ID",consumer:"Consumer ID",consumer_group:"Consumer Group ID"},select:{custom_badge_text:"This plugin is data plane node specific",unavailable_tooltip:"This plugin is not available",already_exists:"This plugin is already applied to this resource",misc_plugins:"Other Plugins",view_more:"View more",view_less:"View less",tabs:{kong:{title:"Kong Plugins",description:"Kong plugins are bundled by default with Kong Gateway and are available across all control planes.",empty_title:"No Plugins",empty_description:"No plugins are available."},custom:{title:"Custom Plugins",description:"Custom plugins will be available in this control plane only.",disabled_tooltip:"Custom Plugins are not available with this Gateway. Create a Hybrid or Dedicated Cloud Gateway to leverage Custom Plugins.",empty_title:"No Custom Plugins",empty_description:"No custom plugins have been added to this Control Plane.",create:{name:"Custom Plugin",description:"Upload schema file to create custom plugin"}}},highlighted_plugins:{title:"Highlighted Plugins"}},form:{no_selection:"No selection...",fields:{enabled:{label:"Enabled",on_text:"This plugin is Enabled",off_text:"This plugin is Disabled"},instance_name:{label:"Instance Name",help:"A custom name for this plugin instance to help identifying from the list view."},protocols:{label:"Protocols",placeholder:"Select valid protocols for the plugin",placeholderWithDefaultValues:"Select valid protocols for the plugin. Default protocols: {protocols}",help:"A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type."},tags:{help:"An optional set of strings for grouping and filtering, separated by commas.",placeholder:"Enter list of tags"}},scoping:{label:"Scoped",global:{label:"Global",help:"All services, routes, and consumers"},gateway_service:{label:"Gateway Service",help:"The Gateway Service to which this plugin configuration will apply",placeholder:"Select a Gateway Service",plural:"Gateway Services"},route:{label:"Route",help:"The Route that this Plugin configuration will target",placeholder:"Select a Route",plural:"Routes"},consumer:{label:"Consumer",help:"The Consumer that this plugin configuration will target",placeholder:"Select a Consumer",plural:"Consumers"},consumer_group:{label:"Consumer Group",help:"The Consumer Group that this plugin configuration will target",placeholder:"Select a Consumer Group",plural:"Consumer Groups"}},grouping:{plugin_configuration:{title:"Plugin Configuration",description:"Configuration parameters for this plugin. View advanced parameters for extended configuration.",empty:"This plugin does not have required parameters."},advanced_parameters:{view:"View Advanced Parameters",hide:"Hide Advanced Parameters"}},field_rules:{at_least_one_of:"At least one of these parameters is required: {parameters}",only_one_of:"Exactly one of these parameters is required: {parameters}",mutually_required:"All of these parameters are required: {parameters}",only_one_of_mutually_required:"Exactly one of the following parameter combinations is required (all parameters within a chosen combination are required):"},sections:{general_info:{title:"General information",description:"Add details to help identify and manage your plugin."},plugin_config:{title:"Plugin configuration",description:"Configure parameters for this plugin by using a form or a YAML file."}}},"free-form":{"ai-mcp":{tool_item_label:"Tool #{index}"},"request-callout":{entity_name:"Request Callout",by_lua_placeholder:"Enter Lua script here..."},redis_partial:{redis_partial_modal_title:"New shared configuration",partial_created_success_message:"Successfully created a new Redis configuration."},datakit:{description_code:"Configure this plugin by using YAML configuration. If you are copy/pasting in examples from the documentation - paste from below the <code>config</code> block.",description_flow:"Configure this plugin by using the flow editor.",description_example:"Start with a use case:",examples:{authenticate:"Authenticate Kong to a third-party service",combine:"Combine multiple API responses",manipulate:"Manipulate request headers"},flow_editor:{mode:"Flow Editor",name:"Datakit Flow Editor",cta:"Go to flow editor",done:"Done",view_docs:"View Docs",expand_panel:"Expand panel",collapse_panel:"Collapse panel",return_to_config:"Return to Plugin configuration",node_panel:{title:"Node types",description:"Drag a node onto the canvas to add it to your data flow."},node_types:{call:{name:"call",summary:"Call a third-party API",description:"Send an HTTP request and retrieve the response."},jq:{name:"jq",summary:"Transform data and cast variables with jq",description:'The jq node executes a jq script for processing JSON. See the official <a href="https://jqlang.org" target="_blank">jq docs</a> for more details.'},exit:{name:"exit",summary:"Return a response directly to the client",description:"Trigger an early exit that produces a direct response, rather than forwarding a proxied response."},property:{name:"property",summary:"Get and set Kong Gateway configuration data",description:"Get and set Kong Gateway host and request properties."},static:{name:"static",summary:"Define static values to use for call nodes",description:"Emits static values to be used as inputs for other nodes. The static node can help you with hardcoding some known value for an input."},request:{name:"request",description:"Reads incoming client request properties. You cannot specify request node input."},response:{name:"response",description:"Updates properties of the outgoing client response."},service_request:{name:"service request",description:"Updates properties of the request sent to the service being proxied to."},service_response:{name:"service response",description:"Reads response properties from the service being proxied to."}},node_properties:{name:"Name",Configuration:"Configuration",input:{placeholder:"Select output(s)",add_button:"Add an input"},input_name:{label:"Input Name",placeholder:"Input Name"},timeout:{label:"Timeout(s)"},jq:{label:"jq script"},output_value:{label:"Output value",value_name:"Value name",value:"Value",add_button:"Add a value"},property:{get:"get",set:"set"},errors:{invalid_identifier_format:"{fieldName} must start with a letter or underscore and contain only letters, numbers, underscores, or hyphens",invalid_url_format:"Not a valid URL format",not_empty:"{fieldName} is required",not_float:"{fieldName} must be a float",not_integer:"{fieldName} must be an integer",not_number:"{fieldName} must be a number",not_unique:"{fieldName} must be unique",number_range:"{fieldName} must be between {min} and {max}",string_len_range:"{fieldName} must be between {min} and {max} characters"}}},code_editor:{mode:"Code Editor"}},vault_picker:{component_error:"The vault secret picker is not available"}}},redis:{title:"Redis Configuration",shared_configuration:{label:"Use shared configuration",description:"Select an existing shared Redis configuration or create a new one. Any updates to this configuration will automatically apply to all associated plugins.",title:"Shared Redis Configuration",error:"Fetching shared Redis configurations failed.",tooltip:"Only compatible {type} redis configurations will be listed here.",configuration_selector_label:"Select stored Redis configuration",configuration_selector_placeholder:"Pick Redis configuration",create_new_configuration:"New {type} shared configuration",open_source:"open source",enterprise:"enterprise",empty_state:"No shared configurations",badge:"Recommended",selector:{title:"Select a Redis configuration",placeholder:"Filter Configurations",description:"Select an existing shared Redis configuration or create a new one. Any updates to this configuration will automatically apply to all associated plugins."},type_label:{host_port:"Host/Port",sentinel:"Sentinel",cluster:"Cluster"}},dedicated_configuration:{label:"Use dedicated configuration",description:"Create a Redis configuration exclusively for this plugin, with settings that won’t impact other plugins.",title:"Connection Settings"},config_card:{common_fields:{created_at_label:"Created at",updated_at_label:"Last Updated at",type_label:"Redis Type"}},custom_plugin:{alert:"Note: For custom plugins, we cannot determine the correct Redis configuration type. Please ensure you select the appropriate option manually.",tooltip:"To apply a shared redis configuration, the redis fields must defined as Kong plugins in plugin schema."}},glossary:{plugin:"plugin"},custom_field:{key_auth_identity_realms:{cp_label:"Current Control Plane",cp_group_label:"Control Plane",realm_group_label:"Realms (Can only select one)"}},sp:{window_type:{label:"Rate Limit Window Type",help:"Sets the time window type to either <code>sliding</code> (default) or <code>fixed</code>.<br><ul><li>Sliding windows apply the rate limiting logic while taking into account previous hit rates (from the window that immediately precedes the current) using a dynamic weight.</li><li>Fixed windows consist of buckets that are statically assigned to a definitive time range, each request is mapped to only one fixed window based on its timestamp and will affect only that window&#39;s counters.</li></ul>",options:{fixed:"Fixed",sliding:"Sliding"}},request_limits:{title:"Request Limits",subtitle:"Set one or more limits on the number of API requests allowed within a defined timeframe.",label:"Limit",label_index:"Limit {index}",request_number:"Request number",time_interval:"Time interval",interval_determiner:"Every",seconds:"Seconds"},error_message:{label:"Error Message",code_placeholder:"Code Message",message_placeholder:"Error Message",help:"Set a custom error code and message to be returned when the rate limit is exceeded."},start_with_a_use_case:"Start with a use case:",use_cases:{fixed:{hourly_500:{label:"500 requests every hour",description:"A fixed limit of 500 requests per hour resetting sharply on the hour, ensuring no user can exceed this limit."},half_hourly_200:{label:"200 requests every 30 minutes",description:"Users are allowed 200 requests per 30 minutes, resetting exactly on the 30 minute mark with no carryover of unused limits."},daily_500:{label:"500 requests every day",description:"A strict limit of 5000 requests per day resetting promptly at midnight, preventing any burst traffic or inconsistent user experiences."}},sliding:{hourly_100:{label:"100 requests every hour",description:"Maximum of 100 requests every rolling hour, continuously adjusting the count over the course of the hour. No hard limit or known reset."},half_hourly_300:{label:"300 requests every 30 minutes",description:"Each user can make up to 300 requests in any rolling 30 minute period, with older requests dropping off as new requests are made."},hourly_500:{label:"500 requests every hour",description:`Each user is allowed 500 requests per hour.
2
2
  If the limit is exceeded and the user receives a 429 error, each additional request within the sliding window (hour)
3
3
  will extend the wait time by about 12 minutes, continuously adjusting as new requests are made.`}}}}};function xe(){const e=Re.createI18n("en-us",je);return{i18n:e,i18nT:Re.i18nTComponent(e)}}function ql(){const{capitalize:e}=ce.useStringHelpers(),t=["methods","logout_methods"];return{setFieldType:(u,p,m)=>{var g,_,h;if(!(!u||!p||!m))switch(m.type){case"boolean":u[p]={type:ce.ConfigurationSchemaType.BadgeStatus,...u[p]};break;case"string":m.encrypted?u[p]={type:ce.ConfigurationSchemaType.Redacted,...u[p]}:u[p]={type:ce.ConfigurationSchemaType.Text,...u[p]};break;case"set":((g=m.elements)==null?void 0:g.type)==="string"&&(u[p]={type:ce.ConfigurationSchemaType.BadgeTag,...u[p]});break;case"array":t.includes(p)?u[p]={type:ce.ConfigurationSchemaType.BadgeMethod,...u[p]}:((_=m.elements)==null?void 0:_.type)==="string"?m.encrypted?u[p]={type:ce.ConfigurationSchemaType.RedactedArray,...u[p]}:u[p]={type:ce.ConfigurationSchemaType.BadgeTag,...u[p]}:((h=m.elements)==null?void 0:h.type)==="record"&&(u[p]={type:ce.ConfigurationSchemaType.Json,...u[p]});break;case"record":u[p]={type:ce.ConfigurationSchemaType.Json,...u[p]};break;default:u[p]={type:ce.ConfigurationSchemaType.Text,...u[p]};break}},convertToDotNotation:u=>u.replace(/-/g,"."),unFlattenObject:u=>{const p={};for(const m in u){const g=m.split(".");g.reduce((_,h,b)=>_[h]||(_[h]=isNaN(g[b+1])?g.length-1===b?u[m]:{}:[]),p)}return p},dismissField:(u,p,m="redis",g=!1)=>{const _=new RegExp("(?<=-redis-).*");if(typeof u!="object"||u===null)return u;m==="redis"?Object.keys(u).forEach(h=>{h.match(_)&&delete u[h]}):g?u[m]=null:delete u[m],Object.assign(u,p)},isObjectEmpty:u=>Object.keys(u).length===0,unsetNullForeignKey:(u,p)=>{["service.id","route.id","consumer.id","consumer_group.id"].indexOf(u)>-1&&p[u]===null&&(delete p[u],p[u.replace(".id","")]=null)},formatPluginFieldLabel:u=>e(u.replace(/_/g," ")),getTallestPluginCardHeight:u=>{let p=0;if(u.length)for(let m=0;m<u.length;m++){const g=u[m].$el;p=g.offsetHeight>p?g.offsetHeight:p}return p},getToggleVisibility:(u,p)=>{var m,g;if(u&&p){const _=(g=(m=window==null?void 0:window.getComputedStyle(u))==null?void 0:m.getPropertyValue("grid-template-columns"))==null?void 0:g.split(" ").length;return p>_}return!0}}}var er=(e=>(e.REDIS_CE="redis-ce",e.REDIS_EE="redis-ee",e))(er||{});const zl=[H.PluginGroup.AUTHENTICATION,H.PluginGroup.AI,H.PluginGroup.SECURITY,H.PluginGroup.TRAFFIC_CONTROL,H.PluginGroup.SERVERLESS,H.PluginGroup.ANALYTICS_AND_MONITORING,H.PluginGroup.TRANSFORMATIONS,H.PluginGroup.LOGGING,H.PluginGroup.DEPLOYMENT,H.PluginGroup.WEBSOCKET,H.PluginGroup.CUSTOM_PLUGINS],Hl={[H.PluginGroup.AUTHENTICATION]:!1,[H.PluginGroup.AI]:!1,[H.PluginGroup.SECURITY]:!1,[H.PluginGroup.TRAFFIC_CONTROL]:!1,[H.PluginGroup.SERVERLESS]:!1,[H.PluginGroup.ANALYTICS_AND_MONITORING]:!1,[H.PluginGroup.TRANSFORMATIONS]:!1,[H.PluginGroup.LOGGING]:!1,[H.PluginGroup.DEPLOYMENT]:!1,[H.PluginGroup.CUSTOM_PLUGINS]:!1};var Xt=(e=>(e.SERVICE="service_id",e.ROUTE="route_id",e.CONSUMER="consumer_id",e.CONSUMER_GROUP="consumer_group_id",e))(Xt||{});const Zt=e=>{const t=Object.fromEntries(e.fields.map(o=>Object.entries(o)[0]));return"id"in t||(t.id={}),t},Jt={label:"Tags",name:"tags",type:"input",inputType:"text",valueType:"array",valueArrayType:"string",placeholder:"Enter list of tags",help:"An optional set of strings for grouping and filtering, separated by commas.",hint:"e.g. tag1, tag2, tag3"},Nn={getColumnFields:Zt,tags:Jt,id:{label:"ID"},enabled:{label:"Enabled",indexed:!0,type:"boolean"},created_at:{label:"Created"},updated_at:{label:"Last updated"},fields:{arrayItems(e){const t=e.inputAttributes||{};return delete e.inputAttributes,{type:"array",itemContainerComponent:"FieldArrayItem",fieldClasses:"kong-form-array-field",fieldItemsClasses:"kong-form-array-field-item",newElementButtonLabelClasses:"kong-form-new-element-button-label",inputAttributes:{class:"form-control",style:{minWidth:"200px"},...t},removeElementButtonLabel:"remove",styleClasses:"kong-form-field-wrapper",inputType:"text",valueType:"array",valueArrayType:"string",...e}}}},Yl={fields:[{group:{hint:"The arbitrary group name to associate to the consumer."}},{tags:Jt}]},gm={fields:[{id:{uuid:!0,type:"string",auto:!0}},{created_at:{auto:!0,timestamp:!0,type:"integer"}},{consumer:{reference:"consumers",type:"foreign",on_delete:"cascade",required:!0}},{group:{required:!0,type:"string",hint:"The arbitrary group name to associate to the consumer."}},{tags:{elements:{type:"string",required:!0},type:"set"}}]},Wl={fields:[{username:{}},{password:{inputType:"password"}},{tags:Jt}]},hm={fields:[{id:{uuid:!0,type:"string",auto:!0}},{created_at:{auto:!0,timestamp:!0,type:"integer"}},{consumer:{reference:"consumers",type:"foreign",on_delete:"cascade",required:!0}},{username:{required:!0,type:"string",unique:!0}},{password:{type:"string",required:!0,encrypted:!0}},{tags:{elements:{type:"string",required:!0},type:"set"}}]},ym={class:"field-wrapper"},_m=n.defineComponent({__name:"KeyAuthIdentityRealms",props:{disabled:{type:Boolean},formOptions:{},model:{},schema:{},vfg:{},errors:{},hint:{}},emits:["modelUpdated"],setup(e,{expose:t,emit:o}){const r=e,i=o,{clearValidationErrors:a,value:l}=ve.composables.useAbstractFields({model:n.toRef(()=>r.model),schema:r.schema,formOptions:r.formOptions,emitModelUpdated:w=>{i("modelUpdated",w.value,w.model)}}),{i18n:s}=Oe.useI18n(),{t:c}=s,d={value:"current-cp",label:c("custom_field.key_auth_identity_realms.cp_label"),group:c("custom_field.key_auth_identity_realms.cp_group_label")},f=n.inject(ve.FORMS_CONFIG),{axiosInstance:u}=ce.useAxios(f==null?void 0:f.axiosRequestConfig),p=()=>{if((f==null?void 0:f.app)==="konnect"){const w=/\b(us|eu|au|me|in)\b/.exec((f==null?void 0:f.apiBaseUrl)||"");if(w)return{region:w[1]}}return{}},m=n.ref(!0),g=n.ref([d]),_=async()=>{if((f==null?void 0:f.app)==="konnect")try{m.value=!0;let w=`${f==null?void 0:f.apiBaseUrl}/v1/realms`;const y=[];do{const v=await u.get(w);v&&v.data&&v.data.data&&y.push(...v.data.data.map(k=>({value:k.id,label:k.name,group:c("custom_field.key_auth_identity_realms.realm_group_label")}))),w=v.data.meta.next?`${f==null?void 0:f.apiBaseUrl}${v.data.meta.next}`:null}while(w);g.value=[d,...y]}catch(w){console.error("Failed to fetch Konnect realms",w)}finally{m.value=!1}},h=n.computed(()=>l.value.map(w=>w.id||"current-cp")),b=w=>{const y=w.includes("current-cp")?[{scope:"cp",id:null}]:[],v=l.value.filter(({scope:T})=>T!=="cp").map(({id:T})=>T),k=w.filter(T=>T!=="current-cp"),O=(v.length!==k.length||v.some(T=>!k.includes(T))?k.filter(T=>!v.includes(T)):k).map(T=>({...p(),scope:"realm",id:T}));l.value=[...y,...O]};return n.watch(l,()=>{l.value||(l.value=[{scope:"cp",id:null}])}),n.onMounted(()=>{_()}),t({clearValidationErrors:a}),(w,y)=>{const v=n.resolveComponent("KMultiselect");return n.openBlock(),n.createElementBlock("div",ym,[n.createVNode(v,{items:g.value,loading:m.value,"model-value":h.value,"onUpdate:modelValue":b},null,8,["items","loading","model-value"])])}}}),we=(e,t)=>{const o=e.__vccOpts||e;for(const[r,i]of t)o[r]=i;return o},bm=we(_m,[["__scopeId","data-v-29b128ff"]]),Xl={fields:[{key:{submitWhenNull:!1,hint:`You can optionally set your own unique key to authenticate the
4
4
  client. If missing, it will be generated for you.`}},{tags:Jt},{ttl:{help:"Time-to-live value for data"}}]},wm=e=>{var t;return(e==null?void 0:e.app)==="kongManager"?{fieldsToDelete:["config-identity_realms"],shamefullyTransformPayload:({payload:o})=>{(e!=null&&e.credential&&typeof o.ttl!="number"||Number.isNaN(o.ttl))&&(o.ttl=0)}}:{"config-identity_realms":{component:((t=e==null?void 0:e.experimentalRenders)==null?void 0:t.keyAuthIdentityRealms)??!1?n.markRaw(bm):null}}},Em={fields:[{id:{uuid:!0,type:"string",auto:!0}},{created_at:{auto:!0,timestamp:!0,type:"integer"}},{consumer:{reference:"consumers",type:"foreign",on_delete:"cascade",required:!0}},{key:{auto:!0,hint:"If left empty, a key will be generated after saving this form.",required:!1,type:"string",unique:!0}},{tags:{elements:{type:"string",required:!0},type:"set"}},{ttl:{between:[0,1e8],description:"Time-to-live value for data",type:"number"}}]},Zl={fields:[{username:{hint:"The username to use in the HMAC Signature verification."}},{secret:{inputType:"text",submitWhenNull:!1,hint:`The secret to use in the HMAC Signature verification. Note that
@@ -42,7 +42,7 @@ Edge: ${e}
42
42
  Source: ${t}
43
43
  Target: ${o}`,EDGE_ORPHANED:e=>`Edge was orphaned (suddenly missing source or target) and has been removed
44
44
  Edge: ${e}`,EDGE_NOT_FOUND:e=>`Edge not found
45
- Edge: ${e}`,USEVUEFLOW_OPTIONS:()=>"The options parameter is deprecated and will be removed in the next major version. Please use the id parameter instead"};class Ge extends Error{constructor(t,...o){var r;super((r=xu[t])==null?void 0:r.call(xu,...o)),this.name="VueFlowError",this.code=t,this.args=o}}function Ja(e){return"clientX"in e}function $1(e){return"sourceEvent"in e}function xt(e,t){const o=Ja(e);let r,i;return o?(r=e.clientX,i=e.clientY):"touches"in e&&e.touches.length>0?(r=e.touches[0].clientX,i=e.touches[0].clientY):"changedTouches"in e&&e.changedTouches.length>0?(r=e.changedTouches[0].clientX,i=e.changedTouches[0].clientY):(r=0,i=0),{x:r-((t==null?void 0:t.left)??0),y:i-((t==null?void 0:t.top)??0)}}const ei=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function B1(e){var t,o;return{width:((t=e.dimensions)==null?void 0:t.width)??e.width??0,height:((o=e.dimensions)==null?void 0:o.height)??e.height??0}}function ti(e,t=[1,1]){return{x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}}const V1=()=>!0;function Qa(e){e==null||e.classList.remove("valid","connecting","vue-flow__handle-valid","vue-flow__handle-connecting")}function R1(e,t,o){const r=[],i={x:e.x-o,y:e.y-o,width:o*2,height:o*2};for(const a of t.values())Zr(i,Xr(a))>0&&r.push(a);return r}const D1=250;function M1(e,t,o,r){var i,a;let l=[],s=Number.POSITIVE_INFINITY;const c=R1(e,o,t+D1);for(const d of c){const f=[...((i=d.handleBounds)==null?void 0:i.source)??[],...((a=d.handleBounds)==null?void 0:a.target)??[]];for(const u of f){if(r.nodeId===u.nodeId&&r.type===u.type&&r.id===u.id)continue;const{x:p,y:m}=zn(d,u,u.position,!0),g=Math.sqrt((p-e.x)**2+(m-e.y)**2);g>t||(g<s?(l=[{...u,x:p,y:m}],s=g):g===s&&l.push({...u,x:p,y:m}))}}if(!l.length)return null;if(l.length>1){const d=r.type==="source"?"target":"source";return l.find(f=>f.type===d)??l[0]}return l[0]}function Au(e,{handle:t,connectionMode:o,fromNodeId:r,fromHandleId:i,fromType:a,doc:l,lib:s,flowId:c,isValidConnection:d=V1},f,u,p){const m=a==="target",g=t?l.querySelector(`.${s}-flow__handle[data-id="${c}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:_,y:h}=xt(e),b=l.elementFromPoint(_,h),w=b!=null&&b.classList.contains(`${s}-flow__handle`)?b:g,y={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const v=Tu(void 0,w),k=w.getAttribute("data-nodeid"),E=w.getAttribute("data-handleid"),R=w.classList.contains("connectable"),O=w.classList.contains("connectableend");if(!k||!v)return y;const T={source:m?k:r,sourceHandle:m?E:i,target:m?r:k,targetHandle:m?i:E};y.connection=T;const j=R&&O&&(o===Kt.Strict?m&&v==="source"||!m&&v==="target":k!==r||E!==i);y.isValid=j&&d(T,{nodes:u,edges:f,sourceNode:p(r),targetNode:p(k)}),y.toHandle=t}return y}function Tu(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function F1(e,t){let o=null;return t?o="valid":e&&!t&&(o="invalid"),o}function L1(e,t){let o=null;return t?o=!0:e&&!t&&(o=!1),o}function U1(e,t,o,r,i,a=!1){var l,s,c;const d=r.get(e);if(!d)return null;const f=i===Kt.Strict?(l=d.handleBounds)==null?void 0:l[t]:[...((s=d.handleBounds)==null?void 0:s.source)??[],...((c=d.handleBounds)==null?void 0:c.target)??[]],u=(o?f==null?void 0:f.find(p=>p.id===o):f==null?void 0:f[0])??null;return u&&a?{...u,...zn(d,u,u.position,!0)}:u}const el={[ge.Left]:ge.Right,[ge.Right]:ge.Left,[ge.Top]:ge.Bottom,[ge.Bottom]:ge.Top},K1=["production","prod"];function ni(e,...t){Iu()&&console.warn(`[Vue Flow]: ${e}`,...t)}function Iu(){return!K1.includes(process.env.NODE_ENV||"")}function Pu(e,t,o,r,i){const a=t.querySelectorAll(`.vue-flow__handle.${e}`);return a!=null&&a.length?Array.from(a).map(l=>{const s=l.getBoundingClientRect();return{id:l.getAttribute("data-handleid"),type:e,nodeId:i,position:l.getAttribute("data-handlepos"),x:(s.left-o.left)/r,y:(s.top-o.top)/r,...Jr(l)}}):null}function tl(e,t,o,r,i,a=!1,l){i.value=!1,e.selected?(a||e.selected&&t)&&(r([e]),n.nextTick(()=>{l.blur()})):o([e])}function Me(e){return typeof n.unref(e)<"u"}function j1(e,t,o,r){if(!e||!e.source||!e.target)return o(new Ge(De.EDGE_INVALID,(e==null?void 0:e.id)??"[ID UNKNOWN]")),!1;let i;return jt(e)?i=e:i={...e,id:uu(e)},i=cu(i,void 0,r),C1(i,t)?!1:i}function G1(e,t,o,r,i){if(!t.source||!t.target)return i(new Ge(De.EDGE_INVALID,e.id)),!1;if(!o)return i(new Ge(De.EDGE_NOT_FOUND,e.id)),!1;const{id:a,...l}=e;return{...l,id:r?uu(t):a,source:t.source,target:t.target,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle}}function Ou(e,t,o){const r={},i=[];for(let a=0;a<e.length;++a){const l=e[a];if(!gn(l)){o(new Ge(De.NODE_INVALID,l==null?void 0:l.id)||`[ID UNKNOWN|INDEX ${a}]`);continue}const s=w1(l,t(l.id),l.parentNode);l.parentNode&&(r[l.parentNode]=!0),i[a]=s}for(const a of i){const l=t(a.parentNode)||i.find(s=>s.id===a.parentNode);a.parentNode&&!l&&o(new Ge(De.NODE_MISSING_PARENT,a.id,a.parentNode)),(a.parentNode||r[a.id])&&(r[a.id]&&(a.isParent=!0),l&&(l.isParent=!0))}return i}function $u(e,t,o,r,i,a){let l=i;const s=r.get(l)||new Map;r.set(l,s.set(o,t)),l=`${i}-${e}`;const c=r.get(l)||new Map;if(r.set(l,c.set(o,t)),a){l=`${i}-${e}-${a}`;const d=r.get(l)||new Map;r.set(l,d.set(o,t))}}function nl(e,t,o){e.clear();for(const r of o){const{source:i,target:a,sourceHandle:l=null,targetHandle:s=null}=r,c={edgeId:r.id,source:i,target:a,sourceHandle:l,targetHandle:s},d=`${i}-${l}--${a}-${s}`,f=`${a}-${s}--${i}-${l}`;$u("source",c,f,e,i,l),$u("target",c,d,e,a,s)}}function Bu(e,t){if(e.size!==t.size)return!1;for(const o of e)if(!t.has(o))return!1;return!0}function ol(e,t,o,r,i,a,l,s){const c=[];for(const d of e){const f=jt(d)?d:j1(d,s,i,a);if(!f)continue;const u=o(f.source),p=o(f.target);if(!u||!p){i(new Ge(De.EDGE_SOURCE_TARGET_MISSING,f.id,f.source,f.target));continue}if(!u){i(new Ge(De.EDGE_SOURCE_MISSING,f.id,f.source));continue}if(!p){i(new Ge(De.EDGE_TARGET_MISSING,f.id,f.target));continue}if(t&&!t(f,{edges:s,nodes:l,sourceNode:u,targetNode:p})){i(new Ge(De.EDGE_INVALID,f.id));continue}const m=r(f.id);c.push({...cu(f,m,a),sourceNode:u,targetNode:p})}return c}const Vu=Symbol("vueFlow"),Ru=Symbol("nodeId"),Du=Symbol("nodeRef"),q1=Symbol("edgeId"),z1=Symbol("edgeRef"),oi=Symbol("slots");function Mu(e){const{vueFlowRef:t,snapToGrid:o,snapGrid:r,noDragClassName:i,nodes:a,nodeExtent:l,nodeDragThreshold:s,viewport:c,autoPanOnNodeDrag:d,autoPanSpeed:f,nodesDraggable:u,panBy:p,findNode:m,multiSelectionActive:g,nodesSelectionActive:_,selectNodesOnDrag:h,removeSelectedElements:b,addSelectedNodes:w,updateNodePositions:y,emits:v}=Te(),{onStart:k,onDrag:E,onStop:R,onClick:O,el:T,disabled:q,id:j,selectable:A,dragHandle:I}=e,C=n.shallowRef(!1);let D=[],P,L=null,F={x:void 0,y:void 0},B={x:0,y:0},$=null,G=!1,ee=0,re=!1;const J=W1(),ne=({x:de,y:Y})=>{F={x:de,y:Y};let te=!1;if(D=D.map(N=>{const S={x:de-N.distance.x,y:Y-N.distance.y},{computedPosition:x}=Za(N,o.value?ti(S,r.value):S,v.error,l.value,N.parentNode?m(N.parentNode):void 0);return te=te||N.position.x!==x.x||N.position.y!==x.y,N.position=x,N}),!!te&&(y(D,!0,!0),C.value=!0,$)){const[N,S]=Xa({id:j,dragItems:D,findNode:m});E({event:$,node:N,nodes:S})}},z=()=>{if(!L)return;const[de,Y]=bu(B,L,f.value);if(de!==0||Y!==0){const te={x:(F.x??0)-de/c.value.zoom,y:(F.y??0)-Y/c.value.zoom};p({x:de,y:Y})&&ne(te)}ee=requestAnimationFrame(z)},Z=(de,Y)=>{G=!0;const te=m(j);!h.value&&!g.value&&te&&(te.selected||b()),te&&n.toValue(A)&&h.value&&tl(te,g.value,w,b,_,!1,Y);const N=J(de.sourceEvent);if(F=N,D=x1(a.value,u.value,N,m,j),D.length){const[S,x]=Xa({id:j,dragItems:D,findNode:m});k({event:de.sourceEvent,node:S,nodes:x})}},ie=(de,Y)=>{var te;de.sourceEvent.type==="touchmove"&&de.sourceEvent.touches.length>1||(s.value===0&&Z(de,Y),F=J(de.sourceEvent),L=((te=t.value)==null?void 0:te.getBoundingClientRect())||null,B=xt(de.sourceEvent,L))},oe=(de,Y)=>{const te=J(de.sourceEvent);if(!re&&G&&d.value&&(re=!0,z()),!G){const N=te.xSnapped-(F.x??0),S=te.ySnapped-(F.y??0);Math.sqrt(N*N+S*S)>s.value&&Z(de,Y)}(F.x!==te.xSnapped||F.y!==te.ySnapped)&&D.length&&G&&($=de.sourceEvent,B=xt(de.sourceEvent,L),ne(te))},ue=de=>{let Y=!1;if(!G&&!C.value&&!g.value){const te=de.sourceEvent,N=J(te),S=N.xSnapped-(F.x??0),x=N.ySnapped-(F.y??0),V=Math.sqrt(S*S+x*x);V!==0&&V<=s.value&&(O==null||O(te),Y=!0)}if(D.length&&!Y){y(D,!1,!1);const[te,N]=Xa({id:j,dragItems:D,findNode:m});R({event:de.sourceEvent,node:te,nodes:N})}D=[],C.value=!1,re=!1,G=!1,F={x:void 0,y:void 0},cancelAnimationFrame(ee)};return n.watch([()=>n.toValue(q),T],([de,Y],te,N)=>{if(Y){const S=gt(Y);de||(P=bv().on("start",x=>ie(x,Y)).on("drag",x=>oe(x,Y)).on("end",x=>ue(x)).filter(x=>{const V=x.target,M=n.toValue(I);return!x.button&&(!i.value||!vu(V,`.${i.value}`,Y)&&(!M||vu(V,M,Y)))}),S.call(P)),N(()=>{S.on(".drag",null),P&&(P.on("start",null),P.on("drag",null),P.on("end",null))})}}),C}function H1(){return{doubleClick:me(),click:me(),mouseEnter:me(),mouseMove:me(),mouseLeave:me(),contextMenu:me(),updateStart:me(),update:me(),updateEnd:me()}}function Y1(e,t){const o=H1();return o.doubleClick.on(r=>{var i,a;t.edgeDoubleClick(r),(a=(i=e.events)==null?void 0:i.doubleClick)==null||a.call(i,r)}),o.click.on(r=>{var i,a;t.edgeClick(r),(a=(i=e.events)==null?void 0:i.click)==null||a.call(i,r)}),o.mouseEnter.on(r=>{var i,a;t.edgeMouseEnter(r),(a=(i=e.events)==null?void 0:i.mouseEnter)==null||a.call(i,r)}),o.mouseMove.on(r=>{var i,a;t.edgeMouseMove(r),(a=(i=e.events)==null?void 0:i.mouseMove)==null||a.call(i,r)}),o.mouseLeave.on(r=>{var i,a;t.edgeMouseLeave(r),(a=(i=e.events)==null?void 0:i.mouseLeave)==null||a.call(i,r)}),o.contextMenu.on(r=>{var i,a;t.edgeContextMenu(r),(a=(i=e.events)==null?void 0:i.contextMenu)==null||a.call(i,r)}),o.updateStart.on(r=>{var i,a;t.edgeUpdateStart(r),(a=(i=e.events)==null?void 0:i.updateStart)==null||a.call(i,r)}),o.update.on(r=>{var i,a;t.edgeUpdate(r),(a=(i=e.events)==null?void 0:i.update)==null||a.call(i,r)}),o.updateEnd.on(r=>{var i,a;t.edgeUpdateEnd(r),(a=(i=e.events)==null?void 0:i.updateEnd)==null||a.call(i,r)}),Object.entries(o).reduce((r,[i,a])=>(r.emit[i]=a.trigger,r.on[i]=a.on,r),{emit:{},on:{}})}function W1(){const{viewport:e,snapGrid:t,snapToGrid:o,vueFlowRef:r}=Te();return i=>{var a;const l=((a=r.value)==null?void 0:a.getBoundingClientRect())??{left:0,top:0},s=$1(i)?i.sourceEvent:i,{x:c,y:d}=xt(s,l),f=Bo({x:c,y:d},e.value),{x:u,y:p}=o.value?ti(f,t.value):f;return{xSnapped:u,ySnapped:p,...f}}}function ri(){return!0}function Fu({handleId:e,nodeId:t,type:o,isValidConnection:r,edgeUpdaterType:i,onEdgeUpdate:a,onEdgeUpdateEnd:l}){const{id:s,vueFlowRef:c,connectionMode:d,connectionRadius:f,connectOnClick:u,connectionClickStartHandle:p,nodesConnectable:m,autoPanOnConnect:g,autoPanSpeed:_,findNode:h,panBy:b,startConnection:w,updateConnection:y,endConnection:v,emits:k,viewport:E,edges:R,nodes:O,isValidConnection:T,nodeLookup:q}=Te();let j=null,A=!1,I=null;function C(P){var L;const F=n.toValue(o)==="target",B=Ja(P),$=su(P.target);if(B&&P.button===0||!B){let G=function(W){N=xt(W,de),ne=M1(Bo(N,E.value,!1,[1,1]),f.value,q.value,V),S||(x(),S=!0);const K=Au(W,{handle:ne,connectionMode:d.value,fromNodeId:n.toValue(t),fromHandleId:n.toValue(e),fromType:F?"target":"source",isValidConnection:J,doc:$,lib:"vue",flowId:s,nodeLookup:q.value},R.value,O.value,h);I=K.handleDomNode,j=K.connection,A=L1(!!ne,K.isValid);const le={...U,isValid:A,to:K.toHandle&&A?Ya({x:K.toHandle.x,y:K.toHandle.y},E.value):N,toHandle:K.toHandle,toPosition:A&&K.toHandle?K.toHandle.position:el[V.position],toNode:K.toHandle?q.value.get(K.toHandle.nodeId):null};if(!(A&&ne&&(U!=null&&U.toHandle)&&le.toHandle&&U.toHandle.type===le.toHandle.type&&U.toHandle.nodeId===le.toHandle.nodeId&&U.toHandle.id===le.toHandle.id&&U.to.x===le.to.x&&U.to.y===le.to.y)){if(y(ne&&A?Ya({x:ne.x,y:ne.y},E.value):N,K.toHandle,F1(!!ne,A)),U=le,!ne&&!A&&!I)return Qa(te);j&&j.source!==j.target&&I&&(Qa(te),te=I,I.classList.add("connecting","vue-flow__handle-connecting"),I.classList.toggle("valid",!!A),I.classList.toggle("vue-flow__handle-valid",!!A))}},ee=function(W){(ne||I)&&j&&A&&(a?a(W,j):k.connect(j)),k.connectEnd(W),i&&(l==null||l(W)),Qa(te),cancelAnimationFrame(z),v(W),S=!1,A=!1,j=null,I=null,$.removeEventListener("mousemove",G),$.removeEventListener("mouseup",ee),$.removeEventListener("touchmove",G),$.removeEventListener("touchend",ee)};const re=h(n.toValue(t));let J=n.toValue(r)||T.value||ri;!J&&re&&(J=(F?re.isValidSourcePos:re.isValidTargetPos)||ri);let ne,z=0;const{x:Z,y:ie}=xt(P),oe=$==null?void 0:$.elementFromPoint(Z,ie),ue=Tu(n.toValue(i),oe),de=(L=c.value)==null?void 0:L.getBoundingClientRect();if(!de||!ue)return;const Y=U1(n.toValue(t),ue,n.toValue(e),q.value,d.value);if(!Y)return;let te,N=xt(P,de),S=!1;const x=()=>{if(!g.value)return;const[W,K]=bu(N,de,_.value);b({x:W,y:K}),z=requestAnimationFrame(x)},V={...Y,nodeId:n.toValue(t),type:ue,position:Y.position},M=q.value.get(n.toValue(t)),Q={inProgress:!0,isValid:null,from:zn(M,V,ge.Left,!0),fromHandle:V,fromPosition:V.position,fromNode:M,to:N,toHandle:null,toPosition:el[V.position],toNode:null};w({nodeId:n.toValue(t),id:n.toValue(e),type:ue,position:(oe==null?void 0:oe.getAttribute("data-handlepos"))||ge.Top,...N},{x:Z-de.left,y:ie-de.top}),k.connectStart({event:P,nodeId:n.toValue(t),handleId:n.toValue(e),handleType:ue});let U=Q;$.addEventListener("mousemove",G),$.addEventListener("mouseup",ee),$.addEventListener("touchmove",G),$.addEventListener("touchend",ee)}}function D(P){var L,F;if(!u.value)return;const B=n.toValue(o)==="target";if(!p.value){k.clickConnectStart({event:P,nodeId:n.toValue(t),handleId:n.toValue(e)}),w({nodeId:n.toValue(t),type:n.toValue(o),id:n.toValue(e),position:ge.Top,...xt(P)},void 0,!0);return}let $=n.toValue(r)||T.value||ri;const G=h(n.toValue(t));if(!$&&G&&($=(B?G.isValidSourcePos:G.isValidTargetPos)||ri),G&&(typeof G.connectable>"u"?m.value:G.connectable)===!1)return;const ee=su(P.target),re=Au(P,{handle:{nodeId:n.toValue(t),id:n.toValue(e),type:n.toValue(o),position:ge.Top,...xt(P)},connectionMode:d.value,fromNodeId:p.value.nodeId,fromHandleId:p.value.id??null,fromType:p.value.type,isValidConnection:$,doc:ee,lib:"vue",flowId:s,nodeLookup:q.value},R.value,O.value,h),J=((L=re.connection)==null?void 0:L.source)===((F=re.connection)==null?void 0:F.target);re.isValid&&re.connection&&!J&&k.connect(re.connection),k.clickConnectEnd(P),v(P,!0)}return{handlePointerDown:C,handleClick:D}}function X1(){return n.inject(Ru,"")}function Lu(e){const t=e??X1()??"",o=n.inject(Du,n.ref(null)),{findNode:r,edges:i,emits:a}=Te(),l=r(t);return l||a.error(new Ge(De.NODE_NOT_FOUND,t)),{id:t,nodeEl:o,node:l,parentNode:n.computed(()=>r(l.parentNode)),connectedEdges:n.computed(()=>gu([l],i.value))}}function Z1(){return{doubleClick:me(),click:me(),mouseEnter:me(),mouseMove:me(),mouseLeave:me(),contextMenu:me(),dragStart:me(),drag:me(),dragStop:me()}}function J1(e,t){const o=Z1();return o.doubleClick.on(r=>{var i,a;t.nodeDoubleClick(r),(a=(i=e.events)==null?void 0:i.doubleClick)==null||a.call(i,r)}),o.click.on(r=>{var i,a;t.nodeClick(r),(a=(i=e.events)==null?void 0:i.click)==null||a.call(i,r)}),o.mouseEnter.on(r=>{var i,a;t.nodeMouseEnter(r),(a=(i=e.events)==null?void 0:i.mouseEnter)==null||a.call(i,r)}),o.mouseMove.on(r=>{var i,a;t.nodeMouseMove(r),(a=(i=e.events)==null?void 0:i.mouseMove)==null||a.call(i,r)}),o.mouseLeave.on(r=>{var i,a;t.nodeMouseLeave(r),(a=(i=e.events)==null?void 0:i.mouseLeave)==null||a.call(i,r)}),o.contextMenu.on(r=>{var i,a;t.nodeContextMenu(r),(a=(i=e.events)==null?void 0:i.contextMenu)==null||a.call(i,r)}),o.dragStart.on(r=>{var i,a;t.nodeDragStart(r),(a=(i=e.events)==null?void 0:i.dragStart)==null||a.call(i,r)}),o.drag.on(r=>{var i,a;t.nodeDrag(r),(a=(i=e.events)==null?void 0:i.drag)==null||a.call(i,r)}),o.dragStop.on(r=>{var i,a;t.nodeDragStop(r),(a=(i=e.events)==null?void 0:i.dragStop)==null||a.call(i,r)}),Object.entries(o).reduce((r,[i,a])=>(r.emit[i]=a.trigger,r.on[i]=a.on,r),{emit:{},on:{}})}function Uu(){const{getSelectedNodes:e,nodeExtent:t,updateNodePositions:o,findNode:r,snapGrid:i,snapToGrid:a,nodesDraggable:l,emits:s}=Te();return(c,d=!1)=>{const f=a.value?i.value[0]:5,u=a.value?i.value[1]:5,p=d?4:1,m=c.x*f*p,g=c.y*u*p,_=[];for(const h of e.value)if(h.draggable||l&&typeof h.draggable>"u"){const b={x:h.computedPosition.x+m,y:h.computedPosition.y+g},{computedPosition:w}=Za(h,b,s.error,t.value,h.parentNode?r(h.parentNode):void 0);_.push({id:h.id,position:w,from:h.position,distance:{x:c.x,y:c.y},dimensions:h.dimensions})}o(_,!0,!1)}}const rl=.1,Q1=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2;function zt(){return ni("Viewport not initialized yet."),Promise.resolve(!1)}const eS={zoomIn:zt,zoomOut:zt,zoomTo:zt,fitView:zt,setCenter:zt,fitBounds:zt,project:e=>e,screenToFlowCoordinate:e=>e,flowToScreenCoordinate:e=>e,setViewport:zt,setTransform:zt,getViewport:()=>({x:0,y:0,zoom:1}),getTransform:()=>({x:0,y:0,zoom:1}),viewportInitialized:!1};function tS(e){function t(r,i){return new Promise(a=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.interpolate((i==null?void 0:i.interpolate)==="linear"?No:Fr).scaleBy(il(e.d3Selection,i==null?void 0:i.duration,i==null?void 0:i.ease,()=>{a(!0)}),r):a(!1)})}function o(r,i,a,l){return new Promise(s=>{var c;const{x:d,y:f}=lu({x:-r,y:-i},e.translateExtent),u=Gn.translate(-d,-f).scale(a);e.d3Selection&&e.d3Zoom?(c=e.d3Zoom)==null||c.interpolate((l==null?void 0:l.interpolate)==="linear"?No:Fr).transform(il(e.d3Selection,l==null?void 0:l.duration,l==null?void 0:l.ease,()=>{s(!0)}),u):s(!1)})}return n.computed(()=>e.d3Zoom&&e.d3Selection&&e.dimensions.width&&e.dimensions.height?{viewportInitialized:!0,zoomIn:i=>t(1.2,i),zoomOut:i=>t(1/1.2,i),zoomTo:(i,a)=>new Promise(l=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.interpolate((a==null?void 0:a.interpolate)==="linear"?No:Fr).scaleTo(il(e.d3Selection,a==null?void 0:a.duration,a==null?void 0:a.ease,()=>{l(!0)}),i):l(!1)}),setViewport:(i,a)=>o(i.x,i.y,i.zoom,a),setTransform:(i,a)=>o(i.x,i.y,i.zoom,a),getViewport:()=>({x:e.viewport.x,y:e.viewport.y,zoom:e.viewport.zoom}),getTransform:()=>({x:e.viewport.x,y:e.viewport.y,zoom:e.viewport.zoom}),fitView:(i={padding:rl,includeHiddenNodes:!1,duration:0})=>{var a,l;const s=[];for(const p of e.nodes)p.dimensions.width&&p.dimensions.height&&((i==null?void 0:i.includeHiddenNodes)||!p.hidden)&&(!((a=i.nodes)!=null&&a.length)||(l=i.nodes)!=null&&l.length&&i.nodes.includes(p.id))&&s.push(p);if(!s.length)return Promise.resolve(!1);const c=pu(s),{x:d,y:f,zoom:u}=hu(c,e.dimensions.width,e.dimensions.height,i.minZoom??e.minZoom,i.maxZoom??e.maxZoom,i.padding??rl,i.offset);return o(d,f,u,i)},setCenter:(i,a,l)=>{const s=typeof(l==null?void 0:l.zoom)<"u"?l.zoom:e.maxZoom,c=e.dimensions.width/2-i*s,d=e.dimensions.height/2-a*s;return o(c,d,s,l)},fitBounds:(i,a={padding:rl})=>{const{x:l,y:s,zoom:c}=hu(i,e.dimensions.width,e.dimensions.height,e.minZoom,e.maxZoom,a.padding);return o(l,s,c,a)},project:i=>Bo(i,e.viewport,e.snapToGrid,e.snapGrid),screenToFlowCoordinate:i=>{if(e.vueFlowRef){const{x:a,y:l}=e.vueFlowRef.getBoundingClientRect(),s={x:i.x-a,y:i.y-l};return Bo(s,e.viewport,e.snapToGrid,e.snapGrid)}return{x:0,y:0}},flowToScreenCoordinate:i=>{if(e.vueFlowRef){const{x:a,y:l}=e.vueFlowRef.getBoundingClientRect(),s={x:i.x+a,y:i.y+l};return Ya(s,e.viewport)}return{x:0,y:0}}}:eS)}function il(e,t=0,o=Q1,r=()=>{}){const i=typeof t=="number"&&t>0;return i||r(),i?e.transition().duration(t).ease(o).on("end",r):e}function nS(e,t,o){const r=n.effectScope(!0);return r.run(()=>{const i=()=>{r.run(()=>{let _,h,b=!!(o.nodes.value.length||o.edges.value.length);_=Fn([e.modelValue,()=>{var w,y;return(y=(w=e.modelValue)==null?void 0:w.value)==null?void 0:y.length}],([w])=>{w&&Array.isArray(w)&&(h==null||h.pause(),o.setElements(w),!h&&!b&&w.length?b=!0:h==null||h.resume())}),h=Fn([o.nodes,o.edges,()=>o.edges.value.length,()=>o.nodes.value.length],([w,y])=>{var v;(v=e.modelValue)!=null&&v.value&&Array.isArray(e.modelValue.value)&&(_==null||_.pause(),e.modelValue.value=[...w,...y],n.nextTick(()=>{_==null||_.resume()}))},{immediate:b}),n.onScopeDispose(()=>{_==null||_.stop(),h==null||h.stop()})})},a=()=>{r.run(()=>{let _,h,b=!!o.nodes.value.length;_=Fn([e.nodes,()=>{var w,y;return(y=(w=e.nodes)==null?void 0:w.value)==null?void 0:y.length}],([w])=>{w&&Array.isArray(w)&&(h==null||h.pause(),o.setNodes(w),!h&&!b&&w.length?b=!0:h==null||h.resume())}),h=Fn([o.nodes,()=>o.nodes.value.length],([w])=>{var y;(y=e.nodes)!=null&&y.value&&Array.isArray(e.nodes.value)&&(_==null||_.pause(),e.nodes.value=[...w],n.nextTick(()=>{_==null||_.resume()}))},{immediate:b}),n.onScopeDispose(()=>{_==null||_.stop(),h==null||h.stop()})})},l=()=>{r.run(()=>{let _,h,b=!!o.edges.value.length;_=Fn([e.edges,()=>{var w,y;return(y=(w=e.edges)==null?void 0:w.value)==null?void 0:y.length}],([w])=>{w&&Array.isArray(w)&&(h==null||h.pause(),o.setEdges(w),!h&&!b&&w.length?b=!0:h==null||h.resume())}),h=Fn([o.edges,()=>o.edges.value.length],([w])=>{var y;(y=e.edges)!=null&&y.value&&Array.isArray(e.edges.value)&&(_==null||_.pause(),e.edges.value=[...w],n.nextTick(()=>{_==null||_.resume()}))},{immediate:b}),n.onScopeDispose(()=>{_==null||_.stop(),h==null||h.stop()})})},s=()=>{r.run(()=>{n.watch(()=>t.maxZoom,()=>{t.maxZoom&&Me(t.maxZoom)&&o.setMaxZoom(t.maxZoom)},{immediate:!0})})},c=()=>{r.run(()=>{n.watch(()=>t.minZoom,()=>{t.minZoom&&Me(t.minZoom)&&o.setMinZoom(t.minZoom)},{immediate:!0})})},d=()=>{r.run(()=>{n.watch(()=>t.translateExtent,()=>{t.translateExtent&&Me(t.translateExtent)&&o.setTranslateExtent(t.translateExtent)},{immediate:!0})})},f=()=>{r.run(()=>{n.watch(()=>t.nodeExtent,()=>{t.nodeExtent&&Me(t.nodeExtent)&&o.setNodeExtent(t.nodeExtent)},{immediate:!0})})},u=()=>{r.run(()=>{n.watch(()=>t.applyDefault,()=>{Me(t.applyDefault)&&(o.applyDefault.value=t.applyDefault)},{immediate:!0})})},p=()=>{r.run(()=>{const _=async h=>{let b=h;typeof t.autoConnect=="function"&&(b=await t.autoConnect(h)),b!==!1&&o.addEdges([b])};n.watch(()=>t.autoConnect,()=>{Me(t.autoConnect)&&(o.autoConnect.value=t.autoConnect)},{immediate:!0}),n.watch(o.autoConnect,(h,b,w)=>{h?o.onConnect(_):o.hooks.value.connect.off(_),w(()=>{o.hooks.value.connect.off(_)})},{immediate:!0})})},m=()=>{const _=["id","modelValue","translateExtent","nodeExtent","edges","nodes","maxZoom","minZoom","applyDefault","autoConnect"];for(const h of Object.keys(t)){const b=h;if(!_.includes(b)){const w=n.toRef(()=>t[b]),y=o[b];n.isRef(y)&&r.run(()=>{n.watch(w,v=>{Me(v)&&(y.value=v)},{immediate:!0})})}}};(()=>{i(),a(),l(),c(),s(),d(),f(),u(),p(),m()})()}),()=>r.stop()}function oS(){return{edgesChange:me(),nodesChange:me(),nodeDoubleClick:me(),nodeClick:me(),nodeMouseEnter:me(),nodeMouseMove:me(),nodeMouseLeave:me(),nodeContextMenu:me(),nodeDragStart:me(),nodeDrag:me(),nodeDragStop:me(),nodesInitialized:me(),miniMapNodeClick:me(),miniMapNodeDoubleClick:me(),miniMapNodeMouseEnter:me(),miniMapNodeMouseMove:me(),miniMapNodeMouseLeave:me(),connect:me(),connectStart:me(),connectEnd:me(),clickConnectStart:me(),clickConnectEnd:me(),paneReady:me(),init:me(),move:me(),moveStart:me(),moveEnd:me(),selectionDragStart:me(),selectionDrag:me(),selectionDragStop:me(),selectionContextMenu:me(),selectionStart:me(),selectionEnd:me(),viewportChangeStart:me(),viewportChange:me(),viewportChangeEnd:me(),paneScroll:me(),paneClick:me(),paneContextMenu:me(),paneMouseEnter:me(),paneMouseMove:me(),paneMouseLeave:me(),edgeContextMenu:me(),edgeMouseEnter:me(),edgeMouseMove:me(),edgeMouseLeave:me(),edgeDoubleClick:me(),edgeClick:me(),edgeUpdateStart:me(),edgeUpdate:me(),edgeUpdateEnd:me(),updateNodeInternals:me(),error:me(e=>ni(e.message))}}function rS(e,t){n.onBeforeMount(()=>{for(const[o,r]of Object.entries(t.value)){const i=a=>{e(o,a)};r.fns.add(i),xr(()=>{r.off(i)})}})}function Ku(){return{vueFlowRef:null,viewportRef:null,nodes:[],edges:[],connectionLookup:new Map,nodeTypes:{},edgeTypes:{},initialized:!1,dimensions:{width:0,height:0},viewport:{x:0,y:0,zoom:1},d3Zoom:null,d3Selection:null,d3ZoomHandler:null,minZoom:.5,maxZoom:2,translateExtent:[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],nodeExtent:[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],selectionMode:za.Full,paneDragging:!1,preventScrolling:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!0,panOnScroll:!1,panOnScrollSpeed:.5,panOnScrollMode:Po.Free,paneClickDistance:0,panOnDrag:!0,edgeUpdaterRadius:10,onlyRenderVisibleElements:!1,defaultViewport:{x:0,y:0,zoom:1},nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,defaultMarkerColor:"#b1b1b7",connectionLineStyle:{},connectionLineType:null,connectionLineOptions:{type:pn.Bezier,style:{}},connectionMode:Kt.Loose,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectionPosition:{x:Number.NaN,y:Number.NaN},connectionRadius:20,connectOnClick:!0,connectionStatus:null,isValidConnection:null,snapGrid:[15,15],snapToGrid:!1,edgesUpdatable:!1,edgesFocusable:!0,nodesFocusable:!0,nodesConnectable:!0,nodesDraggable:!0,nodeDragThreshold:1,elementsSelectable:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,selectionKeyCode:"Shift",multiSelectionKeyCode:ei()?"Meta":"Control",zoomActivationKeyCode:ei()?"Meta":"Control",deleteKeyCode:"Backspace",panActivationKeyCode:"Space",hooks:oS(),applyDefault:!0,autoConnect:!1,fitViewOnInit:!1,fitViewOnInitDone:!1,noDragClassName:"nodrag",noWheelClassName:"nowheel",noPanClassName:"nopan",defaultEdgeOptions:void 0,elevateEdgesOnSelect:!1,elevateNodesOnSelect:!0,autoPanOnNodeDrag:!0,autoPanOnConnect:!0,autoPanSpeed:15,disableKeyboardA11y:!1,ariaLiveMessage:""}}const iS=["id","vueFlowRef","viewportRef","initialized","modelValue","nodes","edges","maxZoom","minZoom","translateExtent","hooks","defaultEdgeOptions"];function aS(e,t,o){const r=tS(e),i=N=>{const S=N??[];e.hooks.updateNodeInternals.trigger(S)},a=N=>k1(N,e.nodes,e.edges),l=N=>E1(N,e.nodes,e.edges),s=N=>gu(N,e.edges),c=({id:N,type:S,nodeId:x})=>{var V;return Array.from(((V=e.connectionLookup.get(`${x}-${S}-${N??null}`))==null?void 0:V.values())??[])},d=N=>{if(N)return t.value.get(N)},f=N=>{if(N)return o.value.get(N)},u=(N,S,x)=>{var V,M;const X=[];for(const Q of N){const U={id:Q.id,type:"position",dragging:x,from:Q.from};if(S&&(U.position=Q.position,Q.parentNode)){const W=d(Q.parentNode);U.position={x:U.position.x-(((V=W==null?void 0:W.computedPosition)==null?void 0:V.x)??0),y:U.position.y-(((M=W==null?void 0:W.computedPosition)==null?void 0:M.y)??0)}}X.push(U)}X!=null&&X.length&&e.hooks.nodesChange.trigger(X)},p=N=>{if(!e.vueFlowRef)return;const S=e.vueFlowRef.querySelector(".vue-flow__transformationpane");if(!S)return;const x=window.getComputedStyle(S),{m22:V}=new window.DOMMatrixReadOnly(x.transform),M=[];for(const X of N){const Q=X,U=d(Q.id);if(U){const W=Jr(Q.nodeElement);if(!!(W.width&&W.height&&(U.dimensions.width!==W.width||U.dimensions.height!==W.height||Q.forceUpdate))){const le=Q.nodeElement.getBoundingClientRect();U.dimensions=W,U.handleBounds.source=Pu("source",Q.nodeElement,le,V,U.id),U.handleBounds.target=Pu("target",Q.nodeElement,le,V,U.id),M.push({id:U.id,type:"dimensions",dimensions:W})}}}!e.fitViewOnInitDone&&e.fitViewOnInit&&r.value.fitView().then(()=>{e.fitViewOnInitDone=!0}),M.length&&e.hooks.nodesChange.trigger(M)},m=(N,S)=>{const x=new Set,V=new Set;for(const Q of N)gn(Q)?x.add(Q.id):jt(Q)&&V.add(Q.id);const M=qt(t.value,x,!0),X=qt(o.value,V);if(e.multiSelectionActive){for(const Q of x)M.push(Gt(Q,S));for(const Q of V)X.push(Gt(Q,S))}M.length&&e.hooks.nodesChange.trigger(M),X.length&&e.hooks.edgesChange.trigger(X)},g=N=>{if(e.multiSelectionActive){const S=N.map(x=>Gt(x.id,!0));e.hooks.nodesChange.trigger(S);return}e.hooks.nodesChange.trigger(qt(t.value,new Set(N.map(S=>S.id)),!0)),e.hooks.edgesChange.trigger(qt(o.value))},_=N=>{if(e.multiSelectionActive){const S=N.map(x=>Gt(x.id,!0));e.hooks.edgesChange.trigger(S);return}e.hooks.edgesChange.trigger(qt(o.value,new Set(N.map(S=>S.id)))),e.hooks.nodesChange.trigger(qt(t.value,new Set,!0))},h=N=>{m(N,!0)},b=N=>{const x=(N||e.nodes).map(V=>(V.selected=!1,Gt(V.id,!1)));e.hooks.nodesChange.trigger(x)},w=N=>{const x=(N||e.edges).map(V=>(V.selected=!1,Gt(V.id,!1)));e.hooks.edgesChange.trigger(x)},y=N=>{if(!N||!N.length)return m([],!1);const S=N.reduce((x,V)=>{const M=Gt(V.id,!1);return gn(V)?x.nodes.push(M):x.edges.push(M),x},{nodes:[],edges:[]});S.nodes.length&&e.hooks.nodesChange.trigger(S.nodes),S.edges.length&&e.hooks.edgesChange.trigger(S.edges)},v=N=>{var S;(S=e.d3Zoom)==null||S.scaleExtent([N,e.maxZoom]),e.minZoom=N},k=N=>{var S;(S=e.d3Zoom)==null||S.scaleExtent([e.minZoom,N]),e.maxZoom=N},E=N=>{var S;(S=e.d3Zoom)==null||S.translateExtent(N),e.translateExtent=N},R=N=>{e.nodeExtent=N,i()},O=N=>{var S;(S=e.d3Zoom)==null||S.clickDistance(N)},T=N=>{e.nodesDraggable=N,e.nodesConnectable=N,e.elementsSelectable=N},q=N=>{const S=N instanceof Function?N(e.nodes):N;!e.initialized&&!S.length||(e.nodes=Ou(S,d,e.hooks.error.trigger))},j=N=>{const S=N instanceof Function?N(e.edges):N;if(!e.initialized&&!S.length)return;const x=ol(S,e.isValidConnection,d,f,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges);nl(e.connectionLookup,o.value,x),e.edges=x},A=N=>{const S=N instanceof Function?N([...e.nodes,...e.edges]):N;!e.initialized&&!S.length||(q(S.filter(gn)),j(S.filter(jt)))},I=N=>{let S=N instanceof Function?N(e.nodes):N;S=Array.isArray(S)?S:[S];const x=Ou(S,d,e.hooks.error.trigger),V=[];for(const M of x)V.push(Eu(M));V.length&&e.hooks.nodesChange.trigger(V)},C=N=>{let S=N instanceof Function?N(e.edges):N;S=Array.isArray(S)?S:[S];const x=ol(S,e.isValidConnection,d,f,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges),V=[];for(const M of x)V.push(Eu(M));V.length&&e.hooks.edgesChange.trigger(V)},D=(N,S=!0,x=!1)=>{const V=N instanceof Function?N(e.nodes):N,M=Array.isArray(V)?V:[V],X=[],Q=[];function U(K){const le=s(K);for(const se of le)(!Me(se.deletable)||se.deletable)&&Q.push(Cu(se.id,se.source,se.target,se.sourceHandle,se.targetHandle))}function W(K){const le=[];for(const se of e.nodes)se.parentNode===K&&le.push(se);if(le.length){for(const se of le)X.push(ku(se.id));S&&U(le);for(const se of le)W(se.id)}}for(const K of M){const le=typeof K=="string"?d(K):K;le&&(Me(le.deletable)&&!le.deletable||(X.push(ku(le.id)),S&&U([le]),x&&W(le.id)))}Q.length&&e.hooks.edgesChange.trigger(Q),X.length&&e.hooks.nodesChange.trigger(X)},P=N=>{const S=N instanceof Function?N(e.edges):N,x=Array.isArray(S)?S:[S],V=[];for(const M of x){const X=typeof M=="string"?f(M):M;X&&(Me(X.deletable)&&!X.deletable||V.push(Cu(typeof M=="string"?M:M.id,X.source,X.target,X.sourceHandle,X.targetHandle)))}e.hooks.edgesChange.trigger(V)},L=(N,S,x=!0)=>{const V=f(N.id);if(!V)return!1;const M=e.edges.indexOf(V),X=G1(N,S,V,x,e.hooks.error.trigger);if(X){const[Q]=ol([X],e.isValidConnection,d,f,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges);return e.edges=e.edges.map((U,W)=>W===M?Q:U),nl(e.connectionLookup,o.value,[Q]),Q}return!1},F=(N,S,x={replace:!1})=>{const V=f(N);if(!V)return;const M=typeof S=="function"?S(V):S;V.data=x.replace?M:{...V.data,...M}},B=N=>wu(N,e.nodes),$=N=>{const S=wu(N,e.edges);return nl(e.connectionLookup,o.value,S),S},G=(N,S,x={replace:!1})=>{const V=d(N);if(!V)return;const M=typeof S=="function"?S(V):S;x.replace?e.nodes.splice(e.nodes.indexOf(V),1,M):Object.assign(V,M)},ee=(N,S,x={replace:!1})=>{const V=d(N);if(!V)return;const M=typeof S=="function"?S(V):S;V.data=x.replace?M:{...V.data,...M}},re=(N,S,x=!1)=>{x?e.connectionClickStartHandle=N:e.connectionStartHandle=N,e.connectionEndHandle=null,e.connectionStatus=null,S&&(e.connectionPosition=S)},J=(N,S=null,x=null)=>{e.connectionStartHandle&&(e.connectionPosition=N,e.connectionEndHandle=S,e.connectionStatus=x)},ne=(N,S)=>{e.connectionPosition={x:Number.NaN,y:Number.NaN},e.connectionEndHandle=null,e.connectionStatus=null,S?e.connectionClickStartHandle=null:e.connectionStartHandle=null},z=N=>{const S=b1(N),x=S?null:$o(N)?N:d(N.id);return!S&&!x?[null,null,S]:[S?N:Xr(x),x,S]},Z=(N,S=!0,x=e.nodes)=>{const[V,M,X]=z(N);if(!V)return[];const Q=[];for(const U of x||e.nodes){if(!X&&(U.id===M.id||!U.computedPosition))continue;const W=Xr(U),K=Zr(W,V);(S&&K>0||K>=Number(V.width)*Number(V.height))&&Q.push(U)}return Q},ie=(N,S,x=!0)=>{const[V]=z(N);if(!V)return!1;const M=Zr(V,S);return x&&M>0||M>=Number(V.width)*Number(V.height)},oe=N=>{const{viewport:S,dimensions:x,d3Zoom:V,d3Selection:M,translateExtent:X}=e;if(!V||!M||!N.x&&!N.y)return!1;const Q=Gn.translate(S.x+N.x,S.y+N.y).scale(S.zoom),U=[[0,0],[x.width,x.height]],W=V.constrain()(Q,U,X),K=e.viewport.x!==W.x||e.viewport.y!==W.y||e.viewport.zoom!==W.k;return V.transform(M,W),K},ue=N=>{const S=N instanceof Function?N(e):N,x=["d3Zoom","d3Selection","d3ZoomHandler","viewportRef","vueFlowRef","dimensions","hooks"];Me(S.defaultEdgeOptions)&&(e.defaultEdgeOptions=S.defaultEdgeOptions);const V=S.modelValue||S.nodes||S.edges?[]:void 0;V&&(S.modelValue&&V.push(...S.modelValue),S.nodes&&V.push(...S.nodes),S.edges&&V.push(...S.edges),A(V));const M=()=>{Me(S.maxZoom)&&k(S.maxZoom),Me(S.minZoom)&&v(S.minZoom),Me(S.translateExtent)&&E(S.translateExtent)};for(const X of Object.keys(S)){const Q=X,U=S[Q];![...iS,...x].includes(Q)&&Me(U)&&(e[Q]=U)}Na(()=>e.d3Zoom).not.toBeNull().then(M),e.initialized||(e.initialized=!0)};return{updateNodePositions:u,updateNodeDimensions:p,setElements:A,setNodes:q,setEdges:j,addNodes:I,addEdges:C,removeNodes:D,removeEdges:P,findNode:d,findEdge:f,updateEdge:L,updateEdgeData:F,updateNode:G,updateNodeData:ee,applyEdgeChanges:$,applyNodeChanges:B,addSelectedElements:h,addSelectedNodes:g,addSelectedEdges:_,setMinZoom:v,setMaxZoom:k,setTranslateExtent:E,setNodeExtent:R,setPaneClickDistance:O,removeSelectedElements:y,removeSelectedNodes:b,removeSelectedEdges:w,startConnection:re,updateConnection:J,endConnection:ne,setInteractive:T,setState:ue,getIntersectingNodes:Z,getIncomers:a,getOutgoers:l,getConnectedEdges:s,getHandleConnections:c,isNodeIntersecting:ie,panBy:oe,fitView:N=>r.value.fitView(N),zoomIn:N=>r.value.zoomIn(N),zoomOut:N=>r.value.zoomOut(N),zoomTo:(N,S)=>r.value.zoomTo(N,S),setViewport:(N,S)=>r.value.setViewport(N,S),setTransform:(N,S)=>r.value.setTransform(N,S),getViewport:()=>r.value.getViewport(),getTransform:()=>r.value.getTransform(),setCenter:(N,S,x)=>r.value.setCenter(N,S,x),fitBounds:(N,S)=>r.value.fitBounds(N,S),project:N=>r.value.project(N),screenToFlowCoordinate:N=>r.value.screenToFlowCoordinate(N),flowToScreenCoordinate:N=>r.value.flowToScreenCoordinate(N),toObject:()=>{const N=[],S=[];for(const x of e.nodes){const{computedPosition:V,handleBounds:M,selected:X,dimensions:Q,isParent:U,resizing:W,dragging:K,events:le,...se}=x;N.push(se)}for(const x of e.edges){const{selected:V,sourceNode:M,targetNode:X,events:Q,...U}=x;S.push(U)}return JSON.parse(JSON.stringify({nodes:N,edges:S,position:[e.viewport.x,e.viewport.y],zoom:e.viewport.zoom,viewport:e.viewport}))},fromObject:N=>new Promise(S=>{const{nodes:x,edges:V,position:M,zoom:X,viewport:Q}=N;if(x&&q(x),V&&j(V),Q!=null&&Q.x&&(Q!=null&&Q.y)||M){const U=(Q==null?void 0:Q.x)||M[0],W=(Q==null?void 0:Q.y)||M[1],K=(Q==null?void 0:Q.zoom)||X||e.viewport.zoom;return Na(()=>r.value.viewportInitialized).toBe(!0).then(()=>{r.value.setViewport({x:U,y:W,zoom:K}).then(()=>{S(!0)})})}else S(!0)}),updateNodeInternals:i,viewportHelper:r,$reset:()=>{const N=Ku();if(e.edges=[],e.nodes=[],e.d3Zoom&&e.d3Selection){const S=Gn.translate(N.defaultViewport.x??0,N.defaultViewport.y??0).scale(mn(N.defaultViewport.zoom??1,N.minZoom,N.maxZoom)),x=e.viewportRef.getBoundingClientRect(),V=[[0,0],[x.width,x.height]],M=e.d3Zoom.constrain()(S,V,N.translateExtent);e.d3Zoom.transform(e.d3Selection,M)}ue(N)},$destroy:()=>{}}}const lS=["data-id","data-handleid","data-nodeid","data-handlepos"],sS={name:"Handle",compatConfig:{MODE:3}},Ht=n.defineComponent({...sS,props:{id:{default:null},type:{},position:{default:()=>ge.Top},isValidConnection:{type:Function},connectable:{type:[Boolean,Number,String,Function],default:void 0},connectableStart:{type:Boolean,default:!0},connectableEnd:{type:Boolean,default:!0}},setup(e,{expose:t}){const o=n.createPropsRestProxy(e,["position","connectable","connectableStart","connectableEnd","id"]),r=n.toRef(()=>o.type??"source"),i=n.toRef(()=>o.isValidConnection??null),{id:a,connectionStartHandle:l,connectionClickStartHandle:s,connectionEndHandle:c,vueFlowRef:d,nodesConnectable:f,noDragClassName:u,noPanClassName:p}=Te(),{id:m,node:g,nodeEl:_,connectedEdges:h}=Lu(),b=n.ref(),w=n.toRef(()=>typeof e.connectableStart<"u"?e.connectableStart:!0),y=n.toRef(()=>typeof e.connectableEnd<"u"?e.connectableEnd:!0),v=n.toRef(()=>{var j,A,I,C,D,P;return((j=l.value)==null?void 0:j.nodeId)===m&&((A=l.value)==null?void 0:A.id)===e.id&&((I=l.value)==null?void 0:I.type)===r.value||((C=c.value)==null?void 0:C.nodeId)===m&&((D=c.value)==null?void 0:D.id)===e.id&&((P=c.value)==null?void 0:P.type)===r.value}),k=n.toRef(()=>{var j,A,I;return((j=s.value)==null?void 0:j.nodeId)===m&&((A=s.value)==null?void 0:A.id)===e.id&&((I=s.value)==null?void 0:I.type)===r.value}),{handlePointerDown:E,handleClick:R}=Fu({nodeId:m,handleId:e.id,isValidConnection:i,type:r}),O=n.computed(()=>typeof e.connectable=="string"&&e.connectable==="single"?!h.value.some(j=>{const A=j[`${r.value}Handle`];return j[r.value]!==m?!1:A?A===e.id:!0}):typeof e.connectable=="number"?h.value.filter(j=>{const A=j[`${r.value}Handle`];return j[r.value]!==m?!1:A?A===e.id:!0}).length<e.connectable:typeof e.connectable=="function"?e.connectable(g,h.value):Me(e.connectable)?e.connectable:f.value);n.onMounted(()=>{var j;if(!g.dimensions.width||!g.dimensions.height)return;const A=(j=g.handleBounds[r.value])==null?void 0:j.find(B=>B.id===e.id);if(!d.value||A)return;const I=d.value.querySelector(".vue-flow__transformationpane");if(!_.value||!b.value||!I||!e.id)return;const C=_.value.getBoundingClientRect(),D=b.value.getBoundingClientRect(),P=window.getComputedStyle(I),{m22:L}=new window.DOMMatrixReadOnly(P.transform),F={id:e.id,position:e.position,x:(D.left-C.left)/L,y:(D.top-C.top)/L,type:r.value,nodeId:m,...Jr(b.value)};g.handleBounds[r.value]=[...g.handleBounds[r.value]??[],F]});function T(j){const A=Ja(j);O.value&&w.value&&(A&&j.button===0||!A)&&E(j)}function q(j){!m||!s.value&&!w.value||O.value&&R(j)}return t({handleClick:R,handlePointerDown:E,onClick:q,onPointerDown:T}),(j,A)=>(n.openBlock(),n.createElementBlock("div",{ref_key:"handle",ref:b,"data-id":`${n.unref(a)}-${n.unref(m)}-${e.id}-${r.value}`,"data-handleid":e.id,"data-nodeid":n.unref(m),"data-handlepos":j.position,class:n.normalizeClass(["vue-flow__handle",[`vue-flow__handle-${j.position}`,`vue-flow__handle-${e.id}`,n.unref(u),n.unref(p),r.value,{connectable:O.value,connecting:k.value,connectablestart:w.value,connectableend:y.value,connectionindicator:O.value&&(w.value&&!v.value||y.value&&v.value)}]]),onMousedown:T,onTouchstartPassive:T,onClick:q},[n.renderSlot(j.$slots,"default",{id:j.id})],42,lS))}}),ii=function({sourcePosition:e=ge.Bottom,targetPosition:t=ge.Top,label:o,connectable:r=!0,isValidTargetPos:i,isValidSourcePos:a,data:l}){const s=l.label??o;return[n.h(Ht,{type:"target",position:t,connectable:r,isValidConnection:i}),typeof s!="string"&&s?n.h(s):n.h(n.Fragment,[s]),n.h(Ht,{type:"source",position:e,connectable:r,isValidConnection:a})]};ii.props=["sourcePosition","targetPosition","label","isValidTargetPos","isValidSourcePos","connectable","data"],ii.inheritAttrs=!1,ii.compatConfig={MODE:3};const cS=ii,ai=function({targetPosition:e=ge.Top,label:t,connectable:o=!0,isValidTargetPos:r,data:i}){const a=i.label??t;return[n.h(Ht,{type:"target",position:e,connectable:o,isValidConnection:r}),typeof a!="string"&&a?n.h(a):n.h(n.Fragment,[a])]};ai.props=["targetPosition","label","isValidTargetPos","connectable","data"],ai.inheritAttrs=!1,ai.compatConfig={MODE:3};const dS=ai,li=function({sourcePosition:e=ge.Bottom,label:t,connectable:o=!0,isValidSourcePos:r,data:i}){const a=i.label??t;return[typeof a!="string"&&a?n.h(a):n.h(n.Fragment,[a]),n.h(Ht,{type:"source",position:e,connectable:o,isValidConnection:r})]};li.props=["sourcePosition","label","isValidSourcePos","connectable","data"],li.inheritAttrs=!1,li.compatConfig={MODE:3};const uS=li,fS=["transform"],pS=["width","height","x","y","rx","ry"],mS=["y"],gS={name:"EdgeText",compatConfig:{MODE:3}},hS=n.defineComponent({...gS,props:{x:{},y:{},label:{},labelStyle:{default:()=>({})},labelShowBg:{type:Boolean,default:!0},labelBgStyle:{default:()=>({})},labelBgPadding:{default:()=>[2,4]},labelBgBorderRadius:{default:2}},setup(e){const t=n.ref({x:0,y:0,width:0,height:0}),o=n.ref(null),r=n.computed(()=>`translate(${e.x-t.value.width/2} ${e.y-t.value.height/2})`);n.onMounted(i),n.watch([()=>e.x,()=>e.y,o,()=>e.label],i);function i(){if(!o.value)return;const a=o.value.getBBox();(a.width!==t.value.width||a.height!==t.value.height)&&(t.value=a)}return(a,l)=>(n.openBlock(),n.createElementBlock("g",{transform:r.value,class:"vue-flow__edge-textwrapper"},[a.labelShowBg?(n.openBlock(),n.createElementBlock("rect",{key:0,class:"vue-flow__edge-textbg",width:`${t.value.width+2*a.labelBgPadding[0]}px`,height:`${t.value.height+2*a.labelBgPadding[1]}px`,x:-a.labelBgPadding[0],y:-a.labelBgPadding[1],style:n.normalizeStyle(a.labelBgStyle),rx:a.labelBgBorderRadius,ry:a.labelBgBorderRadius},null,12,pS)):n.createCommentVNode("",!0),n.createElementVNode("text",n.mergeProps(a.$attrs,{ref_key:"el",ref:o,class:"vue-flow__edge-text",y:t.value.height/2,dy:"0.3em",style:a.labelStyle}),[n.renderSlot(a.$slots,"default",{},()=>[typeof a.label!="string"?(n.openBlock(),n.createBlock(n.resolveDynamicComponent(a.label),{key:0})):(n.openBlock(),n.createElementBlock(n.Fragment,{key:1},[n.createTextVNode(n.toDisplayString(a.label),1)],64))])],16,mS)],8,fS))}}),yS=["id","d","marker-end","marker-start"],_S=["d","stroke-width"],bS={name:"BaseEdge",inheritAttrs:!1,compatConfig:{MODE:3}},si=n.defineComponent({...bS,props:{id:{},labelX:{},labelY:{},path:{},label:{},markerStart:{},markerEnd:{},interactionWidth:{default:20},labelStyle:{},labelShowBg:{type:Boolean},labelBgStyle:{},labelBgPadding:{},labelBgBorderRadius:{}},setup(e,{expose:t}){const o=n.ref(null),r=n.ref(null),i=n.ref(null),a=n.useAttrs();return t({pathEl:o,interactionEl:r,labelEl:i}),(l,s)=>(n.openBlock(),n.createElementBlock(n.Fragment,null,[n.createElementVNode("path",n.mergeProps(n.unref(a),{id:l.id,ref_key:"pathEl",ref:o,d:l.path,class:"vue-flow__edge-path","marker-end":l.markerEnd,"marker-start":l.markerStart}),null,16,yS),l.interactionWidth?(n.openBlock(),n.createElementBlock("path",{key:0,ref_key:"interactionEl",ref:r,fill:"none",d:l.path,"stroke-width":l.interactionWidth,"stroke-opacity":0,class:"vue-flow__edge-interaction"},null,8,_S)):n.createCommentVNode("",!0),l.label&&l.labelX&&l.labelY?(n.openBlock(),n.createBlock(hS,{key:1,ref_key:"labelEl",ref:i,x:l.labelX,y:l.labelY,label:l.label,"label-show-bg":l.labelShowBg,"label-bg-style":l.labelBgStyle,"label-bg-padding":l.labelBgPadding,"label-bg-border-radius":l.labelBgBorderRadius,"label-style":l.labelStyle},null,8,["x","y","label","label-show-bg","label-bg-style","label-bg-padding","label-bg-border-radius","label-style"])):n.createCommentVNode("",!0)],64))}});function ju({sourceX:e,sourceY:t,targetX:o,targetY:r}){const i=Math.abs(o-e)/2,a=o<e?o+i:o-i,l=Math.abs(r-t)/2,s=r<t?r+l:r-l;return[a,s,i,l]}function Gu({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:l,targetControlY:s}){const c=e*.125+i*.375+l*.375+o*.125,d=t*.125+a*.375+s*.375+r*.125,f=Math.abs(c-e),u=Math.abs(d-t);return[c,d,f,u]}function ci(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function qu({pos:e,x1:t,y1:o,x2:r,y2:i,c:a}){let l,s;switch(e){case ge.Left:l=t-ci(t-r,a),s=o;break;case ge.Right:l=t+ci(r-t,a),s=o;break;case ge.Top:l=t,s=o-ci(o-i,a);break;case ge.Bottom:l=t,s=o+ci(i-o,a);break}return[l,s]}function zu(e){const{sourceX:t,sourceY:o,sourcePosition:r=ge.Bottom,targetX:i,targetY:a,targetPosition:l=ge.Top,curvature:s=.25}=e,[c,d]=qu({pos:r,x1:t,y1:o,x2:i,y2:a,c:s}),[f,u]=qu({pos:l,x1:i,y1:a,x2:t,y2:o,c:s}),[p,m,g,_]=Gu({sourceX:t,sourceY:o,targetX:i,targetY:a,sourceControlX:c,sourceControlY:d,targetControlX:f,targetControlY:u});return[`M${t},${o} C${c},${d} ${f},${u} ${i},${a}`,p,m,g,_]}function Hu({pos:e,x1:t,y1:o,x2:r,y2:i}){let a,l;switch(e){case ge.Left:case ge.Right:a=.5*(t+r),l=o;break;case ge.Top:case ge.Bottom:a=t,l=.5*(o+i);break}return[a,l]}function Yu(e){const{sourceX:t,sourceY:o,sourcePosition:r=ge.Bottom,targetX:i,targetY:a,targetPosition:l=ge.Top}=e,[s,c]=Hu({pos:r,x1:t,y1:o,x2:i,y2:a}),[d,f]=Hu({pos:l,x1:i,y1:a,x2:t,y2:o}),[u,p,m,g]=Gu({sourceX:t,sourceY:o,targetX:i,targetY:a,sourceControlX:s,sourceControlY:c,targetControlX:d,targetControlY:f});return[`M${t},${o} C${s},${c} ${d},${f} ${i},${a}`,u,p,m,g]}const Wu={[ge.Left]:{x:-1,y:0},[ge.Right]:{x:1,y:0},[ge.Top]:{x:0,y:-1},[ge.Bottom]:{x:0,y:1}};function wS({source:e,sourcePosition:t=ge.Bottom,target:o}){return t===ge.Left||t===ge.Right?e.x<o.x?{x:1,y:0}:{x:-1,y:0}:e.y<o.y?{x:0,y:1}:{x:0,y:-1}}function Xu(e,t){return Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2)}function ES({source:e,sourcePosition:t=ge.Bottom,target:o,targetPosition:r=ge.Top,center:i,offset:a}){const l=Wu[t],s=Wu[r],c={x:e.x+l.x*a,y:e.y+l.y*a},d={x:o.x+s.x*a,y:o.y+s.y*a},f=wS({source:c,sourcePosition:t,target:d}),u=f.x!==0?"x":"y",p=f[u];let m,g,_;const h={x:0,y:0},b={x:0,y:0},[w,y,v,k]=ju({sourceX:e.x,sourceY:e.y,targetX:o.x,targetY:o.y});if(l[u]*s[u]===-1){g=i.x??w,_=i.y??y;const R=[{x:g,y:c.y},{x:g,y:d.y}],O=[{x:c.x,y:_},{x:d.x,y:_}];l[u]===p?m=u==="x"?R:O:m=u==="x"?O:R}else{const R=[{x:c.x,y:d.y}],O=[{x:d.x,y:c.y}];if(u==="x"?m=l.x===p?O:R:m=l.y===p?R:O,t===r){const I=Math.abs(e[u]-o[u]);if(I<=a){const C=Math.min(a-1,a-I);l[u]===p?h[u]=(c[u]>e[u]?-1:1)*C:b[u]=(d[u]>o[u]?-1:1)*C}}if(t!==r){const I=u==="x"?"y":"x",C=l[u]===s[I],D=c[I]>d[I],P=c[I]<d[I];(l[u]===1&&(!C&&D||C&&P)||l[u]!==1&&(!C&&P||C&&D))&&(m=u==="x"?R:O)}const T={x:c.x+h.x,y:c.y+h.y},q={x:d.x+b.x,y:d.y+b.y},j=Math.max(Math.abs(T.x-m[0].x),Math.abs(q.x-m[0].x)),A=Math.max(Math.abs(T.y-m[0].y),Math.abs(q.y-m[0].y));j>=A?(g=(T.x+q.x)/2,_=m[0].y):(g=m[0].x,_=(T.y+q.y)/2)}return[[e,{x:c.x+h.x,y:c.y+h.y},...m,{x:d.x+b.x,y:d.y+b.y},o],g,_,v,k]}function kS(e,t,o,r){const i=Math.min(Xu(e,t)/2,Xu(t,o)/2,r),{x:a,y:l}=t;if(e.x===a&&a===o.x||e.y===l&&l===o.y)return`L${a} ${l}`;if(e.y===l){const d=e.x<o.x?-1:1,f=e.y<o.y?1:-1;return`L ${a+i*d},${l}Q ${a},${l} ${a},${l+i*f}`}const s=e.x<o.x?1:-1,c=e.y<o.y?-1:1;return`L ${a},${l+i*c}Q ${a},${l} ${a+i*s},${l}`}function al(e){const{sourceX:t,sourceY:o,sourcePosition:r=ge.Bottom,targetX:i,targetY:a,targetPosition:l=ge.Top,borderRadius:s=5,centerX:c,centerY:d,offset:f=20}=e,[u,p,m,g,_]=ES({source:{x:t,y:o},sourcePosition:r,target:{x:i,y:a},targetPosition:l,center:{x:c,y:d},offset:f});return[u.reduce((b,w,y)=>{let v;return y>0&&y<u.length-1?v=kS(u[y-1],w,u[y+1],s):v=`${y===0?"M":"L"}${w.x} ${w.y}`,b+=v,b},""),p,m,g,_]}function CS(e){const{sourceX:t,sourceY:o,targetX:r,targetY:i}=e,[a,l,s,c]=ju({sourceX:t,sourceY:o,targetX:r,targetY:i});return[`M ${t},${o}L ${r},${i}`,a,l,s,c]}const vS=n.defineComponent({name:"StraightEdge",props:["label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[o,r,i]=CS(e);return n.h(si,{path:o,labelX:r,labelY:i,...t,...e})}}}),Zu=n.defineComponent({name:"SmoothStepEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","borderRadius","markerEnd","markerStart","interactionWidth","offset"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[o,r,i]=al({...e,sourcePosition:e.sourcePosition??ge.Bottom,targetPosition:e.targetPosition??ge.Top});return n.h(si,{path:o,labelX:r,labelY:i,...t,...e})}}}),NS=n.defineComponent({name:"StepEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],setup(e,{attrs:t}){return()=>n.h(Zu,{...e,...t,borderRadius:0})}}),SS=n.defineComponent({name:"BezierEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","curvature","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[o,r,i]=zu({...e,sourcePosition:e.sourcePosition??ge.Bottom,targetPosition:e.targetPosition??ge.Top});return n.h(si,{path:o,labelX:r,labelY:i,...t,...e})}}}),xS=n.defineComponent({name:"SimpleBezierEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[o,r,i]=Yu({...e,sourcePosition:e.sourcePosition??ge.Bottom,targetPosition:e.targetPosition??ge.Top});return n.h(si,{path:o,labelX:r,labelY:i,...t,...e})}}}),AS={input:uS,default:cS,output:dS},TS={default:SS,straight:vS,step:NS,smoothstep:Zu,simplebezier:xS};function IS(e,t,o){const r=n.computed(()=>_=>t.value.get(_)),i=n.computed(()=>_=>o.value.get(_)),a=n.computed(()=>{const _={...TS,...e.edgeTypes},h=Object.keys(_);for(const b of e.edges)b.type&&!h.includes(b.type)&&(_[b.type]=b.type);return _}),l=n.computed(()=>{const _={...AS,...e.nodeTypes},h=Object.keys(_);for(const b of e.nodes)b.type&&!h.includes(b.type)&&(_[b.type]=b.type);return _}),s=n.computed(()=>e.onlyRenderVisibleElements?mu(e.nodes,{x:0,y:0,width:e.dimensions.width,height:e.dimensions.height},e.viewport,!0):e.nodes),c=n.computed(()=>{if(e.onlyRenderVisibleElements){const _=[];for(const h of e.edges){const b=t.value.get(h.source),w=t.value.get(h.target);P1({sourcePos:b.computedPosition||{x:0,y:0},targetPos:w.computedPosition||{x:0,y:0},sourceWidth:b.dimensions.width,sourceHeight:b.dimensions.height,targetWidth:w.dimensions.width,targetHeight:w.dimensions.height,width:e.dimensions.width,height:e.dimensions.height,viewport:e.viewport})&&_.push(h)}return _}return e.edges}),d=n.computed(()=>[...s.value,...c.value]),f=n.computed(()=>{const _=[];for(const h of e.nodes)h.selected&&_.push(h);return _}),u=n.computed(()=>{const _=[];for(const h of e.edges)h.selected&&_.push(h);return _}),p=n.computed(()=>[...f.value,...u.value]),m=n.computed(()=>{const _=[];for(const h of e.nodes)h.dimensions.width&&h.dimensions.height&&h.handleBounds!==void 0&&_.push(h);return _}),g=n.computed(()=>s.value.length>0&&m.value.length===s.value.length);return{getNode:r,getEdge:i,getElements:d,getEdgeTypes:a,getNodeTypes:l,getEdges:c,getNodes:s,getSelectedElements:p,getSelectedNodes:f,getSelectedEdges:u,getNodesInitialized:m,areNodesInitialized:g}}class hn{constructor(){this.currentId=0,this.flows=new Map}static getInstance(){var t;const o=(t=n.getCurrentInstance())==null?void 0:t.appContext.app,r=(o==null?void 0:o.config.globalProperties.$vueFlowStorage)??hn.instance;return hn.instance=r??new hn,o&&(o.config.globalProperties.$vueFlowStorage=hn.instance),hn.instance}set(t,o){return this.flows.set(t,o)}get(t){return this.flows.get(t)}remove(t){return this.flows.delete(t)}create(t,o){const r=Ku(),i=n.reactive(r),a={};for(const[p,m]of Object.entries(i.hooks)){const g=`on${p.charAt(0).toUpperCase()+p.slice(1)}`;a[g]=m.on}const l={};for(const[p,m]of Object.entries(i.hooks))l[p]=m.trigger;const s=n.computed(()=>{const p=new Map;for(const m of i.nodes)p.set(m.id,m);return p}),c=n.computed(()=>{const p=new Map;for(const m of i.edges)p.set(m.id,m);return p}),d=IS(i,s,c),f=aS(i,s,c);f.setState({...i,...o});const u={...a,...d,...f,...Ak(i),nodeLookup:s,edgeLookup:c,emits:l,id:t,vueFlowVersion:"1.45.0",$destroy:()=>{this.remove(t)}};return this.set(t,u),u}getId(){return`vue-flow-${this.currentId++}`}}function Te(e){const t=hn.getInstance(),o=n.getCurrentScope(),r=typeof e=="object",i=r?e:{id:e},a=i.id,l=a??(o==null?void 0:o.vueFlowId);let s;if(o){const c=n.inject(Vu,null);typeof c<"u"&&c!==null&&(!l||c.id===l)&&(s=c)}if(s||l&&(s=t.get(l)),!s||l&&s.id!==l){const c=a??t.getId(),d=t.create(c,i);s=d,(o??n.effectScope(!0)).run(()=>{n.watch(d.applyDefault,(u,p,m)=>{const g=h=>{d.applyNodeChanges(h)},_=h=>{d.applyEdgeChanges(h)};u?(d.onNodesChange(g),d.onEdgesChange(_)):(d.hooks.value.nodesChange.off(g),d.hooks.value.edgesChange.off(_)),m(()=>{d.hooks.value.nodesChange.off(g),d.hooks.value.edgesChange.off(_)})},{immediate:!0}),xr(()=>{if(s){const u=t.get(s.id);u?u.$destroy():ni(`No store instance found for id ${s.id} in storage.`)}})})}else r&&s.setState(i);if(o&&(n.provide(Vu,s),o.vueFlowId=s.id),r){const c=n.getCurrentInstance();(c==null?void 0:c.type.name)!=="VueFlow"&&s.emits.error(new Ge(De.USEVUEFLOW_OPTIONS))}return s}function PS(e){const{emits:t,dimensions:o}=Te();let r;n.onMounted(()=>{const i=e.value,a=()=>{if(!i)return;const l=Jr(i);(l.width===0||l.height===0)&&t.error(new Ge(De.MISSING_VIEWPORT_DIMENSIONS)),o.value={width:l.width||500,height:l.height||500}};a(),window.addEventListener("resize",a),i&&(r=new ResizeObserver(()=>a()),r.observe(i)),n.onBeforeUnmount(()=>{window.removeEventListener("resize",a),r&&i&&r.unobserve(i)})})}const OS={name:"UserSelection",compatConfig:{MODE:3}},$S=n.defineComponent({...OS,props:{userSelectionRect:{}},setup(e){return(t,o)=>(n.openBlock(),n.createElementBlock("div",{class:"vue-flow__selection vue-flow__container",style:n.normalizeStyle({width:`${t.userSelectionRect.width}px`,height:`${t.userSelectionRect.height}px`,transform:`translate(${t.userSelectionRect.x}px, ${t.userSelectionRect.y}px)`})},null,4))}}),BS=["tabIndex"],VS={name:"NodesSelection",compatConfig:{MODE:3}},RS=n.defineComponent({...VS,setup(e){const{emits:t,viewport:o,getSelectedNodes:r,noPanClassName:i,disableKeyboardA11y:a,userSelectionActive:l}=Te(),s=Uu(),c=n.ref(null),d=Mu({el:c,onStart(g){t.selectionDragStart(g)},onDrag(g){t.selectionDrag(g)},onStop(g){t.selectionDragStop(g)}});n.onMounted(()=>{var g;a.value||(g=c.value)==null||g.focus({preventScroll:!0})});const f=n.computed(()=>pu(r.value)),u=n.computed(()=>({width:`${f.value.width}px`,height:`${f.value.height}px`,top:`${f.value.y}px`,left:`${f.value.x}px`}));function p(g){t.selectionContextMenu({event:g,nodes:r.value})}function m(g){a||qn[g.key]&&(g.preventDefault(),s({x:qn[g.key].x,y:qn[g.key].y},g.shiftKey))}return(g,_)=>!n.unref(l)&&f.value.width&&f.value.height?(n.openBlock(),n.createElementBlock("div",{key:0,class:n.normalizeClass(["vue-flow__nodesselection vue-flow__container",n.unref(i)]),style:n.normalizeStyle({transform:`translate(${n.unref(o).x}px,${n.unref(o).y}px) scale(${n.unref(o).zoom})`})},[n.createElementVNode("div",{ref_key:"el",ref:c,class:n.normalizeClass([{dragging:n.unref(d)},"vue-flow__nodesselection-rect"]),style:n.normalizeStyle(u.value),tabIndex:n.unref(a)?void 0:-1,onContextmenu:p,onKeydown:m},null,46,BS)],6)):n.createCommentVNode("",!0)}});function DS(e,t){return{x:e.clientX-t.left,y:e.clientY-t.top}}const MS={name:"Pane",compatConfig:{MODE:3}},FS=n.defineComponent({...MS,props:{isSelecting:{type:Boolean},selectionKeyPressed:{type:Boolean}},setup(e){const{vueFlowRef:t,nodes:o,viewport:r,emits:i,userSelectionActive:a,removeSelectedElements:l,userSelectionRect:s,elementsSelectable:c,nodesSelectionActive:d,getSelectedEdges:f,getSelectedNodes:u,removeNodes:p,removeEdges:m,selectionMode:g,deleteKeyCode:_,multiSelectionKeyCode:h,multiSelectionActive:b,edgeLookup:w,nodeLookup:y,connectionLookup:v,defaultEdgeOptions:k,connectionStartHandle:E}=Te(),R=n.ref(null),O=n.ref(new Set),T=n.ref(new Set),q=n.ref(),j=n.toRef(()=>c.value&&(e.isSelecting||a.value)),A=n.toRef(()=>E.value!==null);let I=!1,C=!1;const D=Oo(_,{actInsideInputWithModifier:!1}),P=Oo(h);n.watch(D,J=>{J&&(p(u.value),m(f.value),d.value=!1)}),n.watch(P,J=>{b.value=J});function L(J,ne){return z=>{z.target===ne&&(J==null||J(z))}}function F(J){if(I||A.value){I=!1;return}i.paneClick(J),l(),d.value=!1}function B(J){J.preventDefault(),J.stopPropagation(),i.paneContextMenu(J)}function $(J){i.paneScroll(J)}function G(J){var ne,z,Z;if(q.value=(ne=t.value)==null?void 0:ne.getBoundingClientRect(),!c.value||!e.isSelecting||J.button!==0||J.target!==R.value||!q.value)return;(Z=(z=J.target)==null?void 0:z.setPointerCapture)==null||Z.call(z,J.pointerId);const{x:ie,y:oe}=DS(J,q.value);C=!0,I=!1,l(),s.value={width:0,height:0,startX:ie,startY:oe,x:ie,y:oe},i.selectionStart(J)}function ee(J){var ne;if(!q.value||!s.value)return;I=!0;const{x:z,y:Z}=xt(J,q.value),{startX:ie=0,startY:oe=0}=s.value,ue={startX:ie,startY:oe,x:z<ie?z:ie,y:Z<oe?Z:oe,width:Math.abs(z-ie),height:Math.abs(Z-oe)},de=O.value,Y=T.value;O.value=new Set(mu(o.value,ue,r.value,g.value===za.Partial,!0).map(N=>N.id)),T.value=new Set;const te=((ne=k.value)==null?void 0:ne.selectable)??!0;for(const N of O.value){const S=v.value.get(N);if(S)for(const{edgeId:x}of S.values()){const V=w.value.get(x);V&&(V.selectable??te)&&T.value.add(x)}}if(!Bu(de,O.value)){const N=qt(y.value,O.value,!0);i.nodesChange(N)}if(!Bu(Y,T.value)){const N=qt(w.value,T.value);i.edgesChange(N)}s.value=ue,a.value=!0,d.value=!1}function re(J){var ne;J.button!==0||!C||((ne=J.target)==null||ne.releasePointerCapture(J.pointerId),!a.value&&s.value&&J.target===R.value&&F(J),a.value=!1,s.value=null,d.value=O.value.size>0,i.selectionEnd(J),e.selectionKeyPressed&&(I=!1),C=!1)}return(J,ne)=>(n.openBlock(),n.createElementBlock("div",{ref_key:"container",ref:R,class:n.normalizeClass(["vue-flow__pane vue-flow__container",{selection:J.isSelecting}]),onClick:ne[0]||(ne[0]=z=>j.value?void 0:L(F,R.value)(z)),onContextmenu:ne[1]||(ne[1]=z=>L(B,R.value)(z)),onWheelPassive:ne[2]||(ne[2]=z=>L($,R.value)(z)),onPointerenter:ne[3]||(ne[3]=z=>j.value?void 0:n.unref(i).paneMouseEnter(z)),onPointerdown:ne[4]||(ne[4]=z=>j.value?G(z):n.unref(i).paneMouseMove(z)),onPointermove:ne[5]||(ne[5]=z=>j.value?ee(z):n.unref(i).paneMouseMove(z)),onPointerup:ne[6]||(ne[6]=z=>j.value?re(z):void 0),onPointerleave:ne[7]||(ne[7]=z=>n.unref(i).paneMouseLeave(z))},[n.renderSlot(J.$slots,"default"),n.unref(a)&&n.unref(s)?(n.openBlock(),n.createBlock($S,{key:0,"user-selection-rect":n.unref(s)},null,8,["user-selection-rect"])):n.createCommentVNode("",!0),n.unref(d)&&n.unref(u).length?(n.openBlock(),n.createBlock(RS,{key:1})):n.createCommentVNode("",!0)],34))}}),LS={name:"Transform",compatConfig:{MODE:3}},US=n.defineComponent({...LS,setup(e){const{viewport:t,fitViewOnInit:o,fitViewOnInitDone:r}=Te(),i=n.computed(()=>o.value?!r.value:!1),a=n.computed(()=>`translate(${t.value.x}px,${t.value.y}px) scale(${t.value.zoom})`);return(l,s)=>(n.openBlock(),n.createElementBlock("div",{class:"vue-flow__transformationpane vue-flow__container",style:n.normalizeStyle({transform:a.value,opacity:i.value?0:void 0})},[n.renderSlot(l.$slots,"default")],4))}}),KS={name:"Viewport",compatConfig:{MODE:3}},jS=n.defineComponent({...KS,setup(e){const{minZoom:t,maxZoom:o,defaultViewport:r,translateExtent:i,zoomActivationKeyCode:a,selectionKeyCode:l,panActivationKeyCode:s,panOnScroll:c,panOnScrollMode:d,panOnScrollSpeed:f,panOnDrag:u,zoomOnDoubleClick:p,zoomOnPinch:m,zoomOnScroll:g,preventScrolling:_,noWheelClassName:h,noPanClassName:b,emits:w,connectionStartHandle:y,userSelectionActive:v,paneDragging:k,d3Zoom:E,d3Selection:R,d3ZoomHandler:O,viewport:T,viewportRef:q,paneClickDistance:j}=Te();PS(q);const A=n.shallowRef(!1),I=n.shallowRef(!1);let C=null,D=!1,P=0,L={x:0,y:0,zoom:0};const F=Oo(s),B=Oo(l),$=Oo(a),G=n.toRef(()=>(!B.value||B.value&&l.value===!0)&&(F.value||u.value)),ee=n.toRef(()=>F.value||c.value),re=n.toRef(()=>B.value||l.value===!0&&G.value!==!0);n.onMounted(()=>{if(!q.value){ni("Viewport element is missing");return}const oe=q.value,ue=oe.getBoundingClientRect(),de=f1().clickDistance(j.value).scaleExtent([t.value,o.value]).translateExtent(i.value),Y=gt(oe).call(de),te=Y.on("wheel.zoom"),N=Gn.translate(r.value.x??0,r.value.y??0).scale(mn(r.value.zoom??1,t.value,o.value)),S=[[0,0],[ue.width,ue.height]],x=de.constrain()(N,S,i.value);de.transform(Y,x),de.wheelDelta(ne),E.value=de,R.value=Y,O.value=te,T.value={x:x.x,y:x.y,zoom:x.k},de.on("start",V=>{var M;if(!V.sourceEvent)return null;P=V.sourceEvent.button,A.value=!0;const X=Z(V.transform);((M=V.sourceEvent)==null?void 0:M.type)==="mousedown"&&(k.value=!0),L=X,w.viewportChangeStart(X),w.moveStart({event:V,flowTransform:X})}),de.on("end",V=>{if(!V.sourceEvent)return null;if(A.value=!1,k.value=!1,J(G.value,P??0)&&!D&&w.paneContextMenu(V.sourceEvent),D=!1,z(L,V.transform)){const M=Z(V.transform);L=M,w.viewportChangeEnd(M),w.moveEnd({event:V,flowTransform:M})}}),de.filter(V=>{var M;const X=$.value||g.value,Q=m.value&&V.ctrlKey,U=V.button;if(U===1&&V.type==="mousedown"&&(ie(V,"vue-flow__node")||ie(V,"vue-flow__edge")))return!0;if(!G.value&&!X&&!ee.value&&!p.value&&!m.value||v.value||!p.value&&V.type==="dblclick"||ie(V,h.value)&&V.type==="wheel"||ie(V,b.value)&&(V.type!=="wheel"||ee.value&&V.type==="wheel"&&!$.value)||!m.value&&V.ctrlKey&&V.type==="wheel"||!X&&!ee.value&&!Q&&V.type==="wheel")return!1;if(!m&&V.type==="touchstart"&&((M=V.touches)==null?void 0:M.length)>1)return V.preventDefault(),!1;if(!G.value&&(V.type==="mousedown"||V.type==="touchstart")||l.value===!0&&Array.isArray(u.value)&&u.value.includes(0)&&U===0||Array.isArray(u.value)&&!u.value.includes(U)&&(V.type==="mousedown"||V.type==="touchstart"))return!1;const W=Array.isArray(u.value)&&u.value.includes(U)||l.value===!0&&Array.isArray(u.value)&&!u.value.includes(0)||!U||U<=1;return(!V.ctrlKey||F.value||V.type==="wheel")&&W}),n.watch([v,G],()=>{v.value&&!A.value?de.on("zoom",null):v.value||de.on("zoom",V=>{T.value={x:V.transform.x,y:V.transform.y,zoom:V.transform.k};const M=Z(V.transform);D=J(G.value,P??0),w.viewportChange(M),w.move({event:V,flowTransform:M})})},{immediate:!0}),n.watch([v,ee,d,$,m,_,h],()=>{ee.value&&!$.value&&!v.value?Y.on("wheel.zoom",V=>{if(ie(V,h.value))return!1;const M=$.value||g.value,X=m.value&&V.ctrlKey;if(!(!_.value||ee.value||M||X))return!1;V.preventDefault(),V.stopImmediatePropagation();const U=Y.property("__zoom").k||1,W=ei();if(!F.value&&V.ctrlKey&&m.value&&W){const _e=Ct(V),be=ne(V),Ce=U*2**be;de.scaleTo(Y,Ce,_e,V);return}const K=V.deltaMode===1?20:1;let le=d.value===Po.Vertical?0:V.deltaX*K,se=d.value===Po.Horizontal?0:V.deltaY*K;!W&&V.shiftKey&&d.value!==Po.Vertical&&!le&&se&&(le=se,se=0),de.translateBy(Y,-(le/U)*f.value,-(se/U)*f.value);const ae=Z(Y.property("__zoom"));C&&clearTimeout(C),I.value?(w.move({event:V,flowTransform:ae}),w.viewportChange(ae),C=setTimeout(()=>{w.moveEnd({event:V,flowTransform:ae}),w.viewportChangeEnd(ae),I.value=!1},150)):(I.value=!0,w.moveStart({event:V,flowTransform:ae}),w.viewportChangeStart(ae))},{passive:!1}):typeof te<"u"&&Y.on("wheel.zoom",function(V,M){const X=!_.value&&V.type==="wheel"&&!V.ctrlKey,Q=$.value||g.value,U=m.value&&V.ctrlKey;if(!Q&&!c.value&&!U&&V.type==="wheel"||X||ie(V,h.value))return null;V.preventDefault(),te.call(this,V,M)},{passive:!1})},{immediate:!0})});function J(oe,ue){return ue===2&&Array.isArray(oe)&&oe.includes(2)}function ne(oe){const ue=oe.ctrlKey&&ei()?10:1;return-oe.deltaY*(oe.deltaMode===1?.05:oe.deltaMode?1:.002)*ue}function z(oe,ue){return oe.x!==ue.x&&!Number.isNaN(ue.x)||oe.y!==ue.y&&!Number.isNaN(ue.y)||oe.zoom!==ue.k&&!Number.isNaN(ue.k)}function Z(oe){return{x:oe.x,y:oe.y,zoom:oe.k}}function ie(oe,ue){return oe.target.closest(`.${ue}`)}return(oe,ue)=>(n.openBlock(),n.createElementBlock("div",{ref_key:"viewportRef",ref:q,class:"vue-flow__viewport vue-flow__container"},[n.createVNode(FS,{"is-selecting":re.value,"selection-key-pressed":n.unref(B),class:n.normalizeClass({connecting:!!n.unref(y),dragging:n.unref(k),draggable:n.unref(u)===!0||Array.isArray(n.unref(u))&&n.unref(u).includes(0)})},{default:n.withCtx(()=>[n.createVNode(US,null,{default:n.withCtx(()=>[n.renderSlot(oe.$slots,"default")]),_:3})]),_:3},8,["is-selecting","selection-key-pressed","class"])],512))}}),GS=["id"],qS=["id"],zS=["id"],HS={name:"A11yDescriptions",compatConfig:{MODE:3}},YS=n.defineComponent({...HS,setup(e){const{id:t,disableKeyboardA11y:o,ariaLiveMessage:r}=Te();return(i,a)=>(n.openBlock(),n.createElementBlock(n.Fragment,null,[n.createElementVNode("div",{id:`${n.unref(ru)}-${n.unref(t)}`,style:{display:"none"}}," Press enter or space to select a node. "+n.toDisplayString(n.unref(o)?"":"You can then use the arrow keys to move the node around.")+" You can then use the arrow keys to move the node around, press delete to remove it and press escape to cancel. ",9,GS),n.createElementVNode("div",{id:`${n.unref(iu)}-${n.unref(t)}`,style:{display:"none"}}," Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. ",8,qS),n.unref(o)?n.createCommentVNode("",!0):(n.openBlock(),n.createElementBlock("div",{key:0,id:`${n.unref(_1)}-${n.unref(t)}`,"aria-live":"assertive","aria-atomic":"true",style:{position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)","clip-path":"inset(100%)"}},n.toDisplayString(n.unref(r)),9,zS))],64))}});function WS(){const e=Te();n.watch(()=>e.viewportHelper.value.viewportInitialized,t=>{t&&setTimeout(()=>{e.emits.init(e),e.emits.paneReady(e)},1)})}function XS(e,t,o){return o===ge.Left?e-t:o===ge.Right?e+t:e}function ZS(e,t,o){return o===ge.Top?e-t:o===ge.Bottom?e+t:e}const ll=function({radius:e=10,centerX:t=0,centerY:o=0,position:r=ge.Top,type:i}){return n.h("circle",{class:`vue-flow__edgeupdater vue-flow__edgeupdater-${i}`,cx:XS(t,e,r),cy:ZS(o,e,r),r:e,stroke:"transparent",fill:"transparent"})};ll.props=["radius","centerX","centerY","position","type"],ll.compatConfig={MODE:3};const Ju=ll,JS=n.defineComponent({name:"Edge",compatConfig:{MODE:3},props:["id"],setup(e){const{id:t,addSelectedEdges:o,connectionMode:r,edgeUpdaterRadius:i,emits:a,nodesSelectionActive:l,noPanClassName:s,getEdgeTypes:c,removeSelectedEdges:d,findEdge:f,findNode:u,isValidConnection:p,multiSelectionActive:m,disableKeyboardA11y:g,elementsSelectable:_,edgesUpdatable:h,edgesFocusable:b,hooks:w}=Te(),y=n.computed(()=>f(e.id)),{emit:v,on:k}=Y1(y.value,a),E=n.inject(oi),R=n.getCurrentInstance(),O=n.ref(!1),T=n.ref(!1),q=n.ref(""),j=n.ref(null),A=n.ref("source"),I=n.ref(null),C=n.toRef(()=>typeof y.value.selectable>"u"?_.value:y.value.selectable),D=n.toRef(()=>typeof y.value.updatable>"u"?h.value:y.value.updatable),P=n.toRef(()=>typeof y.value.focusable>"u"?b.value:y.value.focusable);n.provide(q1,e.id),n.provide(z1,I);const L=n.computed(()=>y.value.class instanceof Function?y.value.class(y.value):y.value.class),F=n.computed(()=>y.value.style instanceof Function?y.value.style(y.value):y.value.style),B=n.computed(()=>{const S=y.value.type||"default",x=E==null?void 0:E[`edge-${S}`];if(x)return x;let V=y.value.template??c.value[S];if(typeof V=="string"&&R){const M=Object.keys(R.appContext.components);M&&M.includes(S)&&(V=n.resolveComponent(S,!1))}return V&&typeof V!="string"?V:(a.error(new Ge(De.EDGE_TYPE_MISSING,V)),!1)}),{handlePointerDown:$}=Fu({nodeId:q,handleId:j,type:A,isValidConnection:p,edgeUpdaterType:A,onEdgeUpdate:re,onEdgeUpdateEnd:J});return()=>{const S=u(y.value.source),x=u(y.value.target),V="pathOptions"in y.value?y.value.pathOptions:{};if(!S&&!x)return a.error(new Ge(De.EDGE_SOURCE_TARGET_MISSING,y.value.id,y.value.source,y.value.target)),null;if(!S)return a.error(new Ge(De.EDGE_SOURCE_MISSING,y.value.id,y.value.source)),null;if(!x)return a.error(new Ge(De.EDGE_TARGET_MISSING,y.value.id,y.value.target)),null;if(!y.value||y.value.hidden||S.hidden||x.hidden)return null;let M;r.value===Kt.Strict?M=S.handleBounds.source:M=[...S.handleBounds.source||[],...S.handleBounds.target||[]];const X=Su(M,y.value.sourceHandle);let Q;r.value===Kt.Strict?Q=x.handleBounds.target:Q=[...x.handleBounds.target||[],...x.handleBounds.source||[]];const U=Su(Q,y.value.targetHandle),W=(X==null?void 0:X.position)||ge.Bottom,K=(U==null?void 0:U.position)||ge.Top,{x:le,y:se}=zn(S,X,W),{x:ae,y:_e}=zn(x,U,K);return y.value.sourceX=le,y.value.sourceY=se,y.value.targetX=ae,y.value.targetY=_e,n.h("g",{ref:I,key:e.id,"data-id":e.id,class:["vue-flow__edge",`vue-flow__edge-${B.value===!1?"default":y.value.type||"default"}`,s.value,L.value,{updating:O.value,selected:y.value.selected,animated:y.value.animated,inactive:!C.value&&!w.value.edgeClick.hasListeners()}],tabIndex:P.value?0:void 0,"aria-label":y.value.ariaLabel===null?void 0:y.value.ariaLabel??`Edge from ${y.value.source} to ${y.value.target}`,"aria-describedby":P.value?`${iu}-${t}`:void 0,"aria-roledescription":"edge",role:P.value?"group":"img",...y.value.domAttributes,onClick:z,onContextmenu:Z,onDblclick:ie,onMouseenter:oe,onMousemove:ue,onMouseleave:de,onKeyDown:P.value?N:void 0},[T.value?null:n.h(B.value===!1?c.value.default:B.value,{id:e.id,sourceNode:S,targetNode:x,source:y.value.source,target:y.value.target,type:y.value.type,updatable:D.value,selected:y.value.selected,animated:y.value.animated,label:y.value.label,labelStyle:y.value.labelStyle,labelShowBg:y.value.labelShowBg,labelBgStyle:y.value.labelBgStyle,labelBgPadding:y.value.labelBgPadding,labelBgBorderRadius:y.value.labelBgBorderRadius,data:y.value.data,events:{...y.value.events,...k},style:F.value,markerStart:`url('#${Vo(y.value.markerStart,t)}')`,markerEnd:`url('#${Vo(y.value.markerEnd,t)}')`,sourcePosition:W,targetPosition:K,sourceX:le,sourceY:se,targetX:ae,targetY:_e,sourceHandleId:y.value.sourceHandle,targetHandleId:y.value.targetHandle,interactionWidth:y.value.interactionWidth,...V}),[D.value==="source"||D.value===!0?[n.h("g",{onMousedown:Y,onMouseenter:G,onMouseout:ee},n.h(Ju,{position:W,centerX:le,centerY:se,radius:i.value,type:"source","data-type":"source"}))]:null,D.value==="target"||D.value===!0?[n.h("g",{onMousedown:te,onMouseenter:G,onMouseout:ee},n.h(Ju,{position:K,centerX:ae,centerY:_e,radius:i.value,type:"target","data-type":"target"}))]:null]])};function G(){O.value=!0}function ee(){O.value=!1}function re(S,x){v.update({event:S,edge:y.value,connection:x})}function J(S){v.updateEnd({event:S,edge:y.value}),T.value=!1}function ne(S,x){S.button===0&&(T.value=!0,q.value=x?y.value.target:y.value.source,j.value=(x?y.value.targetHandle:y.value.sourceHandle)??null,A.value=x?"target":"source",v.updateStart({event:S,edge:y.value}),$(S))}function z(S){var x;const V={event:S,edge:y.value};C.value&&(l.value=!1,y.value.selected&&m.value?(d([y.value]),(x=I.value)==null||x.blur()):o([y.value])),v.click(V)}function Z(S){v.contextMenu({event:S,edge:y.value})}function ie(S){v.doubleClick({event:S,edge:y.value})}function oe(S){v.mouseEnter({event:S,edge:y.value})}function ue(S){v.mouseMove({event:S,edge:y.value})}function de(S){v.mouseLeave({event:S,edge:y.value})}function Y(S){ne(S,!0)}function te(S){ne(S,!1)}function N(S){var x;!g.value&&au.includes(S.key)&&C.value&&(S.key==="Escape"?((x=I.value)==null||x.blur(),d([f(e.id)])):o([f(e.id)]))}}}),QS=n.defineComponent({name:"ConnectionLine",compatConfig:{MODE:3},setup(){var e;const{id:t,connectionMode:o,connectionStartHandle:r,connectionEndHandle:i,connectionPosition:a,connectionLineType:l,connectionLineStyle:s,connectionLineOptions:c,connectionStatus:d,viewport:f,findNode:u}=Te(),p=(e=n.inject(oi))==null?void 0:e["connection-line"],m=n.computed(()=>{var w;return u((w=r.value)==null?void 0:w.nodeId)}),g=n.computed(()=>{var w;return u((w=i.value)==null?void 0:w.nodeId)??null}),_=n.computed(()=>({x:(a.value.x-f.value.x)/f.value.zoom,y:(a.value.y-f.value.y)/f.value.zoom})),h=n.computed(()=>c.value.markerStart?`url(#${Vo(c.value.markerStart,t)})`:""),b=n.computed(()=>c.value.markerEnd?`url(#${Vo(c.value.markerEnd,t)})`:"");return()=>{var w,y,v;if(!m.value||!r.value)return null;const k=r.value.id,E=r.value.type,R=m.value.handleBounds;let O=(R==null?void 0:R[E])??[];if(o.value===Kt.Loose){const F=(R==null?void 0:R[E==="source"?"target":"source"])??[];O=[...O,...F]}if(!O)return null;const T=(k?O.find(F=>F.id===k):O[0])??null,q=(T==null?void 0:T.position)??ge.Top,{x:j,y:A}=zn(m.value,T,q);let I=null;g.value&&(o.value===Kt.Strict?I=((w=g.value.handleBounds[E==="source"?"target":"source"])==null?void 0:w.find(F=>{var B;return F.id===((B=i.value)==null?void 0:B.id)}))||null:I=((y=[...g.value.handleBounds.source??[],...g.value.handleBounds.target??[]])==null?void 0:y.find(F=>{var B;return F.id===((B=i.value)==null?void 0:B.id)}))||null);const C=((v=i.value)==null?void 0:v.position)??(q?el[q]:null);if(!q||!C)return null;const D=l.value??c.value.type??pn.Bezier;let P="";const L={sourceX:j,sourceY:A,sourcePosition:q,targetX:_.value.x,targetY:_.value.y,targetPosition:C};return D===pn.Bezier?[P]=zu(L):D===pn.Step?[P]=al({...L,borderRadius:0}):D===pn.SmoothStep?[P]=al(L):D===pn.SimpleBezier?[P]=Yu(L):P=`M${j},${A} ${_.value.x},${_.value.y}`,n.h("svg",{class:"vue-flow__edges vue-flow__connectionline vue-flow__container"},n.h("g",{class:"vue-flow__connection"},p?n.h(p,{sourceX:j,sourceY:A,sourcePosition:q,targetX:_.value.x,targetY:_.value.y,targetPosition:C,sourceNode:m.value,sourceHandle:T,targetNode:g.value,targetHandle:I,markerEnd:b.value,markerStart:h.value,connectionStatus:d.value}):n.h("path",{d:P,class:[c.value.class,d,"vue-flow__connection-path"],style:{...s.value,...c.value.style},"marker-end":b.value,"marker-start":h.value})))}}}),ex=["id","markerWidth","markerHeight","markerUnits","orient"],tx={name:"MarkerType",compatConfig:{MODE:3}},nx=n.defineComponent({...tx,props:{id:{},type:{},color:{default:"none"},width:{default:12.5},height:{default:12.5},markerUnits:{default:"strokeWidth"},orient:{default:"auto-start-reverse"},strokeWidth:{default:1}},setup(e){return(t,o)=>(n.openBlock(),n.createElementBlock("marker",{id:t.id,class:"vue-flow__arrowhead",viewBox:"-10 -10 20 20",refX:"0",refY:"0",markerWidth:`${t.width}`,markerHeight:`${t.height}`,markerUnits:t.markerUnits,orient:t.orient},[t.type===n.unref(Wr).ArrowClosed?(n.openBlock(),n.createElementBlock("polyline",{key:0,style:n.normalizeStyle({stroke:t.color,fill:t.color,strokeWidth:t.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",points:"-5,-4 0,0 -5,4 -5,-4"},null,4)):n.createCommentVNode("",!0),t.type===n.unref(Wr).Arrow?(n.openBlock(),n.createElementBlock("polyline",{key:1,style:n.normalizeStyle({stroke:t.color,strokeWidth:t.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",fill:"none",points:"-5,-4 0,0 -5,4"},null,4)):n.createCommentVNode("",!0)],8,ex))}}),ox={class:"vue-flow__marker vue-flow__container","aria-hidden":"true"},rx={name:"MarkerDefinitions",compatConfig:{MODE:3}},ix=n.defineComponent({...rx,setup(e){const{id:t,edges:o,connectionLineOptions:r,defaultMarkerColor:i}=Te(),a=n.computed(()=>{const l=new Set,s=[],c=d=>{if(d){const f=Vo(d,t);l.has(f)||(typeof d=="object"?s.push({...d,id:f,color:d.color||i.value}):s.push({id:f,color:i.value,type:d}),l.add(f))}};for(const d of[r.value.markerEnd,r.value.markerStart])c(d);for(const d of o.value)for(const f of[d.markerStart,d.markerEnd])c(f);return s.sort((d,f)=>d.id.localeCompare(f.id))});return(l,s)=>(n.openBlock(),n.createElementBlock("svg",ox,[n.createElementVNode("defs",null,[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(a.value,c=>(n.openBlock(),n.createBlock(nx,{id:c.id,key:c.id,type:c.type,color:c.color,width:c.width,height:c.height,markerUnits:c.markerUnits,"stroke-width":c.strokeWidth,orient:c.orient},null,8,["id","type","color","width","height","markerUnits","stroke-width","orient"]))),128))])]))}}),ax={name:"Edges",compatConfig:{MODE:3}},lx=n.defineComponent({...ax,setup(e){const{findNode:t,getEdges:o,elevateEdgesOnSelect:r}=Te();return(i,a)=>(n.openBlock(),n.createElementBlock(n.Fragment,null,[n.createVNode(ix),(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(o),l=>(n.openBlock(),n.createElementBlock("svg",{key:l.id,class:"vue-flow__edges vue-flow__container",style:n.normalizeStyle({zIndex:n.unref(O1)(l,n.unref(t),n.unref(r))})},[n.createVNode(n.unref(JS),{id:l.id},null,8,["id"])],4))),128)),n.createVNode(n.unref(QS))],64))}}),sx=n.defineComponent({name:"Node",compatConfig:{MODE:3},props:["id","resizeObserver"],setup(e){const{id:t,noPanClassName:o,selectNodesOnDrag:r,nodesSelectionActive:i,multiSelectionActive:a,emits:l,removeSelectedNodes:s,addSelectedNodes:c,updateNodeDimensions:d,onUpdateNodeInternals:f,getNodeTypes:u,nodeExtent:p,elevateNodesOnSelect:m,disableKeyboardA11y:g,ariaLiveMessage:_,snapToGrid:h,snapGrid:b,nodeDragThreshold:w,nodesDraggable:y,elementsSelectable:v,nodesConnectable:k,nodesFocusable:E,hooks:R}=Te(),O=n.ref(null);n.provide(Du,O),n.provide(Ru,e.id);const T=n.inject(oi),q=n.getCurrentInstance(),j=Uu(),{node:A,parentNode:I}=Lu(e.id),{emit:C,on:D}=J1(A,l),P=n.toRef(()=>typeof A.draggable>"u"?y.value:A.draggable),L=n.toRef(()=>typeof A.selectable>"u"?v.value:A.selectable),F=n.toRef(()=>typeof A.connectable>"u"?k.value:A.connectable),B=n.toRef(()=>typeof A.focusable>"u"?E.value:A.focusable),$=n.computed(()=>L.value||P.value||R.value.nodeClick.hasListeners()||R.value.nodeDoubleClick.hasListeners()||R.value.nodeMouseEnter.hasListeners()||R.value.nodeMouseMove.hasListeners()||R.value.nodeMouseLeave.hasListeners()),G=n.toRef(()=>!!A.dimensions.width&&!!A.dimensions.height),ee=n.computed(()=>{const x=A.type||"default",V=T==null?void 0:T[`node-${x}`];if(V)return V;let M=A.template||u.value[x];if(typeof M=="string"&&q){const X=Object.keys(q.appContext.components);X&&X.includes(x)&&(M=n.resolveComponent(x,!1))}return M&&typeof M!="string"?M:(l.error(new Ge(De.NODE_TYPE_MISSING,M)),!1)}),re=Mu({id:e.id,el:O,disabled:()=>!P.value,selectable:L,dragHandle:()=>A.dragHandle,onStart(x){C.dragStart(x)},onDrag(x){C.drag(x)},onStop(x){C.dragStop(x)},onClick(x){N(x)}}),J=n.computed(()=>A.class instanceof Function?A.class(A):A.class),ne=n.computed(()=>{const x=(A.style instanceof Function?A.style(A):A.style)||{},V=A.width instanceof Function?A.width(A):A.width,M=A.height instanceof Function?A.height(A):A.height;return!x.width&&V&&(x.width=typeof V=="string"?V:`${V}px`),!x.height&&M&&(x.height=typeof M=="string"?M:`${M}px`),x}),z=n.toRef(()=>Number(A.zIndex??ne.value.zIndex??0));return f(x=>{(x.includes(e.id)||!x.length)&&ie()}),n.onMounted(()=>{n.watch(()=>A.hidden,(x=!1,V,M)=>{!x&&O.value&&(e.resizeObserver.observe(O.value),M(()=>{O.value&&e.resizeObserver.unobserve(O.value)}))},{immediate:!0,flush:"post"})}),n.watch([()=>A.type,()=>A.sourcePosition,()=>A.targetPosition],()=>{n.nextTick(()=>{d([{id:e.id,nodeElement:O.value,forceUpdate:!0}])})}),n.watch([()=>A.position.x,()=>A.position.y,()=>{var x;return(x=I.value)==null?void 0:x.computedPosition.x},()=>{var x;return(x=I.value)==null?void 0:x.computedPosition.y},()=>{var x;return(x=I.value)==null?void 0:x.computedPosition.z},z,()=>A.selected,()=>A.dimensions.height,()=>A.dimensions.width,()=>{var x;return(x=I.value)==null?void 0:x.dimensions.height},()=>{var x;return(x=I.value)==null?void 0:x.dimensions.width}],([x,V,M,X,Q,U])=>{const W={x,y:V,z:U+(m.value&&A.selected?1e3:0)};typeof M<"u"&&typeof X<"u"?A.computedPosition=S1({x:M,y:X,z:Q},W):A.computedPosition=W},{flush:"post",immediate:!0}),n.watch([()=>A.extent,p],([x,V],[M,X])=>{(x!==M||V!==X)&&Z()}),A.extent==="parent"||typeof A.extent=="object"&&"range"in A.extent&&A.extent.range==="parent"?Na(()=>G).toBe(!0).then(Z):Z(),()=>A.hidden?null:n.h("div",{ref:O,"data-id":A.id,class:["vue-flow__node",`vue-flow__node-${ee.value===!1?"default":A.type||"default"}`,{[o.value]:P.value,dragging:re==null?void 0:re.value,draggable:P.value,selected:A.selected,selectable:L.value,parent:A.isParent},J.value],style:{visibility:G.value?"visible":"hidden",zIndex:A.computedPosition.z??z.value,transform:`translate(${A.computedPosition.x}px,${A.computedPosition.y}px)`,pointerEvents:$.value?"all":"none",...ne.value},tabIndex:B.value?0:void 0,role:B.value?"group":void 0,"aria-describedby":g.value?void 0:`${ru}-${t}`,"aria-label":A.ariaLabel,"aria-roledescription":"node",...A.domAttributes,onMouseenter:oe,onMousemove:ue,onMouseleave:de,onContextmenu:Y,onClick:N,onDblclick:te,onKeydown:S},[n.h(ee.value===!1?u.value.default:ee.value,{id:A.id,type:A.type,data:A.data,events:{...A.events,...D},selected:A.selected,resizing:A.resizing,dragging:re.value,connectable:F.value,position:A.computedPosition,dimensions:A.dimensions,isValidTargetPos:A.isValidTargetPos,isValidSourcePos:A.isValidSourcePos,parent:A.parentNode,parentNodeId:A.parentNode,zIndex:A.computedPosition.z??z.value,targetPosition:A.targetPosition,sourcePosition:A.sourcePosition,label:A.label,dragHandle:A.dragHandle,onUpdateNodeInternals:ie})]);function Z(){const x=A.computedPosition,{computedPosition:V,position:M}=Za(A,h.value?ti(x,b.value):x,l.error,p.value,I.value);(A.computedPosition.x!==V.x||A.computedPosition.y!==V.y)&&(A.computedPosition={...A.computedPosition,...V}),(A.position.x!==M.x||A.position.y!==M.y)&&(A.position=M)}function ie(){O.value&&d([{id:e.id,nodeElement:O.value,forceUpdate:!0}])}function oe(x){re!=null&&re.value||C.mouseEnter({event:x,node:A})}function ue(x){re!=null&&re.value||C.mouseMove({event:x,node:A})}function de(x){re!=null&&re.value||C.mouseLeave({event:x,node:A})}function Y(x){return C.contextMenu({event:x,node:A})}function te(x){return C.doubleClick({event:x,node:A})}function N(x){L.value&&(!r.value||!P.value||w.value>0)&&tl(A,a.value,c,s,i,!1,O.value),C.click({event:x,node:A})}function S(x){if(!(Ha(x)||g.value))if(au.includes(x.key)&&L.value){const V=x.key==="Escape";tl(A,a.value,c,s,i,V,O.value)}else P.value&&A.selected&&qn[x.key]&&(x.preventDefault(),_.value=`Moved selected node ${x.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~A.position.x}, y: ${~~A.position.y}`,j({x:qn[x.key].x,y:qn[x.key].y},x.shiftKey))}}});function cx(e={includeHiddenNodes:!1}){const{nodes:t}=Te();return n.computed(()=>{if(t.value.length===0)return!1;for(const o of t.value)if((e.includeHiddenNodes||!o.hidden)&&((o==null?void 0:o.handleBounds)===void 0||o.dimensions.width===0||o.dimensions.height===0))return!1;return!0})}const dx={class:"vue-flow__nodes vue-flow__container"},ux={name:"Nodes",compatConfig:{MODE:3}},fx=n.defineComponent({...ux,setup(e){const{getNodes:t,updateNodeDimensions:o,emits:r}=Te(),i=cx(),a=n.ref();return n.watch(i,l=>{l&&n.nextTick(()=>{r.nodesInitialized(t.value)})},{immediate:!0}),n.onMounted(()=>{a.value=new ResizeObserver(l=>{const s=l.map(c=>({id:c.target.getAttribute("data-id"),nodeElement:c.target,forceUpdate:!0}));n.nextTick(()=>o(s))})}),n.onBeforeUnmount(()=>{var l;return(l=a.value)==null?void 0:l.disconnect()}),(l,s)=>(n.openBlock(),n.createElementBlock("div",dx,[a.value?(n.openBlock(!0),n.createElementBlock(n.Fragment,{key:0},n.renderList(n.unref(t),(c,d,f,u)=>{const p=[c.id];if(u&&u.key===c.id&&n.isMemoSame(u,p))return u;const m=(n.openBlock(),n.createBlock(n.unref(sx),{id:c.id,key:c.id,"resize-observer":a.value},null,8,["id","resize-observer"]));return m.memo=p,m},s,0),128)):n.createCommentVNode("",!0)]))}});function px(){const{emits:e}=Te();n.onMounted(()=>{if(Iu()){const t=document.querySelector(".vue-flow__pane");t&&window.getComputedStyle(t).zIndex!=="1"&&e.error(new Ge(De.MISSING_STYLES))}})}const mx=n.createElementVNode("div",{class:"vue-flow__edge-labels"},null,-1),gx={name:"VueFlow",compatConfig:{MODE:3}},Qu=n.defineComponent({...gx,props:{id:{},modelValue:{},nodes:{},edges:{},edgeTypes:{},nodeTypes:{},connectionMode:{},connectionLineType:{},connectionLineStyle:{default:void 0},connectionLineOptions:{default:void 0},connectionRadius:{},isValidConnection:{type:[Function,null],default:void 0},deleteKeyCode:{default:void 0},selectionKeyCode:{type:[Boolean,null],default:void 0},multiSelectionKeyCode:{default:void 0},zoomActivationKeyCode:{default:void 0},panActivationKeyCode:{default:void 0},snapToGrid:{type:Boolean,default:void 0},snapGrid:{},onlyRenderVisibleElements:{type:Boolean,default:void 0},edgesUpdatable:{type:[Boolean,String],default:void 0},nodesDraggable:{type:Boolean,default:void 0},nodesConnectable:{type:Boolean,default:void 0},nodeDragThreshold:{},elementsSelectable:{type:Boolean,default:void 0},selectNodesOnDrag:{type:Boolean,default:void 0},panOnDrag:{type:[Boolean,Array],default:void 0},minZoom:{},maxZoom:{},defaultViewport:{},translateExtent:{},nodeExtent:{},defaultMarkerColor:{},zoomOnScroll:{type:Boolean,default:void 0},zoomOnPinch:{type:Boolean,default:void 0},panOnScroll:{type:Boolean,default:void 0},panOnScrollSpeed:{},panOnScrollMode:{},paneClickDistance:{},zoomOnDoubleClick:{type:Boolean,default:void 0},preventScrolling:{type:Boolean,default:void 0},selectionMode:{},edgeUpdaterRadius:{},fitViewOnInit:{type:Boolean,default:void 0},connectOnClick:{type:Boolean,default:void 0},applyDefault:{type:Boolean,default:void 0},autoConnect:{type:[Boolean,Function],default:void 0},noDragClassName:{},noWheelClassName:{},noPanClassName:{},defaultEdgeOptions:{},elevateEdgesOnSelect:{type:Boolean,default:void 0},elevateNodesOnSelect:{type:Boolean,default:void 0},disableKeyboardA11y:{type:Boolean,default:void 0},edgesFocusable:{type:Boolean,default:void 0},nodesFocusable:{type:Boolean,default:void 0},autoPanOnConnect:{type:Boolean,default:void 0},autoPanOnNodeDrag:{type:Boolean,default:void 0},autoPanSpeed:{}},emits:["nodesChange","edgesChange","nodesInitialized","paneReady","init","updateNodeInternals","error","connect","connectStart","connectEnd","clickConnectStart","clickConnectEnd","moveStart","move","moveEnd","selectionDragStart","selectionDrag","selectionDragStop","selectionContextMenu","selectionStart","selectionEnd","viewportChangeStart","viewportChange","viewportChangeEnd","paneScroll","paneClick","paneContextMenu","paneMouseEnter","paneMouseMove","paneMouseLeave","edgeUpdate","edgeContextMenu","edgeMouseEnter","edgeMouseMove","edgeMouseLeave","edgeDoubleClick","edgeClick","edgeUpdateStart","edgeUpdateEnd","nodeContextMenu","nodeMouseEnter","nodeMouseMove","nodeMouseLeave","nodeDoubleClick","nodeClick","nodeDragStart","nodeDrag","nodeDragStop","miniMapNodeClick","miniMapNodeDoubleClick","miniMapNodeMouseEnter","miniMapNodeMouseMove","miniMapNodeMouseLeave","update:modelValue","update:nodes","update:edges"],setup(e,{expose:t,emit:o}){const r=e,i=n.useSlots(),a=Sa(r,"modelValue",o),l=Sa(r,"nodes",o),s=Sa(r,"edges",o),c=Te(r),d=nS({modelValue:a,nodes:l,edges:s},r,c);return rS(o,c.hooks),WS(),px(),n.provide(oi,i),n.onUnmounted(()=>{d()}),t(c),(f,u)=>(n.openBlock(),n.createElementBlock("div",{ref:n.unref(c).vueFlowRef,class:"vue-flow"},[n.createVNode(jS,null,{default:n.withCtx(()=>[n.createVNode(lx),mx,n.createVNode(fx),n.renderSlot(f.$slots,"zoom-pane")]),_:3}),n.renderSlot(f.$slots,"default"),n.createVNode(YS)],512))}}),hx={name:"Panel",compatConfig:{MODE:3}},yx=n.defineComponent({...hx,props:{position:{}},setup(e){const t=e,{userSelectionActive:o}=Te(),r=n.computed(()=>`${t.position}`.split("-"));return(i,a)=>(n.openBlock(),n.createElementBlock("div",{class:n.normalizeClass(["vue-flow__panel",r.value]),style:n.normalizeStyle({pointerEvents:n.unref(o)?"none":"all"})},[n.renderSlot(i.$slots,"default")],6))}});var Ft=(e=>(e.Lines="lines",e.Dots="dots",e))(Ft||{});const ef=function({dimensions:e,size:t,color:o}){return n.h("path",{stroke:o,"stroke-width":t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`})},tf=function({radius:e,color:t}){return n.h("circle",{cx:e,cy:e,r:e,fill:t})};Ft.Lines+"",Ft.Dots+"";const _x={[Ft.Dots]:"#81818a",[Ft.Lines]:"#eee"},bx=["id","x","y","width","height","patternTransform"],wx={key:2,height:"100",width:"100"},Ex=["fill"],kx=["x","y","fill"],Cx={name:"Background",compatConfig:{MODE:3}},vx=n.defineComponent({...Cx,props:{id:{},variant:{default:()=>Ft.Dots},gap:{default:20},size:{default:1},lineWidth:{default:1},patternColor:{},color:{},bgColor:{},height:{default:100},width:{default:100},x:{default:0},y:{default:0},offset:{default:0}},setup(e){const{id:t,viewport:o}=Te(),r=n.computed(()=>{const l=o.value.zoom,[s,c]=Array.isArray(e.gap)?e.gap:[e.gap,e.gap],d=[s*l||1,c*l||1],f=e.size*l,[u,p]=Array.isArray(e.offset)?e.offset:[e.offset,e.offset],m=[u*l||1+d[0]/2,p*l||1+d[1]/2];return{scaledGap:d,offset:m,size:f}}),i=n.toRef(()=>`pattern-${t}${e.id?`-${e.id}`:""}`),a=n.toRef(()=>e.color||e.patternColor||_x[e.variant||Ft.Dots]);return(l,s)=>(n.openBlock(),n.createElementBlock("svg",{class:"vue-flow__background vue-flow__container",style:n.normalizeStyle({height:`${l.height>100?100:l.height}%`,width:`${l.width>100?100:l.width}%`})},[n.renderSlot(l.$slots,"pattern-container",{id:i.value},()=>[n.createElementVNode("pattern",{id:i.value,x:n.unref(o).x%r.value.scaledGap[0],y:n.unref(o).y%r.value.scaledGap[1],width:r.value.scaledGap[0],height:r.value.scaledGap[1],patternTransform:`translate(-${r.value.offset[0]},-${r.value.offset[1]})`,patternUnits:"userSpaceOnUse"},[n.renderSlot(l.$slots,"pattern",{},()=>[l.variant===n.unref(Ft).Lines?(n.openBlock(),n.createBlock(n.unref(ef),{key:0,size:l.lineWidth,color:a.value,dimensions:r.value.scaledGap},null,8,["size","color","dimensions"])):l.variant===n.unref(Ft).Dots?(n.openBlock(),n.createBlock(n.unref(tf),{key:1,color:a.value,radius:r.value.size/2},null,8,["color","radius"])):n.createCommentVNode("",!0),l.bgColor?(n.openBlock(),n.createElementBlock("svg",wx,[n.createElementVNode("rect",{width:"100%",height:"100%",fill:l.bgColor},null,8,Ex)])):n.createCommentVNode("",!0)])],8,bx)]),n.createElementVNode("rect",{x:l.x,y:l.y,width:"100%",height:"100%",fill:`url(#${i.value})`},null,8,kx),n.renderSlot(l.$slots,"default",{id:i.value})],4))}}),Nx={name:"ControlButton",compatConfig:{MODE:3}},Sx=(e,t)=>{const o=e.__vccOpts||e;for(const[r,i]of t)o[r]=i;return o},xx={class:"vue-flow__controls-button"};function Ax(e,t,o,r,i,a){return n.openBlock(),n.createElementBlock("button",xx,[n.renderSlot(e.$slots,"default")])}const di=Sx(Nx,[["render",Ax]]),Tx={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},Ix=[n.createElementVNode("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"},null,-1)];function Px(e,t){return n.openBlock(),n.createElementBlock("svg",Tx,Ix)}const Ox={render:Px},$x={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},Bx=[n.createElementVNode("path",{d:"M0 0h32v4.2H0z"},null,-1)];function Vx(e,t){return n.openBlock(),n.createElementBlock("svg",$x,Bx)}const Rx={render:Vx},Dx={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},Mx=[n.createElementVNode("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 0 0 27.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.94a.919.919 0 0 1-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"},null,-1)];function Fx(e,t){return n.openBlock(),n.createElementBlock("svg",Dx,Mx)}const Lx={render:Fx},Ux={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},Kx=[n.createElementVNode("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 0 0 0 13.714v15.238A3.056 3.056 0 0 0 3.048 32h18.285a3.056 3.056 0 0 0 3.048-3.048V13.714a3.056 3.056 0 0 0-3.048-3.047zM12.19 24.533a3.056 3.056 0 0 1-3.047-3.047 3.056 3.056 0 0 1 3.047-3.048 3.056 3.056 0 0 1 3.048 3.048 3.056 3.056 0 0 1-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"},null,-1)];function jx(e,t){return n.openBlock(),n.createElementBlock("svg",Ux,Kx)}const Gx={render:jx},qx={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},zx=[n.createElementVNode("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 0 0 0 13.714v15.238A3.056 3.056 0 0 0 3.048 32h18.285a3.056 3.056 0 0 0 3.048-3.048V13.714a3.056 3.056 0 0 0-3.048-3.047zM12.19 24.533a3.056 3.056 0 0 1-3.047-3.047 3.056 3.056 0 0 1 3.047-3.048 3.056 3.056 0 0 1 3.048 3.048 3.056 3.056 0 0 1-3.048 3.047z"},null,-1)];function Hx(e,t){return n.openBlock(),n.createElementBlock("svg",qx,zx)}const Yx={render:Hx},Wx={name:"Controls",compatConfig:{MODE:3}},Xx=n.defineComponent({...Wx,props:{showZoom:{type:Boolean,default:!0},showFitView:{type:Boolean,default:!0},showInteractive:{type:Boolean,default:!0},fitViewParams:{},position:{default:()=>nu.BottomLeft}},emits:["zoomIn","zoomOut","fitView","interactionChange"],setup(e,{emit:t}){const{nodesDraggable:o,nodesConnectable:r,elementsSelectable:i,setInteractive:a,zoomIn:l,zoomOut:s,fitView:c,viewport:d,minZoom:f,maxZoom:u}=Te(),p=n.toRef(()=>o.value||r.value||i.value),m=n.toRef(()=>d.value.zoom<=f.value),g=n.toRef(()=>d.value.zoom>=u.value);function _(){l(),t("zoomIn")}function h(){s(),t("zoomOut")}function b(){c(e.fitViewParams),t("fitView")}function w(){a(!p.value),t("interactionChange",!p.value)}return(y,v)=>(n.openBlock(),n.createBlock(n.unref(yx),{class:"vue-flow__controls",position:y.position},{default:n.withCtx(()=>[n.renderSlot(y.$slots,"top"),y.showZoom?(n.openBlock(),n.createElementBlock(n.Fragment,{key:0},[n.renderSlot(y.$slots,"control-zoom-in",{},()=>[n.createVNode(di,{class:"vue-flow__controls-zoomin",disabled:g.value,onClick:_},{default:n.withCtx(()=>[n.renderSlot(y.$slots,"icon-zoom-in",{},()=>[(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref(Ox))))])]),_:3},8,["disabled"])]),n.renderSlot(y.$slots,"control-zoom-out",{},()=>[n.createVNode(di,{class:"vue-flow__controls-zoomout",disabled:m.value,onClick:h},{default:n.withCtx(()=>[n.renderSlot(y.$slots,"icon-zoom-out",{},()=>[(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref(Rx))))])]),_:3},8,["disabled"])])],64)):n.createCommentVNode("",!0),y.showFitView?n.renderSlot(y.$slots,"control-fit-view",{key:1},()=>[n.createVNode(di,{class:"vue-flow__controls-fitview",onClick:b},{default:n.withCtx(()=>[n.renderSlot(y.$slots,"icon-fit-view",{},()=>[(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref(Lx))))])]),_:3})]):n.createCommentVNode("",!0),y.showInteractive?n.renderSlot(y.$slots,"control-interactive",{key:2},()=>[y.showInteractive?(n.openBlock(),n.createBlock(di,{key:0,class:"vue-flow__controls-interactive",onClick:w},{default:n.withCtx(()=>[p.value?n.renderSlot(y.$slots,"icon-unlock",{key:0},()=>[(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref(Yx))))]):n.createCommentVNode("",!0),p.value?n.createCommentVNode("",!0):n.renderSlot(y.$slots,"icon-lock",{key:1},()=>[(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref(Gx))))])]),_:3})):n.createCommentVNode("",!0)]):n.createCommentVNode("",!0),n.renderSlot(y.$slots,"default")]),_:3},8,["position"]))}});function Zx(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Jx="\0",yn="\0",nf="";let Qx=class{constructor(t){Ke(this,"_isDirected",!0);Ke(this,"_isMultigraph",!1);Ke(this,"_isCompound",!1);Ke(this,"_label");Ke(this,"_defaultNodeLabelFn",()=>{});Ke(this,"_defaultEdgeLabelFn",()=>{});Ke(this,"_nodes",{});Ke(this,"_in",{});Ke(this,"_preds",{});Ke(this,"_out",{});Ke(this,"_sucs",{});Ke(this,"_edgeObjs",{});Ke(this,"_edgeLabels",{});Ke(this,"_nodeCount",0);Ke(this,"_edgeCount",0);Ke(this,"_parent");Ke(this,"_children");t&&(this._isDirected=Object.hasOwn(t,"directed")?t.directed:!0,this._isMultigraph=Object.hasOwn(t,"multigraph")?t.multigraph:!1,this._isCompound=Object.hasOwn(t,"compound")?t.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[yn]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(t){return this._label=t,this}graph(){return this._label}setDefaultNodeLabel(t){return this._defaultNodeLabelFn=t,typeof t!="function"&&(this._defaultNodeLabelFn=()=>t),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var t=this;return this.nodes().filter(o=>Object.keys(t._in[o]).length===0)}sinks(){var t=this;return this.nodes().filter(o=>Object.keys(t._out[o]).length===0)}setNodes(t,o){var r=arguments,i=this;return t.forEach(function(a){r.length>1?i.setNode(a,o):i.setNode(a)}),this}setNode(t,o){return Object.hasOwn(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=o),this):(this._nodes[t]=arguments.length>1?o:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=yn,this._children[t]={},this._children[yn][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)}node(t){return this._nodes[t]}hasNode(t){return Object.hasOwn(this._nodes,t)}removeNode(t){var o=this;if(Object.hasOwn(this._nodes,t)){var r=i=>o.removeEdge(o._edgeObjs[i]);delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],this.children(t).forEach(function(i){o.setParent(i)}),delete this._children[t]),Object.keys(this._in[t]).forEach(r),delete this._in[t],delete this._preds[t],Object.keys(this._out[t]).forEach(r),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this}setParent(t,o){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(o===void 0)o=yn;else{o+="";for(var r=o;r!==void 0;r=this.parent(r))if(r===t)throw new Error("Setting "+o+" as parent of "+t+" would create a cycle");this.setNode(o)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=o,this._children[o][t]=!0,this}_removeFromParentsChildList(t){delete this._children[this._parent[t]][t]}parent(t){if(this._isCompound){var o=this._parent[t];if(o!==yn)return o}}children(t=yn){if(this._isCompound){var o=this._children[t];if(o)return Object.keys(o)}else{if(t===yn)return this.nodes();if(this.hasNode(t))return[]}}predecessors(t){var o=this._preds[t];if(o)return Object.keys(o)}successors(t){var o=this._sucs[t];if(o)return Object.keys(o)}neighbors(t){var o=this.predecessors(t);if(o){const i=new Set(o);for(var r of this.successors(t))i.add(r);return Array.from(i.values())}}isLeaf(t){var o;return this.isDirected()?o=this.successors(t):o=this.neighbors(t),o.length===0}filterNodes(t){var o=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});o.setGraph(this.graph());var r=this;Object.entries(this._nodes).forEach(function([l,s]){t(l)&&o.setNode(l,s)}),Object.values(this._edgeObjs).forEach(function(l){o.hasNode(l.v)&&o.hasNode(l.w)&&o.setEdge(l,r.edge(l))});var i={};function a(l){var s=r.parent(l);return s===void 0||o.hasNode(s)?(i[l]=s,s):s in i?i[s]:a(s)}return this._isCompound&&o.nodes().forEach(l=>o.setParent(l,a(l))),o}setDefaultEdgeLabel(t){return this._defaultEdgeLabelFn=t,typeof t!="function"&&(this._defaultEdgeLabelFn=()=>t),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(t,o){var r=this,i=arguments;return t.reduce(function(a,l){return i.length>1?r.setEdge(a,l,o):r.setEdge(a,l),l}),this}setEdge(){var t,o,r,i,a=!1,l=arguments[0];typeof l=="object"&&l!==null&&"v"in l?(t=l.v,o=l.w,r=l.name,arguments.length===2&&(i=arguments[1],a=!0)):(t=l,o=arguments[1],r=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),t=""+t,o=""+o,r!==void 0&&(r=""+r);var s=Ro(this._isDirected,t,o,r);if(Object.hasOwn(this._edgeLabels,s))return a&&(this._edgeLabels[s]=i),this;if(r!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(t),this.setNode(o),this._edgeLabels[s]=a?i:this._defaultEdgeLabelFn(t,o,r);var c=eA(this._isDirected,t,o,r);return t=c.v,o=c.w,Object.freeze(c),this._edgeObjs[s]=c,of(this._preds[o],t),of(this._sucs[t],o),this._in[o][s]=c,this._out[t][s]=c,this._edgeCount++,this}edge(t,o,r){var i=arguments.length===1?sl(this._isDirected,arguments[0]):Ro(this._isDirected,t,o,r);return this._edgeLabels[i]}edgeAsObj(){const t=this.edge(...arguments);return typeof t!="object"?{label:t}:t}hasEdge(t,o,r){var i=arguments.length===1?sl(this._isDirected,arguments[0]):Ro(this._isDirected,t,o,r);return Object.hasOwn(this._edgeLabels,i)}removeEdge(t,o,r){var i=arguments.length===1?sl(this._isDirected,arguments[0]):Ro(this._isDirected,t,o,r),a=this._edgeObjs[i];return a&&(t=a.v,o=a.w,delete this._edgeLabels[i],delete this._edgeObjs[i],rf(this._preds[o],t),rf(this._sucs[t],o),delete this._in[o][i],delete this._out[t][i],this._edgeCount--),this}inEdges(t,o){var r=this._in[t];if(r){var i=Object.values(r);return o?i.filter(a=>a.v===o):i}}outEdges(t,o){var r=this._out[t];if(r){var i=Object.values(r);return o?i.filter(a=>a.w===o):i}}nodeEdges(t,o){var r=this.inEdges(t,o);if(r)return r.concat(this.outEdges(t,o))}};function of(e,t){e[t]?e[t]++:e[t]=1}function rf(e,t){--e[t]||delete e[t]}function Ro(e,t,o,r){var i=""+t,a=""+o;if(!e&&i>a){var l=i;i=a,a=l}return i+nf+a+nf+(r===void 0?Jx:r)}function eA(e,t,o,r){var i=""+t,a=""+o;if(!e&&i>a){var l=i;i=a,a=l}var s={v:i,w:a};return r&&(s.name=r),s}function sl(e,t){return Ro(e,t.v,t.w,t.name)}var cl=Qx,tA="2.2.4",nA={Graph:cl,version:tA},oA=cl,rA={write:iA,read:sA};function iA(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:aA(e),edges:lA(e)};return e.graph()!==void 0&&(t.value=structuredClone(e.graph())),t}function aA(e){return e.nodes().map(function(t){var o=e.node(t),r=e.parent(t),i={v:t};return o!==void 0&&(i.value=o),r!==void 0&&(i.parent=r),i})}function lA(e){return e.edges().map(function(t){var o=e.edge(t),r={v:t.v,w:t.w};return t.name!==void 0&&(r.name=t.name),o!==void 0&&(r.value=o),r})}function sA(e){var t=new oA(e.options).setGraph(e.value);return e.nodes.forEach(function(o){t.setNode(o.v,o.value),o.parent&&t.setParent(o.v,o.parent)}),e.edges.forEach(function(o){t.setEdge({v:o.v,w:o.w,name:o.name},o.value)}),t}var cA=dA;function dA(e){var t={},o=[],r;function i(a){Object.hasOwn(t,a)||(t[a]=!0,r.push(a),e.successors(a).forEach(i),e.predecessors(a).forEach(i))}return e.nodes().forEach(function(a){r=[],i(a),r.length&&o.push(r)}),o}var af=class{constructor(){Ke(this,"_arr",[]);Ke(this,"_keyIndices",{})}size(){return this._arr.length}keys(){return this._arr.map(function(t){return t.key})}has(t){return Object.hasOwn(this._keyIndices,t)}priority(t){var o=this._keyIndices[t];if(o!==void 0)return this._arr[o].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(t,o){var r=this._keyIndices;if(t=String(t),!Object.hasOwn(r,t)){var i=this._arr,a=i.length;return r[t]=a,i.push({key:t,priority:o}),this._decrease(a),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var t=this._arr.pop();return delete this._keyIndices[t.key],this._heapify(0),t.key}decrease(t,o){var r=this._keyIndices[t];if(o>this._arr[r].priority)throw new Error("New priority is greater than current priority. Key: "+t+" Old: "+this._arr[r].priority+" New: "+o);this._arr[r].priority=o,this._decrease(r)}_heapify(t){var o=this._arr,r=2*t,i=r+1,a=t;r<o.length&&(a=o[r].priority<o[a].priority?r:a,i<o.length&&(a=o[i].priority<o[a].priority?i:a),a!==t&&(this._swap(t,a),this._heapify(a)))}_decrease(t){for(var o=this._arr,r=o[t].priority,i;t!==0&&(i=t>>1,!(o[i].priority<r));)this._swap(t,i),t=i}_swap(t,o){var r=this._arr,i=this._keyIndices,a=r[t],l=r[o];r[t]=l,r[o]=a,i[l.key]=t,i[a.key]=o}},uA=af,lf=pA,fA=()=>1;function pA(e,t,o,r){return mA(e,String(t),o||fA,r||function(i){return e.outEdges(i)})}function mA(e,t,o,r){var i={},a=new uA,l,s,c=function(d){var f=d.v!==l?d.v:d.w,u=i[f],p=o(d),m=s.distance+p;if(p<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+d+" Weight: "+p);m<u.distance&&(u.distance=m,u.predecessor=l,a.decrease(f,m))};for(e.nodes().forEach(function(d){var f=d===t?0:Number.POSITIVE_INFINITY;i[d]={distance:f},a.add(d,f)});a.size()>0&&(l=a.removeMin(),s=i[l],s.distance!==Number.POSITIVE_INFINITY);)r(l).forEach(c);return i}var gA=lf,hA=yA;function yA(e,t,o){return e.nodes().reduce(function(r,i){return r[i]=gA(e,i,t,o),r},{})}var sf=_A;function _A(e){var t=0,o=[],r={},i=[];function a(l){var s=r[l]={onStack:!0,lowlink:t,index:t++};if(o.push(l),e.successors(l).forEach(function(f){Object.hasOwn(r,f)?r[f].onStack&&(s.lowlink=Math.min(s.lowlink,r[f].index)):(a(f),s.lowlink=Math.min(s.lowlink,r[f].lowlink))}),s.lowlink===s.index){var c=[],d;do d=o.pop(),r[d].onStack=!1,c.push(d);while(l!==d);i.push(c)}}return e.nodes().forEach(function(l){Object.hasOwn(r,l)||a(l)}),i}var bA=sf,wA=EA;function EA(e){return bA(e).filter(function(t){return t.length>1||t.length===1&&e.hasEdge(t[0],t[0])})}var kA=vA,CA=()=>1;function vA(e,t,o){return NA(e,t||CA,o||function(r){return e.outEdges(r)})}function NA(e,t,o){var r={},i=e.nodes();return i.forEach(function(a){r[a]={},r[a][a]={distance:0},i.forEach(function(l){a!==l&&(r[a][l]={distance:Number.POSITIVE_INFINITY})}),o(a).forEach(function(l){var s=l.v===a?l.w:l.v,c=t(l);r[a][s]={distance:c,predecessor:a}})}),i.forEach(function(a){var l=r[a];i.forEach(function(s){var c=r[s];i.forEach(function(d){var f=c[a],u=l[d],p=c[d],m=f.distance+u.distance;m<p.distance&&(p.distance=m,p.predecessor=u.predecessor)})})}),r}function cf(e){var t={},o={},r=[];function i(a){if(Object.hasOwn(o,a))throw new dl;Object.hasOwn(t,a)||(o[a]=!0,t[a]=!0,e.predecessors(a).forEach(i),delete o[a],r.push(a))}if(e.sinks().forEach(i),Object.keys(t).length!==e.nodeCount())throw new dl;return r}class dl extends Error{constructor(){super(...arguments)}}var df=cf;cf.CycleException=dl;var uf=df,SA=xA;function xA(e){try{uf(e)}catch(t){if(t instanceof uf.CycleException)return!1;throw t}return!0}var ff=AA;function AA(e,t,o){Array.isArray(t)||(t=[t]);var r=e.isDirected()?s=>e.successors(s):s=>e.neighbors(s),i=o==="post"?TA:IA,a=[],l={};return t.forEach(s=>{if(!e.hasNode(s))throw new Error("Graph does not have node: "+s);i(s,r,l,a)}),a}function TA(e,t,o,r){for(var i=[[e,!1]];i.length>0;){var a=i.pop();a[1]?r.push(a[0]):Object.hasOwn(o,a[0])||(o[a[0]]=!0,i.push([a[0],!0]),pf(t(a[0]),l=>i.push([l,!1])))}}function IA(e,t,o,r){for(var i=[e];i.length>0;){var a=i.pop();Object.hasOwn(o,a)||(o[a]=!0,r.push(a),pf(t(a),l=>i.push(l)))}}function pf(e,t){for(var o=e.length;o--;)t(e[o],o,e);return e}var PA=ff,OA=$A;function $A(e,t){return PA(e,t,"post")}var BA=ff,VA=RA;function RA(e,t){return BA(e,t,"pre")}var DA=cl,MA=af,FA=LA;function LA(e,t){var o=new DA,r={},i=new MA,a;function l(c){var d=c.v===a?c.w:c.v,f=i.priority(d);if(f!==void 0){var u=t(c);u<f&&(r[d]=a,i.decrease(d,u))}}if(e.nodeCount()===0)return o;e.nodes().forEach(function(c){i.add(c,Number.POSITIVE_INFINITY),o.setNode(c)}),i.decrease(e.nodes()[0],0);for(var s=!1;i.size()>0;){if(a=i.removeMin(),Object.hasOwn(r,a))o.setEdge(a,r[a]);else{if(s)throw new Error("Input graph is not connected: "+e);s=!0}e.nodeEdges(a).forEach(l)}return o}var UA={components:cA,dijkstra:lf,dijkstraAll:hA,findCycles:wA,floydWarshall:kA,isAcyclic:SA,postorder:OA,preorder:VA,prim:FA,tarjan:sf,topsort:df},mf=nA,_t={Graph:mf.Graph,json:rA,alg:UA,version:mf.version};let KA=class{constructor(){let t={};t._next=t._prev=t,this._sentinel=t}dequeue(){let t=this._sentinel,o=t._prev;if(o!==t)return gf(o),o}enqueue(t){let o=this._sentinel;t._prev&&t._next&&gf(t),t._next=o._next,o._next._prev=t,o._next=t,t._prev=o}toString(){let t=[],o=this._sentinel,r=o._prev;for(;r!==o;)t.push(JSON.stringify(r,jA)),r=r._prev;return"["+t.join(", ")+"]"}};function gf(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function jA(e,t){if(e!=="_next"&&e!=="_prev")return t}var GA=KA;let qA=_t.Graph,zA=GA;var HA=WA;let YA=()=>1;function WA(e,t){if(e.nodeCount()<=1)return[];let o=ZA(e,t||YA);return XA(o.graph,o.buckets,o.zeroIdx).flatMap(i=>e.outEdges(i.v,i.w))}function XA(e,t,o){let r=[],i=t[t.length-1],a=t[0],l;for(;e.nodeCount();){for(;l=a.dequeue();)ul(e,t,o,l);for(;l=i.dequeue();)ul(e,t,o,l);if(e.nodeCount()){for(let s=t.length-2;s>0;--s)if(l=t[s].dequeue(),l){r=r.concat(ul(e,t,o,l,!0));break}}}return r}function ul(e,t,o,r,i){let a=i?[]:void 0;return e.inEdges(r.v).forEach(l=>{let s=e.edge(l),c=e.node(l.v);i&&a.push({v:l.v,w:l.w}),c.out-=s,fl(t,o,c)}),e.outEdges(r.v).forEach(l=>{let s=e.edge(l),c=l.w,d=e.node(c);d.in-=s,fl(t,o,d)}),e.removeNode(r.v),a}function ZA(e,t){let o=new qA,r=0,i=0;e.nodes().forEach(s=>{o.setNode(s,{v:s,in:0,out:0})}),e.edges().forEach(s=>{let c=o.edge(s.v,s.w)||0,d=t(s),f=c+d;o.setEdge(s.v,s.w,f),i=Math.max(i,o.node(s.v).out+=d),r=Math.max(r,o.node(s.w).in+=d)});let a=JA(i+r+3).map(()=>new zA),l=r+1;return o.nodes().forEach(s=>{fl(a,l,o.node(s))}),{graph:o,buckets:a,zeroIdx:l}}function fl(e,t,o){o.out?o.in?e[o.out-o.in+t].enqueue(o):e[e.length-1].enqueue(o):e[0].enqueue(o)}function JA(e){const t=[];for(let o=0;o<e;o++)t.push(o);return t}let hf=_t.Graph;var Fe={addBorderNode:lT,addDummyNode:yf,applyWithChunking:ui,asNonCompoundGraph:eT,buildLayerMatrix:rT,intersectRect:oT,mapValues:mT,maxRank:bf,normalizeRanks:iT,notime:uT,partition:cT,pick:pT,predecessorWeights:nT,range:Ef,removeEmptyRanks:aT,simplify:QA,successorWeights:tT,time:dT,uniqueId:wf,zipObject:pl};function yf(e,t,o,r){for(var i=r;e.hasNode(i);)i=wf(r);return o.dummy=t,e.setNode(i,o),i}function QA(e){let t=new hf().setGraph(e.graph());return e.nodes().forEach(o=>t.setNode(o,e.node(o))),e.edges().forEach(o=>{let r=t.edge(o.v,o.w)||{weight:0,minlen:1},i=e.edge(o);t.setEdge(o.v,o.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})}),t}function eT(e){let t=new hf({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(o=>{e.children(o).length||t.setNode(o,e.node(o))}),e.edges().forEach(o=>{t.setEdge(o,e.edge(o))}),t}function tT(e){let t=e.nodes().map(o=>{let r={};return e.outEdges(o).forEach(i=>{r[i.w]=(r[i.w]||0)+e.edge(i).weight}),r});return pl(e.nodes(),t)}function nT(e){let t=e.nodes().map(o=>{let r={};return e.inEdges(o).forEach(i=>{r[i.v]=(r[i.v]||0)+e.edge(i).weight}),r});return pl(e.nodes(),t)}function oT(e,t){let o=e.x,r=e.y,i=t.x-o,a=t.y-r,l=e.width/2,s=e.height/2;if(!i&&!a)throw new Error("Not possible to find intersection inside of the rectangle");let c,d;return Math.abs(a)*l>Math.abs(i)*s?(a<0&&(s=-s),c=s*i/a,d=s):(i<0&&(l=-l),c=l,d=l*a/i),{x:o+c,y:r+d}}function rT(e){let t=Ef(bf(e)+1).map(()=>[]);return e.nodes().forEach(o=>{let r=e.node(o),i=r.rank;i!==void 0&&(t[i][r.order]=o)}),t}function iT(e){let t=e.nodes().map(r=>{let i=e.node(r).rank;return i===void 0?Number.MAX_VALUE:i}),o=ui(Math.min,t);e.nodes().forEach(r=>{let i=e.node(r);Object.hasOwn(i,"rank")&&(i.rank-=o)})}function aT(e){let t=e.nodes().map(l=>e.node(l).rank),o=ui(Math.min,t),r=[];e.nodes().forEach(l=>{let s=e.node(l).rank-o;r[s]||(r[s]=[]),r[s].push(l)});let i=0,a=e.graph().nodeRankFactor;Array.from(r).forEach((l,s)=>{l===void 0&&s%a!==0?--i:l!==void 0&&i&&l.forEach(c=>e.node(c).rank+=i)})}function lT(e,t,o,r){let i={width:0,height:0};return arguments.length>=4&&(i.rank=o,i.order=r),yf(e,"border",i,t)}function sT(e,t=_f){const o=[];for(let r=0;r<e.length;r+=t){const i=e.slice(r,r+t);o.push(i)}return o}const _f=65535;function ui(e,t){if(t.length>_f){const o=sT(t);return e.apply(null,o.map(r=>e.apply(null,r)))}else return e.apply(null,t)}function bf(e){const o=e.nodes().map(r=>{let i=e.node(r).rank;return i===void 0?Number.MIN_VALUE:i});return ui(Math.max,o)}function cT(e,t){let o={lhs:[],rhs:[]};return e.forEach(r=>{t(r)?o.lhs.push(r):o.rhs.push(r)}),o}function dT(e,t){let o=Date.now();try{return t()}finally{console.log(e+" time: "+(Date.now()-o)+"ms")}}function uT(e,t){return t()}let fT=0;function wf(e){var t=++fT;return e+(""+t)}function Ef(e,t,o=1){t==null&&(t=e,e=0);let r=a=>a<t;o<0&&(r=a=>t<a);const i=[];for(let a=e;r(a);a+=o)i.push(a);return i}function pT(e,t){const o={};for(const r of t)e[r]!==void 0&&(o[r]=e[r]);return o}function mT(e,t){let o=t;return typeof t=="string"&&(o=r=>r[t]),Object.entries(e).reduce((r,[i,a])=>(r[i]=o(a,i),r),{})}function pl(e,t){return e.reduce((o,r,i)=>(o[r]=t[i],o),{})}let gT=HA,hT=Fe.uniqueId;var yT={run:_T,undo:wT};function _T(e){(e.graph().acyclicer==="greedy"?gT(e,o(e)):bT(e)).forEach(r=>{let i=e.edge(r);e.removeEdge(r),i.forwardName=r.name,i.reversed=!0,e.setEdge(r.w,r.v,i,hT("rev"))});function o(r){return i=>r.edge(i).weight}}function bT(e){let t=[],o={},r={};function i(a){Object.hasOwn(r,a)||(r[a]=!0,o[a]=!0,e.outEdges(a).forEach(l=>{Object.hasOwn(o,l.w)?t.push(l):i(l.w)}),delete o[a])}return e.nodes().forEach(i),t}function wT(e){e.edges().forEach(t=>{let o=e.edge(t);if(o.reversed){e.removeEdge(t);let r=o.forwardName;delete o.reversed,delete o.forwardName,e.setEdge(t.w,t.v,o,r)}})}let ET=Fe;var kT={run:CT,undo:NT};function CT(e){e.graph().dummyChains=[],e.edges().forEach(t=>vT(e,t))}function vT(e,t){let o=t.v,r=e.node(o).rank,i=t.w,a=e.node(i).rank,l=t.name,s=e.edge(t),c=s.labelRank;if(a===r+1)return;e.removeEdge(t);let d,f,u;for(u=0,++r;r<a;++u,++r)s.points=[],f={width:0,height:0,edgeLabel:s,edgeObj:t,rank:r},d=ET.addDummyNode(e,"edge",f,"_d"),r===c&&(f.width=s.width,f.height=s.height,f.dummy="edge-label",f.labelpos=s.labelpos),e.setEdge(o,d,{weight:s.weight},l),u===0&&e.graph().dummyChains.push(d),o=d;e.setEdge(o,i,{weight:s.weight},l)}function NT(e){e.graph().dummyChains.forEach(t=>{let o=e.node(t),r=o.edgeLabel,i;for(e.setEdge(o.edgeObj,r);o.dummy;)i=e.successors(t)[0],e.removeNode(t),r.points.push({x:o.x,y:o.y}),o.dummy==="edge-label"&&(r.x=o.x,r.y=o.y,r.width=o.width,r.height=o.height),t=i,o=e.node(t)})}const{applyWithChunking:ST}=Fe;var fi={longestPath:xT,slack:AT};function xT(e){var t={};function o(r){var i=e.node(r);if(Object.hasOwn(t,r))return i.rank;t[r]=!0;let a=e.outEdges(r).map(s=>s==null?Number.POSITIVE_INFINITY:o(s.w)-e.edge(s).minlen);var l=ST(Math.min,a);return l===Number.POSITIVE_INFINITY&&(l=0),i.rank=l}e.sources().forEach(o)}function AT(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}var TT=_t.Graph,pi=fi.slack,kf=IT;function IT(e){var t=new TT({directed:!1}),o=e.nodes()[0],r=e.nodeCount();t.setNode(o,{});for(var i,a;PT(t,e)<r;)i=OT(t,e),a=t.hasNode(i.v)?pi(e,i):-pi(e,i),$T(t,e,a);return t}function PT(e,t){function o(r){t.nodeEdges(r).forEach(i=>{var a=i.v,l=r===a?i.w:a;!e.hasNode(l)&&!pi(t,i)&&(e.setNode(l,{}),e.setEdge(r,l,{}),o(l))})}return e.nodes().forEach(o),e.nodeCount()}function OT(e,t){return t.edges().reduce((r,i)=>{let a=Number.POSITIVE_INFINITY;return e.hasNode(i.v)!==e.hasNode(i.w)&&(a=pi(t,i)),a<r[0]?[a,i]:r},[Number.POSITIVE_INFINITY,null])[1]}function $T(e,t,o){e.nodes().forEach(r=>t.node(r).rank+=o)}var BT=kf,Cf=fi.slack,VT=fi.longestPath,RT=_t.alg.preorder,DT=_t.alg.postorder,MT=Fe.simplify,FT=_n;_n.initLowLimValues=gl,_n.initCutValues=ml,_n.calcCutValue=vf,_n.leaveEdge=Sf,_n.enterEdge=xf,_n.exchangeEdges=Af;function _n(e){e=MT(e),VT(e);var t=BT(e);gl(t),ml(t,e);for(var o,r;o=Sf(t);)r=xf(t,e,o),Af(t,e,o,r)}function ml(e,t){var o=DT(e,e.nodes());o=o.slice(0,o.length-1),o.forEach(r=>LT(e,t,r))}function LT(e,t,o){var r=e.node(o),i=r.parent;e.edge(o,i).cutvalue=vf(e,t,o)}function vf(e,t,o){var r=e.node(o),i=r.parent,a=!0,l=t.edge(o,i),s=0;return l||(a=!1,l=t.edge(i,o)),s=l.weight,t.nodeEdges(o).forEach(c=>{var d=c.v===o,f=d?c.w:c.v;if(f!==i){var u=d===a,p=t.edge(c).weight;if(s+=u?p:-p,KT(e,o,f)){var m=e.edge(o,f).cutvalue;s+=u?-m:m}}}),s}function gl(e,t){arguments.length<2&&(t=e.nodes()[0]),Nf(e,{},1,t)}function Nf(e,t,o,r,i){var a=o,l=e.node(r);return t[r]=!0,e.neighbors(r).forEach(s=>{Object.hasOwn(t,s)||(o=Nf(e,t,o,s,r))}),l.low=a,l.lim=o++,i?l.parent=i:delete l.parent,o}function Sf(e){return e.edges().find(t=>e.edge(t).cutvalue<0)}function xf(e,t,o){var r=o.v,i=o.w;t.hasEdge(r,i)||(r=o.w,i=o.v);var a=e.node(r),l=e.node(i),s=a,c=!1;a.lim>l.lim&&(s=l,c=!0);var d=t.edges().filter(f=>c===Tf(e,e.node(f.v),s)&&c!==Tf(e,e.node(f.w),s));return d.reduce((f,u)=>Cf(t,u)<Cf(t,f)?u:f)}function Af(e,t,o,r){var i=o.v,a=o.w;e.removeEdge(i,a),e.setEdge(r.v,r.w,{}),gl(e),ml(e,t),UT(e,t)}function UT(e,t){var o=e.nodes().find(i=>!t.node(i).parent),r=RT(e,o);r=r.slice(1),r.forEach(i=>{var a=e.node(i).parent,l=t.edge(i,a),s=!1;l||(l=t.edge(a,i),s=!0),t.node(i).rank=t.node(a).rank+(s?l.minlen:-l.minlen)})}function KT(e,t,o){return e.hasEdge(t,o)}function Tf(e,t,o){return o.low<=t.lim&&t.lim<=o.lim}var jT=fi,If=jT.longestPath,GT=kf,qT=FT,zT=HT;function HT(e){var t=e.graph().ranker;if(t instanceof Function)return t(e);switch(e.graph().ranker){case"network-simplex":Pf(e);break;case"tight-tree":WT(e);break;case"longest-path":YT(e);break;case"none":break;default:Pf(e)}}var YT=If;function WT(e){If(e),GT(e)}function Pf(e){qT(e)}var XT=ZT;function ZT(e){let t=QT(e);e.graph().dummyChains.forEach(o=>{let r=e.node(o),i=r.edgeObj,a=JT(e,t,i.v,i.w),l=a.path,s=a.lca,c=0,d=l[c],f=!0;for(;o!==i.w;){if(r=e.node(o),f){for(;(d=l[c])!==s&&e.node(d).maxRank<r.rank;)c++;d===s&&(f=!1)}if(!f){for(;c<l.length-1&&e.node(d=l[c+1]).minRank<=r.rank;)c++;d=l[c]}e.setParent(o,d),o=e.successors(o)[0]}})}function JT(e,t,o,r){let i=[],a=[],l=Math.min(t[o].low,t[r].low),s=Math.max(t[o].lim,t[r].lim),c,d;c=o;do c=e.parent(c),i.push(c);while(c&&(t[c].low>l||s>t[c].lim));for(d=c,c=r;(c=e.parent(c))!==d;)a.push(c);return{path:i.concat(a.reverse()),lca:d}}function QT(e){let t={},o=0;function r(i){let a=o;e.children(i).forEach(r),t[i]={low:a,lim:o++}}return e.children().forEach(r),t}let mi=Fe;var eI={run:tI,cleanup:rI};function tI(e){let t=mi.addDummyNode(e,"root",{},"_root"),o=nI(e),r=Object.values(o),i=mi.applyWithChunking(Math.max,r)-1,a=2*i+1;e.graph().nestingRoot=t,e.edges().forEach(s=>e.edge(s).minlen*=a);let l=oI(e)+1;e.children().forEach(s=>Of(e,t,a,l,i,o,s)),e.graph().nodeRankFactor=a}function Of(e,t,o,r,i,a,l){let s=e.children(l);if(!s.length){l!==t&&e.setEdge(t,l,{weight:0,minlen:o});return}let c=mi.addBorderNode(e,"_bt"),d=mi.addBorderNode(e,"_bb"),f=e.node(l);e.setParent(c,l),f.borderTop=c,e.setParent(d,l),f.borderBottom=d,s.forEach(u=>{Of(e,t,o,r,i,a,u);let p=e.node(u),m=p.borderTop?p.borderTop:u,g=p.borderBottom?p.borderBottom:u,_=p.borderTop?r:2*r,h=m!==g?1:i-a[l]+1;e.setEdge(c,m,{weight:_,minlen:h,nestingEdge:!0}),e.setEdge(g,d,{weight:_,minlen:h,nestingEdge:!0})}),e.parent(l)||e.setEdge(t,c,{weight:0,minlen:i+a[l]})}function nI(e){var t={};function o(r,i){var a=e.children(r);a&&a.length&&a.forEach(l=>o(l,i+1)),t[r]=i}return e.children().forEach(r=>o(r,1)),t}function oI(e){return e.edges().reduce((t,o)=>t+e.edge(o).weight,0)}function rI(e){var t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,e.edges().forEach(o=>{var r=e.edge(o);r.nestingEdge&&e.removeEdge(o)})}let iI=Fe;var aI=lI;function lI(e){function t(o){let r=e.children(o),i=e.node(o);if(r.length&&r.forEach(t),Object.hasOwn(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(let a=i.minRank,l=i.maxRank+1;a<l;++a)$f(e,"borderLeft","_bl",o,i,a),$f(e,"borderRight","_br",o,i,a)}}e.children().forEach(t)}function $f(e,t,o,r,i,a){let l={width:0,height:0,rank:a,borderType:t},s=i[t][a-1],c=iI.addDummyNode(e,"border",l,o);i[t][a]=c,e.setParent(c,r),s&&e.setEdge(s,c,{weight:1})}var sI={adjust:cI,undo:dI};function cI(e){let t=e.graph().rankdir.toLowerCase();(t==="lr"||t==="rl")&&Bf(e)}function dI(e){let t=e.graph().rankdir.toLowerCase();(t==="bt"||t==="rl")&&uI(e),(t==="lr"||t==="rl")&&(fI(e),Bf(e))}function Bf(e){e.nodes().forEach(t=>Vf(e.node(t))),e.edges().forEach(t=>Vf(e.edge(t)))}function Vf(e){let t=e.width;e.width=e.height,e.height=t}function uI(e){e.nodes().forEach(t=>hl(e.node(t))),e.edges().forEach(t=>{let o=e.edge(t);o.points.forEach(hl),Object.hasOwn(o,"y")&&hl(o)})}function hl(e){e.y=-e.y}function fI(e){e.nodes().forEach(t=>yl(e.node(t))),e.edges().forEach(t=>{let o=e.edge(t);o.points.forEach(yl),Object.hasOwn(o,"x")&&yl(o)})}function yl(e){let t=e.x;e.x=e.y,e.y=t}let Rf=Fe;var pI=mI;function mI(e){let t={},o=e.nodes().filter(c=>!e.children(c).length),r=o.map(c=>e.node(c).rank),i=Rf.applyWithChunking(Math.max,r),a=Rf.range(i+1).map(()=>[]);function l(c){if(t[c])return;t[c]=!0;let d=e.node(c);a[d.rank].push(c),e.successors(c).forEach(l)}return o.sort((c,d)=>e.node(c).rank-e.node(d).rank).forEach(l),a}let gI=Fe.zipObject;var hI=yI;function yI(e,t){let o=0;for(let r=1;r<t.length;++r)o+=_I(e,t[r-1],t[r]);return o}function _I(e,t,o){let r=gI(o,o.map((d,f)=>f)),i=t.flatMap(d=>e.outEdges(d).map(f=>({pos:r[f.w],weight:e.edge(f).weight})).sort((f,u)=>f.pos-u.pos)),a=1;for(;a<o.length;)a<<=1;let l=2*a-1;a-=1;let s=new Array(l).fill(0),c=0;return i.forEach(d=>{let f=d.pos+a;s[f]+=d.weight;let u=0;for(;f>0;)f%2&&(u+=s[f+1]),f=f-1>>1,s[f]+=d.weight;c+=d.weight*u}),c}var bI=wI;function wI(e,t=[]){return t.map(o=>{let r=e.inEdges(o);if(r.length){let i=r.reduce((a,l)=>{let s=e.edge(l),c=e.node(l.v);return{sum:a.sum+s.weight*c.order,weight:a.weight+s.weight}},{sum:0,weight:0});return{v:o,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:o}})}let EI=Fe;var kI=CI;function CI(e,t){let o={};e.forEach((i,a)=>{let l=o[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:a};i.barycenter!==void 0&&(l.barycenter=i.barycenter,l.weight=i.weight)}),t.edges().forEach(i=>{let a=o[i.v],l=o[i.w];a!==void 0&&l!==void 0&&(l.indegree++,a.out.push(o[i.w]))});let r=Object.values(o).filter(i=>!i.indegree);return vI(r)}function vI(e){let t=[];function o(i){return a=>{a.merged||(a.barycenter===void 0||i.barycenter===void 0||a.barycenter>=i.barycenter)&&NI(i,a)}}function r(i){return a=>{a.in.push(i),--a.indegree===0&&e.push(a)}}for(;e.length;){let i=e.pop();t.push(i),i.in.reverse().forEach(o(i)),i.out.forEach(r(i))}return t.filter(i=>!i.merged).map(i=>EI.pick(i,["vs","i","barycenter","weight"]))}function NI(e,t){let o=0,r=0;e.weight&&(o+=e.barycenter*e.weight,r+=e.weight),t.weight&&(o+=t.barycenter*t.weight,r+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=o/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}let SI=Fe;var xI=AI;function AI(e,t){let o=SI.partition(e,f=>Object.hasOwn(f,"barycenter")),r=o.lhs,i=o.rhs.sort((f,u)=>u.i-f.i),a=[],l=0,s=0,c=0;r.sort(TI(!!t)),c=Df(a,i,c),r.forEach(f=>{c+=f.vs.length,a.push(f.vs),l+=f.barycenter*f.weight,s+=f.weight,c=Df(a,i,c)});let d={vs:a.flat(!0)};return s&&(d.barycenter=l/s,d.weight=s),d}function Df(e,t,o){let r;for(;t.length&&(r=t[t.length-1]).i<=o;)t.pop(),e.push(r.vs),o++;return o}function TI(e){return(t,o)=>t.barycenter<o.barycenter?-1:t.barycenter>o.barycenter?1:e?o.i-t.i:t.i-o.i}let II=bI,PI=kI,OI=xI;var $I=Mf;function Mf(e,t,o,r){let i=e.children(t),a=e.node(t),l=a?a.borderLeft:void 0,s=a?a.borderRight:void 0,c={};l&&(i=i.filter(p=>p!==l&&p!==s));let d=II(e,i);d.forEach(p=>{if(e.children(p.v).length){let m=Mf(e,p.v,o,r);c[p.v]=m,Object.hasOwn(m,"barycenter")&&VI(p,m)}});let f=PI(d,o);BI(f,c);let u=OI(f,r);if(l&&(u.vs=[l,u.vs,s].flat(!0),e.predecessors(l).length)){let p=e.node(e.predecessors(l)[0]),m=e.node(e.predecessors(s)[0]);Object.hasOwn(u,"barycenter")||(u.barycenter=0,u.weight=0),u.barycenter=(u.barycenter*u.weight+p.order+m.order)/(u.weight+2),u.weight+=2}return u}function BI(e,t){e.forEach(o=>{o.vs=o.vs.flatMap(r=>t[r]?t[r].vs:r)})}function VI(e,t){e.barycenter!==void 0?(e.barycenter=(e.barycenter*e.weight+t.barycenter*t.weight)/(e.weight+t.weight),e.weight+=t.weight):(e.barycenter=t.barycenter,e.weight=t.weight)}let RI=_t.Graph,DI=Fe;var MI=FI;function FI(e,t,o){let r=LI(e),i=new RI({compound:!0}).setGraph({root:r}).setDefaultNodeLabel(a=>e.node(a));return e.nodes().forEach(a=>{let l=e.node(a),s=e.parent(a);(l.rank===t||l.minRank<=t&&t<=l.maxRank)&&(i.setNode(a),i.setParent(a,s||r),e[o](a).forEach(c=>{let d=c.v===a?c.w:c.v,f=i.edge(d,a),u=f!==void 0?f.weight:0;i.setEdge(d,a,{weight:e.edge(c).weight+u})}),Object.hasOwn(l,"minRank")&&i.setNode(a,{borderLeft:l.borderLeft[t],borderRight:l.borderRight[t]}))}),i}function LI(e){for(var t;e.hasNode(t=DI.uniqueId("_root")););return t}var UI=KI;function KI(e,t,o){let r={},i;o.forEach(a=>{let l=e.parent(a),s,c;for(;l;){if(s=e.parent(l),s?(c=r[s],r[s]=l):(c=i,i=l),c&&c!==l){t.setEdge(c,l);return}l=s}})}let jI=pI,GI=hI,qI=$I,zI=MI,HI=UI,YI=_t.Graph,gi=Fe;var WI=Ff;function Ff(e,t){if(t&&typeof t.customOrder=="function"){t.customOrder(e,Ff);return}let o=gi.maxRank(e),r=Lf(e,gi.range(1,o+1),"inEdges"),i=Lf(e,gi.range(o-1,-1,-1),"outEdges"),a=jI(e);if(Uf(e,a),t&&t.disableOptimalOrderHeuristic)return;let l=Number.POSITIVE_INFINITY,s;for(let c=0,d=0;d<4;++c,++d){XI(c%2?r:i,c%4>=2),a=gi.buildLayerMatrix(e);let f=GI(e,a);f<l&&(d=0,s=Object.assign({},a),l=f)}Uf(e,s)}function Lf(e,t,o){return t.map(function(r){return zI(e,r,o)})}function XI(e,t){let o=new YI;e.forEach(function(r){let i=r.graph().root,a=qI(r,i,o,t);a.vs.forEach((l,s)=>r.node(l).order=s),HI(r,o,a.vs)})}function Uf(e,t){Object.values(t).forEach(o=>o.forEach((r,i)=>e.node(r).order=i))}let ZI=_t.Graph,Lt=Fe;var JI={positionX:cP};function QI(e,t){let o={};function r(i,a){let l=0,s=0,c=i.length,d=a[a.length-1];return a.forEach((f,u)=>{let p=tP(e,f),m=p?e.node(p).order:c;(p||f===d)&&(a.slice(s,u+1).forEach(g=>{e.predecessors(g).forEach(_=>{let h=e.node(_),b=h.order;(b<l||m<b)&&!(h.dummy&&e.node(g).dummy)&&Kf(o,_,g)})}),s=u+1,l=m)}),a}return t.length&&t.reduce(r),o}function eP(e,t){let o={};function r(a,l,s,c,d){let f;Lt.range(l,s).forEach(u=>{f=a[u],e.node(f).dummy&&e.predecessors(f).forEach(p=>{let m=e.node(p);m.dummy&&(m.order<c||m.order>d)&&Kf(o,p,f)})})}function i(a,l){let s=-1,c,d=0;return l.forEach((f,u)=>{if(e.node(f).dummy==="border"){let p=e.predecessors(f);p.length&&(c=e.node(p[0]).order,r(l,d,u,s,c),d=u,s=c)}r(l,d,l.length,c,a.length)}),l}return t.length&&t.reduce(i),o}function tP(e,t){if(e.node(t).dummy)return e.predecessors(t).find(o=>e.node(o).dummy)}function Kf(e,t,o){if(t>o){let i=t;t=o,o=i}let r=e[t];r||(e[t]=r={}),r[o]=!0}function nP(e,t,o){if(t>o){let r=t;t=o,o=r}return!!e[t]&&Object.hasOwn(e[t],o)}function oP(e,t,o,r){let i={},a={},l={};return t.forEach(s=>{s.forEach((c,d)=>{i[c]=c,a[c]=c,l[c]=d})}),t.forEach(s=>{let c=-1;s.forEach(d=>{let f=r(d);if(f.length){f=f.sort((p,m)=>l[p]-l[m]);let u=(f.length-1)/2;for(let p=Math.floor(u),m=Math.ceil(u);p<=m;++p){let g=f[p];a[d]===d&&c<l[g]&&!nP(o,d,g)&&(a[g]=d,a[d]=i[d]=i[g],c=l[g])}}})}),{root:i,align:a}}function rP(e,t,o,r,i){let a={},l=iP(e,t,o,i),s=i?"borderLeft":"borderRight";function c(u,p){let m=l.nodes(),g=m.pop(),_={};for(;g;)_[g]?u(g):(_[g]=!0,m.push(g),m=m.concat(p(g))),g=m.pop()}function d(u){a[u]=l.inEdges(u).reduce((p,m)=>Math.max(p,a[m.v]+l.edge(m)),0)}function f(u){let p=l.outEdges(u).reduce((g,_)=>Math.min(g,a[_.w]-l.edge(_)),Number.POSITIVE_INFINITY),m=e.node(u);p!==Number.POSITIVE_INFINITY&&m.borderType!==s&&(a[u]=Math.max(a[u],p))}return c(d,l.predecessors.bind(l)),c(f,l.successors.bind(l)),Object.keys(r).forEach(u=>a[u]=a[o[u]]),a}function iP(e,t,o,r){let i=new ZI,a=e.graph(),l=dP(a.nodesep,a.edgesep,r);return t.forEach(s=>{let c;s.forEach(d=>{let f=o[d];if(i.setNode(f),c){var u=o[c],p=i.edge(u,f);i.setEdge(u,f,Math.max(l(e,d,c),p||0))}c=d})}),i}function aP(e,t){return Object.values(t).reduce((o,r)=>{let i=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY;Object.entries(r).forEach(([s,c])=>{let d=uP(e,s)/2;i=Math.max(c+d,i),a=Math.min(c-d,a)});const l=i-a;return l<o[0]&&(o=[l,r]),o},[Number.POSITIVE_INFINITY,null])[1]}function lP(e,t){let o=Object.values(t),r=Lt.applyWithChunking(Math.min,o),i=Lt.applyWithChunking(Math.max,o);["u","d"].forEach(a=>{["l","r"].forEach(l=>{let s=a+l,c=e[s];if(c===t)return;let d=Object.values(c),f=r-Lt.applyWithChunking(Math.min,d);l!=="l"&&(f=i-Lt.applyWithChunking(Math.max,d)),f&&(e[s]=Lt.mapValues(c,u=>u+f))})})}function sP(e,t){return Lt.mapValues(e.ul,(o,r)=>{if(t)return e[t.toLowerCase()][r];{let i=Object.values(e).map(a=>a[r]).sort((a,l)=>a-l);return(i[1]+i[2])/2}})}function cP(e){let t=Lt.buildLayerMatrix(e),o=Object.assign(QI(e,t),eP(e,t)),r={},i;["u","d"].forEach(l=>{i=l==="u"?t:Object.values(t).reverse(),["l","r"].forEach(s=>{s==="r"&&(i=i.map(u=>Object.values(u).reverse()));let c=(l==="u"?e.predecessors:e.successors).bind(e),d=oP(e,i,o,c),f=rP(e,i,d.root,d.align,s==="r");s==="r"&&(f=Lt.mapValues(f,u=>-u)),r[l+s]=f})});let a=aP(e,r);return lP(r,a),sP(r,e.graph().align)}function dP(e,t,o){return(r,i,a)=>{let l=r.node(i),s=r.node(a),c=0,d;if(c+=l.width/2,Object.hasOwn(l,"labelpos"))switch(l.labelpos.toLowerCase()){case"l":d=-l.width/2;break;case"r":d=l.width/2;break}if(d&&(c+=o?d:-d),d=0,c+=(l.dummy?t:e)/2,c+=(s.dummy?t:e)/2,c+=s.width/2,Object.hasOwn(s,"labelpos"))switch(s.labelpos.toLowerCase()){case"l":d=s.width/2;break;case"r":d=-s.width/2;break}return d&&(c+=o?d:-d),d=0,c}}function uP(e,t){return e.node(t).width}let jf=Fe,fP=JI.positionX;var pP=mP;function mP(e){e=jf.asNonCompoundGraph(e),gP(e),Object.entries(fP(e)).forEach(([t,o])=>e.node(t).x=o)}function gP(e){let t=jf.buildLayerMatrix(e),o=e.graph().ranksep,r=0;t.forEach(i=>{const a=i.reduce((l,s)=>{const c=e.node(s).height;return l>c?l:c},0);i.forEach(l=>e.node(l).y=r+a/2),r+=a+o})}let Gf=yT,qf=kT,hP=zT,yP=Fe.normalizeRanks,_P=XT,bP=Fe.removeEmptyRanks,zf=eI,wP=aI,Hf=sI,EP=WI,kP=pP,ut=Fe,CP=_t.Graph;var vP=NP;function NP(e,t){let o=t&&t.debugTiming?ut.time:ut.notime;o("layout",()=>{let r=o(" buildLayoutGraph",()=>VP(e));o(" runLayout",()=>SP(r,o,t)),o(" updateInputGraph",()=>xP(e,r))})}function SP(e,t,o){t(" makeSpaceForEdgeLabels",()=>RP(e)),t(" removeSelfEdges",()=>qP(e)),t(" acyclic",()=>Gf.run(e)),t(" nestingGraph.run",()=>zf.run(e)),t(" rank",()=>hP(ut.asNonCompoundGraph(e))),t(" injectEdgeLabelProxies",()=>DP(e)),t(" removeEmptyRanks",()=>bP(e)),t(" nestingGraph.cleanup",()=>zf.cleanup(e)),t(" normalizeRanks",()=>yP(e)),t(" assignRankMinMax",()=>MP(e)),t(" removeEdgeLabelProxies",()=>FP(e)),t(" normalize.run",()=>qf.run(e)),t(" parentDummyChains",()=>_P(e)),t(" addBorderSegments",()=>wP(e)),t(" order",()=>EP(e,o)),t(" insertSelfEdges",()=>zP(e)),t(" adjustCoordinateSystem",()=>Hf.adjust(e)),t(" position",()=>kP(e)),t(" positionSelfEdges",()=>HP(e)),t(" removeBorderNodes",()=>GP(e)),t(" normalize.undo",()=>qf.undo(e)),t(" fixupEdgeLabelCoords",()=>KP(e)),t(" undoCoordinateSystem",()=>Hf.undo(e)),t(" translateGraph",()=>LP(e)),t(" assignNodeIntersects",()=>UP(e)),t(" reversePoints",()=>jP(e)),t(" acyclic.undo",()=>Gf.undo(e))}function xP(e,t){e.nodes().forEach(o=>{let r=e.node(o),i=t.node(o);r&&(r.x=i.x,r.y=i.y,r.rank=i.rank,t.children(o).length&&(r.width=i.width,r.height=i.height))}),e.edges().forEach(o=>{let r=e.edge(o),i=t.edge(o);r.points=i.points,Object.hasOwn(i,"x")&&(r.x=i.x,r.y=i.y)}),e.graph().width=t.graph().width,e.graph().height=t.graph().height}let AP=["nodesep","edgesep","ranksep","marginx","marginy"],TP={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},IP=["acyclicer","ranker","rankdir","align"],PP=["width","height","rank"],Yf={width:0,height:0},OP=["minlen","weight","width","height","labeloffset"],$P={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},BP=["labelpos"];function VP(e){let t=new CP({multigraph:!0,compound:!0}),o=bl(e.graph());return t.setGraph(Object.assign({},TP,_l(o,AP),ut.pick(o,IP))),e.nodes().forEach(r=>{let i=bl(e.node(r));const a=_l(i,PP);Object.keys(Yf).forEach(l=>{a[l]===void 0&&(a[l]=Yf[l])}),t.setNode(r,a),t.setParent(r,e.parent(r))}),e.edges().forEach(r=>{let i=bl(e.edge(r));t.setEdge(r,Object.assign({},$P,_l(i,OP),ut.pick(i,BP)))}),t}function RP(e){let t=e.graph();t.ranksep/=2,e.edges().forEach(o=>{let r=e.edge(o);r.minlen*=2,r.labelpos.toLowerCase()!=="c"&&(t.rankdir==="TB"||t.rankdir==="BT"?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function DP(e){e.edges().forEach(t=>{let o=e.edge(t);if(o.width&&o.height){let r=e.node(t.v),a={rank:(e.node(t.w).rank-r.rank)/2+r.rank,e:t};ut.addDummyNode(e,"edge-proxy",a,"_ep")}})}function MP(e){let t=0;e.nodes().forEach(o=>{let r=e.node(o);r.borderTop&&(r.minRank=e.node(r.borderTop).rank,r.maxRank=e.node(r.borderBottom).rank,t=Math.max(t,r.maxRank))}),e.graph().maxRank=t}function FP(e){e.nodes().forEach(t=>{let o=e.node(t);o.dummy==="edge-proxy"&&(e.edge(o.e).labelRank=o.rank,e.removeNode(t))})}function LP(e){let t=Number.POSITIVE_INFINITY,o=0,r=Number.POSITIVE_INFINITY,i=0,a=e.graph(),l=a.marginx||0,s=a.marginy||0;function c(d){let f=d.x,u=d.y,p=d.width,m=d.height;t=Math.min(t,f-p/2),o=Math.max(o,f+p/2),r=Math.min(r,u-m/2),i=Math.max(i,u+m/2)}e.nodes().forEach(d=>c(e.node(d))),e.edges().forEach(d=>{let f=e.edge(d);Object.hasOwn(f,"x")&&c(f)}),t-=l,r-=s,e.nodes().forEach(d=>{let f=e.node(d);f.x-=t,f.y-=r}),e.edges().forEach(d=>{let f=e.edge(d);f.points.forEach(u=>{u.x-=t,u.y-=r}),Object.hasOwn(f,"x")&&(f.x-=t),Object.hasOwn(f,"y")&&(f.y-=r)}),a.width=o-t+l,a.height=i-r+s}function UP(e){e.edges().forEach(t=>{let o=e.edge(t),r=e.node(t.v),i=e.node(t.w),a,l;o.points?(a=o.points[0],l=o.points[o.points.length-1]):(o.points=[],a=i,l=r),o.points.unshift(ut.intersectRect(r,a)),o.points.push(ut.intersectRect(i,l))})}function KP(e){e.edges().forEach(t=>{let o=e.edge(t);if(Object.hasOwn(o,"x"))switch((o.labelpos==="l"||o.labelpos==="r")&&(o.width-=o.labeloffset),o.labelpos){case"l":o.x-=o.width/2+o.labeloffset;break;case"r":o.x+=o.width/2+o.labeloffset;break}})}function jP(e){e.edges().forEach(t=>{let o=e.edge(t);o.reversed&&o.points.reverse()})}function GP(e){e.nodes().forEach(t=>{if(e.children(t).length){let o=e.node(t),r=e.node(o.borderTop),i=e.node(o.borderBottom),a=e.node(o.borderLeft[o.borderLeft.length-1]),l=e.node(o.borderRight[o.borderRight.length-1]);o.width=Math.abs(l.x-a.x),o.height=Math.abs(i.y-r.y),o.x=a.x+o.width/2,o.y=r.y+o.height/2}}),e.nodes().forEach(t=>{e.node(t).dummy==="border"&&e.removeNode(t)})}function qP(e){e.edges().forEach(t=>{if(t.v===t.w){var o=e.node(t.v);o.selfEdges||(o.selfEdges=[]),o.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}})}function zP(e){var t=ut.buildLayerMatrix(e);t.forEach(o=>{var r=0;o.forEach((i,a)=>{var l=e.node(i);l.order=a+r,(l.selfEdges||[]).forEach(s=>{ut.addDummyNode(e,"selfedge",{width:s.label.width,height:s.label.height,rank:l.rank,order:a+ ++r,e:s.e,label:s.label},"_se")}),delete l.selfEdges})})}function HP(e){e.nodes().forEach(t=>{var o=e.node(t);if(o.dummy==="selfedge"){var r=e.node(o.e.v),i=r.x+r.width/2,a=r.y,l=o.x-i,s=r.height/2;e.setEdge(o.e,o.label),e.removeNode(t),o.label.points=[{x:i+2*l/3,y:a-s},{x:i+5*l/6,y:a-s},{x:i+l,y:a},{x:i+5*l/6,y:a+s},{x:i+2*l/3,y:a+s}],o.label.x=o.x,o.label.y=o.y}})}function _l(e,t){return ut.mapValues(ut.pick(e,t),Number)}function bl(e){var t={};return e&&Object.entries(e).forEach(([o,r])=>{typeof o=="string"&&(o=o.toLowerCase()),t[o]=r}),t}let YP=Fe,WP=_t.Graph;var XP={debugOrdering:ZP};function ZP(e){let t=YP.buildLayerMatrix(e),o=new WP({compound:!0,multigraph:!0}).setGraph({});return e.nodes().forEach(r=>{o.setNode(r,{label:r}),o.setParent(r,"layer"+e.node(r).rank)}),e.edges().forEach(r=>o.setEdge(r.v,r.w,{},r.name)),t.forEach((r,i)=>{let a="layer"+i;o.setNode(a,{rank:"same"}),r.reduce((l,s)=>(o.setEdge(l,s,{style:"invis"}),s))}),o}var JP="1.1.5",QP={graphlib:_t,layout:vP,debug:XP,util:{time:Fe.time,notime:Fe.notime},version:JP};const Wf=Zx(QP),hi={padding:80,nodeGap:40,edgeGap:80,rankGap:80},Xf=e=>{const t=e.match(/^(input|output)s@(.*)$/);if(t)return{io:t[1],field:t[2]}};function eO(e,t){const o=Te(t),r=rt(),{findNode:i,fitView:a,onNodeClick:l,onNodeDragStop:s,onEdgeClick:c,onConnect:d,onNodesChange:f,onEdgesChange:u,deleteKeyCode:p}=o;p.value=["Delete","Backspace"];const{state:m,commit:g,moveNode:_,selectNode:h,removeNode:b,getNodeById:w,connectEdge:y,disconnectEdge:v}=r;function k(T,q){const j=w(T.source),A=w(T.target);return!!(j&&A&&j.phase===q&&A.phase===q)}const E=n.computed(()=>m.value.nodes.filter(T=>T.phase===e).map(T=>({id:T.id,type:"flow",position:T.position,data:T,deletable:!Uc(T)}))),R=n.computed(()=>m.value.edges.filter(T=>k(T,e)).map(T=>{const q=w(T.source),j=w(T.target);if(q){if(!j)throw new Error(`Missing target node "${T.target}" for edge "${T.id}" in phase "${e}"`)}else throw new Error(`Missing source node "${T.source}" for edge "${T.id}" in phase "${e}"`);return{id:T.id,source:T.source,target:T.target,sourceHandle:T.sourceField?`outputs@${T.sourceField}`:"output",targetHandle:T.targetField?`inputs@${T.targetField}`:"input",markerEnd:Wr.ArrowClosed,data:T}}));l(({node:T})=>{console.debug("[useFlow] onNodeClick",n.toRaw(T))}),c(({edge:T})=>{console.debug("[useFlow] onEdgeClick",n.toRaw(T))}),d(({source:T,sourceHandle:q,target:j,targetHandle:A})=>{if(console.debug("[useFlow] onConnect",{source:T,sourceHandle:q,target:j,targetHandle:A}),!q||!A)return;const I=Xf(q),C=Xf(A);(I==null?void 0:I.io)==="input"||(C==null?void 0:C.io)==="output"||y({source:T,sourceField:I==null?void 0:I.field,target:j,targetField:C==null?void 0:C.field})}),f(T=>{T.filter(q=>q.type==="select").sort((q,j)=>q.selected===j.selected?0:q.selected?1:-1).forEach(q=>{h(q.selected?q.id:void 0)}),T.forEach(q=>{q.type==="remove"&&b(q.id,!0)})}),s(({node:T})=>{T&&_(T.id,T.position)}),u(T=>{T.forEach(q=>{q.type==="remove"&&v(q.id,!0)})});function O(T){const{boundingRect:q,padding:j=hi.padding,nodeGap:A=hi.nodeGap,edgeGap:I=hi.edgeGap,rankGap:C=hi.rankGap}=T;let D,P;const L=[],F=ee=>{switch(ee.data.name){case"request":{if(e!=="request")throw new Error(`Unexpected request node in ${e} phase`);if(D)throw new Error("Duplicated request node in request phase");return D=ee,!0}case"service_request":{if(e!=="request")throw new Error(`Unexpected service_request node in ${e} phase`);if(P)throw new Error("Duplicated service_request node in request phase");return P=ee,!0}case"service_response":{if(e!=="response")throw new Error(`Unexpected service_response node in ${e} phase`);if(P)throw new Error("Duplicated service_response node in response phase");return P=ee,!0}case"response":{if(e!=="response")throw new Error(`Unexpected response node in ${e} phase`);if(D)throw new Error("Duplicated response node in response phase");return D=ee,!0}default:return L.push(ee),!1}},B=new Wf.graphlib.Graph({multigraph:!0});B.setGraph({rankdir:e==="request"?"LR":"RL",nodesep:A,edgesep:I,ranksep:C});for(const ee of E.value){if(F(ee))continue;const re=i(ee.id);if(!re)throw new Error(`Node ${ee.id} is missing from the graph in ${e} phase`);B.setNode(ee.id,{width:re.dimensions.width,height:re.dimensions.height})}if(!D||!P)throw new Error(`One or more implicit nodes are missing from ${e} phase`);const $=i(D.id),G=i(P.id);if(!$||!G)throw new Error(`One or more implicit nodes are missing from the graph in ${e} phase`);if(L.length===0){const ee=q.height/2;_(D.data.id,{x:j,y:ee-$.dimensions.height/2},!1),_(P.data.id,{x:q.width-j-G.dimensions.width,y:ee-G.dimensions.height/2},!1)}else{const ee=new Set([D.id,P.id]);for(const oe of R.value)!ee.has(oe.source)&&!ee.has(oe.target)&&B.setEdge(oe.source,oe.target,{points:[]});Wf.layout(B);const re={x1:Number.POSITIVE_INFINITY,y1:Number.POSITIVE_INFINITY,x2:Number.NEGATIVE_INFINITY,y2:Number.NEGATIVE_INFINITY},J=oe=>{re.x1=Math.min(re.x1,oe.x),re.y1=Math.min(re.y1,oe.y),re.x2=Math.max(re.x2,oe.x+oe.width),re.y2=Math.max(re.y2,oe.y+oe.height)},ne=oe=>({x:oe.x-oe.width/2,y:oe.y-oe.height/2,width:oe.width,height:oe.height});for(const oe of L){const ue=B.node(oe.id),de=ne(ue);J(de),_(oe.data.id,{x:de.x,y:de.y},!1)}const z=i(D.id),Z=i(P.id);if(!z||!Z)throw new Error(`One or more implicit nodes are missing from the graph in ${e} phase`);const ie=re.y1+(re.y2-re.y1)/2;_(D.data.id,{x:re.x1-(z.dimensions.width+A),y:ie-z.dimensions.height/2},!1),_(P.data.id,{x:re.x2+A,y:ie-Z.dimensions.height/2},!1)}g(),n.nextTick(()=>{a()})}return{vueFlowStore:o,editorStore:r,nodes:E,edges:R,autoLayout:O}}const yi=we(n.defineComponent({__name:"HandleTwig",props:{color:{},position:{default:()=>ge.Left},size:{default:()=>Number.parseFloat(Zw)},type:{}},setup(e){n.useCssVars(o=>({"753622c4":o.color}));const t=n.computed(()=>({width:`${e.size}px`,minWidth:`${e.size}px`}));return(o,r)=>(n.openBlock(),n.createElementBlock("div",{class:n.normalizeClass(["handle-twig",[o.type,o.position===n.unref(ge).Left?"left":"right"]]),style:n.normalizeStyle(t.value)},null,6))}}),[["__scopeId","data-v-eb2bc3f2"]]),Hn="{key}",bn={"kong.client.consumer":{dataType:"object",writable:!1,readable:!0},"kong.client.consumer_groups":{dataType:"array",writable:!1,readable:!0},"kong.client.credential":{dataType:"object",writable:!1,readable:!0},"kong.client.get_identity_realm_source":{dataType:"object",writable:!1,readable:!0},"kong.client.forwarded_ip":{dataType:"string",writable:!1,readable:!0},"kong.client.forwarded_port":{dataType:"number",writable:!1,readable:!0},"kong.client.ip":{dataType:"string",writable:!1,readable:!0},"kong.client.port":{dataType:"number",writable:!1,readable:!0},"kong.client.protocol":{dataType:"string",writable:!1,readable:!0},"kong.request.forwarded_host":{dataType:"string",writable:!1,readable:!0},"kong.request.forwarded_port":{dataType:"number",writable:!1,readable:!0},"kong.request.forwarded_scheme":{dataType:"string",writable:!1,readable:!0},"kong.request.port":{dataType:"number",writable:!1,readable:!0},"kong.response.source":{dataType:"string",writable:!1,readable:!0},"kong.router.route":{dataType:"object",writable:!1,readable:!0},"kong.route_id":{dataType:"string",writable:!1,readable:!0},"kong.route_name":{dataType:"string",writable:!1,readable:!0},"kong.router.service":{dataType:"object",writable:!1,readable:!0},"kong.service_name":{dataType:"string",writable:!1,readable:!0},"kong.service_id":{dataType:"string",writable:!1,readable:!0},"kong.service.response.status":{dataType:"number",writable:!1,readable:!0},"kong.version":{dataType:"string",writable:!1,readable:!0},"kong.node.id":{dataType:"string",writable:!1,readable:!0},"kong.configuration.{key}":{dataType:"any",writable:!1,readable:!0},"kong.service.target":{dataType:"string ({host}:{port})",writable:!0,readable:!1},"kong.service.request_scheme":{dataType:"string ({scheme})",writable:!0,readable:!1},"kong.ctx.plugin.{key}":{dataType:"any",writable:!0,readable:!0},"kong.ctx.shared.{key}":{dataType:"any",writable:!0,readable:!0}},_i=Object.keys(bn).filter(e=>e.includes(Hn)).map(e=>e.replace(Hn,""));function wl(e){if(!e||!Mo(e))return;const t=_i.find(o=>e.startsWith(o));if(t)return e.slice(t.length).replace(Hn,"")}function Do(e){if(!e)return null;const t=_i.find(o=>e.startsWith(o));return t||e}function Mo(e){return e?_i.some(t=>e.startsWith(t)):!1}function Zf(e){return e?Mo(e)?Do(e)+Hn:e:null}function El(e){var o;if(!e)return!1;const t=Zf(e);return t?((o=bn[t])==null?void 0:o.readable)??!1:!1}function kl(e){var o;if(!e)return!1;const t=Zf(e);return t?((o=bn[t])==null?void 0:o.writable)??!1:!1}const Jf=n.defineComponent({__name:"NodeBadge",props:{type:{},size:{}},setup(e){const t=n.computed(()=>{var i;if(!Bt(e.type))return((i=_r[e.type])==null?void 0:i.icon)??void 0}),o=n.computed(()=>yE(e.type)),r=n.computed(()=>{switch(e.type){case"call":return"warning";case"jq":return"decorative";case"exit":return"danger";case"property":return"success";case"static":return"info";default:return"neutral"}});return(i,a)=>{const l=n.resolveComponent("KBadge");return n.openBlock(),n.createBlock(l,{appearance:r.value,size:i.size},{icon:n.withCtx(()=>[(n.openBlock(),n.createBlock(n.resolveDynamicComponent(t.value)))]),default:n.withCtx(()=>[n.createTextVNode(" "+n.toDisplayString(o.value),1)]),_:1},8,["appearance","size"])}}}),tO={class:"body"},nO={class:"info-line"},oO={class:"name-and-error"},rO={class:"name"},iO={class:"input-handles"},aO={class:"handle"},lO={class:"handle-label-wrapper"},sO={class:"handle-label-wrapper"},cO={class:"handle-label text"},dO={class:"output-handles"},uO={class:"handle"},fO={class:"handle-label-wrapper"},pO={class:"handle-label-wrapper"},mO={class:"handle-label"},Qf=we(n.defineComponent({__name:"FlowNode",props:{data:{},error:{type:Boolean}},setup(e){const{t}=Re.createI18n("en-us",je),{getInEdgesByNodeId:o,getOutEdgesByNodeId:r,toggleExpanded:i}=rt(),a=n.computed(()=>ya(e.data.type)),l=n.computed(()=>o(e.data.id).every(y=>y.targetField===void 0)),s=n.computed(()=>r(e.data.id).every(y=>y.sourceField===void 0)),c=n.computed(()=>e.data.expanded.input??!1),d=n.computed(()=>e.data.expanded.output??!1),f=n.computed(()=>{var y,v;if(e.data.type==="property"){const k=(y=e.data.config)==null?void 0:y.property;return kl(k)}return(v=a.value.io)==null?void 0:v.input}),u=n.computed(()=>{var y,v;if(e.data.type==="property"){const k=(y=e.data.config)==null?void 0:y.property;return El(k)}return(v=a.value.io)==null?void 0:v.output}),p=n.computed(()=>Uc(e.data)),m=n.computed(()=>e.data.phase==="response"),g=n.computed(()=>e.data.phase==="request"?ge.Left:ge.Right),_=n.computed(()=>e.data.phase==="request"?ge.Right:ge.Left),h=n.computed(()=>p.value?t(`plugins.free-form.datakit.flow_editor.node_types.${e.data.type}.name`):e.data.name),b=n.computed(()=>p.value?qw:zw);function w(y){y==="input"&&!l.value||y==="output"&&!s.value||i(e.data.id,y)}return n.watch(l,y=>{y||i(e.data.id,"input",!0,!1)},{immediate:!0}),n.watch(s,y=>{y||i(e.data.id,"output",!0,!1)},{immediate:!0}),(y,v)=>(n.openBlock(),n.createElementBlock("div",{class:n.normalizeClass(["flow-node",{reversed:m.value,implicit:p.value}])},[n.createElementVNode("div",tO,[n.createElementVNode("div",nO,[n.createElementVNode("div",oO,[y.error?(n.openBlock(),n.createBlock(n.unref(Ee.WarningIcon),{key:0,class:"error-icon",color:n.unref(Hw),size:16},null,8,["color"])):n.createCommentVNode("",!0),n.createElementVNode("div",rO,n.toDisplayString(h.value),1)]),p.value?n.createCommentVNode("",!0):(n.openBlock(),n.createBlock(Jf,{key:0,size:"small",type:y.data.type},null,8,["type"]))]),n.renderSlot(y.$slots,"default",{},void 0,!0)]),n.createElementVNode("div",{class:n.normalizeClass(["handles",{reversed:m.value}])},[n.createElementVNode("div",iO,[f.value?(n.openBlock(),n.createElementBlock(n.Fragment,{key:0},[n.createElementVNode("div",aO,[n.createVNode(n.unref(Ht),{id:"input",position:g.value,type:"target"},null,8,["position"]),n.createElementVNode("div",lO,[n.createElementVNode("div",{class:n.normalizeClass(["handle-label",{"has-fields":y.data.fields.input.length>0,collapsible:l.value}])},[v[2]||(v[2]=n.createElementVNode("div",{class:"text"}," inputs ",-1)),y.data.fields.input.length>0?(n.openBlock(),n.createElementBlock("div",{key:0,class:"icon",onClick:v[0]||(v[0]=n.withModifiers(k=>w("input"),["stop"]))},[c.value?n.createCommentVNode("",!0):(n.openBlock(),n.createBlock(n.unref(Ee.UnfoldMoreIcon),{key:0,size:n.unref(go)},null,8,["size"])),c.value?(n.openBlock(),n.createBlock(n.unref(Ee.UnfoldLessIcon),{key:1,color:l.value?void 0:n.unref(Vc),size:n.unref(go)},null,8,["color","size"])):n.createCommentVNode("",!0)])):n.createCommentVNode("",!0)],2),c.value?(n.openBlock(),n.createBlock(yi,{key:0,color:b.value,position:g.value,type:"bar"},null,8,["color","position"])):n.createCommentVNode("",!0)])]),c.value?(n.openBlock(!0),n.createElementBlock(n.Fragment,{key:0},n.renderList(y.data.fields.input,(k,E)=>(n.openBlock(),n.createElementBlock("div",{key:`inputs-${k.id}`,class:"handle indented"},[n.createVNode(n.unref(Ht),{id:`inputs@${k.id}`,position:g.value,type:"target"},null,8,["id","position"]),n.createElementVNode("div",sO,[n.createElementVNode("div",cO,n.toDisplayString(k.name),1),n.createVNode(yi,{color:b.value,position:g.value,type:E<y.data.fields.input.length-1?"trident":"corner"},null,8,["color","position","type"])])]))),128)):n.createCommentVNode("",!0)],64)):n.createCommentVNode("",!0)]),n.createElementVNode("div",dO,[u.value?(n.openBlock(),n.createElementBlock(n.Fragment,{key:0},[n.createElementVNode("div",uO,[n.createElementVNode("div",fO,[n.createElementVNode("div",{class:n.normalizeClass(["handle-label text",{"has-fields":y.data.fields.output.length>0,collapsible:s.value}])},[v[3]||(v[3]=n.createElementVNode("div",{class:"text"}," outputs ",-1)),y.data.fields.output.length>0?(n.openBlock(),n.createElementBlock("div",{key:0,class:"icon",onClick:v[1]||(v[1]=n.withModifiers(k=>w("output"),["stop"]))},[d.value?n.createCommentVNode("",!0):(n.openBlock(),n.createBlock(n.unref(Ee.UnfoldMoreIcon),{key:0,size:n.unref(go)},null,8,["size"])),d.value?(n.openBlock(),n.createBlock(n.unref(Ee.UnfoldLessIcon),{key:1,color:s.value?void 0:n.unref(Vc),size:n.unref(go)},null,8,["color","size"])):n.createCommentVNode("",!0)])):n.createCommentVNode("",!0)],2),d.value?(n.openBlock(),n.createBlock(yi,{key:0,color:b.value,position:_.value,type:"bar"},null,8,["color","position"])):n.createCommentVNode("",!0)]),n.createVNode(n.unref(Ht),{id:"output",position:_.value,type:"source"},null,8,["position"])]),d.value?(n.openBlock(!0),n.createElementBlock(n.Fragment,{key:0},n.renderList(y.data.fields.output,(k,E)=>(n.openBlock(),n.createElementBlock("div",{key:`outputs-${k.id}`,class:"handle indented"},[n.createElementVNode("div",pO,[n.createElementVNode("div",mO,n.toDisplayString(k.name),1),n.createVNode(yi,{color:b.value,position:_.value,type:E<y.data.fields.output.length-1?"trident":"corner"},null,8,["color","position","type"])]),n.createVNode(n.unref(Ht),{id:`outputs@${k.id}`,position:_.value,type:"source"},null,8,["id","position"])]))),128)):n.createCommentVNode("",!0)],64)):n.createCommentVNode("",!0)])],2)],2))}}),[["__scopeId","data-v-b8317dd1"]]),gO={ref:"flow-wrapper",class:"dk-flow-wrapper"},ep=we(n.defineComponent({__name:"EditorCanvasFlow",props:{phase:{}},setup(e){const t=e,o=n.useTemplateRef("flow-wrapper"),r=n.ref(!1),a=`${n.useId()}-${t.phase}`,{vueFlowStore:l,editorStore:s,nodes:c,edges:d,autoLayout:f}=eO(t.phase,a),{addNode:u,clear:p}=s,{project:m,vueFlowRef:g,addSelectedNodes:_,getNodes:h}=l,{selectNode:b,propertiesPanelOpen:w,newCreatedNodeId:y,invalidConfigNodeIds:v}=rt();async function k(T){b(T),await n.nextTick();const q=h.value.find(j=>j.id===T);_(q?[q]:[])}function E(T){var B,$;const q=(B=T.dataTransfer)==null?void 0:B.getData(ad);if(!q)return;T.preventDefault();const j=JSON.parse(q);if(j.action!=="create-node")return;const{top:A=0,left:I=0}=(($=g.value)==null?void 0:$.getBoundingClientRect())||{},C=m({x:T.clientX-I,y:T.clientY-A}),{type:D,anchor:P}=j.data,L={type:D,phase:t.phase,position:{x:C.x-P.offsetX,y:C.y-P.offsetY}},F=u(L);k(F),F&&(y.value=F,w.value=!0)}function R(){r.value||(r.value=!0,O(),p())}function O(){f({boundingRect:o.value.getBoundingClientRect()})}return(T,q)=>(n.openBlock(),n.createElementBlock("div",gO,[n.createVNode(n.unref(Qu),{id:a,class:"flow",edges:n.unref(d),"fit-view-on-init":"","multi-selection-key-code":null,nodes:n.unref(c),onDragover:q[0]||(q[0]=n.withModifiers(()=>{},["prevent"])),onDrop:q[1]||(q[1]=j=>E(j)),onNodeClick:q[2]||(q[2]=j=>w.value=!0),onNodesInitialized:R},{"node-flow":n.withCtx(j=>[n.createVNode(Qf,{data:j.data,error:n.unref(v).has(j.data.id)},null,8,["data","error"])]),default:n.withCtx(()=>[n.createVNode(n.unref(vx)),n.createVNode(n.unref(Xx),{position:"bottom-left"},{default:n.withCtx(()=>[n.createElementVNode("button",{class:"vue-flow__controls-button vue-flow__controls-interactive custom",onClick:O},[n.createVNode(n.unref(Ee.SparklesIcon),{size:18})])]),_:1})]),_:1},8,["edges","nodes"])],512))}}),[["__scopeId","data-v-e3ec7bb9"]]),hO={class:"dk-editor-main"},yO={class:"header"},_O={class:"actions"},bO={ref:"canvasContainer",class:"body"},wO=we(n.defineComponent({__name:"EditorMain",setup(e){const{t}=Re.createI18n("en-us",je),{modalOpen:o}=rt();function r(){o.value=!1}return(i,a)=>(n.openBlock(),n.createElementBlock("div",hO,[n.createElementVNode("header",yO,[n.createElementVNode("div",_O,[n.createVNode(n.unref(Ie.KButton),{appearance:"tertiary",target:"_blank",to:"https://developer.konghq.com/plugins/datakit/"},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(t)("plugins.free-form.datakit.flow_editor.view_docs"))+" ",1),n.createVNode(n.unref(Ee.ExternalLinkIcon))]),_:1}),n.createVNode(n.unref(Ie.KButton),{onClick:r},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(t)("plugins.free-form.datakit.flow_editor.done")),1)]),_:1})])]),n.createElementVNode("div",bO,[n.createVNode(bk,null,{request:n.withCtx(()=>[n.createVNode(ep,{phase:"request"})]),response:n.withCtx(()=>[n.createVNode(ep,{phase:"response"})]),_:1})],512)]))}}),[["__scopeId","data-v-bd7f8196"]]),EO={class:"icon"},kO={class:"content"},CO={class:"title"},vO={class:"description"},NO=we(n.defineComponent({__name:"NodePanelItem",props:{type:{}},setup(e){const{summary:t,icon:o}=_r[e.type];return(r,i)=>(n.openBlock(),n.createElementBlock("div",{class:n.normalizeClass(["dk-node-panel-item",{[`node-type-${r.type}`]:!0}])},[n.createElementVNode("div",EO,[n.createVNode(n.unref(o),{size:16})]),n.createElementVNode("div",kO,[n.createElementVNode("div",CO,n.toDisplayString(r.type),1),n.createElementVNode("div",vO,n.toDisplayString(n.unref(t)),1)])],2))}}),[["__scopeId","data-v-e75cecee"]]),SO={class:"dk-node-panel"},xO={class:"title"},AO={class:"node-list"},TO={"aria-hidden":"true",class:"preview",inert:""},IO=we(n.defineComponent({__name:"NodePanel",setup(e){const{t}=Re.createI18n("en-us",je),{createNode:o}=rt(),r=`dk-drag-preview-${n.useId()}`,i=n.shallowRef(),a=n.computed(()=>i.value?[{id:"preview",type:"flow",data:i.value,position:{x:0,y:0}}]:[]),l=async(s,c)=>{var O,T;const d=s.currentTarget,{left:f,top:u,width:p,height:m}=d.getBoundingClientRect(),g=s.clientX-f,_=s.clientY-u;i.value=o({type:c}),await n.nextTick();const h=document.querySelector(`#${r}`)||d,b=h.cloneNode(!0),{offsetWidth:w,offsetHeight:y}=h;Object.assign(b.style,{position:"absolute",top:"-9999px",left:"-9999px",width:`${w}px`,height:`${y}px`,boxSizing:"border-box"}),document.body.appendChild(b);const v=g/p,k=_/m,E={ratioX:v,ratioY:k,offsetX:w*v,offsetY:y*k},R={action:"create-node",data:{type:c,anchor:E}};(O=s.dataTransfer)==null||O.setData(ad,JSON.stringify(R)),(T=s.dataTransfer)==null||T.setDragImage(b,E.offsetX,E.offsetY),requestAnimationFrame(()=>{b.remove(),i.value=void 0})};return(s,c)=>{const d=n.resolveComponent("KLabel");return n.openBlock(),n.createElementBlock("div",SO,[n.createElementVNode("h3",xO,[n.createVNode(d,{class:"label",info:n.unref(t)("plugins.free-form.datakit.flow_editor.node_panel.description")},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(t)("plugins.free-form.datakit.flow_editor.node_panel.title")),1)]),_:1},8,["info"])]),n.createElementVNode("div",AO,[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(Object.keys(n.unref(_r)),f=>(n.openBlock(),n.createBlock(NO,{key:f,draggable:"true",type:f,onDragstart:u=>l(u,f)},null,8,["type","onDragstart"]))),128))]),n.createElementVNode("div",TO,[n.createVNode(n.unref(Qu),{nodes:a.value},{"node-flow":n.withCtx(f=>[n.createVNode(Qf,{id:r,data:f.data},null,8,["data"])]),_:1},8,["nodes"])])])}}}),[["__scopeId","data-v-8e8421d3"]]),PO=n.defineComponent({__name:"HttpMethodField",props:{name:{}},setup(e){return(t,o)=>(n.openBlock(),n.createBlock(Et,{items:n.unref(ra)([...n.unref(mk)]),name:t.name},null,8,["items","name"]))}}),OO=we(n.defineComponent({__name:"InputsRecordField",props:{name:{},items:{}},emits:["change:inputs"],setup(e){const{getSchema:t}=Ve(),{i18n:o}=xe(),r=n.computed(()=>{const i=t("inputs");return i?i.fields.map(a=>Object.keys(a)[0]):[]});return(i,a)=>(n.openBlock(),n.createBlock(dt,{"as-child":"",name:i.name,"reset-label-path":"isolate"},{default:n.withCtx(()=>[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(r.value,l=>(n.openBlock(),n.createBlock(Et,{key:l,class:"dk-inputs-field-indent",clearable:"",items:i.items,name:l,placeholder:n.unref(o).t("plugins.free-form.datakit.flow_editor.node_properties.input.placeholder"),onChange:s=>i.$emit("change:inputs",l,s?s.value:null)},null,8,["items","name","placeholder","onChange"]))),128))]),_:1},8,["name"]))}}),[["__scopeId","data-v-a849b44b"]]),$O=["data-testid"],BO={class:"dk-inputs-map-field-entry-body"},VO={class:"dk-inputs-map-field-entry-content"},RO={class:"dk-inputs-map-field-indent"},DO=we(n.defineComponent({__name:"InputsMapField",props:{items:{},fieldNameValidator:{},name:{},initialValue:{},label:{},keyPlaceholder:{},valuePlaceholder:{},defaultKey:{},defaultValue:{},labelAttributes:{},showVaultSecretPicker:{type:Boolean},keyOrder:{}},emits:["change:inputs","add:field","remove:field","rename:field","change"],setup(e,{emit:t}){const o=e,r=t,{entries:i,addEntry:a,removeEntry:l,field:s}=ua(o,r),{i18n:{t:c}}=xe(),d=n.useTemplateRef("root"),f=n.ref(null),u=n.ref({});let p;async function m(k,E="key"){var R;d.value&&(await n.nextTick(),(R=d.value.querySelector(`[data-${E}-input="${k}"]`))==null||R.focus())}function g(){const{id:k}=a(),E=i.value.findIndex(({key:R})=>!R);m(E===-1?i.value.length-1:E),f.value=k}function _(k){l(k.id),k.id===f.value&&(f.value=null),k.key.trim()!==""&&r("remove:field",k.key)}function h(k){p=k.key}function b(k){if(w(k)){k.key=p,delete u.value[k.id];return}if(k.id===f.value){if(k.key.trim()==="")return;r("add:field",k.key,k.value),f.value=null}else r("rename:field",p,k.key);p=k.key}function w(k){delete u.value[k.id];const E=o.fieldNameValidator("input",p,k.key);if(E)return u.value[k.id]=E,E}function y(k){w(k)}function v(k,E){k.id!==f.value&&r("change:inputs",k.key,E)}return(k,E)=>{const R=n.resolveComponent("KAlert"),O=n.resolveComponent("KLabel"),T=n.resolveComponent("KInput"),q=n.resolveComponent("KSelect"),j=n.resolveComponent("KButton");return n.unref(s).error?(n.openBlock(),n.createBlock(R,{key:0,appearance:"danger",message:n.unref(s).error.message},null,8,["message"])):(n.openBlock(),n.createElementBlock("div",{key:1,ref_key:"root",ref:d,class:"dk-inputs-map-field"},[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(i),(A,I)=>(n.openBlock(),n.createElementBlock("div",{key:A.id,class:"dk-inputs-map-field-entry dk-inputs-map-field-indent","data-testid":`ff-kv-container-${n.unref(s).path.value}.${I}`},[n.createVNode(O,{for:`ff-kv-entry-key-${n.unref(s).path.value}.${I}`},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(c)("plugins.free-form.datakit.flow_editor.node_properties.input_name.label")),1)]),_:2},1032,["for"]),n.createElementVNode("div",BO,[n.createElementVNode("div",VO,[n.createVNode(T,{id:`ff-kv-entry-key-${n.unref(s).path.value}.${I}`,modelValue:A.key,"onUpdate:modelValue":[C=>A.key=C,C=>w(A)],modelModifiers:{trim:!0},class:"ff-kv-field-entry-key","data-key-input":I,"data-testid":`ff-key-${n.unref(s).path.value}.${I}`,error:!!u.value[A.id],"error-message":u.value[A.id],placeholder:n.unref(c)("plugins.free-form.datakit.flow_editor.node_properties.input_name.placeholder"),onBlur:C=>y(A),onChange:C=>b(A),onFocus:C=>h(A)},null,8,["id","modelValue","onUpdate:modelValue","data-key-input","data-testid","error","error-message","placeholder","onBlur","onChange","onFocus"]),n.createVNode(q,{modelValue:A.value,"onUpdate:modelValue":C=>A.value=C,class:"ff-kv-field-entry-value",clearable:"","data-testid":`ff-value-${n.unref(s).path.value}.${I}`,items:k.items,placeholder:n.unref(c)("plugins.free-form.datakit.flow_editor.node_properties.input.placeholder"),onChange:C=>v(A,(C==null?void 0:C.value)??null)},null,8,["modelValue","onUpdate:modelValue","data-testid","items","placeholder","onChange"])]),n.createVNode(j,{appearance:"none","data-testid":`ff-kv-remove-btn-${n.unref(s).path.value}.${I}`,icon:"",onClick:C=>_(A)},{default:n.withCtx(()=>[n.createVNode(n.unref(Ee.CloseIcon))]),_:2},1032,["data-testid","onClick"])])],8,$O))),128)),n.createElementVNode("div",RO,[n.createVNode(j,{appearance:"tertiary","data-testid":`ff-kv-add-btn-${n.unref(s).path.value}`,disabled:!!f.value,onClick:g},{default:n.withCtx(()=>[n.createVNode(n.unref(Ee.AddIcon)),n.createTextVNode(" "+n.toDisplayString(n.unref(c)("plugins.free-form.datakit.flow_editor.node_properties.input.add_button")),1)]),_:1},8,["data-testid","disabled"])])],512))}}}),[["__scopeId","data-v-685121cd"]]),Yn=n.defineComponent({__name:"InputsField",props:{items:{},fieldNames:{},fieldNameValidator:{}},emits:["change:input","change:inputs","add:field","remove:field","rename:field"],setup(e,{emit:t}){const o=t,{getSchema:r}=Ve(),{i18n:i}=xe(),a=n.computed(()=>r("inputs")),l=n.computed(()=>a.value?a.value.type==="record"?OO:DO:null);function s(p){o("change:input",p?p.value:null)}function c(p,m){o("add:field",p,m)}function d(p,m){o("change:inputs",p,m)}function f(p){o("remove:field",p)}function u(p,m){o("rename:field",p,m)}return(p,m)=>(n.openBlock(),n.createElementBlock(n.Fragment,null,[n.unref(r)("input")?(n.openBlock(),n.createBlock(Et,{key:0,clearable:"","enable-filtering":"",items:p.items,label:"Inputs",name:"input",placeholder:n.unref(i).t("plugins.free-form.datakit.flow_editor.node_properties.input.placeholder"),onChange:s},null,8,["items","placeholder"])):n.createCommentVNode("",!0),l.value?(n.openBlock(),n.createBlock(n.unref(l),{key:1,"field-name-validator":p.fieldNameValidator,items:p.items,"key-order":p.fieldNames,name:"inputs","onAdd:field":c,"onChange:inputs":d,"onRemove:field":f,"onRename:field":u},null,8,["field-name-validator","items","key-order"])):n.createCommentVNode("",!0)],64))}}),MO={fields:[{input:{description:"filter input(s)",len_max:255,len_min:1,match_any:{err:"must be one of NODE_NAME or NODE_NAME.FIELD",patterns:["^[A-Za-z_][A-Za-z0-9_-]*$","^[A-Za-z_][A-Za-z0-9_-]*%..+$"]},required:!1,type:"string"}},{inputs:{description:"call node inputs",fields:[{body:{description:"HTTP request body",len_max:255,len_min:1,match_any:{err:"must be one of NODE_NAME or NODE_NAME.FIELD",patterns:["^[A-Za-z_][A-Za-z0-9_-]*$","^[A-Za-z_][A-Za-z0-9_-]*%..+$"]},required:!1,type:"string"}},{headers:{description:"HTTP request headers",len_max:255,len_min:1,match_any:{err:"must be one of NODE_NAME or NODE_NAME.FIELD",patterns:["^[A-Za-z_][A-Za-z0-9_-]*$","^[A-Za-z_][A-Za-z0-9_-]*%..+$"]},required:!1,type:"string"}},{query:{description:"HTTP request query",len_max:255,len_min:1,match_any:{err:"must be one of NODE_NAME or NODE_NAME.FIELD",patterns:["^[A-Za-z_][A-Za-z0-9_-]*$","^[A-Za-z_][A-Za-z0-9_-]*%..+$"]},required:!1,type:"string"}}],required:!1,type:"record"}}],type:"record"},FO={fields:[{input:{description:"filter input(s)",len_max:255,len_min:1,match_any:{err:"must be one of NODE_NAME or NODE_NAME.FIELD",patterns:["^[A-Za-z_][A-Za-z0-9_-]*$","^[A-Za-z_][A-Za-z0-9_-]*%..+$"]},required:!1,type:"string"}},{inputs:{description:"call node inputs",fields:[{body:{description:"HTTP request body",len_max:255,len_min:1,match_any:{err:"must be one of NODE_NAME or NODE_NAME.FIELD",patterns:["^[A-Za-z_][A-Za-z0-9_-]*$","^[A-Za-z_][A-Za-z0-9_-]*%..+$"]},required:!1,type:"string"}},{headers:{description:"HTTP request headers",len_max:255,len_min:1,match_any:{err:"must be one of NODE_NAME or NODE_NAME.FIELD",patterns:["^[A-Za-z_][A-Za-z0-9_-]*$","^[A-Za-z_][A-Za-z0-9_-]*%..+$"]},required:!1,type:"string"}}],required:!1,type:"record"}}],type:"record"};function LO(e){const t=Number(e);return!isNaN(t)&&isFinite(t)}function Wn(...e){return function(o){for(const r of e){const i=r(o);if(i)return i}}}function Xn(e){const{i18n:{t}}=xe(),o=()=>e?typeof e=="string"?e:t("plugins.free-form.datakit.flow_editor.node_properties.errors.not_empty",e):"Field is required";return function(i){if(i==null||typeof i=="string"&&i.trim()==="")return o()}}function Cl(e,t){const{i18n:{t:o}}=xe();return function(i){if(i!=null)switch(e){case"identifier":{const a=()=>t?typeof t=="string"?t:o("plugins.free-form.datakit.flow_editor.node_properties.errors.invalid_identifier_format",t):"Invalid identifier format";return/^[A-Za-z_][A-Za-z0-9_-]*$/.test(i)?void 0:a()}case"url":{const a=()=>t?typeof t=="string"?t:o("plugins.free-form.datakit.flow_editor.node_properties.errors.invalid_url_format"):"Invalid URL format";try{new URL(i);return}catch{return a()}}default:return}}}function UO(e=0,t=1/0,o){const{i18n:{t:r}}=xe();return function(a){if(a!=null&&typeof a=="string"&&(a.length<e||a.length>t))return o?typeof o=="string"?o:r("plugins.free-form.datakit.flow_editor.node_properties.errors.string_len_range",{fieldName:o.fieldName,minLength:e,maxLength:t}):`Value must be between ${e} and ${t} characters`}}function tp(e){const{i18n:{t}}=xe();return function(r){if(!LO(r))return e?typeof e=="string"?e:t("plugins.free-form.datakit.flow_editor.node_properties.errors.not_number",e):"Value must be a number"}}function np(e,t){const{i18n:{t:o}}=xe();return function(i){if(i==null)return;const a=tp(t)(i);if(a)return a;const l=Number(i);switch(e){case"float":{const s=()=>t?typeof t=="string"?t:o("plugins.free-form.datakit.flow_editor.node_properties.errors.not_float",t):"Invalid float format";return Number.isFinite(l)?void 0:s()}case"integer":{const s=()=>t?typeof t=="string"?t:o("plugins.free-form.datakit.flow_editor.node_properties.errors.not_integer",t):"Invalid integer format";return Number.isInteger(l)?void 0:s()}default:return}}}function op(e=-1/0,t=1/0,o){const{i18n:{t:r}}=xe();return function(a){if(a==null)return;const l=tp(o)(a);if(l)return l;const s=Number(a);if(s<e||s>t)return o?typeof o=="string"?o:r("plugins.free-form.datakit.flow_editor.node_properties.errors.number_range",{fieldName:o.fieldName,min:e,max:t}):`Value must be between ${e} and ${t}`}}function KO(e,t){const{state:o}=rt(),{i18n:{t:r}}=xe();return function(a){if(o.value.nodes.some(l=>l.name===a&&l.id!==e))return t?typeof t=="string"?t:r("plugins.free-form.datakit.flow_editor.node_properties.errors.not_unique",t):"Name must be unique."}}function jO(e,t,o){const{i18n:{t:r}}=xe();return function(a){if(!t)return;if(o?t.fields[e].some(s=>s.name===a&&s.id!==o):t.fields[e].some(s=>s.name===a)){const s=r(e==="input"?"plugins.free-form.datakit.flow_editor.node_properties.input_name.label":"plugins.free-form.datakit.flow_editor.node_properties.output_value.value_name");return r("plugins.free-form.datakit.flow_editor.node_properties.errors.not_unique",{fieldName:s})}}}function rp(e){const{i18n:{t}}=xe(),o={fieldName:t("plugins.free-form.datakit.flow_editor.node_properties.name")};return Wn(Xn(o),Cl("identifier",o),KO(e,o))}function GO(e){const{i18n:{t}}=xe(),{getNodeById:o}=rt();return function(i,a,l){const s={fieldName:t(i==="input"?"plugins.free-form.datakit.flow_editor.node_properties.input_name.label":"plugins.free-form.datakit.flow_editor.node_properties.output_value.value_name")};return Wn(Xn(s),Cl("identifier",s),jO(i,o(e),l))(a)}}function qO(e){const t=n.ref({}),o=n.computed(()=>Object.values(t.value).every(l=>!l)),r={};Object.keys(e).forEach(l=>{const s=e[l],c=u=>{const p=typeof u=="function"?u():u,m=s(p);return t.value[l]=m,m},d=()=>{t.value[l]=void 0},f=u=>(d(),c(u));r[l]={handleChange:f,handleBlur:f,validate:f,isValid:n.computed(()=>t.value[l]===void 0),error:n.computed(()=>t.value[l])}});function i(){t.value={}}function a(l){var s;for(const c of Object.keys(e)){const d=l[c],f=typeof d=="function"?d():d;(s=r[c])==null||s.validate(f)}return t.value}return{isValid:o,errorMap:t,fields:r,clearErrors:i,validate:a}}function bi(e){const{validationConfig:t,getValidationData:o,skipValidationOnMount:r,toggleNodeValid:i}=e,a=n.computed(()=>typeof t=="function"?t():t),l=n.computed(()=>qO(a.value)),s=n.computed(()=>l.value.fields),c=n.computed(()=>l.value.isValid.value);function d(){const u=o(),p=l.value.validate(u),m={};for(const g in a.value)m[g]=p[g];return m}function f(u,p){return{onBlur:()=>{const m=o(),g=s.value[u];g&&g.handleBlur(m[u])},onUpdate:()=>{const m=o(),g=s.value[u];g&&g.handleChange(m[u]),p==null||p()},error:n.computed(()=>{const m=s.value[u];return m?!m.isValid.value:!1}),errorMessage:n.computed(()=>{const m=s.value[u];return m?m.error.value??"":""})}}return n.onMounted(()=>{r!=null&&r.value||d()}),n.onBeforeUnmount(async()=>{try{const u=d(),p=Object.values(u).filter(Boolean).length>0;i(!p)}catch{}}),n.watch(()=>c.value,i,{immediate:!0}),{fields:s.value,isValid:c,validateAll:d,createFieldHandler:f}}function wn(e,t){const{state:o,renameNode:r,getNodeById:i,addField:a,renameField:l,removeField:s,replaceConfig:c,disconnectEdge:d,connectEdge:f,newCreatedNodeId:u,invalidConfigNodeIds:p}=rt();let m=!1;n.watch(o,async()=>{m=!0,await n.nextTick(),m=!1},{immediate:!0,deep:!0}),console.log("state",o.value),window.store=rt();const g=n.computed(()=>{const L=i(e);if(!L)throw new Error("Node not existed");return L}),_=n.computed(()=>{const F=o.value.edges.filter(B=>B.target===e).reduce((B,$)=>{var ne,z;const G=i($.source),ee=(ne=an(G,"output",$.sourceField))==null?void 0:ne.id,re=(z=an(g.value,"input",$.targetField))==null?void 0:z.name,J=G.id+(ee?`.${ee}`:"");return re?B.inputs={...B.inputs,[re]:J}:B.input=J,B},{});return g.value.fields.input.forEach(B=>{F.inputs||(F.inputs={}),F.inputs[B.name]||(F.inputs[B.name]=null)}),{...g.value.config,...F,name:g.value.name}}),h=L=>{r(e,L??"",!0,`${e}:rename`)},b=(L,F=!0)=>{if(m)return;if(!t)throw new Error("getFormInnerData is not defined");const B=hc(t(),["name","input","inputs"]),$=L?`update:${e}:${L}`:void 0;c(e,B,F,$)},w=(L,F)=>{const B=Dn(g.value,L,F);if(!B)throw new Error(`Field with name "${F}" not found in node "${g.value.name}"`);return B},y=(L,F,B)=>{const $=!!B;a(e,L,F,!$),$&&O(F,B)},v=(L,F,B)=>{if(m)return;const $=w(L,F).id;l(e,$,B)},k=(L,F)=>{const B=w(L,F).id;s(e,B)},E=n.computed(()=>o.value.edges.filter(L=>L.target===e&&!L.targetField)[0]),R=n.computed(()=>o.value.edges.filter(L=>L.target===e&&L.targetField)),O=(L,F)=>{if(m)return;const B=F==null,$=w("input",L).id;if(B){const ne=R.value.find(z=>z.targetField===$);ne&&d(ne.id,!0);return}E.value&&d(E.value.id,!1);const G=R.value.find(ne=>ne.targetField===$);G&&d(G.id,!1);const{nodeId:ee,fieldId:re}=Kc(F),J=w("input",L).id;f({source:ee,sourceField:re,target:e,targetField:J})},T=(L,F=!0)=>{if(m)return;const B=L==null;for(const ee of[...R.value,E.value].filter(Boolean))d(ee.id,F&&B);if(B)return;const{nodeId:$,fieldId:G}=Kc(L);f({source:$,sourceField:G,target:e,targetField:void 0},F)},q=L=>{const F=[...o.value.edges,{source:L,target:e}];return ba(Er(F))},j=n.computed(()=>{var F,B;const L=[];for(const $ of o.value.nodes)if((F=ya($.type).io)!=null&&F.output&&$.fields.output&&$.id!==e&&!($.type==="property"&&!El((B=$.config)==null?void 0:B.property))&&!q($.id)){L.push({value:$.id,label:$.name});for(const ee of $.fields.output)L.push({value:`${$.id}.${ee.id}`,label:`${$.name}.${ee.name}`})}return L}),A=n.computed(()=>g.value.fields.input.map(L=>L.name)||[]),I=n.computed(()=>u.value===e);function C(L){p.value.delete(e),L||p.value.add(e)}const D=GO(e);function P(L,F,B){const $=i(e);if(!$)throw new Error("Node not found when validating field name");const G=Dn($,L,F);return D(L,B,G==null?void 0:G.id)}return{formData:_,inputOptions:j,inputEdge:E,inputsEdges:R,inputsFieldNames:A,skipValidationOnMount:I,currentNode:g,setName:h,setConfig:b,addField:y,renameFieldByName:v,removeFieldByName:k,setInputs:O,setInput:T,nameValidator:rp(e),fieldNameValidator:P,toggleNodeValid:C}}function En(e){const{getSchema:t}=Ve();return n.computed(()=>{if(Bt(e))switch(e){case"response":return FO;case"service_request":return MO}try{const l=t().fields[0].config.fields[0].nodes.elements.subschema_definitions[e];if(!l)throw new Error(`Subschema "${e}" not found in the schema.`);return l}catch(o){throw new Error(`Failed to get subschema "${e}": ${o.message}`)}})}const wi=n.defineComponent({__name:"NameField",props:{name:{},validate:{type:Function}},emits:["update"],setup(e,{emit:t}){const o=e,r=t,{i18n:{t:i}}=xe(),a=n.ref(o.name),l=n.computed(()=>{const f=o.validate(a.value.trim());return f===void 0?"":f});let s=a.value.trim();function c(){if(l.value){a.value=s;return}r("update",a.value.trim())}function d(){s=a.value.trim()}return n.watch(()=>o.name,f=>{f!==a.value&&(a.value=f)}),(f,u)=>{const p=n.resolveComponent("KInput");return n.openBlock(),n.createBlock(p,{"model-value":a.value,"onUpdate:modelValue":u[0]||(u[0]=m=>a.value=m),"data-1p-ignore":"",error:!!l.value,"error-message":l.value,label:n.unref(i)("plugins.free-form.datakit.flow_editor.node_properties.name"),required:"",onChange:c,onFocus:d},null,8,["model-value","error","error-message","label"])}}}),zO=n.defineComponent({__name:"NodeFormCall",props:{nodeId:{}},setup(e){const{i18n:{t}}=xe(),o=n.useTemplateRef("form"),r=En("call"),{formData:i,setName:a,setConfig:l,inputOptions:s,setInputs:c,setInput:d,inputsFieldNames:f,nameValidator:u,skipValidationOnMount:p,toggleNodeValid:m,fieldNameValidator:g}=wn(e.nodeId,()=>o.value.getInnerData()),{createFieldHandler:_}=bi({validationConfig:{url:Wn(Xn({fieldName:"URL"}),Cl("url",{fieldName:"URL"})),timeout:Wn(np("integer",{fieldName:t("plugins.free-form.datakit.flow_editor.node_properties.timeout.label")}),op(0,2147483646,{fieldName:t("plugins.free-form.datakit.flow_editor.node_properties.timeout.label")}))},getValidationData:()=>({url:i.value.url,timeout:i.value.timeout}),skipValidationOnMount:p,toggleNodeValid:m}),h=_("url",()=>l("url")),b=_("timeout",()=>l("timeout"));return(w,y)=>{const v=n.resolveComponent("KLabel");return n.openBlock(),n.createBlock(mt,{ref:"form",data:n.unref(i),schema:n.unref(r)},{default:n.withCtx(()=>[n.createVNode(wi,{name:n.unref(i).name,validate:n.unref(u),onUpdate:n.unref(a)},null,8,["name","validate","onUpdate"]),n.createVNode(v,{class:"dk-node-configuration-label"},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(t)("plugins.free-form.datakit.flow_editor.node_properties.Configuration")),1)]),_:1}),n.createVNode(Bn,{error:n.unref(h).error.value,"error-message":n.unref(h).errorMessage.value,name:"url",onBlur:n.unref(h).onBlur,"onUpdate:modelValue":n.unref(h).onUpdate},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),n.createVNode(PO,{name:"method","onUpdate:modelValue":y[0]||(y[0]=k=>n.unref(l)())}),n.createVNode(Vn,{error:n.unref(b).error.value,"error-message":n.unref(b).errorMessage.value,label:n.unref(t)("plugins.free-form.datakit.flow_editor.node_properties.timeout.label"),name:"timeout",onBlur:n.unref(b).onBlur,"onUpdate:modelValue":n.unref(b).onUpdate},null,8,["error","error-message","label","onBlur","onUpdate:modelValue"]),n.createVNode(Bn,{name:"ssl_server_name","onUpdate:modelValue":y[1]||(y[1]=k=>n.unref(l)("ssl_server_name"))}),n.createVNode(Yn,{"field-name-validator":n.unref(g),"field-names":n.unref(f),items:n.unref(s),"onChange:input":n.unref(d),"onChange:inputs":n.unref(c)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"])}}}),HO=n.defineComponent({__name:"NodeFormServiceRequest",props:{nodeId:{}},setup(e){const t=n.useTemplateRef("form"),o=En("service_request"),{formData:r,inputOptions:i,setInputs:a,setInput:l,inputsFieldNames:s,fieldNameValidator:c}=wn(e.nodeId,()=>t.value.getInnerData());return(d,f)=>(n.openBlock(),n.createBlock(mt,{ref:"form",data:n.unref(r),schema:n.unref(o)},{default:n.withCtx(()=>[n.createVNode(Yn,{"field-name-validator":n.unref(c),"field-names":n.unref(s),items:n.unref(i),"onChange:input":n.unref(l),"onChange:inputs":n.unref(a)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),YO=n.defineComponent({__name:"NodeFormResponse",props:{nodeId:{}},setup(e){const t=n.useTemplateRef("form"),o=En("response"),{formData:r,inputOptions:i,setInputs:a,setInput:l,inputsFieldNames:s,fieldNameValidator:c}=wn(e.nodeId,()=>t.value.getInnerData());return(d,f)=>(n.openBlock(),n.createBlock(mt,{ref:"form",data:n.unref(r),schema:n.unref(o)},{default:n.withCtx(()=>[n.createVNode(Yn,{"field-name-validator":n.unref(c),"field-names":n.unref(s),items:n.unref(i),"onChange:input":n.unref(l),"onChange:inputs":n.unref(a)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),WO=n.defineComponent({__name:"NodeFormJq",props:{nodeId:{}},setup(e){const{i18n:{t}}=xe(),o=n.useTemplateRef("form"),r=En("jq"),{formData:i,setName:a,setConfig:l,inputOptions:s,setInputs:c,setInput:d,addField:f,removeFieldByName:u,renameFieldByName:p,inputsFieldNames:m,nameValidator:g,skipValidationOnMount:_,toggleNodeValid:h,fieldNameValidator:b}=wn(e.nodeId,()=>o.value.getInnerData());function w(O,T){f("input",O,T)}function y(O){u("input",O)}function v(O,T){p("input",O,T)}const k=t("plugins.free-form.datakit.flow_editor.node_properties.jq.label"),{createFieldHandler:E}=bi({validationConfig:{jq:Wn(Xn({fieldName:k}),UO(1,10240,{fieldName:k}))},getValidationData:()=>({jq:i.value.jq}),skipValidationOnMount:_,toggleNodeValid:h}),R=E("jq",()=>l("jq"));return(O,T)=>{const q=n.resolveComponent("KLabel");return n.openBlock(),n.createBlock(mt,{ref:"form",data:n.unref(i),schema:n.unref(r)},{default:n.withCtx(()=>[n.createVNode(wi,{name:n.unref(i).name,validate:n.unref(g),onUpdate:n.unref(a)},null,8,["name","validate","onUpdate"]),n.createVNode(q,{class:"dk-node-configuration-label"},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(t)("plugins.free-form.datakit.flow_editor.node_properties.Configuration")),1)]),_:1}),n.createVNode(Bn,{error:n.unref(R).error.value,help:n.unref(R).errorMessage.value,label:n.unref(k),multiline:"",name:"jq",resizable:"",rows:"2",onBlur:n.unref(R).onBlur,"onUpdate:modelValue":n.unref(R).onUpdate},null,8,["error","help","label","onBlur","onUpdate:modelValue"]),n.createVNode(Yn,{"field-name-validator":n.unref(b),"field-names":n.unref(m),items:n.unref(s),"onAdd:field":w,"onChange:input":n.unref(d),"onChange:inputs":n.unref(c),"onRemove:field":y,"onRename:field":v},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"])}}}),XO=we(n.defineComponent({__name:"OutputValueField",props:{fieldNameValidator:{},name:{},initialValue:{},label:{},keyPlaceholder:{},valuePlaceholder:{},defaultKey:{},defaultValue:{},labelAttributes:{},showVaultSecretPicker:{type:Boolean},keyOrder:{}},emits:["change:value","add:field","rename:field","remove:field","change"],setup(e,{emit:t}){const o=e,r=t,i=n.ref({}),{entries:a,addEntry:l,removeEntry:s,field:c}=ua(o,r,!1),{i18n:d}=xe(),f=n.useTemplateRef("root"),u=n.ref(null);let p;async function m(k,E="key"){var R;f.value&&(await n.nextTick(),(R=f.value.querySelector(`[data-${E}-input="${k}"]`))==null||R.focus())}function g(){const k=l(),E=a.value.findIndex(({key:R})=>!R);m(E===-1?a.value.length-1:E),u.value=k}function _(k){var E;k.id===((E=u.value)==null?void 0:E.id)&&(u.value=null),s(k.id),k.key.trim()!==""&&r("remove:field",k.key)}function h(k){p=k.key}function b(k){var E;if(y(k)){k.key=p,delete i.value[k.id];return}if(k.id===((E=u.value)==null?void 0:E.id)){if(k.key.trim()==="")return;u.value=null,r("add:field",k.key,k.value)}else r("rename:field",p,k.key);p=k.key}function w(k,E){var O;if(E.id===((O=u.value)==null?void 0:O.id))return;const R=k.target.value.trim();r("change:value",E.key,R)}function y(k){delete i.value[k.id];const E=o.fieldNameValidator("output",p,k.key);if(E)return i.value[k.id]=E,E}function v(k){y(k)}return n.watchEffect(()=>{u.value&&!a.value.some(k=>k.id===u.value.id)&&a.value.push(u.value)}),(k,E)=>{const R=n.resolveComponent("KAlert"),O=n.resolveComponent("KLabel"),T=n.resolveComponent("KButton"),q=n.resolveComponent("KInput"),j=n.resolveComponent("KCard");return n.unref(c).error?(n.openBlock(),n.createBlock(R,{key:0,appearance:"danger",message:n.unref(c).error.message},null,8,["message"])):(n.openBlock(),n.createElementBlock("div",{key:1,ref_key:"root",ref:f,class:"dk-output-value-field"},[n.createVNode(O,{class:"dk-node-configuration-label"},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(d).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.label")),1)]),_:1}),(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(a),(A,I)=>(n.openBlock(),n.createBlock(j,{key:A.id,class:"dk-output-value-field-entry","data-testid":`ff-kv-container-${n.unref(c).path.value}.${I}`},{actions:n.withCtx(()=>[n.createVNode(T,{appearance:"none","data-testid":`ff-kv-remove-btn-${n.unref(c).path.value}.${I}`,icon:"",onClick:C=>_(A)},{default:n.withCtx(()=>[n.createVNode(n.unref(Ee.CloseIcon))]),_:2},1032,["data-testid","onClick"])]),default:n.withCtx(()=>[n.createVNode(q,{id:`ff-kv-entry-key-${n.unref(c).path.value}.${I}`,modelValue:A.key,"onUpdate:modelValue":[C=>A.key=C,C=>y(A)],modelModifiers:{trim:!0},class:"ff-kv-field-entry-key","data-key-input":I,"data-testid":`ff-key-${n.unref(c).path.value}.${I}`,error:!!i.value[A.id],"error-message":i.value[A.id],label:n.unref(d).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.value_name"),required:"",onBlur:C=>v(A),onChange:C=>b(A),onFocus:C=>h(A)},null,8,["id","modelValue","onUpdate:modelValue","data-key-input","data-testid","error","error-message","label","onBlur","onChange","onFocus"]),n.createVNode(q,{modelValue:A.value,"onUpdate:modelValue":C=>A.value=C,modelModifiers:{trim:!0},class:"ff-kv-field-entry-value","data-testid":`ff-value-${n.unref(c).path.value}.${I}`,label:n.unref(d).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.value"),onChange:C=>w(C,A)},null,8,["modelValue","onUpdate:modelValue","data-testid","label","onChange"])]),_:2},1032,["data-testid"]))),128)),n.createVNode(T,{appearance:"tertiary","data-testid":`ff-kv-add-btn-${n.unref(c).path.value}`,disabled:!!u.value,onClick:g},{default:n.withCtx(()=>[n.createVNode(n.unref(Ee.AddIcon)),n.createTextVNode(" "+n.toDisplayString(n.unref(d).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.add_button")),1)]),_:1},8,["data-testid","disabled"])],512))}}}),[["__scopeId","data-v-9f3f9fea"]]);function ZO(e){const t={};for(const[o,r]of Object.entries(e))typeof r=="object"&&r!==null?t[o]=JSON.stringify(r):t[o]=String(r);return t}function Ei(e){const t={};for(const[o,r]of Object.entries(e))if(r!=null){t[o]=r;try{r==="null"?t[o]=null:(r==="true"||r==="false"||/^-?\d+(\.\d+)?$/.test(r)||r.startsWith("{")&&r.endsWith("}")||r.startsWith("[")&&r.endsWith("]"))&&(t[o]=JSON.parse(r))}catch{}}return t}function JO(e,t,o){const r={};for(const i of Object.keys(e))i===t?r[o]=e[t]:r[i]=e[i];return r}const QO=n.defineComponent({__name:"NodeFormStatic",props:{nodeId:{}},setup(e){const{renameNode:t,getOutEdgesByNodeId:o,addField:r,renameField:i,removeField:a,replaceConfig:l,getNodeById:s}=rt(),{fieldNameValidator:c}=wn(e.nodeId),d=En("static"),f=rp(e.nodeId),u=n.computed(()=>s(e.nodeId)),p=n.computed(()=>{var y;return((y=u.value)==null?void 0:y.fields.output.map(v=>v.name))||[]});function m(y){if(!u.value)throw new Error("No current node");t(u.value.id,y??"")}const g=n.computed(()=>{var O;if(!u.value)return{};const y=((O=u.value.config)==null?void 0:O.values)??{},v={},k=o(u.value.id).map(T=>T.sourceField).filter(Boolean).map(T=>an(u.value,"output",T)).map(T=>T==null?void 0:T.name).filter(Boolean),E=u.value.fields.output.map(T=>T.name);return new Set([...k,...E]).forEach(T=>{if(T in y){v[T]=y[T];return}v[T]=""}),{name:u.value.name,values:ZO(v)}});function _(y,v){if(!u.value)throw new Error("No selected node");if(r(e.nodeId,"output",y,!v),v){const k={values:Ei({...g.value.values,[y]:v})};l(e.nodeId,k)}}function h(y,v){if(!u.value)throw new Error("No selected node");const k=Dn(u.value,"output",y);if(!k)throw new Error("No field found to rename");const E={values:Ei(JO(g.value.values??{},y,v))};l(e.nodeId,E,!1),i(e.nodeId,k.id,v)}function b(y){var E;if(!u.value)throw new Error("No selected node");const v=Dn(u.value,"output",y);if(!v)throw new Error("No field found to delete");a((E=u.value)==null?void 0:E.id,v.id,!0,!1);const k={values:Ei({...g.value.values})};delete k.values[y],l(e.nodeId,k)}function w(y,v){if(!u.value)throw new Error("No selected node");const k={...g.value.values};k[y]=v;const E={values:Ei(k)};l(e.nodeId,E)}return(y,v)=>{const k=n.resolveComponent("NameField");return n.openBlock(),n.createBlock(mt,{ref:"form",data:g.value,schema:n.unref(d)},{default:n.withCtx(()=>{var E;return[n.createVNode(k,{name:((E=u.value)==null?void 0:E.name)??"",validate:n.unref(f),onUpdate:m},null,8,["name","validate"]),n.createVNode(XO,{"field-name-validator":n.unref(c),"key-order":p.value,name:"values","onAdd:field":_,"onChange:value":w,"onRemove:field":b,"onRename:field":h},null,8,["field-name-validator","key-order"])]}),_:1},8,["data","schema"])}}}),e$={class:"dk-kong-property-item"},t$={class:"property-type"},n$={class:"property-badges"},o$=we(n.defineComponent({__name:"PropertiesField",props:{validators:{}},emits:["update:model-value","update:property-key"],setup(e,{emit:t}){const{i18n:{t:o}}=xe(),r=e,i=t,{formData:a}=Ve(),l=n.ref(Do(a.property)),s=n.computed(()=>Mo(a.property)),c=n.ref(wl(a.property)),d=n.computed(()=>a.property??""),f=n.computed(()=>Object.entries(bn).map(([m])=>{var h;const g=Mo(m)?(h=a.property)==null?void 0:h.startsWith(m.replace(Hn,"")):a.property===m;return{label:g&&c.value?m.replace(Hn,c.value):m,value:m,selected:g}}));function u(m){const g=_i.find(_=>{var h;return(h=a.property)==null?void 0:h.startsWith(_)});g&&(a.property=g+m,r.validators.key.handleChange(a.property),i("update:property-key",a.property))}function p(m){l.value!==Do(m==null?void 0:m.value)&&(a.property=(m==null?void 0:m.value)||null,l.value=Do(a.property),r.validators.property.handleBlur(()=>a.property),i("update:model-value",a.property))}return n.watch(()=>a.property,m=>{c.value=wl(m),l.value=Do(m)}),(m,g)=>{const _=n.resolveComponent("KBadge"),h=n.resolveComponent("KSelect"),b=n.resolveComponent("KInput");return n.openBlock(),n.createElementBlock(n.Fragment,null,[(n.openBlock(),n.createBlock(h,{key:d.value,"enable-filtering":"",error:!m.validators.property.isValid.value,help:m.validators.property.error.value,items:f.value,label:"Property","label-attributes":{maxWidth:"300px",placement:"top",info:"The property name to get/set"},required:"",onBlur:g[0]||(g[0]=w=>m.validators.property.handleBlur(()=>n.unref(a).property)),onChange:p},{"item-template":n.withCtx(({item:w})=>[n.createElementVNode("div",e$,[n.createElementVNode("div",null,[n.createElementVNode("div",null,n.toDisplayString(w.label),1),n.createElementVNode("div",t$,n.toDisplayString(n.unref(bn)[w.value].dataType),1)]),n.createElementVNode("div",n$,[n.unref(bn)[w.value].readable?(n.openBlock(),n.createBlock(_,{key:0,appearance:"info"},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(o)("plugins.free-form.datakit.flow_editor.node_properties.property.get")),1)]),_:1})):n.createCommentVNode("",!0),n.unref(bn)[w.value].writable?(n.openBlock(),n.createBlock(_,{key:1,appearance:"warning"},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(o)("plugins.free-form.datakit.flow_editor.node_properties.property.set")),1)]),_:1})):n.createCommentVNode("",!0)])])]),_:1},8,["error","help","items"])),s.value?(n.openBlock(),n.createBlock(b,{key:0,"model-value":c.value,"onUpdate:modelValue":[g[1]||(g[1]=w=>c.value=w),u],error:!m.validators.key.isValid.value,"error-message":m.validators.key.error.value,label:"key",required:"",onBlur:g[2]||(g[2]=w=>m.validators.key.handleBlur(()=>n.unref(a).property))},null,8,["model-value","error","error-message"])):n.createCommentVNode("",!0)],64)}}}),[["__scopeId","data-v-0ab1be87"]]),r$=n.defineComponent({__name:"NodeFormProperty",props:{nodeId:{}},setup(e){const t=n.useTemplateRef("form"),{selectedNode:o,disconnectInEdges:r,disconnectOutEdges:i}=rt(),a=En("property"),{formData:l,setName:s,setConfig:c,inputOptions:d,setInputs:f,setInput:u,inputsFieldNames:p,nameValidator:m,toggleNodeValid:g,skipValidationOnMount:_,fieldNameValidator:h}=wn(e.nodeId,()=>t.value.getInnerData()),b=n.computed(()=>kl(l.value.property));function w(v){var E;const k=(E=o.value)==null?void 0:E.id;if(!k)throw new Error("Expected selectedNode to be defined");El(v)||i(k,!1),kl(v)||r(k,!1),c()}const{fields:y}=bi({validationConfig:()=>({property:Xn({fieldName:"Property"}),key:Mo(l.value.property)?Xn({fieldName:"Key"}):()=>{}}),getValidationData:()=>({property:l.value.property,key:wl(l.value.property)}),skipValidationOnMount:_,toggleNodeValid:g});return(v,k)=>(n.openBlock(),n.createBlock(mt,{ref:"form",data:n.unref(l),schema:n.unref(a)},{default:n.withCtx(()=>[n.createVNode(wi,{name:n.unref(l).name,validate:n.unref(m),onUpdate:n.unref(s)},null,8,["name","validate","onUpdate"]),n.createVNode(Et,{name:"content_type","onUpdate:modelValue":n.unref(c)},null,8,["onUpdate:modelValue"]),n.createVNode(o$,{validators:n.unref(y),"onUpdate:modelValue":w,"onUpdate:propertyKey":k[0]||(k[0]=E=>n.unref(c)("property-key"))},null,8,["validators"]),b.value?(n.openBlock(),n.createBlock(Yn,{key:0,"field-name-validator":n.unref(h),"field-names":n.unref(p),items:n.unref(d),"onChange:input":n.unref(u),"onChange:inputs":n.unref(f)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])):n.createCommentVNode("",!0)]),_:1},8,["data","schema"]))}}),i$=n.defineComponent({__name:"NodeFormExit",props:{nodeId:{}},setup(e){const t=n.useTemplateRef("form"),o=En("exit"),{formData:r,setName:i,setConfig:a,inputOptions:l,setInputs:s,setInput:c,inputsFieldNames:d,nameValidator:f,toggleNodeValid:u,skipValidationOnMount:p,fieldNameValidator:m}=wn(e.nodeId,()=>t.value.getInnerData()),{createFieldHandler:g}=bi({validationConfig:{status:Wn(np("integer",{fieldName:"Status"}),op(200,255,{fieldName:"Status"}))},getValidationData:()=>({status:r.value.status}),skipValidationOnMount:p,toggleNodeValid:u}),_=g("status",()=>a("status"));return(h,b)=>(n.openBlock(),n.createBlock(mt,{ref:"form",data:n.unref(r),schema:n.unref(o)},{default:n.withCtx(()=>[n.createVNode(wi,{name:n.unref(r).name,validate:n.unref(f),onUpdate:n.unref(i)},null,8,["name","validate","onUpdate"]),n.createVNode(Vn,{error:n.unref(_).error.value,"error-message":n.unref(_).errorMessage.value,name:"status",onBlur:n.unref(_).onBlur,"onUpdate:modelValue":n.unref(_).onUpdate},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),n.createVNode(da,{name:"warn_headers_sent","onUpdate:modelValue":b[0]||(b[0]=w=>n.unref(a)())}),n.createVNode(Yn,{"field-name-validator":n.unref(m),"field-names":n.unref(d),items:n.unref(l),"onChange:input":n.unref(c),"onChange:inputs":n.unref(s)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),a$=["innerHTML"],l$=we(n.defineComponent({__name:"NodePropertiesPanel",props:{maxWidth:{default:()=>fk},offsetTop:{default:()=>pk},visible:{type:Boolean},nodeId:{}},emits:["close"],setup(e){const{getNodeById:t}=rt(),o=n.computed(()=>e.nodeId&&t(e.nodeId)),r=n.computed(()=>{var i;switch((i=o.value)==null?void 0:i.type){case"call":return zO;case"service_request":return HO;case"response":return YO;case"jq":return WO;case"static":return QO;case"property":return r$;case"exit":return i$;default:return null}});return(i,a)=>(n.openBlock(),n.createBlock(n.unref(Ie.KSlideout),{class:"dk-node-properties-panel","close-on-blur":!1,"has-overlay":!1,"max-width":i.maxWidth,"offset-top":i.offsetTop,visible:i.visible,onClose:a[0]||(a[0]=l=>i.$emit("close"))},n.createSlots({default:n.withCtx(()=>[o.value?(n.openBlock(),n.createElementBlock("div",{key:0,class:"dk-node-properties-panel-desc",innerHTML:n.unref(kt)(o.value.type)},null,8,a$)):n.createCommentVNode("",!0),r.value?(n.openBlock(),n.createBlock(n.unref(r),{key:i.nodeId,class:"dk-node-properties-panel-form","node-id":i.nodeId},null,8,["node-id"])):n.createCommentVNode("",!0)]),_:2},[o.value?{name:"title",fn:n.withCtx(()=>[n.createVNode(Jf,{type:o.value.type},null,8,["type"])]),key:"0"}:void 0]),1032,["max-width","offset-top","visible"]))}}),[["__scopeId","data-v-1bb64727"]]),s$={class:"dk-editor-content"},c$={class:"header"},d$={class:"title"},u$={class:"body"},f$={class:"node-selection-panel"},p$={class:"main"},m$=we(n.defineComponent({__name:"EditorContent",setup(e){const{t}=Re.createI18n("en-us",je),{sidePanelExpanded:o}=wa(),{propertiesPanelOpen:r,selectedNode:i,newCreatedNodeId:a}=rt();function l(){r.value=!1,a.value=null}return n.watch(i,s=>{s||l(),(!s||s.id!==a.value)&&(a.value=null)}),(s,c)=>{var d;return n.openBlock(),n.createElementBlock("div",s$,[n.createElementVNode("aside",{class:n.normalizeClass(["side-panel",{expanded:n.unref(o)}])},[n.createElementVNode("header",c$,[n.createElementVNode("h2",d$,n.toDisplayString(n.unref(t)("plugins.free-form.datakit.flow_editor.name")),1)]),n.createElementVNode("div",u$,[n.createElementVNode("div",f$,[n.createVNode(IO)])])],2),n.createElementVNode("div",p$,[n.createVNode(wO)]),n.createVNode(l$,{"node-id":(d=n.unref(i))==null?void 0:d.id,visible:n.unref(r),onClose:l},null,8,["node-id","visible"])])}}}),[["__scopeId","data-v-0e99b201"]]),g$=we(n.defineComponent({__name:"EditorModal",props:{open:{type:Boolean},openModifiers:{}},emits:["update:open"],setup(e){n.useCssVars(c=>({d8114238:n.unref(uk),16852710:n.unref(dk)}));const t=n.useTemplateRef("modal"),o=n.useModel(e,"open"),r=n.useTemplateRef("content"),i=Je.useScrollLock(document),{activate:a,deactivate:l}=ck(t,{returnFocusOnDeactivate:!0,initialFocus:()=>{var c;return(c=r.value)==null?void 0:c.$el}});n.watch(o,async c=>{i.value=!!c,await n.nextTick(),c?a():l()},{immediate:!0});function s(){o.value=!1}return(c,d)=>o.value?(n.openBlock(),n.createElementBlock("div",{key:0,ref_key:"modal",ref:t,class:"dk-editor-modal"},[n.createVNode(_k,{class:"nav",onBack:s}),n.createVNode(m$,{ref_key:"content",ref:r,class:"content",tabindex:"0"},null,512)],512)):n.createCommentVNode("",!0)}}),[["__scopeId","data-v-e38cc292"]]),h$={class:"dk-flow-editor"},y$={class:"field"},_$=we(n.defineComponent({__name:"FlowEditor",props:{editing:{type:Boolean},config:{}},emits:["change","error"],setup(e,{emit:t}){var s;const{t:o}=Re.createI18n("en-us",je),r=t;function i(c){r("change",{...e.config,...c})}const{modalOpen:a,load:l}=TE(((s=e.config)==null?void 0:s.nodes)??[],[],{onChange:i});return n.watch(()=>{var c;return(c=e.config)==null?void 0:c.nodes},c=>{a.value||l(c??[],[])}),(c,d)=>{const f=n.resolveComponent("KButton");return n.openBlock(),n.createElementBlock("div",h$,[n.createVNode(f,{appearance:"secondary",onClick:d[0]||(d[0]=u=>a.value=!0)},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(o)("plugins.free-form.datakit.flow_editor.cta")),1)]),_:1}),n.createVNode(g$,{open:n.unref(a),"onUpdate:open":d[1]||(d[1]=u=>n.isRef(a)?a.value=u:null)},null,8,["open"]),n.createElementVNode("div",y$,[n.createVNode(da,{name:"config.debug"})])])}}}),[["__scopeId","data-v-e34a211a"]]);/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function ip(e){return typeof e>"u"||e===null}function b$(e){return typeof e=="object"&&e!==null}function w$(e){return Array.isArray(e)?e:ip(e)?[]:[e]}function E$(e,t){var o,r,i,a;if(t)for(a=Object.keys(t),o=0,r=a.length;o<r;o+=1)i=a[o],e[i]=t[i];return e}function k$(e,t){var o="",r;for(r=0;r<t;r+=1)o+=e;return o}function C$(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}var v$=ip,N$=b$,S$=w$,x$=k$,A$=C$,T$=E$,qe={isNothing:v$,isObject:N$,toArray:S$,repeat:x$,isNegativeZero:A$,extend:T$};function ap(e,t){var o="",r=e.reason||"(unknown reason)";return e.mark?(e.mark.name&&(o+='in "'+e.mark.name+'" '),o+="("+(e.mark.line+1)+":"+(e.mark.column+1)+")",!t&&e.mark.snippet&&(o+=`
45
+ Edge: ${e}`,USEVUEFLOW_OPTIONS:()=>"The options parameter is deprecated and will be removed in the next major version. Please use the id parameter instead"};class Ge extends Error{constructor(t,...o){var r;super((r=xu[t])==null?void 0:r.call(xu,...o)),this.name="VueFlowError",this.code=t,this.args=o}}function Ja(e){return"clientX"in e}function $1(e){return"sourceEvent"in e}function xt(e,t){const o=Ja(e);let r,i;return o?(r=e.clientX,i=e.clientY):"touches"in e&&e.touches.length>0?(r=e.touches[0].clientX,i=e.touches[0].clientY):"changedTouches"in e&&e.changedTouches.length>0?(r=e.changedTouches[0].clientX,i=e.changedTouches[0].clientY):(r=0,i=0),{x:r-((t==null?void 0:t.left)??0),y:i-((t==null?void 0:t.top)??0)}}const ei=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function B1(e){var t,o;return{width:((t=e.dimensions)==null?void 0:t.width)??e.width??0,height:((o=e.dimensions)==null?void 0:o.height)??e.height??0}}function ti(e,t=[1,1]){return{x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}}const V1=()=>!0;function Qa(e){e==null||e.classList.remove("valid","connecting","vue-flow__handle-valid","vue-flow__handle-connecting")}function R1(e,t,o){const r=[],i={x:e.x-o,y:e.y-o,width:o*2,height:o*2};for(const a of t.values())Zr(i,Xr(a))>0&&r.push(a);return r}const D1=250;function M1(e,t,o,r){var i,a;let l=[],s=Number.POSITIVE_INFINITY;const c=R1(e,o,t+D1);for(const d of c){const f=[...((i=d.handleBounds)==null?void 0:i.source)??[],...((a=d.handleBounds)==null?void 0:a.target)??[]];for(const u of f){if(r.nodeId===u.nodeId&&r.type===u.type&&r.id===u.id)continue;const{x:p,y:m}=zn(d,u,u.position,!0),g=Math.sqrt((p-e.x)**2+(m-e.y)**2);g>t||(g<s?(l=[{...u,x:p,y:m}],s=g):g===s&&l.push({...u,x:p,y:m}))}}if(!l.length)return null;if(l.length>1){const d=r.type==="source"?"target":"source";return l.find(f=>f.type===d)??l[0]}return l[0]}function Au(e,{handle:t,connectionMode:o,fromNodeId:r,fromHandleId:i,fromType:a,doc:l,lib:s,flowId:c,isValidConnection:d=V1},f,u,p){const m=a==="target",g=t?l.querySelector(`.${s}-flow__handle[data-id="${c}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:_,y:h}=xt(e),b=l.elementFromPoint(_,h),w=b!=null&&b.classList.contains(`${s}-flow__handle`)?b:g,y={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const v=Tu(void 0,w),k=w.getAttribute("data-nodeid"),E=w.getAttribute("data-handleid"),R=w.classList.contains("connectable"),O=w.classList.contains("connectableend");if(!k||!v)return y;const T={source:m?k:r,sourceHandle:m?E:i,target:m?r:k,targetHandle:m?i:E};y.connection=T;const j=R&&O&&(o===Kt.Strict?m&&v==="source"||!m&&v==="target":k!==r||E!==i);y.isValid=j&&d(T,{nodes:u,edges:f,sourceNode:p(r),targetNode:p(k)}),y.toHandle=t}return y}function Tu(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function F1(e,t){let o=null;return t?o="valid":e&&!t&&(o="invalid"),o}function L1(e,t){let o=null;return t?o=!0:e&&!t&&(o=!1),o}function U1(e,t,o,r,i,a=!1){var l,s,c;const d=r.get(e);if(!d)return null;const f=i===Kt.Strict?(l=d.handleBounds)==null?void 0:l[t]:[...((s=d.handleBounds)==null?void 0:s.source)??[],...((c=d.handleBounds)==null?void 0:c.target)??[]],u=(o?f==null?void 0:f.find(p=>p.id===o):f==null?void 0:f[0])??null;return u&&a?{...u,...zn(d,u,u.position,!0)}:u}const el={[ge.Left]:ge.Right,[ge.Right]:ge.Left,[ge.Top]:ge.Bottom,[ge.Bottom]:ge.Top},K1=["production","prod"];function ni(e,...t){Iu()&&console.warn(`[Vue Flow]: ${e}`,...t)}function Iu(){return!K1.includes(process.env.NODE_ENV||"")}function Pu(e,t,o,r,i){const a=t.querySelectorAll(`.vue-flow__handle.${e}`);return a!=null&&a.length?Array.from(a).map(l=>{const s=l.getBoundingClientRect();return{id:l.getAttribute("data-handleid"),type:e,nodeId:i,position:l.getAttribute("data-handlepos"),x:(s.left-o.left)/r,y:(s.top-o.top)/r,...Jr(l)}}):null}function tl(e,t,o,r,i,a=!1,l){i.value=!1,e.selected?(a||e.selected&&t)&&(r([e]),n.nextTick(()=>{l.blur()})):o([e])}function Me(e){return typeof n.unref(e)<"u"}function j1(e,t,o,r){if(!e||!e.source||!e.target)return o(new Ge(De.EDGE_INVALID,(e==null?void 0:e.id)??"[ID UNKNOWN]")),!1;let i;return jt(e)?i=e:i={...e,id:uu(e)},i=cu(i,void 0,r),C1(i,t)?!1:i}function G1(e,t,o,r,i){if(!t.source||!t.target)return i(new Ge(De.EDGE_INVALID,e.id)),!1;if(!o)return i(new Ge(De.EDGE_NOT_FOUND,e.id)),!1;const{id:a,...l}=e;return{...l,id:r?uu(t):a,source:t.source,target:t.target,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle}}function Ou(e,t,o){const r={},i=[];for(let a=0;a<e.length;++a){const l=e[a];if(!gn(l)){o(new Ge(De.NODE_INVALID,l==null?void 0:l.id)||`[ID UNKNOWN|INDEX ${a}]`);continue}const s=w1(l,t(l.id),l.parentNode);l.parentNode&&(r[l.parentNode]=!0),i[a]=s}for(const a of i){const l=t(a.parentNode)||i.find(s=>s.id===a.parentNode);a.parentNode&&!l&&o(new Ge(De.NODE_MISSING_PARENT,a.id,a.parentNode)),(a.parentNode||r[a.id])&&(r[a.id]&&(a.isParent=!0),l&&(l.isParent=!0))}return i}function $u(e,t,o,r,i,a){let l=i;const s=r.get(l)||new Map;r.set(l,s.set(o,t)),l=`${i}-${e}`;const c=r.get(l)||new Map;if(r.set(l,c.set(o,t)),a){l=`${i}-${e}-${a}`;const d=r.get(l)||new Map;r.set(l,d.set(o,t))}}function nl(e,t,o){e.clear();for(const r of o){const{source:i,target:a,sourceHandle:l=null,targetHandle:s=null}=r,c={edgeId:r.id,source:i,target:a,sourceHandle:l,targetHandle:s},d=`${i}-${l}--${a}-${s}`,f=`${a}-${s}--${i}-${l}`;$u("source",c,f,e,i,l),$u("target",c,d,e,a,s)}}function Bu(e,t){if(e.size!==t.size)return!1;for(const o of e)if(!t.has(o))return!1;return!0}function ol(e,t,o,r,i,a,l,s){const c=[];for(const d of e){const f=jt(d)?d:j1(d,s,i,a);if(!f)continue;const u=o(f.source),p=o(f.target);if(!u||!p){i(new Ge(De.EDGE_SOURCE_TARGET_MISSING,f.id,f.source,f.target));continue}if(!u){i(new Ge(De.EDGE_SOURCE_MISSING,f.id,f.source));continue}if(!p){i(new Ge(De.EDGE_TARGET_MISSING,f.id,f.target));continue}if(t&&!t(f,{edges:s,nodes:l,sourceNode:u,targetNode:p})){i(new Ge(De.EDGE_INVALID,f.id));continue}const m=r(f.id);c.push({...cu(f,m,a),sourceNode:u,targetNode:p})}return c}const Vu=Symbol("vueFlow"),Ru=Symbol("nodeId"),Du=Symbol("nodeRef"),q1=Symbol("edgeId"),z1=Symbol("edgeRef"),oi=Symbol("slots");function Mu(e){const{vueFlowRef:t,snapToGrid:o,snapGrid:r,noDragClassName:i,nodes:a,nodeExtent:l,nodeDragThreshold:s,viewport:c,autoPanOnNodeDrag:d,autoPanSpeed:f,nodesDraggable:u,panBy:p,findNode:m,multiSelectionActive:g,nodesSelectionActive:_,selectNodesOnDrag:h,removeSelectedElements:b,addSelectedNodes:w,updateNodePositions:y,emits:v}=Te(),{onStart:k,onDrag:E,onStop:R,onClick:O,el:T,disabled:q,id:j,selectable:A,dragHandle:I}=e,C=n.shallowRef(!1);let D=[],P,L=null,F={x:void 0,y:void 0},B={x:0,y:0},$=null,G=!1,ee=0,re=!1;const J=W1(),ne=({x:de,y:Y})=>{F={x:de,y:Y};let te=!1;if(D=D.map(N=>{const S={x:de-N.distance.x,y:Y-N.distance.y},{computedPosition:x}=Za(N,o.value?ti(S,r.value):S,v.error,l.value,N.parentNode?m(N.parentNode):void 0);return te=te||N.position.x!==x.x||N.position.y!==x.y,N.position=x,N}),!!te&&(y(D,!0,!0),C.value=!0,$)){const[N,S]=Xa({id:j,dragItems:D,findNode:m});E({event:$,node:N,nodes:S})}},z=()=>{if(!L)return;const[de,Y]=bu(B,L,f.value);if(de!==0||Y!==0){const te={x:(F.x??0)-de/c.value.zoom,y:(F.y??0)-Y/c.value.zoom};p({x:de,y:Y})&&ne(te)}ee=requestAnimationFrame(z)},Z=(de,Y)=>{G=!0;const te=m(j);!h.value&&!g.value&&te&&(te.selected||b()),te&&n.toValue(A)&&h.value&&tl(te,g.value,w,b,_,!1,Y);const N=J(de.sourceEvent);if(F=N,D=x1(a.value,u.value,N,m,j),D.length){const[S,x]=Xa({id:j,dragItems:D,findNode:m});k({event:de.sourceEvent,node:S,nodes:x})}},ie=(de,Y)=>{var te;de.sourceEvent.type==="touchmove"&&de.sourceEvent.touches.length>1||(s.value===0&&Z(de,Y),F=J(de.sourceEvent),L=((te=t.value)==null?void 0:te.getBoundingClientRect())||null,B=xt(de.sourceEvent,L))},oe=(de,Y)=>{const te=J(de.sourceEvent);if(!re&&G&&d.value&&(re=!0,z()),!G){const N=te.xSnapped-(F.x??0),S=te.ySnapped-(F.y??0);Math.sqrt(N*N+S*S)>s.value&&Z(de,Y)}(F.x!==te.xSnapped||F.y!==te.ySnapped)&&D.length&&G&&($=de.sourceEvent,B=xt(de.sourceEvent,L),ne(te))},ue=de=>{let Y=!1;if(!G&&!C.value&&!g.value){const te=de.sourceEvent,N=J(te),S=N.xSnapped-(F.x??0),x=N.ySnapped-(F.y??0),V=Math.sqrt(S*S+x*x);V!==0&&V<=s.value&&(O==null||O(te),Y=!0)}if(D.length&&!Y){y(D,!1,!1);const[te,N]=Xa({id:j,dragItems:D,findNode:m});R({event:de.sourceEvent,node:te,nodes:N})}D=[],C.value=!1,re=!1,G=!1,F={x:void 0,y:void 0},cancelAnimationFrame(ee)};return n.watch([()=>n.toValue(q),T],([de,Y],te,N)=>{if(Y){const S=gt(Y);de||(P=bv().on("start",x=>ie(x,Y)).on("drag",x=>oe(x,Y)).on("end",x=>ue(x)).filter(x=>{const V=x.target,M=n.toValue(I);return!x.button&&(!i.value||!vu(V,`.${i.value}`,Y)&&(!M||vu(V,M,Y)))}),S.call(P)),N(()=>{S.on(".drag",null),P&&(P.on("start",null),P.on("drag",null),P.on("end",null))})}}),C}function H1(){return{doubleClick:me(),click:me(),mouseEnter:me(),mouseMove:me(),mouseLeave:me(),contextMenu:me(),updateStart:me(),update:me(),updateEnd:me()}}function Y1(e,t){const o=H1();return o.doubleClick.on(r=>{var i,a;t.edgeDoubleClick(r),(a=(i=e.events)==null?void 0:i.doubleClick)==null||a.call(i,r)}),o.click.on(r=>{var i,a;t.edgeClick(r),(a=(i=e.events)==null?void 0:i.click)==null||a.call(i,r)}),o.mouseEnter.on(r=>{var i,a;t.edgeMouseEnter(r),(a=(i=e.events)==null?void 0:i.mouseEnter)==null||a.call(i,r)}),o.mouseMove.on(r=>{var i,a;t.edgeMouseMove(r),(a=(i=e.events)==null?void 0:i.mouseMove)==null||a.call(i,r)}),o.mouseLeave.on(r=>{var i,a;t.edgeMouseLeave(r),(a=(i=e.events)==null?void 0:i.mouseLeave)==null||a.call(i,r)}),o.contextMenu.on(r=>{var i,a;t.edgeContextMenu(r),(a=(i=e.events)==null?void 0:i.contextMenu)==null||a.call(i,r)}),o.updateStart.on(r=>{var i,a;t.edgeUpdateStart(r),(a=(i=e.events)==null?void 0:i.updateStart)==null||a.call(i,r)}),o.update.on(r=>{var i,a;t.edgeUpdate(r),(a=(i=e.events)==null?void 0:i.update)==null||a.call(i,r)}),o.updateEnd.on(r=>{var i,a;t.edgeUpdateEnd(r),(a=(i=e.events)==null?void 0:i.updateEnd)==null||a.call(i,r)}),Object.entries(o).reduce((r,[i,a])=>(r.emit[i]=a.trigger,r.on[i]=a.on,r),{emit:{},on:{}})}function W1(){const{viewport:e,snapGrid:t,snapToGrid:o,vueFlowRef:r}=Te();return i=>{var a;const l=((a=r.value)==null?void 0:a.getBoundingClientRect())??{left:0,top:0},s=$1(i)?i.sourceEvent:i,{x:c,y:d}=xt(s,l),f=Bo({x:c,y:d},e.value),{x:u,y:p}=o.value?ti(f,t.value):f;return{xSnapped:u,ySnapped:p,...f}}}function ri(){return!0}function Fu({handleId:e,nodeId:t,type:o,isValidConnection:r,edgeUpdaterType:i,onEdgeUpdate:a,onEdgeUpdateEnd:l}){const{id:s,vueFlowRef:c,connectionMode:d,connectionRadius:f,connectOnClick:u,connectionClickStartHandle:p,nodesConnectable:m,autoPanOnConnect:g,autoPanSpeed:_,findNode:h,panBy:b,startConnection:w,updateConnection:y,endConnection:v,emits:k,viewport:E,edges:R,nodes:O,isValidConnection:T,nodeLookup:q}=Te();let j=null,A=!1,I=null;function C(P){var L;const F=n.toValue(o)==="target",B=Ja(P),$=su(P.target);if(B&&P.button===0||!B){let G=function(W){N=xt(W,de),ne=M1(Bo(N,E.value,!1,[1,1]),f.value,q.value,V),S||(x(),S=!0);const K=Au(W,{handle:ne,connectionMode:d.value,fromNodeId:n.toValue(t),fromHandleId:n.toValue(e),fromType:F?"target":"source",isValidConnection:J,doc:$,lib:"vue",flowId:s,nodeLookup:q.value},R.value,O.value,h);I=K.handleDomNode,j=K.connection,A=L1(!!ne,K.isValid);const le={...U,isValid:A,to:K.toHandle&&A?Ya({x:K.toHandle.x,y:K.toHandle.y},E.value):N,toHandle:K.toHandle,toPosition:A&&K.toHandle?K.toHandle.position:el[V.position],toNode:K.toHandle?q.value.get(K.toHandle.nodeId):null};if(!(A&&ne&&(U!=null&&U.toHandle)&&le.toHandle&&U.toHandle.type===le.toHandle.type&&U.toHandle.nodeId===le.toHandle.nodeId&&U.toHandle.id===le.toHandle.id&&U.to.x===le.to.x&&U.to.y===le.to.y)){if(y(ne&&A?Ya({x:ne.x,y:ne.y},E.value):N,K.toHandle,F1(!!ne,A)),U=le,!ne&&!A&&!I)return Qa(te);j&&j.source!==j.target&&I&&(Qa(te),te=I,I.classList.add("connecting","vue-flow__handle-connecting"),I.classList.toggle("valid",!!A),I.classList.toggle("vue-flow__handle-valid",!!A))}},ee=function(W){(ne||I)&&j&&A&&(a?a(W,j):k.connect(j)),k.connectEnd(W),i&&(l==null||l(W)),Qa(te),cancelAnimationFrame(z),v(W),S=!1,A=!1,j=null,I=null,$.removeEventListener("mousemove",G),$.removeEventListener("mouseup",ee),$.removeEventListener("touchmove",G),$.removeEventListener("touchend",ee)};const re=h(n.toValue(t));let J=n.toValue(r)||T.value||ri;!J&&re&&(J=(F?re.isValidSourcePos:re.isValidTargetPos)||ri);let ne,z=0;const{x:Z,y:ie}=xt(P),oe=$==null?void 0:$.elementFromPoint(Z,ie),ue=Tu(n.toValue(i),oe),de=(L=c.value)==null?void 0:L.getBoundingClientRect();if(!de||!ue)return;const Y=U1(n.toValue(t),ue,n.toValue(e),q.value,d.value);if(!Y)return;let te,N=xt(P,de),S=!1;const x=()=>{if(!g.value)return;const[W,K]=bu(N,de,_.value);b({x:W,y:K}),z=requestAnimationFrame(x)},V={...Y,nodeId:n.toValue(t),type:ue,position:Y.position},M=q.value.get(n.toValue(t)),Q={inProgress:!0,isValid:null,from:zn(M,V,ge.Left,!0),fromHandle:V,fromPosition:V.position,fromNode:M,to:N,toHandle:null,toPosition:el[V.position],toNode:null};w({nodeId:n.toValue(t),id:n.toValue(e),type:ue,position:(oe==null?void 0:oe.getAttribute("data-handlepos"))||ge.Top,...N},{x:Z-de.left,y:ie-de.top}),k.connectStart({event:P,nodeId:n.toValue(t),handleId:n.toValue(e),handleType:ue});let U=Q;$.addEventListener("mousemove",G),$.addEventListener("mouseup",ee),$.addEventListener("touchmove",G),$.addEventListener("touchend",ee)}}function D(P){var L,F;if(!u.value)return;const B=n.toValue(o)==="target";if(!p.value){k.clickConnectStart({event:P,nodeId:n.toValue(t),handleId:n.toValue(e)}),w({nodeId:n.toValue(t),type:n.toValue(o),id:n.toValue(e),position:ge.Top,...xt(P)},void 0,!0);return}let $=n.toValue(r)||T.value||ri;const G=h(n.toValue(t));if(!$&&G&&($=(B?G.isValidSourcePos:G.isValidTargetPos)||ri),G&&(typeof G.connectable>"u"?m.value:G.connectable)===!1)return;const ee=su(P.target),re=Au(P,{handle:{nodeId:n.toValue(t),id:n.toValue(e),type:n.toValue(o),position:ge.Top,...xt(P)},connectionMode:d.value,fromNodeId:p.value.nodeId,fromHandleId:p.value.id??null,fromType:p.value.type,isValidConnection:$,doc:ee,lib:"vue",flowId:s,nodeLookup:q.value},R.value,O.value,h),J=((L=re.connection)==null?void 0:L.source)===((F=re.connection)==null?void 0:F.target);re.isValid&&re.connection&&!J&&k.connect(re.connection),k.clickConnectEnd(P),v(P,!0)}return{handlePointerDown:C,handleClick:D}}function X1(){return n.inject(Ru,"")}function Lu(e){const t=e??X1()??"",o=n.inject(Du,n.ref(null)),{findNode:r,edges:i,emits:a}=Te(),l=r(t);return l||a.error(new Ge(De.NODE_NOT_FOUND,t)),{id:t,nodeEl:o,node:l,parentNode:n.computed(()=>r(l.parentNode)),connectedEdges:n.computed(()=>gu([l],i.value))}}function Z1(){return{doubleClick:me(),click:me(),mouseEnter:me(),mouseMove:me(),mouseLeave:me(),contextMenu:me(),dragStart:me(),drag:me(),dragStop:me()}}function J1(e,t){const o=Z1();return o.doubleClick.on(r=>{var i,a;t.nodeDoubleClick(r),(a=(i=e.events)==null?void 0:i.doubleClick)==null||a.call(i,r)}),o.click.on(r=>{var i,a;t.nodeClick(r),(a=(i=e.events)==null?void 0:i.click)==null||a.call(i,r)}),o.mouseEnter.on(r=>{var i,a;t.nodeMouseEnter(r),(a=(i=e.events)==null?void 0:i.mouseEnter)==null||a.call(i,r)}),o.mouseMove.on(r=>{var i,a;t.nodeMouseMove(r),(a=(i=e.events)==null?void 0:i.mouseMove)==null||a.call(i,r)}),o.mouseLeave.on(r=>{var i,a;t.nodeMouseLeave(r),(a=(i=e.events)==null?void 0:i.mouseLeave)==null||a.call(i,r)}),o.contextMenu.on(r=>{var i,a;t.nodeContextMenu(r),(a=(i=e.events)==null?void 0:i.contextMenu)==null||a.call(i,r)}),o.dragStart.on(r=>{var i,a;t.nodeDragStart(r),(a=(i=e.events)==null?void 0:i.dragStart)==null||a.call(i,r)}),o.drag.on(r=>{var i,a;t.nodeDrag(r),(a=(i=e.events)==null?void 0:i.drag)==null||a.call(i,r)}),o.dragStop.on(r=>{var i,a;t.nodeDragStop(r),(a=(i=e.events)==null?void 0:i.dragStop)==null||a.call(i,r)}),Object.entries(o).reduce((r,[i,a])=>(r.emit[i]=a.trigger,r.on[i]=a.on,r),{emit:{},on:{}})}function Uu(){const{getSelectedNodes:e,nodeExtent:t,updateNodePositions:o,findNode:r,snapGrid:i,snapToGrid:a,nodesDraggable:l,emits:s}=Te();return(c,d=!1)=>{const f=a.value?i.value[0]:5,u=a.value?i.value[1]:5,p=d?4:1,m=c.x*f*p,g=c.y*u*p,_=[];for(const h of e.value)if(h.draggable||l&&typeof h.draggable>"u"){const b={x:h.computedPosition.x+m,y:h.computedPosition.y+g},{computedPosition:w}=Za(h,b,s.error,t.value,h.parentNode?r(h.parentNode):void 0);_.push({id:h.id,position:w,from:h.position,distance:{x:c.x,y:c.y},dimensions:h.dimensions})}o(_,!0,!1)}}const rl=.1,Q1=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2;function zt(){return ni("Viewport not initialized yet."),Promise.resolve(!1)}const eS={zoomIn:zt,zoomOut:zt,zoomTo:zt,fitView:zt,setCenter:zt,fitBounds:zt,project:e=>e,screenToFlowCoordinate:e=>e,flowToScreenCoordinate:e=>e,setViewport:zt,setTransform:zt,getViewport:()=>({x:0,y:0,zoom:1}),getTransform:()=>({x:0,y:0,zoom:1}),viewportInitialized:!1};function tS(e){function t(r,i){return new Promise(a=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.interpolate((i==null?void 0:i.interpolate)==="linear"?No:Fr).scaleBy(il(e.d3Selection,i==null?void 0:i.duration,i==null?void 0:i.ease,()=>{a(!0)}),r):a(!1)})}function o(r,i,a,l){return new Promise(s=>{var c;const{x:d,y:f}=lu({x:-r,y:-i},e.translateExtent),u=Gn.translate(-d,-f).scale(a);e.d3Selection&&e.d3Zoom?(c=e.d3Zoom)==null||c.interpolate((l==null?void 0:l.interpolate)==="linear"?No:Fr).transform(il(e.d3Selection,l==null?void 0:l.duration,l==null?void 0:l.ease,()=>{s(!0)}),u):s(!1)})}return n.computed(()=>e.d3Zoom&&e.d3Selection&&e.dimensions.width&&e.dimensions.height?{viewportInitialized:!0,zoomIn:i=>t(1.2,i),zoomOut:i=>t(1/1.2,i),zoomTo:(i,a)=>new Promise(l=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.interpolate((a==null?void 0:a.interpolate)==="linear"?No:Fr).scaleTo(il(e.d3Selection,a==null?void 0:a.duration,a==null?void 0:a.ease,()=>{l(!0)}),i):l(!1)}),setViewport:(i,a)=>o(i.x,i.y,i.zoom,a),setTransform:(i,a)=>o(i.x,i.y,i.zoom,a),getViewport:()=>({x:e.viewport.x,y:e.viewport.y,zoom:e.viewport.zoom}),getTransform:()=>({x:e.viewport.x,y:e.viewport.y,zoom:e.viewport.zoom}),fitView:(i={padding:rl,includeHiddenNodes:!1,duration:0})=>{var a,l;const s=[];for(const p of e.nodes)p.dimensions.width&&p.dimensions.height&&((i==null?void 0:i.includeHiddenNodes)||!p.hidden)&&(!((a=i.nodes)!=null&&a.length)||(l=i.nodes)!=null&&l.length&&i.nodes.includes(p.id))&&s.push(p);if(!s.length)return Promise.resolve(!1);const c=pu(s),{x:d,y:f,zoom:u}=hu(c,e.dimensions.width,e.dimensions.height,i.minZoom??e.minZoom,i.maxZoom??e.maxZoom,i.padding??rl,i.offset);return o(d,f,u,i)},setCenter:(i,a,l)=>{const s=typeof(l==null?void 0:l.zoom)<"u"?l.zoom:e.maxZoom,c=e.dimensions.width/2-i*s,d=e.dimensions.height/2-a*s;return o(c,d,s,l)},fitBounds:(i,a={padding:rl})=>{const{x:l,y:s,zoom:c}=hu(i,e.dimensions.width,e.dimensions.height,e.minZoom,e.maxZoom,a.padding);return o(l,s,c,a)},project:i=>Bo(i,e.viewport,e.snapToGrid,e.snapGrid),screenToFlowCoordinate:i=>{if(e.vueFlowRef){const{x:a,y:l}=e.vueFlowRef.getBoundingClientRect(),s={x:i.x-a,y:i.y-l};return Bo(s,e.viewport,e.snapToGrid,e.snapGrid)}return{x:0,y:0}},flowToScreenCoordinate:i=>{if(e.vueFlowRef){const{x:a,y:l}=e.vueFlowRef.getBoundingClientRect(),s={x:i.x+a,y:i.y+l};return Ya(s,e.viewport)}return{x:0,y:0}}}:eS)}function il(e,t=0,o=Q1,r=()=>{}){const i=typeof t=="number"&&t>0;return i||r(),i?e.transition().duration(t).ease(o).on("end",r):e}function nS(e,t,o){const r=n.effectScope(!0);return r.run(()=>{const i=()=>{r.run(()=>{let _,h,b=!!(o.nodes.value.length||o.edges.value.length);_=Fn([e.modelValue,()=>{var w,y;return(y=(w=e.modelValue)==null?void 0:w.value)==null?void 0:y.length}],([w])=>{w&&Array.isArray(w)&&(h==null||h.pause(),o.setElements(w),!h&&!b&&w.length?b=!0:h==null||h.resume())}),h=Fn([o.nodes,o.edges,()=>o.edges.value.length,()=>o.nodes.value.length],([w,y])=>{var v;(v=e.modelValue)!=null&&v.value&&Array.isArray(e.modelValue.value)&&(_==null||_.pause(),e.modelValue.value=[...w,...y],n.nextTick(()=>{_==null||_.resume()}))},{immediate:b}),n.onScopeDispose(()=>{_==null||_.stop(),h==null||h.stop()})})},a=()=>{r.run(()=>{let _,h,b=!!o.nodes.value.length;_=Fn([e.nodes,()=>{var w,y;return(y=(w=e.nodes)==null?void 0:w.value)==null?void 0:y.length}],([w])=>{w&&Array.isArray(w)&&(h==null||h.pause(),o.setNodes(w),!h&&!b&&w.length?b=!0:h==null||h.resume())}),h=Fn([o.nodes,()=>o.nodes.value.length],([w])=>{var y;(y=e.nodes)!=null&&y.value&&Array.isArray(e.nodes.value)&&(_==null||_.pause(),e.nodes.value=[...w],n.nextTick(()=>{_==null||_.resume()}))},{immediate:b}),n.onScopeDispose(()=>{_==null||_.stop(),h==null||h.stop()})})},l=()=>{r.run(()=>{let _,h,b=!!o.edges.value.length;_=Fn([e.edges,()=>{var w,y;return(y=(w=e.edges)==null?void 0:w.value)==null?void 0:y.length}],([w])=>{w&&Array.isArray(w)&&(h==null||h.pause(),o.setEdges(w),!h&&!b&&w.length?b=!0:h==null||h.resume())}),h=Fn([o.edges,()=>o.edges.value.length],([w])=>{var y;(y=e.edges)!=null&&y.value&&Array.isArray(e.edges.value)&&(_==null||_.pause(),e.edges.value=[...w],n.nextTick(()=>{_==null||_.resume()}))},{immediate:b}),n.onScopeDispose(()=>{_==null||_.stop(),h==null||h.stop()})})},s=()=>{r.run(()=>{n.watch(()=>t.maxZoom,()=>{t.maxZoom&&Me(t.maxZoom)&&o.setMaxZoom(t.maxZoom)},{immediate:!0})})},c=()=>{r.run(()=>{n.watch(()=>t.minZoom,()=>{t.minZoom&&Me(t.minZoom)&&o.setMinZoom(t.minZoom)},{immediate:!0})})},d=()=>{r.run(()=>{n.watch(()=>t.translateExtent,()=>{t.translateExtent&&Me(t.translateExtent)&&o.setTranslateExtent(t.translateExtent)},{immediate:!0})})},f=()=>{r.run(()=>{n.watch(()=>t.nodeExtent,()=>{t.nodeExtent&&Me(t.nodeExtent)&&o.setNodeExtent(t.nodeExtent)},{immediate:!0})})},u=()=>{r.run(()=>{n.watch(()=>t.applyDefault,()=>{Me(t.applyDefault)&&(o.applyDefault.value=t.applyDefault)},{immediate:!0})})},p=()=>{r.run(()=>{const _=async h=>{let b=h;typeof t.autoConnect=="function"&&(b=await t.autoConnect(h)),b!==!1&&o.addEdges([b])};n.watch(()=>t.autoConnect,()=>{Me(t.autoConnect)&&(o.autoConnect.value=t.autoConnect)},{immediate:!0}),n.watch(o.autoConnect,(h,b,w)=>{h?o.onConnect(_):o.hooks.value.connect.off(_),w(()=>{o.hooks.value.connect.off(_)})},{immediate:!0})})},m=()=>{const _=["id","modelValue","translateExtent","nodeExtent","edges","nodes","maxZoom","minZoom","applyDefault","autoConnect"];for(const h of Object.keys(t)){const b=h;if(!_.includes(b)){const w=n.toRef(()=>t[b]),y=o[b];n.isRef(y)&&r.run(()=>{n.watch(w,v=>{Me(v)&&(y.value=v)},{immediate:!0})})}}};(()=>{i(),a(),l(),c(),s(),d(),f(),u(),p(),m()})()}),()=>r.stop()}function oS(){return{edgesChange:me(),nodesChange:me(),nodeDoubleClick:me(),nodeClick:me(),nodeMouseEnter:me(),nodeMouseMove:me(),nodeMouseLeave:me(),nodeContextMenu:me(),nodeDragStart:me(),nodeDrag:me(),nodeDragStop:me(),nodesInitialized:me(),miniMapNodeClick:me(),miniMapNodeDoubleClick:me(),miniMapNodeMouseEnter:me(),miniMapNodeMouseMove:me(),miniMapNodeMouseLeave:me(),connect:me(),connectStart:me(),connectEnd:me(),clickConnectStart:me(),clickConnectEnd:me(),paneReady:me(),init:me(),move:me(),moveStart:me(),moveEnd:me(),selectionDragStart:me(),selectionDrag:me(),selectionDragStop:me(),selectionContextMenu:me(),selectionStart:me(),selectionEnd:me(),viewportChangeStart:me(),viewportChange:me(),viewportChangeEnd:me(),paneScroll:me(),paneClick:me(),paneContextMenu:me(),paneMouseEnter:me(),paneMouseMove:me(),paneMouseLeave:me(),edgeContextMenu:me(),edgeMouseEnter:me(),edgeMouseMove:me(),edgeMouseLeave:me(),edgeDoubleClick:me(),edgeClick:me(),edgeUpdateStart:me(),edgeUpdate:me(),edgeUpdateEnd:me(),updateNodeInternals:me(),error:me(e=>ni(e.message))}}function rS(e,t){n.onBeforeMount(()=>{for(const[o,r]of Object.entries(t.value)){const i=a=>{e(o,a)};r.fns.add(i),xr(()=>{r.off(i)})}})}function Ku(){return{vueFlowRef:null,viewportRef:null,nodes:[],edges:[],connectionLookup:new Map,nodeTypes:{},edgeTypes:{},initialized:!1,dimensions:{width:0,height:0},viewport:{x:0,y:0,zoom:1},d3Zoom:null,d3Selection:null,d3ZoomHandler:null,minZoom:.5,maxZoom:2,translateExtent:[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],nodeExtent:[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],selectionMode:za.Full,paneDragging:!1,preventScrolling:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!0,panOnScroll:!1,panOnScrollSpeed:.5,panOnScrollMode:Po.Free,paneClickDistance:0,panOnDrag:!0,edgeUpdaterRadius:10,onlyRenderVisibleElements:!1,defaultViewport:{x:0,y:0,zoom:1},nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,defaultMarkerColor:"#b1b1b7",connectionLineStyle:{},connectionLineType:null,connectionLineOptions:{type:pn.Bezier,style:{}},connectionMode:Kt.Loose,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectionPosition:{x:Number.NaN,y:Number.NaN},connectionRadius:20,connectOnClick:!0,connectionStatus:null,isValidConnection:null,snapGrid:[15,15],snapToGrid:!1,edgesUpdatable:!1,edgesFocusable:!0,nodesFocusable:!0,nodesConnectable:!0,nodesDraggable:!0,nodeDragThreshold:1,elementsSelectable:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,selectionKeyCode:"Shift",multiSelectionKeyCode:ei()?"Meta":"Control",zoomActivationKeyCode:ei()?"Meta":"Control",deleteKeyCode:"Backspace",panActivationKeyCode:"Space",hooks:oS(),applyDefault:!0,autoConnect:!1,fitViewOnInit:!1,fitViewOnInitDone:!1,noDragClassName:"nodrag",noWheelClassName:"nowheel",noPanClassName:"nopan",defaultEdgeOptions:void 0,elevateEdgesOnSelect:!1,elevateNodesOnSelect:!0,autoPanOnNodeDrag:!0,autoPanOnConnect:!0,autoPanSpeed:15,disableKeyboardA11y:!1,ariaLiveMessage:""}}const iS=["id","vueFlowRef","viewportRef","initialized","modelValue","nodes","edges","maxZoom","minZoom","translateExtent","hooks","defaultEdgeOptions"];function aS(e,t,o){const r=tS(e),i=N=>{const S=N??[];e.hooks.updateNodeInternals.trigger(S)},a=N=>k1(N,e.nodes,e.edges),l=N=>E1(N,e.nodes,e.edges),s=N=>gu(N,e.edges),c=({id:N,type:S,nodeId:x})=>{var V;return Array.from(((V=e.connectionLookup.get(`${x}-${S}-${N??null}`))==null?void 0:V.values())??[])},d=N=>{if(N)return t.value.get(N)},f=N=>{if(N)return o.value.get(N)},u=(N,S,x)=>{var V,M;const X=[];for(const Q of N){const U={id:Q.id,type:"position",dragging:x,from:Q.from};if(S&&(U.position=Q.position,Q.parentNode)){const W=d(Q.parentNode);U.position={x:U.position.x-(((V=W==null?void 0:W.computedPosition)==null?void 0:V.x)??0),y:U.position.y-(((M=W==null?void 0:W.computedPosition)==null?void 0:M.y)??0)}}X.push(U)}X!=null&&X.length&&e.hooks.nodesChange.trigger(X)},p=N=>{if(!e.vueFlowRef)return;const S=e.vueFlowRef.querySelector(".vue-flow__transformationpane");if(!S)return;const x=window.getComputedStyle(S),{m22:V}=new window.DOMMatrixReadOnly(x.transform),M=[];for(const X of N){const Q=X,U=d(Q.id);if(U){const W=Jr(Q.nodeElement);if(!!(W.width&&W.height&&(U.dimensions.width!==W.width||U.dimensions.height!==W.height||Q.forceUpdate))){const le=Q.nodeElement.getBoundingClientRect();U.dimensions=W,U.handleBounds.source=Pu("source",Q.nodeElement,le,V,U.id),U.handleBounds.target=Pu("target",Q.nodeElement,le,V,U.id),M.push({id:U.id,type:"dimensions",dimensions:W})}}}!e.fitViewOnInitDone&&e.fitViewOnInit&&r.value.fitView().then(()=>{e.fitViewOnInitDone=!0}),M.length&&e.hooks.nodesChange.trigger(M)},m=(N,S)=>{const x=new Set,V=new Set;for(const Q of N)gn(Q)?x.add(Q.id):jt(Q)&&V.add(Q.id);const M=qt(t.value,x,!0),X=qt(o.value,V);if(e.multiSelectionActive){for(const Q of x)M.push(Gt(Q,S));for(const Q of V)X.push(Gt(Q,S))}M.length&&e.hooks.nodesChange.trigger(M),X.length&&e.hooks.edgesChange.trigger(X)},g=N=>{if(e.multiSelectionActive){const S=N.map(x=>Gt(x.id,!0));e.hooks.nodesChange.trigger(S);return}e.hooks.nodesChange.trigger(qt(t.value,new Set(N.map(S=>S.id)),!0)),e.hooks.edgesChange.trigger(qt(o.value))},_=N=>{if(e.multiSelectionActive){const S=N.map(x=>Gt(x.id,!0));e.hooks.edgesChange.trigger(S);return}e.hooks.edgesChange.trigger(qt(o.value,new Set(N.map(S=>S.id)))),e.hooks.nodesChange.trigger(qt(t.value,new Set,!0))},h=N=>{m(N,!0)},b=N=>{const x=(N||e.nodes).map(V=>(V.selected=!1,Gt(V.id,!1)));e.hooks.nodesChange.trigger(x)},w=N=>{const x=(N||e.edges).map(V=>(V.selected=!1,Gt(V.id,!1)));e.hooks.edgesChange.trigger(x)},y=N=>{if(!N||!N.length)return m([],!1);const S=N.reduce((x,V)=>{const M=Gt(V.id,!1);return gn(V)?x.nodes.push(M):x.edges.push(M),x},{nodes:[],edges:[]});S.nodes.length&&e.hooks.nodesChange.trigger(S.nodes),S.edges.length&&e.hooks.edgesChange.trigger(S.edges)},v=N=>{var S;(S=e.d3Zoom)==null||S.scaleExtent([N,e.maxZoom]),e.minZoom=N},k=N=>{var S;(S=e.d3Zoom)==null||S.scaleExtent([e.minZoom,N]),e.maxZoom=N},E=N=>{var S;(S=e.d3Zoom)==null||S.translateExtent(N),e.translateExtent=N},R=N=>{e.nodeExtent=N,i()},O=N=>{var S;(S=e.d3Zoom)==null||S.clickDistance(N)},T=N=>{e.nodesDraggable=N,e.nodesConnectable=N,e.elementsSelectable=N},q=N=>{const S=N instanceof Function?N(e.nodes):N;!e.initialized&&!S.length||(e.nodes=Ou(S,d,e.hooks.error.trigger))},j=N=>{const S=N instanceof Function?N(e.edges):N;if(!e.initialized&&!S.length)return;const x=ol(S,e.isValidConnection,d,f,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges);nl(e.connectionLookup,o.value,x),e.edges=x},A=N=>{const S=N instanceof Function?N([...e.nodes,...e.edges]):N;!e.initialized&&!S.length||(q(S.filter(gn)),j(S.filter(jt)))},I=N=>{let S=N instanceof Function?N(e.nodes):N;S=Array.isArray(S)?S:[S];const x=Ou(S,d,e.hooks.error.trigger),V=[];for(const M of x)V.push(Eu(M));V.length&&e.hooks.nodesChange.trigger(V)},C=N=>{let S=N instanceof Function?N(e.edges):N;S=Array.isArray(S)?S:[S];const x=ol(S,e.isValidConnection,d,f,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges),V=[];for(const M of x)V.push(Eu(M));V.length&&e.hooks.edgesChange.trigger(V)},D=(N,S=!0,x=!1)=>{const V=N instanceof Function?N(e.nodes):N,M=Array.isArray(V)?V:[V],X=[],Q=[];function U(K){const le=s(K);for(const se of le)(!Me(se.deletable)||se.deletable)&&Q.push(Cu(se.id,se.source,se.target,se.sourceHandle,se.targetHandle))}function W(K){const le=[];for(const se of e.nodes)se.parentNode===K&&le.push(se);if(le.length){for(const se of le)X.push(ku(se.id));S&&U(le);for(const se of le)W(se.id)}}for(const K of M){const le=typeof K=="string"?d(K):K;le&&(Me(le.deletable)&&!le.deletable||(X.push(ku(le.id)),S&&U([le]),x&&W(le.id)))}Q.length&&e.hooks.edgesChange.trigger(Q),X.length&&e.hooks.nodesChange.trigger(X)},P=N=>{const S=N instanceof Function?N(e.edges):N,x=Array.isArray(S)?S:[S],V=[];for(const M of x){const X=typeof M=="string"?f(M):M;X&&(Me(X.deletable)&&!X.deletable||V.push(Cu(typeof M=="string"?M:M.id,X.source,X.target,X.sourceHandle,X.targetHandle)))}e.hooks.edgesChange.trigger(V)},L=(N,S,x=!0)=>{const V=f(N.id);if(!V)return!1;const M=e.edges.indexOf(V),X=G1(N,S,V,x,e.hooks.error.trigger);if(X){const[Q]=ol([X],e.isValidConnection,d,f,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges);return e.edges=e.edges.map((U,W)=>W===M?Q:U),nl(e.connectionLookup,o.value,[Q]),Q}return!1},F=(N,S,x={replace:!1})=>{const V=f(N);if(!V)return;const M=typeof S=="function"?S(V):S;V.data=x.replace?M:{...V.data,...M}},B=N=>wu(N,e.nodes),$=N=>{const S=wu(N,e.edges);return nl(e.connectionLookup,o.value,S),S},G=(N,S,x={replace:!1})=>{const V=d(N);if(!V)return;const M=typeof S=="function"?S(V):S;x.replace?e.nodes.splice(e.nodes.indexOf(V),1,M):Object.assign(V,M)},ee=(N,S,x={replace:!1})=>{const V=d(N);if(!V)return;const M=typeof S=="function"?S(V):S;V.data=x.replace?M:{...V.data,...M}},re=(N,S,x=!1)=>{x?e.connectionClickStartHandle=N:e.connectionStartHandle=N,e.connectionEndHandle=null,e.connectionStatus=null,S&&(e.connectionPosition=S)},J=(N,S=null,x=null)=>{e.connectionStartHandle&&(e.connectionPosition=N,e.connectionEndHandle=S,e.connectionStatus=x)},ne=(N,S)=>{e.connectionPosition={x:Number.NaN,y:Number.NaN},e.connectionEndHandle=null,e.connectionStatus=null,S?e.connectionClickStartHandle=null:e.connectionStartHandle=null},z=N=>{const S=b1(N),x=S?null:$o(N)?N:d(N.id);return!S&&!x?[null,null,S]:[S?N:Xr(x),x,S]},Z=(N,S=!0,x=e.nodes)=>{const[V,M,X]=z(N);if(!V)return[];const Q=[];for(const U of x||e.nodes){if(!X&&(U.id===M.id||!U.computedPosition))continue;const W=Xr(U),K=Zr(W,V);(S&&K>0||K>=Number(V.width)*Number(V.height))&&Q.push(U)}return Q},ie=(N,S,x=!0)=>{const[V]=z(N);if(!V)return!1;const M=Zr(V,S);return x&&M>0||M>=Number(V.width)*Number(V.height)},oe=N=>{const{viewport:S,dimensions:x,d3Zoom:V,d3Selection:M,translateExtent:X}=e;if(!V||!M||!N.x&&!N.y)return!1;const Q=Gn.translate(S.x+N.x,S.y+N.y).scale(S.zoom),U=[[0,0],[x.width,x.height]],W=V.constrain()(Q,U,X),K=e.viewport.x!==W.x||e.viewport.y!==W.y||e.viewport.zoom!==W.k;return V.transform(M,W),K},ue=N=>{const S=N instanceof Function?N(e):N,x=["d3Zoom","d3Selection","d3ZoomHandler","viewportRef","vueFlowRef","dimensions","hooks"];Me(S.defaultEdgeOptions)&&(e.defaultEdgeOptions=S.defaultEdgeOptions);const V=S.modelValue||S.nodes||S.edges?[]:void 0;V&&(S.modelValue&&V.push(...S.modelValue),S.nodes&&V.push(...S.nodes),S.edges&&V.push(...S.edges),A(V));const M=()=>{Me(S.maxZoom)&&k(S.maxZoom),Me(S.minZoom)&&v(S.minZoom),Me(S.translateExtent)&&E(S.translateExtent)};for(const X of Object.keys(S)){const Q=X,U=S[Q];![...iS,...x].includes(Q)&&Me(U)&&(e[Q]=U)}Na(()=>e.d3Zoom).not.toBeNull().then(M),e.initialized||(e.initialized=!0)};return{updateNodePositions:u,updateNodeDimensions:p,setElements:A,setNodes:q,setEdges:j,addNodes:I,addEdges:C,removeNodes:D,removeEdges:P,findNode:d,findEdge:f,updateEdge:L,updateEdgeData:F,updateNode:G,updateNodeData:ee,applyEdgeChanges:$,applyNodeChanges:B,addSelectedElements:h,addSelectedNodes:g,addSelectedEdges:_,setMinZoom:v,setMaxZoom:k,setTranslateExtent:E,setNodeExtent:R,setPaneClickDistance:O,removeSelectedElements:y,removeSelectedNodes:b,removeSelectedEdges:w,startConnection:re,updateConnection:J,endConnection:ne,setInteractive:T,setState:ue,getIntersectingNodes:Z,getIncomers:a,getOutgoers:l,getConnectedEdges:s,getHandleConnections:c,isNodeIntersecting:ie,panBy:oe,fitView:N=>r.value.fitView(N),zoomIn:N=>r.value.zoomIn(N),zoomOut:N=>r.value.zoomOut(N),zoomTo:(N,S)=>r.value.zoomTo(N,S),setViewport:(N,S)=>r.value.setViewport(N,S),setTransform:(N,S)=>r.value.setTransform(N,S),getViewport:()=>r.value.getViewport(),getTransform:()=>r.value.getTransform(),setCenter:(N,S,x)=>r.value.setCenter(N,S,x),fitBounds:(N,S)=>r.value.fitBounds(N,S),project:N=>r.value.project(N),screenToFlowCoordinate:N=>r.value.screenToFlowCoordinate(N),flowToScreenCoordinate:N=>r.value.flowToScreenCoordinate(N),toObject:()=>{const N=[],S=[];for(const x of e.nodes){const{computedPosition:V,handleBounds:M,selected:X,dimensions:Q,isParent:U,resizing:W,dragging:K,events:le,...se}=x;N.push(se)}for(const x of e.edges){const{selected:V,sourceNode:M,targetNode:X,events:Q,...U}=x;S.push(U)}return JSON.parse(JSON.stringify({nodes:N,edges:S,position:[e.viewport.x,e.viewport.y],zoom:e.viewport.zoom,viewport:e.viewport}))},fromObject:N=>new Promise(S=>{const{nodes:x,edges:V,position:M,zoom:X,viewport:Q}=N;if(x&&q(x),V&&j(V),Q!=null&&Q.x&&(Q!=null&&Q.y)||M){const U=(Q==null?void 0:Q.x)||M[0],W=(Q==null?void 0:Q.y)||M[1],K=(Q==null?void 0:Q.zoom)||X||e.viewport.zoom;return Na(()=>r.value.viewportInitialized).toBe(!0).then(()=>{r.value.setViewport({x:U,y:W,zoom:K}).then(()=>{S(!0)})})}else S(!0)}),updateNodeInternals:i,viewportHelper:r,$reset:()=>{const N=Ku();if(e.edges=[],e.nodes=[],e.d3Zoom&&e.d3Selection){const S=Gn.translate(N.defaultViewport.x??0,N.defaultViewport.y??0).scale(mn(N.defaultViewport.zoom??1,N.minZoom,N.maxZoom)),x=e.viewportRef.getBoundingClientRect(),V=[[0,0],[x.width,x.height]],M=e.d3Zoom.constrain()(S,V,N.translateExtent);e.d3Zoom.transform(e.d3Selection,M)}ue(N)},$destroy:()=>{}}}const lS=["data-id","data-handleid","data-nodeid","data-handlepos"],sS={name:"Handle",compatConfig:{MODE:3}},Ht=n.defineComponent({...sS,props:{id:{default:null},type:{},position:{default:()=>ge.Top},isValidConnection:{type:Function},connectable:{type:[Boolean,Number,String,Function],default:void 0},connectableStart:{type:Boolean,default:!0},connectableEnd:{type:Boolean,default:!0}},setup(e,{expose:t}){const o=n.createPropsRestProxy(e,["position","connectable","connectableStart","connectableEnd","id"]),r=n.toRef(()=>o.type??"source"),i=n.toRef(()=>o.isValidConnection??null),{id:a,connectionStartHandle:l,connectionClickStartHandle:s,connectionEndHandle:c,vueFlowRef:d,nodesConnectable:f,noDragClassName:u,noPanClassName:p}=Te(),{id:m,node:g,nodeEl:_,connectedEdges:h}=Lu(),b=n.ref(),w=n.toRef(()=>typeof e.connectableStart<"u"?e.connectableStart:!0),y=n.toRef(()=>typeof e.connectableEnd<"u"?e.connectableEnd:!0),v=n.toRef(()=>{var j,A,I,C,D,P;return((j=l.value)==null?void 0:j.nodeId)===m&&((A=l.value)==null?void 0:A.id)===e.id&&((I=l.value)==null?void 0:I.type)===r.value||((C=c.value)==null?void 0:C.nodeId)===m&&((D=c.value)==null?void 0:D.id)===e.id&&((P=c.value)==null?void 0:P.type)===r.value}),k=n.toRef(()=>{var j,A,I;return((j=s.value)==null?void 0:j.nodeId)===m&&((A=s.value)==null?void 0:A.id)===e.id&&((I=s.value)==null?void 0:I.type)===r.value}),{handlePointerDown:E,handleClick:R}=Fu({nodeId:m,handleId:e.id,isValidConnection:i,type:r}),O=n.computed(()=>typeof e.connectable=="string"&&e.connectable==="single"?!h.value.some(j=>{const A=j[`${r.value}Handle`];return j[r.value]!==m?!1:A?A===e.id:!0}):typeof e.connectable=="number"?h.value.filter(j=>{const A=j[`${r.value}Handle`];return j[r.value]!==m?!1:A?A===e.id:!0}).length<e.connectable:typeof e.connectable=="function"?e.connectable(g,h.value):Me(e.connectable)?e.connectable:f.value);n.onMounted(()=>{var j;if(!g.dimensions.width||!g.dimensions.height)return;const A=(j=g.handleBounds[r.value])==null?void 0:j.find(B=>B.id===e.id);if(!d.value||A)return;const I=d.value.querySelector(".vue-flow__transformationpane");if(!_.value||!b.value||!I||!e.id)return;const C=_.value.getBoundingClientRect(),D=b.value.getBoundingClientRect(),P=window.getComputedStyle(I),{m22:L}=new window.DOMMatrixReadOnly(P.transform),F={id:e.id,position:e.position,x:(D.left-C.left)/L,y:(D.top-C.top)/L,type:r.value,nodeId:m,...Jr(b.value)};g.handleBounds[r.value]=[...g.handleBounds[r.value]??[],F]});function T(j){const A=Ja(j);O.value&&w.value&&(A&&j.button===0||!A)&&E(j)}function q(j){!m||!s.value&&!w.value||O.value&&R(j)}return t({handleClick:R,handlePointerDown:E,onClick:q,onPointerDown:T}),(j,A)=>(n.openBlock(),n.createElementBlock("div",{ref_key:"handle",ref:b,"data-id":`${n.unref(a)}-${n.unref(m)}-${e.id}-${r.value}`,"data-handleid":e.id,"data-nodeid":n.unref(m),"data-handlepos":j.position,class:n.normalizeClass(["vue-flow__handle",[`vue-flow__handle-${j.position}`,`vue-flow__handle-${e.id}`,n.unref(u),n.unref(p),r.value,{connectable:O.value,connecting:k.value,connectablestart:w.value,connectableend:y.value,connectionindicator:O.value&&(w.value&&!v.value||y.value&&v.value)}]]),onMousedown:T,onTouchstartPassive:T,onClick:q},[n.renderSlot(j.$slots,"default",{id:j.id})],42,lS))}}),ii=function({sourcePosition:e=ge.Bottom,targetPosition:t=ge.Top,label:o,connectable:r=!0,isValidTargetPos:i,isValidSourcePos:a,data:l}){const s=l.label??o;return[n.h(Ht,{type:"target",position:t,connectable:r,isValidConnection:i}),typeof s!="string"&&s?n.h(s):n.h(n.Fragment,[s]),n.h(Ht,{type:"source",position:e,connectable:r,isValidConnection:a})]};ii.props=["sourcePosition","targetPosition","label","isValidTargetPos","isValidSourcePos","connectable","data"],ii.inheritAttrs=!1,ii.compatConfig={MODE:3};const cS=ii,ai=function({targetPosition:e=ge.Top,label:t,connectable:o=!0,isValidTargetPos:r,data:i}){const a=i.label??t;return[n.h(Ht,{type:"target",position:e,connectable:o,isValidConnection:r}),typeof a!="string"&&a?n.h(a):n.h(n.Fragment,[a])]};ai.props=["targetPosition","label","isValidTargetPos","connectable","data"],ai.inheritAttrs=!1,ai.compatConfig={MODE:3};const dS=ai,li=function({sourcePosition:e=ge.Bottom,label:t,connectable:o=!0,isValidSourcePos:r,data:i}){const a=i.label??t;return[typeof a!="string"&&a?n.h(a):n.h(n.Fragment,[a]),n.h(Ht,{type:"source",position:e,connectable:o,isValidConnection:r})]};li.props=["sourcePosition","label","isValidSourcePos","connectable","data"],li.inheritAttrs=!1,li.compatConfig={MODE:3};const uS=li,fS=["transform"],pS=["width","height","x","y","rx","ry"],mS=["y"],gS={name:"EdgeText",compatConfig:{MODE:3}},hS=n.defineComponent({...gS,props:{x:{},y:{},label:{},labelStyle:{default:()=>({})},labelShowBg:{type:Boolean,default:!0},labelBgStyle:{default:()=>({})},labelBgPadding:{default:()=>[2,4]},labelBgBorderRadius:{default:2}},setup(e){const t=n.ref({x:0,y:0,width:0,height:0}),o=n.ref(null),r=n.computed(()=>`translate(${e.x-t.value.width/2} ${e.y-t.value.height/2})`);n.onMounted(i),n.watch([()=>e.x,()=>e.y,o,()=>e.label],i);function i(){if(!o.value)return;const a=o.value.getBBox();(a.width!==t.value.width||a.height!==t.value.height)&&(t.value=a)}return(a,l)=>(n.openBlock(),n.createElementBlock("g",{transform:r.value,class:"vue-flow__edge-textwrapper"},[a.labelShowBg?(n.openBlock(),n.createElementBlock("rect",{key:0,class:"vue-flow__edge-textbg",width:`${t.value.width+2*a.labelBgPadding[0]}px`,height:`${t.value.height+2*a.labelBgPadding[1]}px`,x:-a.labelBgPadding[0],y:-a.labelBgPadding[1],style:n.normalizeStyle(a.labelBgStyle),rx:a.labelBgBorderRadius,ry:a.labelBgBorderRadius},null,12,pS)):n.createCommentVNode("",!0),n.createElementVNode("text",n.mergeProps(a.$attrs,{ref_key:"el",ref:o,class:"vue-flow__edge-text",y:t.value.height/2,dy:"0.3em",style:a.labelStyle}),[n.renderSlot(a.$slots,"default",{},()=>[typeof a.label!="string"?(n.openBlock(),n.createBlock(n.resolveDynamicComponent(a.label),{key:0})):(n.openBlock(),n.createElementBlock(n.Fragment,{key:1},[n.createTextVNode(n.toDisplayString(a.label),1)],64))])],16,mS)],8,fS))}}),yS=["id","d","marker-end","marker-start"],_S=["d","stroke-width"],bS={name:"BaseEdge",inheritAttrs:!1,compatConfig:{MODE:3}},si=n.defineComponent({...bS,props:{id:{},labelX:{},labelY:{},path:{},label:{},markerStart:{},markerEnd:{},interactionWidth:{default:20},labelStyle:{},labelShowBg:{type:Boolean},labelBgStyle:{},labelBgPadding:{},labelBgBorderRadius:{}},setup(e,{expose:t}){const o=n.ref(null),r=n.ref(null),i=n.ref(null),a=n.useAttrs();return t({pathEl:o,interactionEl:r,labelEl:i}),(l,s)=>(n.openBlock(),n.createElementBlock(n.Fragment,null,[n.createElementVNode("path",n.mergeProps(n.unref(a),{id:l.id,ref_key:"pathEl",ref:o,d:l.path,class:"vue-flow__edge-path","marker-end":l.markerEnd,"marker-start":l.markerStart}),null,16,yS),l.interactionWidth?(n.openBlock(),n.createElementBlock("path",{key:0,ref_key:"interactionEl",ref:r,fill:"none",d:l.path,"stroke-width":l.interactionWidth,"stroke-opacity":0,class:"vue-flow__edge-interaction"},null,8,_S)):n.createCommentVNode("",!0),l.label&&l.labelX&&l.labelY?(n.openBlock(),n.createBlock(hS,{key:1,ref_key:"labelEl",ref:i,x:l.labelX,y:l.labelY,label:l.label,"label-show-bg":l.labelShowBg,"label-bg-style":l.labelBgStyle,"label-bg-padding":l.labelBgPadding,"label-bg-border-radius":l.labelBgBorderRadius,"label-style":l.labelStyle},null,8,["x","y","label","label-show-bg","label-bg-style","label-bg-padding","label-bg-border-radius","label-style"])):n.createCommentVNode("",!0)],64))}});function ju({sourceX:e,sourceY:t,targetX:o,targetY:r}){const i=Math.abs(o-e)/2,a=o<e?o+i:o-i,l=Math.abs(r-t)/2,s=r<t?r+l:r-l;return[a,s,i,l]}function Gu({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:l,targetControlY:s}){const c=e*.125+i*.375+l*.375+o*.125,d=t*.125+a*.375+s*.375+r*.125,f=Math.abs(c-e),u=Math.abs(d-t);return[c,d,f,u]}function ci(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function qu({pos:e,x1:t,y1:o,x2:r,y2:i,c:a}){let l,s;switch(e){case ge.Left:l=t-ci(t-r,a),s=o;break;case ge.Right:l=t+ci(r-t,a),s=o;break;case ge.Top:l=t,s=o-ci(o-i,a);break;case ge.Bottom:l=t,s=o+ci(i-o,a);break}return[l,s]}function zu(e){const{sourceX:t,sourceY:o,sourcePosition:r=ge.Bottom,targetX:i,targetY:a,targetPosition:l=ge.Top,curvature:s=.25}=e,[c,d]=qu({pos:r,x1:t,y1:o,x2:i,y2:a,c:s}),[f,u]=qu({pos:l,x1:i,y1:a,x2:t,y2:o,c:s}),[p,m,g,_]=Gu({sourceX:t,sourceY:o,targetX:i,targetY:a,sourceControlX:c,sourceControlY:d,targetControlX:f,targetControlY:u});return[`M${t},${o} C${c},${d} ${f},${u} ${i},${a}`,p,m,g,_]}function Hu({pos:e,x1:t,y1:o,x2:r,y2:i}){let a,l;switch(e){case ge.Left:case ge.Right:a=.5*(t+r),l=o;break;case ge.Top:case ge.Bottom:a=t,l=.5*(o+i);break}return[a,l]}function Yu(e){const{sourceX:t,sourceY:o,sourcePosition:r=ge.Bottom,targetX:i,targetY:a,targetPosition:l=ge.Top}=e,[s,c]=Hu({pos:r,x1:t,y1:o,x2:i,y2:a}),[d,f]=Hu({pos:l,x1:i,y1:a,x2:t,y2:o}),[u,p,m,g]=Gu({sourceX:t,sourceY:o,targetX:i,targetY:a,sourceControlX:s,sourceControlY:c,targetControlX:d,targetControlY:f});return[`M${t},${o} C${s},${c} ${d},${f} ${i},${a}`,u,p,m,g]}const Wu={[ge.Left]:{x:-1,y:0},[ge.Right]:{x:1,y:0},[ge.Top]:{x:0,y:-1},[ge.Bottom]:{x:0,y:1}};function wS({source:e,sourcePosition:t=ge.Bottom,target:o}){return t===ge.Left||t===ge.Right?e.x<o.x?{x:1,y:0}:{x:-1,y:0}:e.y<o.y?{x:0,y:1}:{x:0,y:-1}}function Xu(e,t){return Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2)}function ES({source:e,sourcePosition:t=ge.Bottom,target:o,targetPosition:r=ge.Top,center:i,offset:a}){const l=Wu[t],s=Wu[r],c={x:e.x+l.x*a,y:e.y+l.y*a},d={x:o.x+s.x*a,y:o.y+s.y*a},f=wS({source:c,sourcePosition:t,target:d}),u=f.x!==0?"x":"y",p=f[u];let m,g,_;const h={x:0,y:0},b={x:0,y:0},[w,y,v,k]=ju({sourceX:e.x,sourceY:e.y,targetX:o.x,targetY:o.y});if(l[u]*s[u]===-1){g=i.x??w,_=i.y??y;const R=[{x:g,y:c.y},{x:g,y:d.y}],O=[{x:c.x,y:_},{x:d.x,y:_}];l[u]===p?m=u==="x"?R:O:m=u==="x"?O:R}else{const R=[{x:c.x,y:d.y}],O=[{x:d.x,y:c.y}];if(u==="x"?m=l.x===p?O:R:m=l.y===p?R:O,t===r){const I=Math.abs(e[u]-o[u]);if(I<=a){const C=Math.min(a-1,a-I);l[u]===p?h[u]=(c[u]>e[u]?-1:1)*C:b[u]=(d[u]>o[u]?-1:1)*C}}if(t!==r){const I=u==="x"?"y":"x",C=l[u]===s[I],D=c[I]>d[I],P=c[I]<d[I];(l[u]===1&&(!C&&D||C&&P)||l[u]!==1&&(!C&&P||C&&D))&&(m=u==="x"?R:O)}const T={x:c.x+h.x,y:c.y+h.y},q={x:d.x+b.x,y:d.y+b.y},j=Math.max(Math.abs(T.x-m[0].x),Math.abs(q.x-m[0].x)),A=Math.max(Math.abs(T.y-m[0].y),Math.abs(q.y-m[0].y));j>=A?(g=(T.x+q.x)/2,_=m[0].y):(g=m[0].x,_=(T.y+q.y)/2)}return[[e,{x:c.x+h.x,y:c.y+h.y},...m,{x:d.x+b.x,y:d.y+b.y},o],g,_,v,k]}function kS(e,t,o,r){const i=Math.min(Xu(e,t)/2,Xu(t,o)/2,r),{x:a,y:l}=t;if(e.x===a&&a===o.x||e.y===l&&l===o.y)return`L${a} ${l}`;if(e.y===l){const d=e.x<o.x?-1:1,f=e.y<o.y?1:-1;return`L ${a+i*d},${l}Q ${a},${l} ${a},${l+i*f}`}const s=e.x<o.x?1:-1,c=e.y<o.y?-1:1;return`L ${a},${l+i*c}Q ${a},${l} ${a+i*s},${l}`}function al(e){const{sourceX:t,sourceY:o,sourcePosition:r=ge.Bottom,targetX:i,targetY:a,targetPosition:l=ge.Top,borderRadius:s=5,centerX:c,centerY:d,offset:f=20}=e,[u,p,m,g,_]=ES({source:{x:t,y:o},sourcePosition:r,target:{x:i,y:a},targetPosition:l,center:{x:c,y:d},offset:f});return[u.reduce((b,w,y)=>{let v;return y>0&&y<u.length-1?v=kS(u[y-1],w,u[y+1],s):v=`${y===0?"M":"L"}${w.x} ${w.y}`,b+=v,b},""),p,m,g,_]}function CS(e){const{sourceX:t,sourceY:o,targetX:r,targetY:i}=e,[a,l,s,c]=ju({sourceX:t,sourceY:o,targetX:r,targetY:i});return[`M ${t},${o}L ${r},${i}`,a,l,s,c]}const vS=n.defineComponent({name:"StraightEdge",props:["label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[o,r,i]=CS(e);return n.h(si,{path:o,labelX:r,labelY:i,...t,...e})}}}),Zu=n.defineComponent({name:"SmoothStepEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","borderRadius","markerEnd","markerStart","interactionWidth","offset"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[o,r,i]=al({...e,sourcePosition:e.sourcePosition??ge.Bottom,targetPosition:e.targetPosition??ge.Top});return n.h(si,{path:o,labelX:r,labelY:i,...t,...e})}}}),NS=n.defineComponent({name:"StepEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],setup(e,{attrs:t}){return()=>n.h(Zu,{...e,...t,borderRadius:0})}}),SS=n.defineComponent({name:"BezierEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","curvature","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[o,r,i]=zu({...e,sourcePosition:e.sourcePosition??ge.Bottom,targetPosition:e.targetPosition??ge.Top});return n.h(si,{path:o,labelX:r,labelY:i,...t,...e})}}}),xS=n.defineComponent({name:"SimpleBezierEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[o,r,i]=Yu({...e,sourcePosition:e.sourcePosition??ge.Bottom,targetPosition:e.targetPosition??ge.Top});return n.h(si,{path:o,labelX:r,labelY:i,...t,...e})}}}),AS={input:uS,default:cS,output:dS},TS={default:SS,straight:vS,step:NS,smoothstep:Zu,simplebezier:xS};function IS(e,t,o){const r=n.computed(()=>_=>t.value.get(_)),i=n.computed(()=>_=>o.value.get(_)),a=n.computed(()=>{const _={...TS,...e.edgeTypes},h=Object.keys(_);for(const b of e.edges)b.type&&!h.includes(b.type)&&(_[b.type]=b.type);return _}),l=n.computed(()=>{const _={...AS,...e.nodeTypes},h=Object.keys(_);for(const b of e.nodes)b.type&&!h.includes(b.type)&&(_[b.type]=b.type);return _}),s=n.computed(()=>e.onlyRenderVisibleElements?mu(e.nodes,{x:0,y:0,width:e.dimensions.width,height:e.dimensions.height},e.viewport,!0):e.nodes),c=n.computed(()=>{if(e.onlyRenderVisibleElements){const _=[];for(const h of e.edges){const b=t.value.get(h.source),w=t.value.get(h.target);P1({sourcePos:b.computedPosition||{x:0,y:0},targetPos:w.computedPosition||{x:0,y:0},sourceWidth:b.dimensions.width,sourceHeight:b.dimensions.height,targetWidth:w.dimensions.width,targetHeight:w.dimensions.height,width:e.dimensions.width,height:e.dimensions.height,viewport:e.viewport})&&_.push(h)}return _}return e.edges}),d=n.computed(()=>[...s.value,...c.value]),f=n.computed(()=>{const _=[];for(const h of e.nodes)h.selected&&_.push(h);return _}),u=n.computed(()=>{const _=[];for(const h of e.edges)h.selected&&_.push(h);return _}),p=n.computed(()=>[...f.value,...u.value]),m=n.computed(()=>{const _=[];for(const h of e.nodes)h.dimensions.width&&h.dimensions.height&&h.handleBounds!==void 0&&_.push(h);return _}),g=n.computed(()=>s.value.length>0&&m.value.length===s.value.length);return{getNode:r,getEdge:i,getElements:d,getEdgeTypes:a,getNodeTypes:l,getEdges:c,getNodes:s,getSelectedElements:p,getSelectedNodes:f,getSelectedEdges:u,getNodesInitialized:m,areNodesInitialized:g}}class hn{constructor(){this.currentId=0,this.flows=new Map}static getInstance(){var t;const o=(t=n.getCurrentInstance())==null?void 0:t.appContext.app,r=(o==null?void 0:o.config.globalProperties.$vueFlowStorage)??hn.instance;return hn.instance=r??new hn,o&&(o.config.globalProperties.$vueFlowStorage=hn.instance),hn.instance}set(t,o){return this.flows.set(t,o)}get(t){return this.flows.get(t)}remove(t){return this.flows.delete(t)}create(t,o){const r=Ku(),i=n.reactive(r),a={};for(const[p,m]of Object.entries(i.hooks)){const g=`on${p.charAt(0).toUpperCase()+p.slice(1)}`;a[g]=m.on}const l={};for(const[p,m]of Object.entries(i.hooks))l[p]=m.trigger;const s=n.computed(()=>{const p=new Map;for(const m of i.nodes)p.set(m.id,m);return p}),c=n.computed(()=>{const p=new Map;for(const m of i.edges)p.set(m.id,m);return p}),d=IS(i,s,c),f=aS(i,s,c);f.setState({...i,...o});const u={...a,...d,...f,...Ak(i),nodeLookup:s,edgeLookup:c,emits:l,id:t,vueFlowVersion:"1.45.0",$destroy:()=>{this.remove(t)}};return this.set(t,u),u}getId(){return`vue-flow-${this.currentId++}`}}function Te(e){const t=hn.getInstance(),o=n.getCurrentScope(),r=typeof e=="object",i=r?e:{id:e},a=i.id,l=a??(o==null?void 0:o.vueFlowId);let s;if(o){const c=n.inject(Vu,null);typeof c<"u"&&c!==null&&(!l||c.id===l)&&(s=c)}if(s||l&&(s=t.get(l)),!s||l&&s.id!==l){const c=a??t.getId(),d=t.create(c,i);s=d,(o??n.effectScope(!0)).run(()=>{n.watch(d.applyDefault,(u,p,m)=>{const g=h=>{d.applyNodeChanges(h)},_=h=>{d.applyEdgeChanges(h)};u?(d.onNodesChange(g),d.onEdgesChange(_)):(d.hooks.value.nodesChange.off(g),d.hooks.value.edgesChange.off(_)),m(()=>{d.hooks.value.nodesChange.off(g),d.hooks.value.edgesChange.off(_)})},{immediate:!0}),xr(()=>{if(s){const u=t.get(s.id);u?u.$destroy():ni(`No store instance found for id ${s.id} in storage.`)}})})}else r&&s.setState(i);if(o&&(n.provide(Vu,s),o.vueFlowId=s.id),r){const c=n.getCurrentInstance();(c==null?void 0:c.type.name)!=="VueFlow"&&s.emits.error(new Ge(De.USEVUEFLOW_OPTIONS))}return s}function PS(e){const{emits:t,dimensions:o}=Te();let r;n.onMounted(()=>{const i=e.value,a=()=>{if(!i)return;const l=Jr(i);(l.width===0||l.height===0)&&t.error(new Ge(De.MISSING_VIEWPORT_DIMENSIONS)),o.value={width:l.width||500,height:l.height||500}};a(),window.addEventListener("resize",a),i&&(r=new ResizeObserver(()=>a()),r.observe(i)),n.onBeforeUnmount(()=>{window.removeEventListener("resize",a),r&&i&&r.unobserve(i)})})}const OS={name:"UserSelection",compatConfig:{MODE:3}},$S=n.defineComponent({...OS,props:{userSelectionRect:{}},setup(e){return(t,o)=>(n.openBlock(),n.createElementBlock("div",{class:"vue-flow__selection vue-flow__container",style:n.normalizeStyle({width:`${t.userSelectionRect.width}px`,height:`${t.userSelectionRect.height}px`,transform:`translate(${t.userSelectionRect.x}px, ${t.userSelectionRect.y}px)`})},null,4))}}),BS=["tabIndex"],VS={name:"NodesSelection",compatConfig:{MODE:3}},RS=n.defineComponent({...VS,setup(e){const{emits:t,viewport:o,getSelectedNodes:r,noPanClassName:i,disableKeyboardA11y:a,userSelectionActive:l}=Te(),s=Uu(),c=n.ref(null),d=Mu({el:c,onStart(g){t.selectionDragStart(g)},onDrag(g){t.selectionDrag(g)},onStop(g){t.selectionDragStop(g)}});n.onMounted(()=>{var g;a.value||(g=c.value)==null||g.focus({preventScroll:!0})});const f=n.computed(()=>pu(r.value)),u=n.computed(()=>({width:`${f.value.width}px`,height:`${f.value.height}px`,top:`${f.value.y}px`,left:`${f.value.x}px`}));function p(g){t.selectionContextMenu({event:g,nodes:r.value})}function m(g){a||qn[g.key]&&(g.preventDefault(),s({x:qn[g.key].x,y:qn[g.key].y},g.shiftKey))}return(g,_)=>!n.unref(l)&&f.value.width&&f.value.height?(n.openBlock(),n.createElementBlock("div",{key:0,class:n.normalizeClass(["vue-flow__nodesselection vue-flow__container",n.unref(i)]),style:n.normalizeStyle({transform:`translate(${n.unref(o).x}px,${n.unref(o).y}px) scale(${n.unref(o).zoom})`})},[n.createElementVNode("div",{ref_key:"el",ref:c,class:n.normalizeClass([{dragging:n.unref(d)},"vue-flow__nodesselection-rect"]),style:n.normalizeStyle(u.value),tabIndex:n.unref(a)?void 0:-1,onContextmenu:p,onKeydown:m},null,46,BS)],6)):n.createCommentVNode("",!0)}});function DS(e,t){return{x:e.clientX-t.left,y:e.clientY-t.top}}const MS={name:"Pane",compatConfig:{MODE:3}},FS=n.defineComponent({...MS,props:{isSelecting:{type:Boolean},selectionKeyPressed:{type:Boolean}},setup(e){const{vueFlowRef:t,nodes:o,viewport:r,emits:i,userSelectionActive:a,removeSelectedElements:l,userSelectionRect:s,elementsSelectable:c,nodesSelectionActive:d,getSelectedEdges:f,getSelectedNodes:u,removeNodes:p,removeEdges:m,selectionMode:g,deleteKeyCode:_,multiSelectionKeyCode:h,multiSelectionActive:b,edgeLookup:w,nodeLookup:y,connectionLookup:v,defaultEdgeOptions:k,connectionStartHandle:E}=Te(),R=n.ref(null),O=n.ref(new Set),T=n.ref(new Set),q=n.ref(),j=n.toRef(()=>c.value&&(e.isSelecting||a.value)),A=n.toRef(()=>E.value!==null);let I=!1,C=!1;const D=Oo(_,{actInsideInputWithModifier:!1}),P=Oo(h);n.watch(D,J=>{J&&(p(u.value),m(f.value),d.value=!1)}),n.watch(P,J=>{b.value=J});function L(J,ne){return z=>{z.target===ne&&(J==null||J(z))}}function F(J){if(I||A.value){I=!1;return}i.paneClick(J),l(),d.value=!1}function B(J){J.preventDefault(),J.stopPropagation(),i.paneContextMenu(J)}function $(J){i.paneScroll(J)}function G(J){var ne,z,Z;if(q.value=(ne=t.value)==null?void 0:ne.getBoundingClientRect(),!c.value||!e.isSelecting||J.button!==0||J.target!==R.value||!q.value)return;(Z=(z=J.target)==null?void 0:z.setPointerCapture)==null||Z.call(z,J.pointerId);const{x:ie,y:oe}=DS(J,q.value);C=!0,I=!1,l(),s.value={width:0,height:0,startX:ie,startY:oe,x:ie,y:oe},i.selectionStart(J)}function ee(J){var ne;if(!q.value||!s.value)return;I=!0;const{x:z,y:Z}=xt(J,q.value),{startX:ie=0,startY:oe=0}=s.value,ue={startX:ie,startY:oe,x:z<ie?z:ie,y:Z<oe?Z:oe,width:Math.abs(z-ie),height:Math.abs(Z-oe)},de=O.value,Y=T.value;O.value=new Set(mu(o.value,ue,r.value,g.value===za.Partial,!0).map(N=>N.id)),T.value=new Set;const te=((ne=k.value)==null?void 0:ne.selectable)??!0;for(const N of O.value){const S=v.value.get(N);if(S)for(const{edgeId:x}of S.values()){const V=w.value.get(x);V&&(V.selectable??te)&&T.value.add(x)}}if(!Bu(de,O.value)){const N=qt(y.value,O.value,!0);i.nodesChange(N)}if(!Bu(Y,T.value)){const N=qt(w.value,T.value);i.edgesChange(N)}s.value=ue,a.value=!0,d.value=!1}function re(J){var ne;J.button!==0||!C||((ne=J.target)==null||ne.releasePointerCapture(J.pointerId),!a.value&&s.value&&J.target===R.value&&F(J),a.value=!1,s.value=null,d.value=O.value.size>0,i.selectionEnd(J),e.selectionKeyPressed&&(I=!1),C=!1)}return(J,ne)=>(n.openBlock(),n.createElementBlock("div",{ref_key:"container",ref:R,class:n.normalizeClass(["vue-flow__pane vue-flow__container",{selection:J.isSelecting}]),onClick:ne[0]||(ne[0]=z=>j.value?void 0:L(F,R.value)(z)),onContextmenu:ne[1]||(ne[1]=z=>L(B,R.value)(z)),onWheelPassive:ne[2]||(ne[2]=z=>L($,R.value)(z)),onPointerenter:ne[3]||(ne[3]=z=>j.value?void 0:n.unref(i).paneMouseEnter(z)),onPointerdown:ne[4]||(ne[4]=z=>j.value?G(z):n.unref(i).paneMouseMove(z)),onPointermove:ne[5]||(ne[5]=z=>j.value?ee(z):n.unref(i).paneMouseMove(z)),onPointerup:ne[6]||(ne[6]=z=>j.value?re(z):void 0),onPointerleave:ne[7]||(ne[7]=z=>n.unref(i).paneMouseLeave(z))},[n.renderSlot(J.$slots,"default"),n.unref(a)&&n.unref(s)?(n.openBlock(),n.createBlock($S,{key:0,"user-selection-rect":n.unref(s)},null,8,["user-selection-rect"])):n.createCommentVNode("",!0),n.unref(d)&&n.unref(u).length?(n.openBlock(),n.createBlock(RS,{key:1})):n.createCommentVNode("",!0)],34))}}),LS={name:"Transform",compatConfig:{MODE:3}},US=n.defineComponent({...LS,setup(e){const{viewport:t,fitViewOnInit:o,fitViewOnInitDone:r}=Te(),i=n.computed(()=>o.value?!r.value:!1),a=n.computed(()=>`translate(${t.value.x}px,${t.value.y}px) scale(${t.value.zoom})`);return(l,s)=>(n.openBlock(),n.createElementBlock("div",{class:"vue-flow__transformationpane vue-flow__container",style:n.normalizeStyle({transform:a.value,opacity:i.value?0:void 0})},[n.renderSlot(l.$slots,"default")],4))}}),KS={name:"Viewport",compatConfig:{MODE:3}},jS=n.defineComponent({...KS,setup(e){const{minZoom:t,maxZoom:o,defaultViewport:r,translateExtent:i,zoomActivationKeyCode:a,selectionKeyCode:l,panActivationKeyCode:s,panOnScroll:c,panOnScrollMode:d,panOnScrollSpeed:f,panOnDrag:u,zoomOnDoubleClick:p,zoomOnPinch:m,zoomOnScroll:g,preventScrolling:_,noWheelClassName:h,noPanClassName:b,emits:w,connectionStartHandle:y,userSelectionActive:v,paneDragging:k,d3Zoom:E,d3Selection:R,d3ZoomHandler:O,viewport:T,viewportRef:q,paneClickDistance:j}=Te();PS(q);const A=n.shallowRef(!1),I=n.shallowRef(!1);let C=null,D=!1,P=0,L={x:0,y:0,zoom:0};const F=Oo(s),B=Oo(l),$=Oo(a),G=n.toRef(()=>(!B.value||B.value&&l.value===!0)&&(F.value||u.value)),ee=n.toRef(()=>F.value||c.value),re=n.toRef(()=>B.value||l.value===!0&&G.value!==!0);n.onMounted(()=>{if(!q.value){ni("Viewport element is missing");return}const oe=q.value,ue=oe.getBoundingClientRect(),de=f1().clickDistance(j.value).scaleExtent([t.value,o.value]).translateExtent(i.value),Y=gt(oe).call(de),te=Y.on("wheel.zoom"),N=Gn.translate(r.value.x??0,r.value.y??0).scale(mn(r.value.zoom??1,t.value,o.value)),S=[[0,0],[ue.width,ue.height]],x=de.constrain()(N,S,i.value);de.transform(Y,x),de.wheelDelta(ne),E.value=de,R.value=Y,O.value=te,T.value={x:x.x,y:x.y,zoom:x.k},de.on("start",V=>{var M;if(!V.sourceEvent)return null;P=V.sourceEvent.button,A.value=!0;const X=Z(V.transform);((M=V.sourceEvent)==null?void 0:M.type)==="mousedown"&&(k.value=!0),L=X,w.viewportChangeStart(X),w.moveStart({event:V,flowTransform:X})}),de.on("end",V=>{if(!V.sourceEvent)return null;if(A.value=!1,k.value=!1,J(G.value,P??0)&&!D&&w.paneContextMenu(V.sourceEvent),D=!1,z(L,V.transform)){const M=Z(V.transform);L=M,w.viewportChangeEnd(M),w.moveEnd({event:V,flowTransform:M})}}),de.filter(V=>{var M;const X=$.value||g.value,Q=m.value&&V.ctrlKey,U=V.button;if(U===1&&V.type==="mousedown"&&(ie(V,"vue-flow__node")||ie(V,"vue-flow__edge")))return!0;if(!G.value&&!X&&!ee.value&&!p.value&&!m.value||v.value||!p.value&&V.type==="dblclick"||ie(V,h.value)&&V.type==="wheel"||ie(V,b.value)&&(V.type!=="wheel"||ee.value&&V.type==="wheel"&&!$.value)||!m.value&&V.ctrlKey&&V.type==="wheel"||!X&&!ee.value&&!Q&&V.type==="wheel")return!1;if(!m&&V.type==="touchstart"&&((M=V.touches)==null?void 0:M.length)>1)return V.preventDefault(),!1;if(!G.value&&(V.type==="mousedown"||V.type==="touchstart")||l.value===!0&&Array.isArray(u.value)&&u.value.includes(0)&&U===0||Array.isArray(u.value)&&!u.value.includes(U)&&(V.type==="mousedown"||V.type==="touchstart"))return!1;const W=Array.isArray(u.value)&&u.value.includes(U)||l.value===!0&&Array.isArray(u.value)&&!u.value.includes(0)||!U||U<=1;return(!V.ctrlKey||F.value||V.type==="wheel")&&W}),n.watch([v,G],()=>{v.value&&!A.value?de.on("zoom",null):v.value||de.on("zoom",V=>{T.value={x:V.transform.x,y:V.transform.y,zoom:V.transform.k};const M=Z(V.transform);D=J(G.value,P??0),w.viewportChange(M),w.move({event:V,flowTransform:M})})},{immediate:!0}),n.watch([v,ee,d,$,m,_,h],()=>{ee.value&&!$.value&&!v.value?Y.on("wheel.zoom",V=>{if(ie(V,h.value))return!1;const M=$.value||g.value,X=m.value&&V.ctrlKey;if(!(!_.value||ee.value||M||X))return!1;V.preventDefault(),V.stopImmediatePropagation();const U=Y.property("__zoom").k||1,W=ei();if(!F.value&&V.ctrlKey&&m.value&&W){const _e=Ct(V),be=ne(V),Ce=U*2**be;de.scaleTo(Y,Ce,_e,V);return}const K=V.deltaMode===1?20:1;let le=d.value===Po.Vertical?0:V.deltaX*K,se=d.value===Po.Horizontal?0:V.deltaY*K;!W&&V.shiftKey&&d.value!==Po.Vertical&&!le&&se&&(le=se,se=0),de.translateBy(Y,-(le/U)*f.value,-(se/U)*f.value);const ae=Z(Y.property("__zoom"));C&&clearTimeout(C),I.value?(w.move({event:V,flowTransform:ae}),w.viewportChange(ae),C=setTimeout(()=>{w.moveEnd({event:V,flowTransform:ae}),w.viewportChangeEnd(ae),I.value=!1},150)):(I.value=!0,w.moveStart({event:V,flowTransform:ae}),w.viewportChangeStart(ae))},{passive:!1}):typeof te<"u"&&Y.on("wheel.zoom",function(V,M){const X=!_.value&&V.type==="wheel"&&!V.ctrlKey,Q=$.value||g.value,U=m.value&&V.ctrlKey;if(!Q&&!c.value&&!U&&V.type==="wheel"||X||ie(V,h.value))return null;V.preventDefault(),te.call(this,V,M)},{passive:!1})},{immediate:!0})});function J(oe,ue){return ue===2&&Array.isArray(oe)&&oe.includes(2)}function ne(oe){const ue=oe.ctrlKey&&ei()?10:1;return-oe.deltaY*(oe.deltaMode===1?.05:oe.deltaMode?1:.002)*ue}function z(oe,ue){return oe.x!==ue.x&&!Number.isNaN(ue.x)||oe.y!==ue.y&&!Number.isNaN(ue.y)||oe.zoom!==ue.k&&!Number.isNaN(ue.k)}function Z(oe){return{x:oe.x,y:oe.y,zoom:oe.k}}function ie(oe,ue){return oe.target.closest(`.${ue}`)}return(oe,ue)=>(n.openBlock(),n.createElementBlock("div",{ref_key:"viewportRef",ref:q,class:"vue-flow__viewport vue-flow__container"},[n.createVNode(FS,{"is-selecting":re.value,"selection-key-pressed":n.unref(B),class:n.normalizeClass({connecting:!!n.unref(y),dragging:n.unref(k),draggable:n.unref(u)===!0||Array.isArray(n.unref(u))&&n.unref(u).includes(0)})},{default:n.withCtx(()=>[n.createVNode(US,null,{default:n.withCtx(()=>[n.renderSlot(oe.$slots,"default")]),_:3})]),_:3},8,["is-selecting","selection-key-pressed","class"])],512))}}),GS=["id"],qS=["id"],zS=["id"],HS={name:"A11yDescriptions",compatConfig:{MODE:3}},YS=n.defineComponent({...HS,setup(e){const{id:t,disableKeyboardA11y:o,ariaLiveMessage:r}=Te();return(i,a)=>(n.openBlock(),n.createElementBlock(n.Fragment,null,[n.createElementVNode("div",{id:`${n.unref(ru)}-${n.unref(t)}`,style:{display:"none"}}," Press enter or space to select a node. "+n.toDisplayString(n.unref(o)?"":"You can then use the arrow keys to move the node around.")+" You can then use the arrow keys to move the node around, press delete to remove it and press escape to cancel. ",9,GS),n.createElementVNode("div",{id:`${n.unref(iu)}-${n.unref(t)}`,style:{display:"none"}}," Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. ",8,qS),n.unref(o)?n.createCommentVNode("",!0):(n.openBlock(),n.createElementBlock("div",{key:0,id:`${n.unref(_1)}-${n.unref(t)}`,"aria-live":"assertive","aria-atomic":"true",style:{position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)","clip-path":"inset(100%)"}},n.toDisplayString(n.unref(r)),9,zS))],64))}});function WS(){const e=Te();n.watch(()=>e.viewportHelper.value.viewportInitialized,t=>{t&&setTimeout(()=>{e.emits.init(e),e.emits.paneReady(e)},1)})}function XS(e,t,o){return o===ge.Left?e-t:o===ge.Right?e+t:e}function ZS(e,t,o){return o===ge.Top?e-t:o===ge.Bottom?e+t:e}const ll=function({radius:e=10,centerX:t=0,centerY:o=0,position:r=ge.Top,type:i}){return n.h("circle",{class:`vue-flow__edgeupdater vue-flow__edgeupdater-${i}`,cx:XS(t,e,r),cy:ZS(o,e,r),r:e,stroke:"transparent",fill:"transparent"})};ll.props=["radius","centerX","centerY","position","type"],ll.compatConfig={MODE:3};const Ju=ll,JS=n.defineComponent({name:"Edge",compatConfig:{MODE:3},props:["id"],setup(e){const{id:t,addSelectedEdges:o,connectionMode:r,edgeUpdaterRadius:i,emits:a,nodesSelectionActive:l,noPanClassName:s,getEdgeTypes:c,removeSelectedEdges:d,findEdge:f,findNode:u,isValidConnection:p,multiSelectionActive:m,disableKeyboardA11y:g,elementsSelectable:_,edgesUpdatable:h,edgesFocusable:b,hooks:w}=Te(),y=n.computed(()=>f(e.id)),{emit:v,on:k}=Y1(y.value,a),E=n.inject(oi),R=n.getCurrentInstance(),O=n.ref(!1),T=n.ref(!1),q=n.ref(""),j=n.ref(null),A=n.ref("source"),I=n.ref(null),C=n.toRef(()=>typeof y.value.selectable>"u"?_.value:y.value.selectable),D=n.toRef(()=>typeof y.value.updatable>"u"?h.value:y.value.updatable),P=n.toRef(()=>typeof y.value.focusable>"u"?b.value:y.value.focusable);n.provide(q1,e.id),n.provide(z1,I);const L=n.computed(()=>y.value.class instanceof Function?y.value.class(y.value):y.value.class),F=n.computed(()=>y.value.style instanceof Function?y.value.style(y.value):y.value.style),B=n.computed(()=>{const S=y.value.type||"default",x=E==null?void 0:E[`edge-${S}`];if(x)return x;let V=y.value.template??c.value[S];if(typeof V=="string"&&R){const M=Object.keys(R.appContext.components);M&&M.includes(S)&&(V=n.resolveComponent(S,!1))}return V&&typeof V!="string"?V:(a.error(new Ge(De.EDGE_TYPE_MISSING,V)),!1)}),{handlePointerDown:$}=Fu({nodeId:q,handleId:j,type:A,isValidConnection:p,edgeUpdaterType:A,onEdgeUpdate:re,onEdgeUpdateEnd:J});return()=>{const S=u(y.value.source),x=u(y.value.target),V="pathOptions"in y.value?y.value.pathOptions:{};if(!S&&!x)return a.error(new Ge(De.EDGE_SOURCE_TARGET_MISSING,y.value.id,y.value.source,y.value.target)),null;if(!S)return a.error(new Ge(De.EDGE_SOURCE_MISSING,y.value.id,y.value.source)),null;if(!x)return a.error(new Ge(De.EDGE_TARGET_MISSING,y.value.id,y.value.target)),null;if(!y.value||y.value.hidden||S.hidden||x.hidden)return null;let M;r.value===Kt.Strict?M=S.handleBounds.source:M=[...S.handleBounds.source||[],...S.handleBounds.target||[]];const X=Su(M,y.value.sourceHandle);let Q;r.value===Kt.Strict?Q=x.handleBounds.target:Q=[...x.handleBounds.target||[],...x.handleBounds.source||[]];const U=Su(Q,y.value.targetHandle),W=(X==null?void 0:X.position)||ge.Bottom,K=(U==null?void 0:U.position)||ge.Top,{x:le,y:se}=zn(S,X,W),{x:ae,y:_e}=zn(x,U,K);return y.value.sourceX=le,y.value.sourceY=se,y.value.targetX=ae,y.value.targetY=_e,n.h("g",{ref:I,key:e.id,"data-id":e.id,class:["vue-flow__edge",`vue-flow__edge-${B.value===!1?"default":y.value.type||"default"}`,s.value,L.value,{updating:O.value,selected:y.value.selected,animated:y.value.animated,inactive:!C.value&&!w.value.edgeClick.hasListeners()}],tabIndex:P.value?0:void 0,"aria-label":y.value.ariaLabel===null?void 0:y.value.ariaLabel??`Edge from ${y.value.source} to ${y.value.target}`,"aria-describedby":P.value?`${iu}-${t}`:void 0,"aria-roledescription":"edge",role:P.value?"group":"img",...y.value.domAttributes,onClick:z,onContextmenu:Z,onDblclick:ie,onMouseenter:oe,onMousemove:ue,onMouseleave:de,onKeyDown:P.value?N:void 0},[T.value?null:n.h(B.value===!1?c.value.default:B.value,{id:e.id,sourceNode:S,targetNode:x,source:y.value.source,target:y.value.target,type:y.value.type,updatable:D.value,selected:y.value.selected,animated:y.value.animated,label:y.value.label,labelStyle:y.value.labelStyle,labelShowBg:y.value.labelShowBg,labelBgStyle:y.value.labelBgStyle,labelBgPadding:y.value.labelBgPadding,labelBgBorderRadius:y.value.labelBgBorderRadius,data:y.value.data,events:{...y.value.events,...k},style:F.value,markerStart:`url('#${Vo(y.value.markerStart,t)}')`,markerEnd:`url('#${Vo(y.value.markerEnd,t)}')`,sourcePosition:W,targetPosition:K,sourceX:le,sourceY:se,targetX:ae,targetY:_e,sourceHandleId:y.value.sourceHandle,targetHandleId:y.value.targetHandle,interactionWidth:y.value.interactionWidth,...V}),[D.value==="source"||D.value===!0?[n.h("g",{onMousedown:Y,onMouseenter:G,onMouseout:ee},n.h(Ju,{position:W,centerX:le,centerY:se,radius:i.value,type:"source","data-type":"source"}))]:null,D.value==="target"||D.value===!0?[n.h("g",{onMousedown:te,onMouseenter:G,onMouseout:ee},n.h(Ju,{position:K,centerX:ae,centerY:_e,radius:i.value,type:"target","data-type":"target"}))]:null]])};function G(){O.value=!0}function ee(){O.value=!1}function re(S,x){v.update({event:S,edge:y.value,connection:x})}function J(S){v.updateEnd({event:S,edge:y.value}),T.value=!1}function ne(S,x){S.button===0&&(T.value=!0,q.value=x?y.value.target:y.value.source,j.value=(x?y.value.targetHandle:y.value.sourceHandle)??null,A.value=x?"target":"source",v.updateStart({event:S,edge:y.value}),$(S))}function z(S){var x;const V={event:S,edge:y.value};C.value&&(l.value=!1,y.value.selected&&m.value?(d([y.value]),(x=I.value)==null||x.blur()):o([y.value])),v.click(V)}function Z(S){v.contextMenu({event:S,edge:y.value})}function ie(S){v.doubleClick({event:S,edge:y.value})}function oe(S){v.mouseEnter({event:S,edge:y.value})}function ue(S){v.mouseMove({event:S,edge:y.value})}function de(S){v.mouseLeave({event:S,edge:y.value})}function Y(S){ne(S,!0)}function te(S){ne(S,!1)}function N(S){var x;!g.value&&au.includes(S.key)&&C.value&&(S.key==="Escape"?((x=I.value)==null||x.blur(),d([f(e.id)])):o([f(e.id)]))}}}),QS=n.defineComponent({name:"ConnectionLine",compatConfig:{MODE:3},setup(){var e;const{id:t,connectionMode:o,connectionStartHandle:r,connectionEndHandle:i,connectionPosition:a,connectionLineType:l,connectionLineStyle:s,connectionLineOptions:c,connectionStatus:d,viewport:f,findNode:u}=Te(),p=(e=n.inject(oi))==null?void 0:e["connection-line"],m=n.computed(()=>{var w;return u((w=r.value)==null?void 0:w.nodeId)}),g=n.computed(()=>{var w;return u((w=i.value)==null?void 0:w.nodeId)??null}),_=n.computed(()=>({x:(a.value.x-f.value.x)/f.value.zoom,y:(a.value.y-f.value.y)/f.value.zoom})),h=n.computed(()=>c.value.markerStart?`url(#${Vo(c.value.markerStart,t)})`:""),b=n.computed(()=>c.value.markerEnd?`url(#${Vo(c.value.markerEnd,t)})`:"");return()=>{var w,y,v;if(!m.value||!r.value)return null;const k=r.value.id,E=r.value.type,R=m.value.handleBounds;let O=(R==null?void 0:R[E])??[];if(o.value===Kt.Loose){const F=(R==null?void 0:R[E==="source"?"target":"source"])??[];O=[...O,...F]}if(!O)return null;const T=(k?O.find(F=>F.id===k):O[0])??null,q=(T==null?void 0:T.position)??ge.Top,{x:j,y:A}=zn(m.value,T,q);let I=null;g.value&&(o.value===Kt.Strict?I=((w=g.value.handleBounds[E==="source"?"target":"source"])==null?void 0:w.find(F=>{var B;return F.id===((B=i.value)==null?void 0:B.id)}))||null:I=((y=[...g.value.handleBounds.source??[],...g.value.handleBounds.target??[]])==null?void 0:y.find(F=>{var B;return F.id===((B=i.value)==null?void 0:B.id)}))||null);const C=((v=i.value)==null?void 0:v.position)??(q?el[q]:null);if(!q||!C)return null;const D=l.value??c.value.type??pn.Bezier;let P="";const L={sourceX:j,sourceY:A,sourcePosition:q,targetX:_.value.x,targetY:_.value.y,targetPosition:C};return D===pn.Bezier?[P]=zu(L):D===pn.Step?[P]=al({...L,borderRadius:0}):D===pn.SmoothStep?[P]=al(L):D===pn.SimpleBezier?[P]=Yu(L):P=`M${j},${A} ${_.value.x},${_.value.y}`,n.h("svg",{class:"vue-flow__edges vue-flow__connectionline vue-flow__container"},n.h("g",{class:"vue-flow__connection"},p?n.h(p,{sourceX:j,sourceY:A,sourcePosition:q,targetX:_.value.x,targetY:_.value.y,targetPosition:C,sourceNode:m.value,sourceHandle:T,targetNode:g.value,targetHandle:I,markerEnd:b.value,markerStart:h.value,connectionStatus:d.value}):n.h("path",{d:P,class:[c.value.class,d,"vue-flow__connection-path"],style:{...s.value,...c.value.style},"marker-end":b.value,"marker-start":h.value})))}}}),ex=["id","markerWidth","markerHeight","markerUnits","orient"],tx={name:"MarkerType",compatConfig:{MODE:3}},nx=n.defineComponent({...tx,props:{id:{},type:{},color:{default:"none"},width:{default:12.5},height:{default:12.5},markerUnits:{default:"strokeWidth"},orient:{default:"auto-start-reverse"},strokeWidth:{default:1}},setup(e){return(t,o)=>(n.openBlock(),n.createElementBlock("marker",{id:t.id,class:"vue-flow__arrowhead",viewBox:"-10 -10 20 20",refX:"0",refY:"0",markerWidth:`${t.width}`,markerHeight:`${t.height}`,markerUnits:t.markerUnits,orient:t.orient},[t.type===n.unref(Wr).ArrowClosed?(n.openBlock(),n.createElementBlock("polyline",{key:0,style:n.normalizeStyle({stroke:t.color,fill:t.color,strokeWidth:t.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",points:"-5,-4 0,0 -5,4 -5,-4"},null,4)):n.createCommentVNode("",!0),t.type===n.unref(Wr).Arrow?(n.openBlock(),n.createElementBlock("polyline",{key:1,style:n.normalizeStyle({stroke:t.color,strokeWidth:t.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",fill:"none",points:"-5,-4 0,0 -5,4"},null,4)):n.createCommentVNode("",!0)],8,ex))}}),ox={class:"vue-flow__marker vue-flow__container","aria-hidden":"true"},rx={name:"MarkerDefinitions",compatConfig:{MODE:3}},ix=n.defineComponent({...rx,setup(e){const{id:t,edges:o,connectionLineOptions:r,defaultMarkerColor:i}=Te(),a=n.computed(()=>{const l=new Set,s=[],c=d=>{if(d){const f=Vo(d,t);l.has(f)||(typeof d=="object"?s.push({...d,id:f,color:d.color||i.value}):s.push({id:f,color:i.value,type:d}),l.add(f))}};for(const d of[r.value.markerEnd,r.value.markerStart])c(d);for(const d of o.value)for(const f of[d.markerStart,d.markerEnd])c(f);return s.sort((d,f)=>d.id.localeCompare(f.id))});return(l,s)=>(n.openBlock(),n.createElementBlock("svg",ox,[n.createElementVNode("defs",null,[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(a.value,c=>(n.openBlock(),n.createBlock(nx,{id:c.id,key:c.id,type:c.type,color:c.color,width:c.width,height:c.height,markerUnits:c.markerUnits,"stroke-width":c.strokeWidth,orient:c.orient},null,8,["id","type","color","width","height","markerUnits","stroke-width","orient"]))),128))])]))}}),ax={name:"Edges",compatConfig:{MODE:3}},lx=n.defineComponent({...ax,setup(e){const{findNode:t,getEdges:o,elevateEdgesOnSelect:r}=Te();return(i,a)=>(n.openBlock(),n.createElementBlock(n.Fragment,null,[n.createVNode(ix),(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(o),l=>(n.openBlock(),n.createElementBlock("svg",{key:l.id,class:"vue-flow__edges vue-flow__container",style:n.normalizeStyle({zIndex:n.unref(O1)(l,n.unref(t),n.unref(r))})},[n.createVNode(n.unref(JS),{id:l.id},null,8,["id"])],4))),128)),n.createVNode(n.unref(QS))],64))}}),sx=n.defineComponent({name:"Node",compatConfig:{MODE:3},props:["id","resizeObserver"],setup(e){const{id:t,noPanClassName:o,selectNodesOnDrag:r,nodesSelectionActive:i,multiSelectionActive:a,emits:l,removeSelectedNodes:s,addSelectedNodes:c,updateNodeDimensions:d,onUpdateNodeInternals:f,getNodeTypes:u,nodeExtent:p,elevateNodesOnSelect:m,disableKeyboardA11y:g,ariaLiveMessage:_,snapToGrid:h,snapGrid:b,nodeDragThreshold:w,nodesDraggable:y,elementsSelectable:v,nodesConnectable:k,nodesFocusable:E,hooks:R}=Te(),O=n.ref(null);n.provide(Du,O),n.provide(Ru,e.id);const T=n.inject(oi),q=n.getCurrentInstance(),j=Uu(),{node:A,parentNode:I}=Lu(e.id),{emit:C,on:D}=J1(A,l),P=n.toRef(()=>typeof A.draggable>"u"?y.value:A.draggable),L=n.toRef(()=>typeof A.selectable>"u"?v.value:A.selectable),F=n.toRef(()=>typeof A.connectable>"u"?k.value:A.connectable),B=n.toRef(()=>typeof A.focusable>"u"?E.value:A.focusable),$=n.computed(()=>L.value||P.value||R.value.nodeClick.hasListeners()||R.value.nodeDoubleClick.hasListeners()||R.value.nodeMouseEnter.hasListeners()||R.value.nodeMouseMove.hasListeners()||R.value.nodeMouseLeave.hasListeners()),G=n.toRef(()=>!!A.dimensions.width&&!!A.dimensions.height),ee=n.computed(()=>{const x=A.type||"default",V=T==null?void 0:T[`node-${x}`];if(V)return V;let M=A.template||u.value[x];if(typeof M=="string"&&q){const X=Object.keys(q.appContext.components);X&&X.includes(x)&&(M=n.resolveComponent(x,!1))}return M&&typeof M!="string"?M:(l.error(new Ge(De.NODE_TYPE_MISSING,M)),!1)}),re=Mu({id:e.id,el:O,disabled:()=>!P.value,selectable:L,dragHandle:()=>A.dragHandle,onStart(x){C.dragStart(x)},onDrag(x){C.drag(x)},onStop(x){C.dragStop(x)},onClick(x){N(x)}}),J=n.computed(()=>A.class instanceof Function?A.class(A):A.class),ne=n.computed(()=>{const x=(A.style instanceof Function?A.style(A):A.style)||{},V=A.width instanceof Function?A.width(A):A.width,M=A.height instanceof Function?A.height(A):A.height;return!x.width&&V&&(x.width=typeof V=="string"?V:`${V}px`),!x.height&&M&&(x.height=typeof M=="string"?M:`${M}px`),x}),z=n.toRef(()=>Number(A.zIndex??ne.value.zIndex??0));return f(x=>{(x.includes(e.id)||!x.length)&&ie()}),n.onMounted(()=>{n.watch(()=>A.hidden,(x=!1,V,M)=>{!x&&O.value&&(e.resizeObserver.observe(O.value),M(()=>{O.value&&e.resizeObserver.unobserve(O.value)}))},{immediate:!0,flush:"post"})}),n.watch([()=>A.type,()=>A.sourcePosition,()=>A.targetPosition],()=>{n.nextTick(()=>{d([{id:e.id,nodeElement:O.value,forceUpdate:!0}])})}),n.watch([()=>A.position.x,()=>A.position.y,()=>{var x;return(x=I.value)==null?void 0:x.computedPosition.x},()=>{var x;return(x=I.value)==null?void 0:x.computedPosition.y},()=>{var x;return(x=I.value)==null?void 0:x.computedPosition.z},z,()=>A.selected,()=>A.dimensions.height,()=>A.dimensions.width,()=>{var x;return(x=I.value)==null?void 0:x.dimensions.height},()=>{var x;return(x=I.value)==null?void 0:x.dimensions.width}],([x,V,M,X,Q,U])=>{const W={x,y:V,z:U+(m.value&&A.selected?1e3:0)};typeof M<"u"&&typeof X<"u"?A.computedPosition=S1({x:M,y:X,z:Q},W):A.computedPosition=W},{flush:"post",immediate:!0}),n.watch([()=>A.extent,p],([x,V],[M,X])=>{(x!==M||V!==X)&&Z()}),A.extent==="parent"||typeof A.extent=="object"&&"range"in A.extent&&A.extent.range==="parent"?Na(()=>G).toBe(!0).then(Z):Z(),()=>A.hidden?null:n.h("div",{ref:O,"data-id":A.id,class:["vue-flow__node",`vue-flow__node-${ee.value===!1?"default":A.type||"default"}`,{[o.value]:P.value,dragging:re==null?void 0:re.value,draggable:P.value,selected:A.selected,selectable:L.value,parent:A.isParent},J.value],style:{visibility:G.value?"visible":"hidden",zIndex:A.computedPosition.z??z.value,transform:`translate(${A.computedPosition.x}px,${A.computedPosition.y}px)`,pointerEvents:$.value?"all":"none",...ne.value},tabIndex:B.value?0:void 0,role:B.value?"group":void 0,"aria-describedby":g.value?void 0:`${ru}-${t}`,"aria-label":A.ariaLabel,"aria-roledescription":"node",...A.domAttributes,onMouseenter:oe,onMousemove:ue,onMouseleave:de,onContextmenu:Y,onClick:N,onDblclick:te,onKeydown:S},[n.h(ee.value===!1?u.value.default:ee.value,{id:A.id,type:A.type,data:A.data,events:{...A.events,...D},selected:A.selected,resizing:A.resizing,dragging:re.value,connectable:F.value,position:A.computedPosition,dimensions:A.dimensions,isValidTargetPos:A.isValidTargetPos,isValidSourcePos:A.isValidSourcePos,parent:A.parentNode,parentNodeId:A.parentNode,zIndex:A.computedPosition.z??z.value,targetPosition:A.targetPosition,sourcePosition:A.sourcePosition,label:A.label,dragHandle:A.dragHandle,onUpdateNodeInternals:ie})]);function Z(){const x=A.computedPosition,{computedPosition:V,position:M}=Za(A,h.value?ti(x,b.value):x,l.error,p.value,I.value);(A.computedPosition.x!==V.x||A.computedPosition.y!==V.y)&&(A.computedPosition={...A.computedPosition,...V}),(A.position.x!==M.x||A.position.y!==M.y)&&(A.position=M)}function ie(){O.value&&d([{id:e.id,nodeElement:O.value,forceUpdate:!0}])}function oe(x){re!=null&&re.value||C.mouseEnter({event:x,node:A})}function ue(x){re!=null&&re.value||C.mouseMove({event:x,node:A})}function de(x){re!=null&&re.value||C.mouseLeave({event:x,node:A})}function Y(x){return C.contextMenu({event:x,node:A})}function te(x){return C.doubleClick({event:x,node:A})}function N(x){L.value&&(!r.value||!P.value||w.value>0)&&tl(A,a.value,c,s,i,!1,O.value),C.click({event:x,node:A})}function S(x){if(!(Ha(x)||g.value))if(au.includes(x.key)&&L.value){const V=x.key==="Escape";tl(A,a.value,c,s,i,V,O.value)}else P.value&&A.selected&&qn[x.key]&&(x.preventDefault(),_.value=`Moved selected node ${x.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~A.position.x}, y: ${~~A.position.y}`,j({x:qn[x.key].x,y:qn[x.key].y},x.shiftKey))}}});function cx(e={includeHiddenNodes:!1}){const{nodes:t}=Te();return n.computed(()=>{if(t.value.length===0)return!1;for(const o of t.value)if((e.includeHiddenNodes||!o.hidden)&&((o==null?void 0:o.handleBounds)===void 0||o.dimensions.width===0||o.dimensions.height===0))return!1;return!0})}const dx={class:"vue-flow__nodes vue-flow__container"},ux={name:"Nodes",compatConfig:{MODE:3}},fx=n.defineComponent({...ux,setup(e){const{getNodes:t,updateNodeDimensions:o,emits:r}=Te(),i=cx(),a=n.ref();return n.watch(i,l=>{l&&n.nextTick(()=>{r.nodesInitialized(t.value)})},{immediate:!0}),n.onMounted(()=>{a.value=new ResizeObserver(l=>{const s=l.map(c=>({id:c.target.getAttribute("data-id"),nodeElement:c.target,forceUpdate:!0}));n.nextTick(()=>o(s))})}),n.onBeforeUnmount(()=>{var l;return(l=a.value)==null?void 0:l.disconnect()}),(l,s)=>(n.openBlock(),n.createElementBlock("div",dx,[a.value?(n.openBlock(!0),n.createElementBlock(n.Fragment,{key:0},n.renderList(n.unref(t),(c,d,f,u)=>{const p=[c.id];if(u&&u.key===c.id&&n.isMemoSame(u,p))return u;const m=(n.openBlock(),n.createBlock(n.unref(sx),{id:c.id,key:c.id,"resize-observer":a.value},null,8,["id","resize-observer"]));return m.memo=p,m},s,0),128)):n.createCommentVNode("",!0)]))}});function px(){const{emits:e}=Te();n.onMounted(()=>{if(Iu()){const t=document.querySelector(".vue-flow__pane");t&&window.getComputedStyle(t).zIndex!=="1"&&e.error(new Ge(De.MISSING_STYLES))}})}const mx=n.createElementVNode("div",{class:"vue-flow__edge-labels"},null,-1),gx={name:"VueFlow",compatConfig:{MODE:3}},Qu=n.defineComponent({...gx,props:{id:{},modelValue:{},nodes:{},edges:{},edgeTypes:{},nodeTypes:{},connectionMode:{},connectionLineType:{},connectionLineStyle:{default:void 0},connectionLineOptions:{default:void 0},connectionRadius:{},isValidConnection:{type:[Function,null],default:void 0},deleteKeyCode:{default:void 0},selectionKeyCode:{type:[Boolean,null],default:void 0},multiSelectionKeyCode:{default:void 0},zoomActivationKeyCode:{default:void 0},panActivationKeyCode:{default:void 0},snapToGrid:{type:Boolean,default:void 0},snapGrid:{},onlyRenderVisibleElements:{type:Boolean,default:void 0},edgesUpdatable:{type:[Boolean,String],default:void 0},nodesDraggable:{type:Boolean,default:void 0},nodesConnectable:{type:Boolean,default:void 0},nodeDragThreshold:{},elementsSelectable:{type:Boolean,default:void 0},selectNodesOnDrag:{type:Boolean,default:void 0},panOnDrag:{type:[Boolean,Array],default:void 0},minZoom:{},maxZoom:{},defaultViewport:{},translateExtent:{},nodeExtent:{},defaultMarkerColor:{},zoomOnScroll:{type:Boolean,default:void 0},zoomOnPinch:{type:Boolean,default:void 0},panOnScroll:{type:Boolean,default:void 0},panOnScrollSpeed:{},panOnScrollMode:{},paneClickDistance:{},zoomOnDoubleClick:{type:Boolean,default:void 0},preventScrolling:{type:Boolean,default:void 0},selectionMode:{},edgeUpdaterRadius:{},fitViewOnInit:{type:Boolean,default:void 0},connectOnClick:{type:Boolean,default:void 0},applyDefault:{type:Boolean,default:void 0},autoConnect:{type:[Boolean,Function],default:void 0},noDragClassName:{},noWheelClassName:{},noPanClassName:{},defaultEdgeOptions:{},elevateEdgesOnSelect:{type:Boolean,default:void 0},elevateNodesOnSelect:{type:Boolean,default:void 0},disableKeyboardA11y:{type:Boolean,default:void 0},edgesFocusable:{type:Boolean,default:void 0},nodesFocusable:{type:Boolean,default:void 0},autoPanOnConnect:{type:Boolean,default:void 0},autoPanOnNodeDrag:{type:Boolean,default:void 0},autoPanSpeed:{}},emits:["nodesChange","edgesChange","nodesInitialized","paneReady","init","updateNodeInternals","error","connect","connectStart","connectEnd","clickConnectStart","clickConnectEnd","moveStart","move","moveEnd","selectionDragStart","selectionDrag","selectionDragStop","selectionContextMenu","selectionStart","selectionEnd","viewportChangeStart","viewportChange","viewportChangeEnd","paneScroll","paneClick","paneContextMenu","paneMouseEnter","paneMouseMove","paneMouseLeave","edgeUpdate","edgeContextMenu","edgeMouseEnter","edgeMouseMove","edgeMouseLeave","edgeDoubleClick","edgeClick","edgeUpdateStart","edgeUpdateEnd","nodeContextMenu","nodeMouseEnter","nodeMouseMove","nodeMouseLeave","nodeDoubleClick","nodeClick","nodeDragStart","nodeDrag","nodeDragStop","miniMapNodeClick","miniMapNodeDoubleClick","miniMapNodeMouseEnter","miniMapNodeMouseMove","miniMapNodeMouseLeave","update:modelValue","update:nodes","update:edges"],setup(e,{expose:t,emit:o}){const r=e,i=n.useSlots(),a=Sa(r,"modelValue",o),l=Sa(r,"nodes",o),s=Sa(r,"edges",o),c=Te(r),d=nS({modelValue:a,nodes:l,edges:s},r,c);return rS(o,c.hooks),WS(),px(),n.provide(oi,i),n.onUnmounted(()=>{d()}),t(c),(f,u)=>(n.openBlock(),n.createElementBlock("div",{ref:n.unref(c).vueFlowRef,class:"vue-flow"},[n.createVNode(jS,null,{default:n.withCtx(()=>[n.createVNode(lx),mx,n.createVNode(fx),n.renderSlot(f.$slots,"zoom-pane")]),_:3}),n.renderSlot(f.$slots,"default"),n.createVNode(YS)],512))}}),hx={name:"Panel",compatConfig:{MODE:3}},yx=n.defineComponent({...hx,props:{position:{}},setup(e){const t=e,{userSelectionActive:o}=Te(),r=n.computed(()=>`${t.position}`.split("-"));return(i,a)=>(n.openBlock(),n.createElementBlock("div",{class:n.normalizeClass(["vue-flow__panel",r.value]),style:n.normalizeStyle({pointerEvents:n.unref(o)?"none":"all"})},[n.renderSlot(i.$slots,"default")],6))}});var Ft=(e=>(e.Lines="lines",e.Dots="dots",e))(Ft||{});const ef=function({dimensions:e,size:t,color:o}){return n.h("path",{stroke:o,"stroke-width":t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`})},tf=function({radius:e,color:t}){return n.h("circle",{cx:e,cy:e,r:e,fill:t})};Ft.Lines+"",Ft.Dots+"";const _x={[Ft.Dots]:"#81818a",[Ft.Lines]:"#eee"},bx=["id","x","y","width","height","patternTransform"],wx={key:2,height:"100",width:"100"},Ex=["fill"],kx=["x","y","fill"],Cx={name:"Background",compatConfig:{MODE:3}},vx=n.defineComponent({...Cx,props:{id:{},variant:{default:()=>Ft.Dots},gap:{default:20},size:{default:1},lineWidth:{default:1},patternColor:{},color:{},bgColor:{},height:{default:100},width:{default:100},x:{default:0},y:{default:0},offset:{default:0}},setup(e){const{id:t,viewport:o}=Te(),r=n.computed(()=>{const l=o.value.zoom,[s,c]=Array.isArray(e.gap)?e.gap:[e.gap,e.gap],d=[s*l||1,c*l||1],f=e.size*l,[u,p]=Array.isArray(e.offset)?e.offset:[e.offset,e.offset],m=[u*l||1+d[0]/2,p*l||1+d[1]/2];return{scaledGap:d,offset:m,size:f}}),i=n.toRef(()=>`pattern-${t}${e.id?`-${e.id}`:""}`),a=n.toRef(()=>e.color||e.patternColor||_x[e.variant||Ft.Dots]);return(l,s)=>(n.openBlock(),n.createElementBlock("svg",{class:"vue-flow__background vue-flow__container",style:n.normalizeStyle({height:`${l.height>100?100:l.height}%`,width:`${l.width>100?100:l.width}%`})},[n.renderSlot(l.$slots,"pattern-container",{id:i.value},()=>[n.createElementVNode("pattern",{id:i.value,x:n.unref(o).x%r.value.scaledGap[0],y:n.unref(o).y%r.value.scaledGap[1],width:r.value.scaledGap[0],height:r.value.scaledGap[1],patternTransform:`translate(-${r.value.offset[0]},-${r.value.offset[1]})`,patternUnits:"userSpaceOnUse"},[n.renderSlot(l.$slots,"pattern",{},()=>[l.variant===n.unref(Ft).Lines?(n.openBlock(),n.createBlock(n.unref(ef),{key:0,size:l.lineWidth,color:a.value,dimensions:r.value.scaledGap},null,8,["size","color","dimensions"])):l.variant===n.unref(Ft).Dots?(n.openBlock(),n.createBlock(n.unref(tf),{key:1,color:a.value,radius:r.value.size/2},null,8,["color","radius"])):n.createCommentVNode("",!0),l.bgColor?(n.openBlock(),n.createElementBlock("svg",wx,[n.createElementVNode("rect",{width:"100%",height:"100%",fill:l.bgColor},null,8,Ex)])):n.createCommentVNode("",!0)])],8,bx)]),n.createElementVNode("rect",{x:l.x,y:l.y,width:"100%",height:"100%",fill:`url(#${i.value})`},null,8,kx),n.renderSlot(l.$slots,"default",{id:i.value})],4))}}),Nx={name:"ControlButton",compatConfig:{MODE:3}},Sx=(e,t)=>{const o=e.__vccOpts||e;for(const[r,i]of t)o[r]=i;return o},xx={class:"vue-flow__controls-button"};function Ax(e,t,o,r,i,a){return n.openBlock(),n.createElementBlock("button",xx,[n.renderSlot(e.$slots,"default")])}const di=Sx(Nx,[["render",Ax]]),Tx={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},Ix=[n.createElementVNode("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"},null,-1)];function Px(e,t){return n.openBlock(),n.createElementBlock("svg",Tx,Ix)}const Ox={render:Px},$x={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},Bx=[n.createElementVNode("path",{d:"M0 0h32v4.2H0z"},null,-1)];function Vx(e,t){return n.openBlock(),n.createElementBlock("svg",$x,Bx)}const Rx={render:Vx},Dx={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},Mx=[n.createElementVNode("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 0 0 27.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.94a.919.919 0 0 1-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"},null,-1)];function Fx(e,t){return n.openBlock(),n.createElementBlock("svg",Dx,Mx)}const Lx={render:Fx},Ux={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},Kx=[n.createElementVNode("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 0 0 0 13.714v15.238A3.056 3.056 0 0 0 3.048 32h18.285a3.056 3.056 0 0 0 3.048-3.048V13.714a3.056 3.056 0 0 0-3.048-3.047zM12.19 24.533a3.056 3.056 0 0 1-3.047-3.047 3.056 3.056 0 0 1 3.047-3.048 3.056 3.056 0 0 1 3.048 3.048 3.056 3.056 0 0 1-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"},null,-1)];function jx(e,t){return n.openBlock(),n.createElementBlock("svg",Ux,Kx)}const Gx={render:jx},qx={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},zx=[n.createElementVNode("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 0 0 0 13.714v15.238A3.056 3.056 0 0 0 3.048 32h18.285a3.056 3.056 0 0 0 3.048-3.048V13.714a3.056 3.056 0 0 0-3.048-3.047zM12.19 24.533a3.056 3.056 0 0 1-3.047-3.047 3.056 3.056 0 0 1 3.047-3.048 3.056 3.056 0 0 1 3.048 3.048 3.056 3.056 0 0 1-3.048 3.047z"},null,-1)];function Hx(e,t){return n.openBlock(),n.createElementBlock("svg",qx,zx)}const Yx={render:Hx},Wx={name:"Controls",compatConfig:{MODE:3}},Xx=n.defineComponent({...Wx,props:{showZoom:{type:Boolean,default:!0},showFitView:{type:Boolean,default:!0},showInteractive:{type:Boolean,default:!0},fitViewParams:{},position:{default:()=>nu.BottomLeft}},emits:["zoomIn","zoomOut","fitView","interactionChange"],setup(e,{emit:t}){const{nodesDraggable:o,nodesConnectable:r,elementsSelectable:i,setInteractive:a,zoomIn:l,zoomOut:s,fitView:c,viewport:d,minZoom:f,maxZoom:u}=Te(),p=n.toRef(()=>o.value||r.value||i.value),m=n.toRef(()=>d.value.zoom<=f.value),g=n.toRef(()=>d.value.zoom>=u.value);function _(){l(),t("zoomIn")}function h(){s(),t("zoomOut")}function b(){c(e.fitViewParams),t("fitView")}function w(){a(!p.value),t("interactionChange",!p.value)}return(y,v)=>(n.openBlock(),n.createBlock(n.unref(yx),{class:"vue-flow__controls",position:y.position},{default:n.withCtx(()=>[n.renderSlot(y.$slots,"top"),y.showZoom?(n.openBlock(),n.createElementBlock(n.Fragment,{key:0},[n.renderSlot(y.$slots,"control-zoom-in",{},()=>[n.createVNode(di,{class:"vue-flow__controls-zoomin",disabled:g.value,onClick:_},{default:n.withCtx(()=>[n.renderSlot(y.$slots,"icon-zoom-in",{},()=>[(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref(Ox))))])]),_:3},8,["disabled"])]),n.renderSlot(y.$slots,"control-zoom-out",{},()=>[n.createVNode(di,{class:"vue-flow__controls-zoomout",disabled:m.value,onClick:h},{default:n.withCtx(()=>[n.renderSlot(y.$slots,"icon-zoom-out",{},()=>[(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref(Rx))))])]),_:3},8,["disabled"])])],64)):n.createCommentVNode("",!0),y.showFitView?n.renderSlot(y.$slots,"control-fit-view",{key:1},()=>[n.createVNode(di,{class:"vue-flow__controls-fitview",onClick:b},{default:n.withCtx(()=>[n.renderSlot(y.$slots,"icon-fit-view",{},()=>[(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref(Lx))))])]),_:3})]):n.createCommentVNode("",!0),y.showInteractive?n.renderSlot(y.$slots,"control-interactive",{key:2},()=>[y.showInteractive?(n.openBlock(),n.createBlock(di,{key:0,class:"vue-flow__controls-interactive",onClick:w},{default:n.withCtx(()=>[p.value?n.renderSlot(y.$slots,"icon-unlock",{key:0},()=>[(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref(Yx))))]):n.createCommentVNode("",!0),p.value?n.createCommentVNode("",!0):n.renderSlot(y.$slots,"icon-lock",{key:1},()=>[(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref(Gx))))])]),_:3})):n.createCommentVNode("",!0)]):n.createCommentVNode("",!0),n.renderSlot(y.$slots,"default")]),_:3},8,["position"]))}});function Zx(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Jx="\0",yn="\0",nf="";let Qx=class{constructor(t){Ke(this,"_isDirected",!0);Ke(this,"_isMultigraph",!1);Ke(this,"_isCompound",!1);Ke(this,"_label");Ke(this,"_defaultNodeLabelFn",()=>{});Ke(this,"_defaultEdgeLabelFn",()=>{});Ke(this,"_nodes",{});Ke(this,"_in",{});Ke(this,"_preds",{});Ke(this,"_out",{});Ke(this,"_sucs",{});Ke(this,"_edgeObjs",{});Ke(this,"_edgeLabels",{});Ke(this,"_nodeCount",0);Ke(this,"_edgeCount",0);Ke(this,"_parent");Ke(this,"_children");t&&(this._isDirected=Object.hasOwn(t,"directed")?t.directed:!0,this._isMultigraph=Object.hasOwn(t,"multigraph")?t.multigraph:!1,this._isCompound=Object.hasOwn(t,"compound")?t.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[yn]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(t){return this._label=t,this}graph(){return this._label}setDefaultNodeLabel(t){return this._defaultNodeLabelFn=t,typeof t!="function"&&(this._defaultNodeLabelFn=()=>t),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var t=this;return this.nodes().filter(o=>Object.keys(t._in[o]).length===0)}sinks(){var t=this;return this.nodes().filter(o=>Object.keys(t._out[o]).length===0)}setNodes(t,o){var r=arguments,i=this;return t.forEach(function(a){r.length>1?i.setNode(a,o):i.setNode(a)}),this}setNode(t,o){return Object.hasOwn(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=o),this):(this._nodes[t]=arguments.length>1?o:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=yn,this._children[t]={},this._children[yn][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)}node(t){return this._nodes[t]}hasNode(t){return Object.hasOwn(this._nodes,t)}removeNode(t){var o=this;if(Object.hasOwn(this._nodes,t)){var r=i=>o.removeEdge(o._edgeObjs[i]);delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],this.children(t).forEach(function(i){o.setParent(i)}),delete this._children[t]),Object.keys(this._in[t]).forEach(r),delete this._in[t],delete this._preds[t],Object.keys(this._out[t]).forEach(r),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this}setParent(t,o){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(o===void 0)o=yn;else{o+="";for(var r=o;r!==void 0;r=this.parent(r))if(r===t)throw new Error("Setting "+o+" as parent of "+t+" would create a cycle");this.setNode(o)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=o,this._children[o][t]=!0,this}_removeFromParentsChildList(t){delete this._children[this._parent[t]][t]}parent(t){if(this._isCompound){var o=this._parent[t];if(o!==yn)return o}}children(t=yn){if(this._isCompound){var o=this._children[t];if(o)return Object.keys(o)}else{if(t===yn)return this.nodes();if(this.hasNode(t))return[]}}predecessors(t){var o=this._preds[t];if(o)return Object.keys(o)}successors(t){var o=this._sucs[t];if(o)return Object.keys(o)}neighbors(t){var o=this.predecessors(t);if(o){const i=new Set(o);for(var r of this.successors(t))i.add(r);return Array.from(i.values())}}isLeaf(t){var o;return this.isDirected()?o=this.successors(t):o=this.neighbors(t),o.length===0}filterNodes(t){var o=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});o.setGraph(this.graph());var r=this;Object.entries(this._nodes).forEach(function([l,s]){t(l)&&o.setNode(l,s)}),Object.values(this._edgeObjs).forEach(function(l){o.hasNode(l.v)&&o.hasNode(l.w)&&o.setEdge(l,r.edge(l))});var i={};function a(l){var s=r.parent(l);return s===void 0||o.hasNode(s)?(i[l]=s,s):s in i?i[s]:a(s)}return this._isCompound&&o.nodes().forEach(l=>o.setParent(l,a(l))),o}setDefaultEdgeLabel(t){return this._defaultEdgeLabelFn=t,typeof t!="function"&&(this._defaultEdgeLabelFn=()=>t),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(t,o){var r=this,i=arguments;return t.reduce(function(a,l){return i.length>1?r.setEdge(a,l,o):r.setEdge(a,l),l}),this}setEdge(){var t,o,r,i,a=!1,l=arguments[0];typeof l=="object"&&l!==null&&"v"in l?(t=l.v,o=l.w,r=l.name,arguments.length===2&&(i=arguments[1],a=!0)):(t=l,o=arguments[1],r=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),t=""+t,o=""+o,r!==void 0&&(r=""+r);var s=Ro(this._isDirected,t,o,r);if(Object.hasOwn(this._edgeLabels,s))return a&&(this._edgeLabels[s]=i),this;if(r!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(t),this.setNode(o),this._edgeLabels[s]=a?i:this._defaultEdgeLabelFn(t,o,r);var c=eA(this._isDirected,t,o,r);return t=c.v,o=c.w,Object.freeze(c),this._edgeObjs[s]=c,of(this._preds[o],t),of(this._sucs[t],o),this._in[o][s]=c,this._out[t][s]=c,this._edgeCount++,this}edge(t,o,r){var i=arguments.length===1?sl(this._isDirected,arguments[0]):Ro(this._isDirected,t,o,r);return this._edgeLabels[i]}edgeAsObj(){const t=this.edge(...arguments);return typeof t!="object"?{label:t}:t}hasEdge(t,o,r){var i=arguments.length===1?sl(this._isDirected,arguments[0]):Ro(this._isDirected,t,o,r);return Object.hasOwn(this._edgeLabels,i)}removeEdge(t,o,r){var i=arguments.length===1?sl(this._isDirected,arguments[0]):Ro(this._isDirected,t,o,r),a=this._edgeObjs[i];return a&&(t=a.v,o=a.w,delete this._edgeLabels[i],delete this._edgeObjs[i],rf(this._preds[o],t),rf(this._sucs[t],o),delete this._in[o][i],delete this._out[t][i],this._edgeCount--),this}inEdges(t,o){var r=this._in[t];if(r){var i=Object.values(r);return o?i.filter(a=>a.v===o):i}}outEdges(t,o){var r=this._out[t];if(r){var i=Object.values(r);return o?i.filter(a=>a.w===o):i}}nodeEdges(t,o){var r=this.inEdges(t,o);if(r)return r.concat(this.outEdges(t,o))}};function of(e,t){e[t]?e[t]++:e[t]=1}function rf(e,t){--e[t]||delete e[t]}function Ro(e,t,o,r){var i=""+t,a=""+o;if(!e&&i>a){var l=i;i=a,a=l}return i+nf+a+nf+(r===void 0?Jx:r)}function eA(e,t,o,r){var i=""+t,a=""+o;if(!e&&i>a){var l=i;i=a,a=l}var s={v:i,w:a};return r&&(s.name=r),s}function sl(e,t){return Ro(e,t.v,t.w,t.name)}var cl=Qx,tA="2.2.4",nA={Graph:cl,version:tA},oA=cl,rA={write:iA,read:sA};function iA(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:aA(e),edges:lA(e)};return e.graph()!==void 0&&(t.value=structuredClone(e.graph())),t}function aA(e){return e.nodes().map(function(t){var o=e.node(t),r=e.parent(t),i={v:t};return o!==void 0&&(i.value=o),r!==void 0&&(i.parent=r),i})}function lA(e){return e.edges().map(function(t){var o=e.edge(t),r={v:t.v,w:t.w};return t.name!==void 0&&(r.name=t.name),o!==void 0&&(r.value=o),r})}function sA(e){var t=new oA(e.options).setGraph(e.value);return e.nodes.forEach(function(o){t.setNode(o.v,o.value),o.parent&&t.setParent(o.v,o.parent)}),e.edges.forEach(function(o){t.setEdge({v:o.v,w:o.w,name:o.name},o.value)}),t}var cA=dA;function dA(e){var t={},o=[],r;function i(a){Object.hasOwn(t,a)||(t[a]=!0,r.push(a),e.successors(a).forEach(i),e.predecessors(a).forEach(i))}return e.nodes().forEach(function(a){r=[],i(a),r.length&&o.push(r)}),o}var af=class{constructor(){Ke(this,"_arr",[]);Ke(this,"_keyIndices",{})}size(){return this._arr.length}keys(){return this._arr.map(function(t){return t.key})}has(t){return Object.hasOwn(this._keyIndices,t)}priority(t){var o=this._keyIndices[t];if(o!==void 0)return this._arr[o].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(t,o){var r=this._keyIndices;if(t=String(t),!Object.hasOwn(r,t)){var i=this._arr,a=i.length;return r[t]=a,i.push({key:t,priority:o}),this._decrease(a),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var t=this._arr.pop();return delete this._keyIndices[t.key],this._heapify(0),t.key}decrease(t,o){var r=this._keyIndices[t];if(o>this._arr[r].priority)throw new Error("New priority is greater than current priority. Key: "+t+" Old: "+this._arr[r].priority+" New: "+o);this._arr[r].priority=o,this._decrease(r)}_heapify(t){var o=this._arr,r=2*t,i=r+1,a=t;r<o.length&&(a=o[r].priority<o[a].priority?r:a,i<o.length&&(a=o[i].priority<o[a].priority?i:a),a!==t&&(this._swap(t,a),this._heapify(a)))}_decrease(t){for(var o=this._arr,r=o[t].priority,i;t!==0&&(i=t>>1,!(o[i].priority<r));)this._swap(t,i),t=i}_swap(t,o){var r=this._arr,i=this._keyIndices,a=r[t],l=r[o];r[t]=l,r[o]=a,i[l.key]=t,i[a.key]=o}},uA=af,lf=pA,fA=()=>1;function pA(e,t,o,r){return mA(e,String(t),o||fA,r||function(i){return e.outEdges(i)})}function mA(e,t,o,r){var i={},a=new uA,l,s,c=function(d){var f=d.v!==l?d.v:d.w,u=i[f],p=o(d),m=s.distance+p;if(p<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+d+" Weight: "+p);m<u.distance&&(u.distance=m,u.predecessor=l,a.decrease(f,m))};for(e.nodes().forEach(function(d){var f=d===t?0:Number.POSITIVE_INFINITY;i[d]={distance:f},a.add(d,f)});a.size()>0&&(l=a.removeMin(),s=i[l],s.distance!==Number.POSITIVE_INFINITY);)r(l).forEach(c);return i}var gA=lf,hA=yA;function yA(e,t,o){return e.nodes().reduce(function(r,i){return r[i]=gA(e,i,t,o),r},{})}var sf=_A;function _A(e){var t=0,o=[],r={},i=[];function a(l){var s=r[l]={onStack:!0,lowlink:t,index:t++};if(o.push(l),e.successors(l).forEach(function(f){Object.hasOwn(r,f)?r[f].onStack&&(s.lowlink=Math.min(s.lowlink,r[f].index)):(a(f),s.lowlink=Math.min(s.lowlink,r[f].lowlink))}),s.lowlink===s.index){var c=[],d;do d=o.pop(),r[d].onStack=!1,c.push(d);while(l!==d);i.push(c)}}return e.nodes().forEach(function(l){Object.hasOwn(r,l)||a(l)}),i}var bA=sf,wA=EA;function EA(e){return bA(e).filter(function(t){return t.length>1||t.length===1&&e.hasEdge(t[0],t[0])})}var kA=vA,CA=()=>1;function vA(e,t,o){return NA(e,t||CA,o||function(r){return e.outEdges(r)})}function NA(e,t,o){var r={},i=e.nodes();return i.forEach(function(a){r[a]={},r[a][a]={distance:0},i.forEach(function(l){a!==l&&(r[a][l]={distance:Number.POSITIVE_INFINITY})}),o(a).forEach(function(l){var s=l.v===a?l.w:l.v,c=t(l);r[a][s]={distance:c,predecessor:a}})}),i.forEach(function(a){var l=r[a];i.forEach(function(s){var c=r[s];i.forEach(function(d){var f=c[a],u=l[d],p=c[d],m=f.distance+u.distance;m<p.distance&&(p.distance=m,p.predecessor=u.predecessor)})})}),r}function cf(e){var t={},o={},r=[];function i(a){if(Object.hasOwn(o,a))throw new dl;Object.hasOwn(t,a)||(o[a]=!0,t[a]=!0,e.predecessors(a).forEach(i),delete o[a],r.push(a))}if(e.sinks().forEach(i),Object.keys(t).length!==e.nodeCount())throw new dl;return r}class dl extends Error{constructor(){super(...arguments)}}var df=cf;cf.CycleException=dl;var uf=df,SA=xA;function xA(e){try{uf(e)}catch(t){if(t instanceof uf.CycleException)return!1;throw t}return!0}var ff=AA;function AA(e,t,o){Array.isArray(t)||(t=[t]);var r=e.isDirected()?s=>e.successors(s):s=>e.neighbors(s),i=o==="post"?TA:IA,a=[],l={};return t.forEach(s=>{if(!e.hasNode(s))throw new Error("Graph does not have node: "+s);i(s,r,l,a)}),a}function TA(e,t,o,r){for(var i=[[e,!1]];i.length>0;){var a=i.pop();a[1]?r.push(a[0]):Object.hasOwn(o,a[0])||(o[a[0]]=!0,i.push([a[0],!0]),pf(t(a[0]),l=>i.push([l,!1])))}}function IA(e,t,o,r){for(var i=[e];i.length>0;){var a=i.pop();Object.hasOwn(o,a)||(o[a]=!0,r.push(a),pf(t(a),l=>i.push(l)))}}function pf(e,t){for(var o=e.length;o--;)t(e[o],o,e);return e}var PA=ff,OA=$A;function $A(e,t){return PA(e,t,"post")}var BA=ff,VA=RA;function RA(e,t){return BA(e,t,"pre")}var DA=cl,MA=af,FA=LA;function LA(e,t){var o=new DA,r={},i=new MA,a;function l(c){var d=c.v===a?c.w:c.v,f=i.priority(d);if(f!==void 0){var u=t(c);u<f&&(r[d]=a,i.decrease(d,u))}}if(e.nodeCount()===0)return o;e.nodes().forEach(function(c){i.add(c,Number.POSITIVE_INFINITY),o.setNode(c)}),i.decrease(e.nodes()[0],0);for(var s=!1;i.size()>0;){if(a=i.removeMin(),Object.hasOwn(r,a))o.setEdge(a,r[a]);else{if(s)throw new Error("Input graph is not connected: "+e);s=!0}e.nodeEdges(a).forEach(l)}return o}var UA={components:cA,dijkstra:lf,dijkstraAll:hA,findCycles:wA,floydWarshall:kA,isAcyclic:SA,postorder:OA,preorder:VA,prim:FA,tarjan:sf,topsort:df},mf=nA,_t={Graph:mf.Graph,json:rA,alg:UA,version:mf.version};let KA=class{constructor(){let t={};t._next=t._prev=t,this._sentinel=t}dequeue(){let t=this._sentinel,o=t._prev;if(o!==t)return gf(o),o}enqueue(t){let o=this._sentinel;t._prev&&t._next&&gf(t),t._next=o._next,o._next._prev=t,o._next=t,t._prev=o}toString(){let t=[],o=this._sentinel,r=o._prev;for(;r!==o;)t.push(JSON.stringify(r,jA)),r=r._prev;return"["+t.join(", ")+"]"}};function gf(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function jA(e,t){if(e!=="_next"&&e!=="_prev")return t}var GA=KA;let qA=_t.Graph,zA=GA;var HA=WA;let YA=()=>1;function WA(e,t){if(e.nodeCount()<=1)return[];let o=ZA(e,t||YA);return XA(o.graph,o.buckets,o.zeroIdx).flatMap(i=>e.outEdges(i.v,i.w))}function XA(e,t,o){let r=[],i=t[t.length-1],a=t[0],l;for(;e.nodeCount();){for(;l=a.dequeue();)ul(e,t,o,l);for(;l=i.dequeue();)ul(e,t,o,l);if(e.nodeCount()){for(let s=t.length-2;s>0;--s)if(l=t[s].dequeue(),l){r=r.concat(ul(e,t,o,l,!0));break}}}return r}function ul(e,t,o,r,i){let a=i?[]:void 0;return e.inEdges(r.v).forEach(l=>{let s=e.edge(l),c=e.node(l.v);i&&a.push({v:l.v,w:l.w}),c.out-=s,fl(t,o,c)}),e.outEdges(r.v).forEach(l=>{let s=e.edge(l),c=l.w,d=e.node(c);d.in-=s,fl(t,o,d)}),e.removeNode(r.v),a}function ZA(e,t){let o=new qA,r=0,i=0;e.nodes().forEach(s=>{o.setNode(s,{v:s,in:0,out:0})}),e.edges().forEach(s=>{let c=o.edge(s.v,s.w)||0,d=t(s),f=c+d;o.setEdge(s.v,s.w,f),i=Math.max(i,o.node(s.v).out+=d),r=Math.max(r,o.node(s.w).in+=d)});let a=JA(i+r+3).map(()=>new zA),l=r+1;return o.nodes().forEach(s=>{fl(a,l,o.node(s))}),{graph:o,buckets:a,zeroIdx:l}}function fl(e,t,o){o.out?o.in?e[o.out-o.in+t].enqueue(o):e[e.length-1].enqueue(o):e[0].enqueue(o)}function JA(e){const t=[];for(let o=0;o<e;o++)t.push(o);return t}let hf=_t.Graph;var Fe={addBorderNode:lT,addDummyNode:yf,applyWithChunking:ui,asNonCompoundGraph:eT,buildLayerMatrix:rT,intersectRect:oT,mapValues:mT,maxRank:bf,normalizeRanks:iT,notime:uT,partition:cT,pick:pT,predecessorWeights:nT,range:Ef,removeEmptyRanks:aT,simplify:QA,successorWeights:tT,time:dT,uniqueId:wf,zipObject:pl};function yf(e,t,o,r){for(var i=r;e.hasNode(i);)i=wf(r);return o.dummy=t,e.setNode(i,o),i}function QA(e){let t=new hf().setGraph(e.graph());return e.nodes().forEach(o=>t.setNode(o,e.node(o))),e.edges().forEach(o=>{let r=t.edge(o.v,o.w)||{weight:0,minlen:1},i=e.edge(o);t.setEdge(o.v,o.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})}),t}function eT(e){let t=new hf({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(o=>{e.children(o).length||t.setNode(o,e.node(o))}),e.edges().forEach(o=>{t.setEdge(o,e.edge(o))}),t}function tT(e){let t=e.nodes().map(o=>{let r={};return e.outEdges(o).forEach(i=>{r[i.w]=(r[i.w]||0)+e.edge(i).weight}),r});return pl(e.nodes(),t)}function nT(e){let t=e.nodes().map(o=>{let r={};return e.inEdges(o).forEach(i=>{r[i.v]=(r[i.v]||0)+e.edge(i).weight}),r});return pl(e.nodes(),t)}function oT(e,t){let o=e.x,r=e.y,i=t.x-o,a=t.y-r,l=e.width/2,s=e.height/2;if(!i&&!a)throw new Error("Not possible to find intersection inside of the rectangle");let c,d;return Math.abs(a)*l>Math.abs(i)*s?(a<0&&(s=-s),c=s*i/a,d=s):(i<0&&(l=-l),c=l,d=l*a/i),{x:o+c,y:r+d}}function rT(e){let t=Ef(bf(e)+1).map(()=>[]);return e.nodes().forEach(o=>{let r=e.node(o),i=r.rank;i!==void 0&&(t[i][r.order]=o)}),t}function iT(e){let t=e.nodes().map(r=>{let i=e.node(r).rank;return i===void 0?Number.MAX_VALUE:i}),o=ui(Math.min,t);e.nodes().forEach(r=>{let i=e.node(r);Object.hasOwn(i,"rank")&&(i.rank-=o)})}function aT(e){let t=e.nodes().map(l=>e.node(l).rank),o=ui(Math.min,t),r=[];e.nodes().forEach(l=>{let s=e.node(l).rank-o;r[s]||(r[s]=[]),r[s].push(l)});let i=0,a=e.graph().nodeRankFactor;Array.from(r).forEach((l,s)=>{l===void 0&&s%a!==0?--i:l!==void 0&&i&&l.forEach(c=>e.node(c).rank+=i)})}function lT(e,t,o,r){let i={width:0,height:0};return arguments.length>=4&&(i.rank=o,i.order=r),yf(e,"border",i,t)}function sT(e,t=_f){const o=[];for(let r=0;r<e.length;r+=t){const i=e.slice(r,r+t);o.push(i)}return o}const _f=65535;function ui(e,t){if(t.length>_f){const o=sT(t);return e.apply(null,o.map(r=>e.apply(null,r)))}else return e.apply(null,t)}function bf(e){const o=e.nodes().map(r=>{let i=e.node(r).rank;return i===void 0?Number.MIN_VALUE:i});return ui(Math.max,o)}function cT(e,t){let o={lhs:[],rhs:[]};return e.forEach(r=>{t(r)?o.lhs.push(r):o.rhs.push(r)}),o}function dT(e,t){let o=Date.now();try{return t()}finally{console.log(e+" time: "+(Date.now()-o)+"ms")}}function uT(e,t){return t()}let fT=0;function wf(e){var t=++fT;return e+(""+t)}function Ef(e,t,o=1){t==null&&(t=e,e=0);let r=a=>a<t;o<0&&(r=a=>t<a);const i=[];for(let a=e;r(a);a+=o)i.push(a);return i}function pT(e,t){const o={};for(const r of t)e[r]!==void 0&&(o[r]=e[r]);return o}function mT(e,t){let o=t;return typeof t=="string"&&(o=r=>r[t]),Object.entries(e).reduce((r,[i,a])=>(r[i]=o(a,i),r),{})}function pl(e,t){return e.reduce((o,r,i)=>(o[r]=t[i],o),{})}let gT=HA,hT=Fe.uniqueId;var yT={run:_T,undo:wT};function _T(e){(e.graph().acyclicer==="greedy"?gT(e,o(e)):bT(e)).forEach(r=>{let i=e.edge(r);e.removeEdge(r),i.forwardName=r.name,i.reversed=!0,e.setEdge(r.w,r.v,i,hT("rev"))});function o(r){return i=>r.edge(i).weight}}function bT(e){let t=[],o={},r={};function i(a){Object.hasOwn(r,a)||(r[a]=!0,o[a]=!0,e.outEdges(a).forEach(l=>{Object.hasOwn(o,l.w)?t.push(l):i(l.w)}),delete o[a])}return e.nodes().forEach(i),t}function wT(e){e.edges().forEach(t=>{let o=e.edge(t);if(o.reversed){e.removeEdge(t);let r=o.forwardName;delete o.reversed,delete o.forwardName,e.setEdge(t.w,t.v,o,r)}})}let ET=Fe;var kT={run:CT,undo:NT};function CT(e){e.graph().dummyChains=[],e.edges().forEach(t=>vT(e,t))}function vT(e,t){let o=t.v,r=e.node(o).rank,i=t.w,a=e.node(i).rank,l=t.name,s=e.edge(t),c=s.labelRank;if(a===r+1)return;e.removeEdge(t);let d,f,u;for(u=0,++r;r<a;++u,++r)s.points=[],f={width:0,height:0,edgeLabel:s,edgeObj:t,rank:r},d=ET.addDummyNode(e,"edge",f,"_d"),r===c&&(f.width=s.width,f.height=s.height,f.dummy="edge-label",f.labelpos=s.labelpos),e.setEdge(o,d,{weight:s.weight},l),u===0&&e.graph().dummyChains.push(d),o=d;e.setEdge(o,i,{weight:s.weight},l)}function NT(e){e.graph().dummyChains.forEach(t=>{let o=e.node(t),r=o.edgeLabel,i;for(e.setEdge(o.edgeObj,r);o.dummy;)i=e.successors(t)[0],e.removeNode(t),r.points.push({x:o.x,y:o.y}),o.dummy==="edge-label"&&(r.x=o.x,r.y=o.y,r.width=o.width,r.height=o.height),t=i,o=e.node(t)})}const{applyWithChunking:ST}=Fe;var fi={longestPath:xT,slack:AT};function xT(e){var t={};function o(r){var i=e.node(r);if(Object.hasOwn(t,r))return i.rank;t[r]=!0;let a=e.outEdges(r).map(s=>s==null?Number.POSITIVE_INFINITY:o(s.w)-e.edge(s).minlen);var l=ST(Math.min,a);return l===Number.POSITIVE_INFINITY&&(l=0),i.rank=l}e.sources().forEach(o)}function AT(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}var TT=_t.Graph,pi=fi.slack,kf=IT;function IT(e){var t=new TT({directed:!1}),o=e.nodes()[0],r=e.nodeCount();t.setNode(o,{});for(var i,a;PT(t,e)<r;)i=OT(t,e),a=t.hasNode(i.v)?pi(e,i):-pi(e,i),$T(t,e,a);return t}function PT(e,t){function o(r){t.nodeEdges(r).forEach(i=>{var a=i.v,l=r===a?i.w:a;!e.hasNode(l)&&!pi(t,i)&&(e.setNode(l,{}),e.setEdge(r,l,{}),o(l))})}return e.nodes().forEach(o),e.nodeCount()}function OT(e,t){return t.edges().reduce((r,i)=>{let a=Number.POSITIVE_INFINITY;return e.hasNode(i.v)!==e.hasNode(i.w)&&(a=pi(t,i)),a<r[0]?[a,i]:r},[Number.POSITIVE_INFINITY,null])[1]}function $T(e,t,o){e.nodes().forEach(r=>t.node(r).rank+=o)}var BT=kf,Cf=fi.slack,VT=fi.longestPath,RT=_t.alg.preorder,DT=_t.alg.postorder,MT=Fe.simplify,FT=_n;_n.initLowLimValues=gl,_n.initCutValues=ml,_n.calcCutValue=vf,_n.leaveEdge=Sf,_n.enterEdge=xf,_n.exchangeEdges=Af;function _n(e){e=MT(e),VT(e);var t=BT(e);gl(t),ml(t,e);for(var o,r;o=Sf(t);)r=xf(t,e,o),Af(t,e,o,r)}function ml(e,t){var o=DT(e,e.nodes());o=o.slice(0,o.length-1),o.forEach(r=>LT(e,t,r))}function LT(e,t,o){var r=e.node(o),i=r.parent;e.edge(o,i).cutvalue=vf(e,t,o)}function vf(e,t,o){var r=e.node(o),i=r.parent,a=!0,l=t.edge(o,i),s=0;return l||(a=!1,l=t.edge(i,o)),s=l.weight,t.nodeEdges(o).forEach(c=>{var d=c.v===o,f=d?c.w:c.v;if(f!==i){var u=d===a,p=t.edge(c).weight;if(s+=u?p:-p,KT(e,o,f)){var m=e.edge(o,f).cutvalue;s+=u?-m:m}}}),s}function gl(e,t){arguments.length<2&&(t=e.nodes()[0]),Nf(e,{},1,t)}function Nf(e,t,o,r,i){var a=o,l=e.node(r);return t[r]=!0,e.neighbors(r).forEach(s=>{Object.hasOwn(t,s)||(o=Nf(e,t,o,s,r))}),l.low=a,l.lim=o++,i?l.parent=i:delete l.parent,o}function Sf(e){return e.edges().find(t=>e.edge(t).cutvalue<0)}function xf(e,t,o){var r=o.v,i=o.w;t.hasEdge(r,i)||(r=o.w,i=o.v);var a=e.node(r),l=e.node(i),s=a,c=!1;a.lim>l.lim&&(s=l,c=!0);var d=t.edges().filter(f=>c===Tf(e,e.node(f.v),s)&&c!==Tf(e,e.node(f.w),s));return d.reduce((f,u)=>Cf(t,u)<Cf(t,f)?u:f)}function Af(e,t,o,r){var i=o.v,a=o.w;e.removeEdge(i,a),e.setEdge(r.v,r.w,{}),gl(e),ml(e,t),UT(e,t)}function UT(e,t){var o=e.nodes().find(i=>!t.node(i).parent),r=RT(e,o);r=r.slice(1),r.forEach(i=>{var a=e.node(i).parent,l=t.edge(i,a),s=!1;l||(l=t.edge(a,i),s=!0),t.node(i).rank=t.node(a).rank+(s?l.minlen:-l.minlen)})}function KT(e,t,o){return e.hasEdge(t,o)}function Tf(e,t,o){return o.low<=t.lim&&t.lim<=o.lim}var jT=fi,If=jT.longestPath,GT=kf,qT=FT,zT=HT;function HT(e){var t=e.graph().ranker;if(t instanceof Function)return t(e);switch(e.graph().ranker){case"network-simplex":Pf(e);break;case"tight-tree":WT(e);break;case"longest-path":YT(e);break;case"none":break;default:Pf(e)}}var YT=If;function WT(e){If(e),GT(e)}function Pf(e){qT(e)}var XT=ZT;function ZT(e){let t=QT(e);e.graph().dummyChains.forEach(o=>{let r=e.node(o),i=r.edgeObj,a=JT(e,t,i.v,i.w),l=a.path,s=a.lca,c=0,d=l[c],f=!0;for(;o!==i.w;){if(r=e.node(o),f){for(;(d=l[c])!==s&&e.node(d).maxRank<r.rank;)c++;d===s&&(f=!1)}if(!f){for(;c<l.length-1&&e.node(d=l[c+1]).minRank<=r.rank;)c++;d=l[c]}e.setParent(o,d),o=e.successors(o)[0]}})}function JT(e,t,o,r){let i=[],a=[],l=Math.min(t[o].low,t[r].low),s=Math.max(t[o].lim,t[r].lim),c,d;c=o;do c=e.parent(c),i.push(c);while(c&&(t[c].low>l||s>t[c].lim));for(d=c,c=r;(c=e.parent(c))!==d;)a.push(c);return{path:i.concat(a.reverse()),lca:d}}function QT(e){let t={},o=0;function r(i){let a=o;e.children(i).forEach(r),t[i]={low:a,lim:o++}}return e.children().forEach(r),t}let mi=Fe;var eI={run:tI,cleanup:rI};function tI(e){let t=mi.addDummyNode(e,"root",{},"_root"),o=nI(e),r=Object.values(o),i=mi.applyWithChunking(Math.max,r)-1,a=2*i+1;e.graph().nestingRoot=t,e.edges().forEach(s=>e.edge(s).minlen*=a);let l=oI(e)+1;e.children().forEach(s=>Of(e,t,a,l,i,o,s)),e.graph().nodeRankFactor=a}function Of(e,t,o,r,i,a,l){let s=e.children(l);if(!s.length){l!==t&&e.setEdge(t,l,{weight:0,minlen:o});return}let c=mi.addBorderNode(e,"_bt"),d=mi.addBorderNode(e,"_bb"),f=e.node(l);e.setParent(c,l),f.borderTop=c,e.setParent(d,l),f.borderBottom=d,s.forEach(u=>{Of(e,t,o,r,i,a,u);let p=e.node(u),m=p.borderTop?p.borderTop:u,g=p.borderBottom?p.borderBottom:u,_=p.borderTop?r:2*r,h=m!==g?1:i-a[l]+1;e.setEdge(c,m,{weight:_,minlen:h,nestingEdge:!0}),e.setEdge(g,d,{weight:_,minlen:h,nestingEdge:!0})}),e.parent(l)||e.setEdge(t,c,{weight:0,minlen:i+a[l]})}function nI(e){var t={};function o(r,i){var a=e.children(r);a&&a.length&&a.forEach(l=>o(l,i+1)),t[r]=i}return e.children().forEach(r=>o(r,1)),t}function oI(e){return e.edges().reduce((t,o)=>t+e.edge(o).weight,0)}function rI(e){var t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,e.edges().forEach(o=>{var r=e.edge(o);r.nestingEdge&&e.removeEdge(o)})}let iI=Fe;var aI=lI;function lI(e){function t(o){let r=e.children(o),i=e.node(o);if(r.length&&r.forEach(t),Object.hasOwn(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(let a=i.minRank,l=i.maxRank+1;a<l;++a)$f(e,"borderLeft","_bl",o,i,a),$f(e,"borderRight","_br",o,i,a)}}e.children().forEach(t)}function $f(e,t,o,r,i,a){let l={width:0,height:0,rank:a,borderType:t},s=i[t][a-1],c=iI.addDummyNode(e,"border",l,o);i[t][a]=c,e.setParent(c,r),s&&e.setEdge(s,c,{weight:1})}var sI={adjust:cI,undo:dI};function cI(e){let t=e.graph().rankdir.toLowerCase();(t==="lr"||t==="rl")&&Bf(e)}function dI(e){let t=e.graph().rankdir.toLowerCase();(t==="bt"||t==="rl")&&uI(e),(t==="lr"||t==="rl")&&(fI(e),Bf(e))}function Bf(e){e.nodes().forEach(t=>Vf(e.node(t))),e.edges().forEach(t=>Vf(e.edge(t)))}function Vf(e){let t=e.width;e.width=e.height,e.height=t}function uI(e){e.nodes().forEach(t=>hl(e.node(t))),e.edges().forEach(t=>{let o=e.edge(t);o.points.forEach(hl),Object.hasOwn(o,"y")&&hl(o)})}function hl(e){e.y=-e.y}function fI(e){e.nodes().forEach(t=>yl(e.node(t))),e.edges().forEach(t=>{let o=e.edge(t);o.points.forEach(yl),Object.hasOwn(o,"x")&&yl(o)})}function yl(e){let t=e.x;e.x=e.y,e.y=t}let Rf=Fe;var pI=mI;function mI(e){let t={},o=e.nodes().filter(c=>!e.children(c).length),r=o.map(c=>e.node(c).rank),i=Rf.applyWithChunking(Math.max,r),a=Rf.range(i+1).map(()=>[]);function l(c){if(t[c])return;t[c]=!0;let d=e.node(c);a[d.rank].push(c),e.successors(c).forEach(l)}return o.sort((c,d)=>e.node(c).rank-e.node(d).rank).forEach(l),a}let gI=Fe.zipObject;var hI=yI;function yI(e,t){let o=0;for(let r=1;r<t.length;++r)o+=_I(e,t[r-1],t[r]);return o}function _I(e,t,o){let r=gI(o,o.map((d,f)=>f)),i=t.flatMap(d=>e.outEdges(d).map(f=>({pos:r[f.w],weight:e.edge(f).weight})).sort((f,u)=>f.pos-u.pos)),a=1;for(;a<o.length;)a<<=1;let l=2*a-1;a-=1;let s=new Array(l).fill(0),c=0;return i.forEach(d=>{let f=d.pos+a;s[f]+=d.weight;let u=0;for(;f>0;)f%2&&(u+=s[f+1]),f=f-1>>1,s[f]+=d.weight;c+=d.weight*u}),c}var bI=wI;function wI(e,t=[]){return t.map(o=>{let r=e.inEdges(o);if(r.length){let i=r.reduce((a,l)=>{let s=e.edge(l),c=e.node(l.v);return{sum:a.sum+s.weight*c.order,weight:a.weight+s.weight}},{sum:0,weight:0});return{v:o,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:o}})}let EI=Fe;var kI=CI;function CI(e,t){let o={};e.forEach((i,a)=>{let l=o[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:a};i.barycenter!==void 0&&(l.barycenter=i.barycenter,l.weight=i.weight)}),t.edges().forEach(i=>{let a=o[i.v],l=o[i.w];a!==void 0&&l!==void 0&&(l.indegree++,a.out.push(o[i.w]))});let r=Object.values(o).filter(i=>!i.indegree);return vI(r)}function vI(e){let t=[];function o(i){return a=>{a.merged||(a.barycenter===void 0||i.barycenter===void 0||a.barycenter>=i.barycenter)&&NI(i,a)}}function r(i){return a=>{a.in.push(i),--a.indegree===0&&e.push(a)}}for(;e.length;){let i=e.pop();t.push(i),i.in.reverse().forEach(o(i)),i.out.forEach(r(i))}return t.filter(i=>!i.merged).map(i=>EI.pick(i,["vs","i","barycenter","weight"]))}function NI(e,t){let o=0,r=0;e.weight&&(o+=e.barycenter*e.weight,r+=e.weight),t.weight&&(o+=t.barycenter*t.weight,r+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=o/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}let SI=Fe;var xI=AI;function AI(e,t){let o=SI.partition(e,f=>Object.hasOwn(f,"barycenter")),r=o.lhs,i=o.rhs.sort((f,u)=>u.i-f.i),a=[],l=0,s=0,c=0;r.sort(TI(!!t)),c=Df(a,i,c),r.forEach(f=>{c+=f.vs.length,a.push(f.vs),l+=f.barycenter*f.weight,s+=f.weight,c=Df(a,i,c)});let d={vs:a.flat(!0)};return s&&(d.barycenter=l/s,d.weight=s),d}function Df(e,t,o){let r;for(;t.length&&(r=t[t.length-1]).i<=o;)t.pop(),e.push(r.vs),o++;return o}function TI(e){return(t,o)=>t.barycenter<o.barycenter?-1:t.barycenter>o.barycenter?1:e?o.i-t.i:t.i-o.i}let II=bI,PI=kI,OI=xI;var $I=Mf;function Mf(e,t,o,r){let i=e.children(t),a=e.node(t),l=a?a.borderLeft:void 0,s=a?a.borderRight:void 0,c={};l&&(i=i.filter(p=>p!==l&&p!==s));let d=II(e,i);d.forEach(p=>{if(e.children(p.v).length){let m=Mf(e,p.v,o,r);c[p.v]=m,Object.hasOwn(m,"barycenter")&&VI(p,m)}});let f=PI(d,o);BI(f,c);let u=OI(f,r);if(l&&(u.vs=[l,u.vs,s].flat(!0),e.predecessors(l).length)){let p=e.node(e.predecessors(l)[0]),m=e.node(e.predecessors(s)[0]);Object.hasOwn(u,"barycenter")||(u.barycenter=0,u.weight=0),u.barycenter=(u.barycenter*u.weight+p.order+m.order)/(u.weight+2),u.weight+=2}return u}function BI(e,t){e.forEach(o=>{o.vs=o.vs.flatMap(r=>t[r]?t[r].vs:r)})}function VI(e,t){e.barycenter!==void 0?(e.barycenter=(e.barycenter*e.weight+t.barycenter*t.weight)/(e.weight+t.weight),e.weight+=t.weight):(e.barycenter=t.barycenter,e.weight=t.weight)}let RI=_t.Graph,DI=Fe;var MI=FI;function FI(e,t,o){let r=LI(e),i=new RI({compound:!0}).setGraph({root:r}).setDefaultNodeLabel(a=>e.node(a));return e.nodes().forEach(a=>{let l=e.node(a),s=e.parent(a);(l.rank===t||l.minRank<=t&&t<=l.maxRank)&&(i.setNode(a),i.setParent(a,s||r),e[o](a).forEach(c=>{let d=c.v===a?c.w:c.v,f=i.edge(d,a),u=f!==void 0?f.weight:0;i.setEdge(d,a,{weight:e.edge(c).weight+u})}),Object.hasOwn(l,"minRank")&&i.setNode(a,{borderLeft:l.borderLeft[t],borderRight:l.borderRight[t]}))}),i}function LI(e){for(var t;e.hasNode(t=DI.uniqueId("_root")););return t}var UI=KI;function KI(e,t,o){let r={},i;o.forEach(a=>{let l=e.parent(a),s,c;for(;l;){if(s=e.parent(l),s?(c=r[s],r[s]=l):(c=i,i=l),c&&c!==l){t.setEdge(c,l);return}l=s}})}let jI=pI,GI=hI,qI=$I,zI=MI,HI=UI,YI=_t.Graph,gi=Fe;var WI=Ff;function Ff(e,t){if(t&&typeof t.customOrder=="function"){t.customOrder(e,Ff);return}let o=gi.maxRank(e),r=Lf(e,gi.range(1,o+1),"inEdges"),i=Lf(e,gi.range(o-1,-1,-1),"outEdges"),a=jI(e);if(Uf(e,a),t&&t.disableOptimalOrderHeuristic)return;let l=Number.POSITIVE_INFINITY,s;for(let c=0,d=0;d<4;++c,++d){XI(c%2?r:i,c%4>=2),a=gi.buildLayerMatrix(e);let f=GI(e,a);f<l&&(d=0,s=Object.assign({},a),l=f)}Uf(e,s)}function Lf(e,t,o){return t.map(function(r){return zI(e,r,o)})}function XI(e,t){let o=new YI;e.forEach(function(r){let i=r.graph().root,a=qI(r,i,o,t);a.vs.forEach((l,s)=>r.node(l).order=s),HI(r,o,a.vs)})}function Uf(e,t){Object.values(t).forEach(o=>o.forEach((r,i)=>e.node(r).order=i))}let ZI=_t.Graph,Lt=Fe;var JI={positionX:cP};function QI(e,t){let o={};function r(i,a){let l=0,s=0,c=i.length,d=a[a.length-1];return a.forEach((f,u)=>{let p=tP(e,f),m=p?e.node(p).order:c;(p||f===d)&&(a.slice(s,u+1).forEach(g=>{e.predecessors(g).forEach(_=>{let h=e.node(_),b=h.order;(b<l||m<b)&&!(h.dummy&&e.node(g).dummy)&&Kf(o,_,g)})}),s=u+1,l=m)}),a}return t.length&&t.reduce(r),o}function eP(e,t){let o={};function r(a,l,s,c,d){let f;Lt.range(l,s).forEach(u=>{f=a[u],e.node(f).dummy&&e.predecessors(f).forEach(p=>{let m=e.node(p);m.dummy&&(m.order<c||m.order>d)&&Kf(o,p,f)})})}function i(a,l){let s=-1,c,d=0;return l.forEach((f,u)=>{if(e.node(f).dummy==="border"){let p=e.predecessors(f);p.length&&(c=e.node(p[0]).order,r(l,d,u,s,c),d=u,s=c)}r(l,d,l.length,c,a.length)}),l}return t.length&&t.reduce(i),o}function tP(e,t){if(e.node(t).dummy)return e.predecessors(t).find(o=>e.node(o).dummy)}function Kf(e,t,o){if(t>o){let i=t;t=o,o=i}let r=e[t];r||(e[t]=r={}),r[o]=!0}function nP(e,t,o){if(t>o){let r=t;t=o,o=r}return!!e[t]&&Object.hasOwn(e[t],o)}function oP(e,t,o,r){let i={},a={},l={};return t.forEach(s=>{s.forEach((c,d)=>{i[c]=c,a[c]=c,l[c]=d})}),t.forEach(s=>{let c=-1;s.forEach(d=>{let f=r(d);if(f.length){f=f.sort((p,m)=>l[p]-l[m]);let u=(f.length-1)/2;for(let p=Math.floor(u),m=Math.ceil(u);p<=m;++p){let g=f[p];a[d]===d&&c<l[g]&&!nP(o,d,g)&&(a[g]=d,a[d]=i[d]=i[g],c=l[g])}}})}),{root:i,align:a}}function rP(e,t,o,r,i){let a={},l=iP(e,t,o,i),s=i?"borderLeft":"borderRight";function c(u,p){let m=l.nodes(),g=m.pop(),_={};for(;g;)_[g]?u(g):(_[g]=!0,m.push(g),m=m.concat(p(g))),g=m.pop()}function d(u){a[u]=l.inEdges(u).reduce((p,m)=>Math.max(p,a[m.v]+l.edge(m)),0)}function f(u){let p=l.outEdges(u).reduce((g,_)=>Math.min(g,a[_.w]-l.edge(_)),Number.POSITIVE_INFINITY),m=e.node(u);p!==Number.POSITIVE_INFINITY&&m.borderType!==s&&(a[u]=Math.max(a[u],p))}return c(d,l.predecessors.bind(l)),c(f,l.successors.bind(l)),Object.keys(r).forEach(u=>a[u]=a[o[u]]),a}function iP(e,t,o,r){let i=new ZI,a=e.graph(),l=dP(a.nodesep,a.edgesep,r);return t.forEach(s=>{let c;s.forEach(d=>{let f=o[d];if(i.setNode(f),c){var u=o[c],p=i.edge(u,f);i.setEdge(u,f,Math.max(l(e,d,c),p||0))}c=d})}),i}function aP(e,t){return Object.values(t).reduce((o,r)=>{let i=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY;Object.entries(r).forEach(([s,c])=>{let d=uP(e,s)/2;i=Math.max(c+d,i),a=Math.min(c-d,a)});const l=i-a;return l<o[0]&&(o=[l,r]),o},[Number.POSITIVE_INFINITY,null])[1]}function lP(e,t){let o=Object.values(t),r=Lt.applyWithChunking(Math.min,o),i=Lt.applyWithChunking(Math.max,o);["u","d"].forEach(a=>{["l","r"].forEach(l=>{let s=a+l,c=e[s];if(c===t)return;let d=Object.values(c),f=r-Lt.applyWithChunking(Math.min,d);l!=="l"&&(f=i-Lt.applyWithChunking(Math.max,d)),f&&(e[s]=Lt.mapValues(c,u=>u+f))})})}function sP(e,t){return Lt.mapValues(e.ul,(o,r)=>{if(t)return e[t.toLowerCase()][r];{let i=Object.values(e).map(a=>a[r]).sort((a,l)=>a-l);return(i[1]+i[2])/2}})}function cP(e){let t=Lt.buildLayerMatrix(e),o=Object.assign(QI(e,t),eP(e,t)),r={},i;["u","d"].forEach(l=>{i=l==="u"?t:Object.values(t).reverse(),["l","r"].forEach(s=>{s==="r"&&(i=i.map(u=>Object.values(u).reverse()));let c=(l==="u"?e.predecessors:e.successors).bind(e),d=oP(e,i,o,c),f=rP(e,i,d.root,d.align,s==="r");s==="r"&&(f=Lt.mapValues(f,u=>-u)),r[l+s]=f})});let a=aP(e,r);return lP(r,a),sP(r,e.graph().align)}function dP(e,t,o){return(r,i,a)=>{let l=r.node(i),s=r.node(a),c=0,d;if(c+=l.width/2,Object.hasOwn(l,"labelpos"))switch(l.labelpos.toLowerCase()){case"l":d=-l.width/2;break;case"r":d=l.width/2;break}if(d&&(c+=o?d:-d),d=0,c+=(l.dummy?t:e)/2,c+=(s.dummy?t:e)/2,c+=s.width/2,Object.hasOwn(s,"labelpos"))switch(s.labelpos.toLowerCase()){case"l":d=s.width/2;break;case"r":d=-s.width/2;break}return d&&(c+=o?d:-d),d=0,c}}function uP(e,t){return e.node(t).width}let jf=Fe,fP=JI.positionX;var pP=mP;function mP(e){e=jf.asNonCompoundGraph(e),gP(e),Object.entries(fP(e)).forEach(([t,o])=>e.node(t).x=o)}function gP(e){let t=jf.buildLayerMatrix(e),o=e.graph().ranksep,r=0;t.forEach(i=>{const a=i.reduce((l,s)=>{const c=e.node(s).height;return l>c?l:c},0);i.forEach(l=>e.node(l).y=r+a/2),r+=a+o})}let Gf=yT,qf=kT,hP=zT,yP=Fe.normalizeRanks,_P=XT,bP=Fe.removeEmptyRanks,zf=eI,wP=aI,Hf=sI,EP=WI,kP=pP,ut=Fe,CP=_t.Graph;var vP=NP;function NP(e,t){let o=t&&t.debugTiming?ut.time:ut.notime;o("layout",()=>{let r=o(" buildLayoutGraph",()=>VP(e));o(" runLayout",()=>SP(r,o,t)),o(" updateInputGraph",()=>xP(e,r))})}function SP(e,t,o){t(" makeSpaceForEdgeLabels",()=>RP(e)),t(" removeSelfEdges",()=>qP(e)),t(" acyclic",()=>Gf.run(e)),t(" nestingGraph.run",()=>zf.run(e)),t(" rank",()=>hP(ut.asNonCompoundGraph(e))),t(" injectEdgeLabelProxies",()=>DP(e)),t(" removeEmptyRanks",()=>bP(e)),t(" nestingGraph.cleanup",()=>zf.cleanup(e)),t(" normalizeRanks",()=>yP(e)),t(" assignRankMinMax",()=>MP(e)),t(" removeEdgeLabelProxies",()=>FP(e)),t(" normalize.run",()=>qf.run(e)),t(" parentDummyChains",()=>_P(e)),t(" addBorderSegments",()=>wP(e)),t(" order",()=>EP(e,o)),t(" insertSelfEdges",()=>zP(e)),t(" adjustCoordinateSystem",()=>Hf.adjust(e)),t(" position",()=>kP(e)),t(" positionSelfEdges",()=>HP(e)),t(" removeBorderNodes",()=>GP(e)),t(" normalize.undo",()=>qf.undo(e)),t(" fixupEdgeLabelCoords",()=>KP(e)),t(" undoCoordinateSystem",()=>Hf.undo(e)),t(" translateGraph",()=>LP(e)),t(" assignNodeIntersects",()=>UP(e)),t(" reversePoints",()=>jP(e)),t(" acyclic.undo",()=>Gf.undo(e))}function xP(e,t){e.nodes().forEach(o=>{let r=e.node(o),i=t.node(o);r&&(r.x=i.x,r.y=i.y,r.rank=i.rank,t.children(o).length&&(r.width=i.width,r.height=i.height))}),e.edges().forEach(o=>{let r=e.edge(o),i=t.edge(o);r.points=i.points,Object.hasOwn(i,"x")&&(r.x=i.x,r.y=i.y)}),e.graph().width=t.graph().width,e.graph().height=t.graph().height}let AP=["nodesep","edgesep","ranksep","marginx","marginy"],TP={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},IP=["acyclicer","ranker","rankdir","align"],PP=["width","height","rank"],Yf={width:0,height:0},OP=["minlen","weight","width","height","labeloffset"],$P={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},BP=["labelpos"];function VP(e){let t=new CP({multigraph:!0,compound:!0}),o=bl(e.graph());return t.setGraph(Object.assign({},TP,_l(o,AP),ut.pick(o,IP))),e.nodes().forEach(r=>{let i=bl(e.node(r));const a=_l(i,PP);Object.keys(Yf).forEach(l=>{a[l]===void 0&&(a[l]=Yf[l])}),t.setNode(r,a),t.setParent(r,e.parent(r))}),e.edges().forEach(r=>{let i=bl(e.edge(r));t.setEdge(r,Object.assign({},$P,_l(i,OP),ut.pick(i,BP)))}),t}function RP(e){let t=e.graph();t.ranksep/=2,e.edges().forEach(o=>{let r=e.edge(o);r.minlen*=2,r.labelpos.toLowerCase()!=="c"&&(t.rankdir==="TB"||t.rankdir==="BT"?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function DP(e){e.edges().forEach(t=>{let o=e.edge(t);if(o.width&&o.height){let r=e.node(t.v),a={rank:(e.node(t.w).rank-r.rank)/2+r.rank,e:t};ut.addDummyNode(e,"edge-proxy",a,"_ep")}})}function MP(e){let t=0;e.nodes().forEach(o=>{let r=e.node(o);r.borderTop&&(r.minRank=e.node(r.borderTop).rank,r.maxRank=e.node(r.borderBottom).rank,t=Math.max(t,r.maxRank))}),e.graph().maxRank=t}function FP(e){e.nodes().forEach(t=>{let o=e.node(t);o.dummy==="edge-proxy"&&(e.edge(o.e).labelRank=o.rank,e.removeNode(t))})}function LP(e){let t=Number.POSITIVE_INFINITY,o=0,r=Number.POSITIVE_INFINITY,i=0,a=e.graph(),l=a.marginx||0,s=a.marginy||0;function c(d){let f=d.x,u=d.y,p=d.width,m=d.height;t=Math.min(t,f-p/2),o=Math.max(o,f+p/2),r=Math.min(r,u-m/2),i=Math.max(i,u+m/2)}e.nodes().forEach(d=>c(e.node(d))),e.edges().forEach(d=>{let f=e.edge(d);Object.hasOwn(f,"x")&&c(f)}),t-=l,r-=s,e.nodes().forEach(d=>{let f=e.node(d);f.x-=t,f.y-=r}),e.edges().forEach(d=>{let f=e.edge(d);f.points.forEach(u=>{u.x-=t,u.y-=r}),Object.hasOwn(f,"x")&&(f.x-=t),Object.hasOwn(f,"y")&&(f.y-=r)}),a.width=o-t+l,a.height=i-r+s}function UP(e){e.edges().forEach(t=>{let o=e.edge(t),r=e.node(t.v),i=e.node(t.w),a,l;o.points?(a=o.points[0],l=o.points[o.points.length-1]):(o.points=[],a=i,l=r),o.points.unshift(ut.intersectRect(r,a)),o.points.push(ut.intersectRect(i,l))})}function KP(e){e.edges().forEach(t=>{let o=e.edge(t);if(Object.hasOwn(o,"x"))switch((o.labelpos==="l"||o.labelpos==="r")&&(o.width-=o.labeloffset),o.labelpos){case"l":o.x-=o.width/2+o.labeloffset;break;case"r":o.x+=o.width/2+o.labeloffset;break}})}function jP(e){e.edges().forEach(t=>{let o=e.edge(t);o.reversed&&o.points.reverse()})}function GP(e){e.nodes().forEach(t=>{if(e.children(t).length){let o=e.node(t),r=e.node(o.borderTop),i=e.node(o.borderBottom),a=e.node(o.borderLeft[o.borderLeft.length-1]),l=e.node(o.borderRight[o.borderRight.length-1]);o.width=Math.abs(l.x-a.x),o.height=Math.abs(i.y-r.y),o.x=a.x+o.width/2,o.y=r.y+o.height/2}}),e.nodes().forEach(t=>{e.node(t).dummy==="border"&&e.removeNode(t)})}function qP(e){e.edges().forEach(t=>{if(t.v===t.w){var o=e.node(t.v);o.selfEdges||(o.selfEdges=[]),o.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}})}function zP(e){var t=ut.buildLayerMatrix(e);t.forEach(o=>{var r=0;o.forEach((i,a)=>{var l=e.node(i);l.order=a+r,(l.selfEdges||[]).forEach(s=>{ut.addDummyNode(e,"selfedge",{width:s.label.width,height:s.label.height,rank:l.rank,order:a+ ++r,e:s.e,label:s.label},"_se")}),delete l.selfEdges})})}function HP(e){e.nodes().forEach(t=>{var o=e.node(t);if(o.dummy==="selfedge"){var r=e.node(o.e.v),i=r.x+r.width/2,a=r.y,l=o.x-i,s=r.height/2;e.setEdge(o.e,o.label),e.removeNode(t),o.label.points=[{x:i+2*l/3,y:a-s},{x:i+5*l/6,y:a-s},{x:i+l,y:a},{x:i+5*l/6,y:a+s},{x:i+2*l/3,y:a+s}],o.label.x=o.x,o.label.y=o.y}})}function _l(e,t){return ut.mapValues(ut.pick(e,t),Number)}function bl(e){var t={};return e&&Object.entries(e).forEach(([o,r])=>{typeof o=="string"&&(o=o.toLowerCase()),t[o]=r}),t}let YP=Fe,WP=_t.Graph;var XP={debugOrdering:ZP};function ZP(e){let t=YP.buildLayerMatrix(e),o=new WP({compound:!0,multigraph:!0}).setGraph({});return e.nodes().forEach(r=>{o.setNode(r,{label:r}),o.setParent(r,"layer"+e.node(r).rank)}),e.edges().forEach(r=>o.setEdge(r.v,r.w,{},r.name)),t.forEach((r,i)=>{let a="layer"+i;o.setNode(a,{rank:"same"}),r.reduce((l,s)=>(o.setEdge(l,s,{style:"invis"}),s))}),o}var JP="1.1.5",QP={graphlib:_t,layout:vP,debug:XP,util:{time:Fe.time,notime:Fe.notime},version:JP};const Wf=Zx(QP),hi={padding:80,nodeGap:40,edgeGap:80,rankGap:80},Xf=e=>{const t=e.match(/^(input|output)s@(.*)$/);if(t)return{io:t[1],field:t[2]}};function eO(e,t){const o=Te(t),r=rt(),{findNode:i,fitView:a,onNodeClick:l,onNodeDragStop:s,onEdgeClick:c,onConnect:d,onNodesChange:f,onEdgesChange:u,deleteKeyCode:p}=o;p.value=["Delete","Backspace"];const{state:m,commit:g,moveNode:_,selectNode:h,removeNode:b,getNodeById:w,connectEdge:y,disconnectEdge:v}=r;function k(T,q){const j=w(T.source),A=w(T.target);return!!(j&&A&&j.phase===q&&A.phase===q)}const E=n.computed(()=>m.value.nodes.filter(T=>T.phase===e).map(T=>({id:T.id,type:"flow",position:T.position,data:T,deletable:!Uc(T)}))),R=n.computed(()=>m.value.edges.filter(T=>k(T,e)).map(T=>{const q=w(T.source),j=w(T.target);if(q){if(!j)throw new Error(`Missing target node "${T.target}" for edge "${T.id}" in phase "${e}"`)}else throw new Error(`Missing source node "${T.source}" for edge "${T.id}" in phase "${e}"`);return{id:T.id,source:T.source,target:T.target,sourceHandle:T.sourceField?`outputs@${T.sourceField}`:"output",targetHandle:T.targetField?`inputs@${T.targetField}`:"input",markerEnd:Wr.ArrowClosed,data:T}}));l(({node:T})=>{console.debug("[useFlow] onNodeClick",n.toRaw(T))}),c(({edge:T})=>{console.debug("[useFlow] onEdgeClick",n.toRaw(T))}),d(({source:T,sourceHandle:q,target:j,targetHandle:A})=>{if(console.debug("[useFlow] onConnect",{source:T,sourceHandle:q,target:j,targetHandle:A}),!q||!A)return;const I=Xf(q),C=Xf(A);(I==null?void 0:I.io)==="input"||(C==null?void 0:C.io)==="output"||y({source:T,sourceField:I==null?void 0:I.field,target:j,targetField:C==null?void 0:C.field})}),f(T=>{T.filter(q=>q.type==="select").sort((q,j)=>q.selected===j.selected?0:q.selected?1:-1).forEach(q=>{h(q.selected?q.id:void 0)}),T.forEach(q=>{q.type==="remove"&&b(q.id,!0)})}),s(({node:T})=>{T&&_(T.id,T.position)}),u(T=>{T.forEach(q=>{q.type==="remove"&&v(q.id,!0)})});function O(T){const{boundingRect:q,padding:j=hi.padding,nodeGap:A=hi.nodeGap,edgeGap:I=hi.edgeGap,rankGap:C=hi.rankGap}=T;let D,P;const L=[],F=ee=>{switch(ee.data.name){case"request":{if(e!=="request")throw new Error(`Unexpected request node in ${e} phase`);if(D)throw new Error("Duplicated request node in request phase");return D=ee,!0}case"service_request":{if(e!=="request")throw new Error(`Unexpected service_request node in ${e} phase`);if(P)throw new Error("Duplicated service_request node in request phase");return P=ee,!0}case"service_response":{if(e!=="response")throw new Error(`Unexpected service_response node in ${e} phase`);if(P)throw new Error("Duplicated service_response node in response phase");return P=ee,!0}case"response":{if(e!=="response")throw new Error(`Unexpected response node in ${e} phase`);if(D)throw new Error("Duplicated response node in response phase");return D=ee,!0}default:return L.push(ee),!1}},B=new Wf.graphlib.Graph({multigraph:!0});B.setGraph({rankdir:e==="request"?"LR":"RL",nodesep:A,edgesep:I,ranksep:C});for(const ee of E.value){if(F(ee))continue;const re=i(ee.id);if(!re)throw new Error(`Node ${ee.id} is missing from the graph in ${e} phase`);B.setNode(ee.id,{width:re.dimensions.width,height:re.dimensions.height})}if(!D||!P)throw new Error(`One or more implicit nodes are missing from ${e} phase`);const $=i(D.id),G=i(P.id);if(!$||!G)throw new Error(`One or more implicit nodes are missing from the graph in ${e} phase`);if(L.length===0){const ee=q.height/2;_(D.data.id,{x:j,y:ee-$.dimensions.height/2},!1),_(P.data.id,{x:q.width-j-G.dimensions.width,y:ee-G.dimensions.height/2},!1)}else{const ee=new Set([D.id,P.id]);for(const oe of R.value)!ee.has(oe.source)&&!ee.has(oe.target)&&B.setEdge(oe.source,oe.target,{points:[]});Wf.layout(B);const re={x1:Number.POSITIVE_INFINITY,y1:Number.POSITIVE_INFINITY,x2:Number.NEGATIVE_INFINITY,y2:Number.NEGATIVE_INFINITY},J=oe=>{re.x1=Math.min(re.x1,oe.x),re.y1=Math.min(re.y1,oe.y),re.x2=Math.max(re.x2,oe.x+oe.width),re.y2=Math.max(re.y2,oe.y+oe.height)},ne=oe=>({x:oe.x-oe.width/2,y:oe.y-oe.height/2,width:oe.width,height:oe.height});for(const oe of L){const ue=B.node(oe.id),de=ne(ue);J(de),_(oe.data.id,{x:de.x,y:de.y},!1)}const z=i(D.id),Z=i(P.id);if(!z||!Z)throw new Error(`One or more implicit nodes are missing from the graph in ${e} phase`);const ie=re.y1+(re.y2-re.y1)/2;_(D.data.id,{x:re.x1-(z.dimensions.width+A),y:ie-z.dimensions.height/2},!1),_(P.data.id,{x:re.x2+A,y:ie-Z.dimensions.height/2},!1)}g(),n.nextTick(()=>{a()})}return{vueFlowStore:o,editorStore:r,nodes:E,edges:R,autoLayout:O}}const yi=we(n.defineComponent({__name:"HandleTwig",props:{color:{},position:{default:()=>ge.Left},size:{default:()=>Number.parseFloat(Zw)},type:{}},setup(e){n.useCssVars(o=>({"753622c4":o.color}));const t=n.computed(()=>({width:`${e.size}px`,minWidth:`${e.size}px`}));return(o,r)=>(n.openBlock(),n.createElementBlock("div",{class:n.normalizeClass(["handle-twig",[o.type,o.position===n.unref(ge).Left?"left":"right"]]),style:n.normalizeStyle(t.value)},null,6))}}),[["__scopeId","data-v-eb2bc3f2"]]),Hn="{key}",bn={"kong.client.consumer":{dataType:"object",writable:!1,readable:!0},"kong.client.consumer_groups":{dataType:"array",writable:!1,readable:!0},"kong.client.credential":{dataType:"object",writable:!1,readable:!0},"kong.client.get_identity_realm_source":{dataType:"object",writable:!1,readable:!0},"kong.client.forwarded_ip":{dataType:"string",writable:!1,readable:!0},"kong.client.forwarded_port":{dataType:"number",writable:!1,readable:!0},"kong.client.ip":{dataType:"string",writable:!1,readable:!0},"kong.client.port":{dataType:"number",writable:!1,readable:!0},"kong.client.protocol":{dataType:"string",writable:!1,readable:!0},"kong.request.forwarded_host":{dataType:"string",writable:!1,readable:!0},"kong.request.forwarded_port":{dataType:"number",writable:!1,readable:!0},"kong.request.forwarded_scheme":{dataType:"string",writable:!1,readable:!0},"kong.request.port":{dataType:"number",writable:!1,readable:!0},"kong.response.source":{dataType:"string",writable:!1,readable:!0},"kong.router.route":{dataType:"object",writable:!1,readable:!0},"kong.route_id":{dataType:"string",writable:!1,readable:!0},"kong.route_name":{dataType:"string",writable:!1,readable:!0},"kong.router.service":{dataType:"object",writable:!1,readable:!0},"kong.service_name":{dataType:"string",writable:!1,readable:!0},"kong.service_id":{dataType:"string",writable:!1,readable:!0},"kong.service.response.status":{dataType:"number",writable:!1,readable:!0},"kong.version":{dataType:"string",writable:!1,readable:!0},"kong.node.id":{dataType:"string",writable:!1,readable:!0},"kong.configuration.{key}":{dataType:"any",writable:!1,readable:!0},"kong.service.target":{dataType:"string ({host}:{port})",writable:!0,readable:!1},"kong.service.request_scheme":{dataType:"string ({scheme})",writable:!0,readable:!1},"kong.ctx.plugin.{key}":{dataType:"any",writable:!0,readable:!0},"kong.ctx.shared.{key}":{dataType:"any",writable:!0,readable:!0}},_i=Object.keys(bn).filter(e=>e.includes(Hn)).map(e=>e.replace(Hn,""));function wl(e){if(!e||!Mo(e))return;const t=_i.find(o=>e.startsWith(o));if(t)return e.slice(t.length).replace(Hn,"")}function Do(e){if(!e)return null;const t=_i.find(o=>e.startsWith(o));return t||e}function Mo(e){return e?_i.some(t=>e.startsWith(t)):!1}function Zf(e){return e?Mo(e)?Do(e)+Hn:e:null}function El(e){var o;if(!e)return!1;const t=Zf(e);return t?((o=bn[t])==null?void 0:o.readable)??!1:!1}function kl(e){var o;if(!e)return!1;const t=Zf(e);return t?((o=bn[t])==null?void 0:o.writable)??!1:!1}const Jf=n.defineComponent({__name:"NodeBadge",props:{type:{},size:{}},setup(e){const t=n.computed(()=>{var i;if(!Bt(e.type))return((i=_r[e.type])==null?void 0:i.icon)??void 0}),o=n.computed(()=>yE(e.type)),r=n.computed(()=>{switch(e.type){case"call":return"warning";case"jq":return"decorative";case"exit":return"danger";case"property":return"success";case"static":return"info";default:return"neutral"}});return(i,a)=>{const l=n.resolveComponent("KBadge");return n.openBlock(),n.createBlock(l,{appearance:r.value,size:i.size},{icon:n.withCtx(()=>[(n.openBlock(),n.createBlock(n.resolveDynamicComponent(t.value)))]),default:n.withCtx(()=>[n.createTextVNode(" "+n.toDisplayString(o.value),1)]),_:1},8,["appearance","size"])}}}),tO={class:"body"},nO={class:"info-line"},oO={class:"name-and-error"},rO={class:"name"},iO={class:"input-handles"},aO={class:"handle"},lO={class:"handle-label-wrapper"},sO={class:"handle-label-wrapper"},cO={class:"handle-label text"},dO={class:"output-handles"},uO={class:"handle"},fO={class:"handle-label-wrapper"},pO={class:"handle-label-wrapper"},mO={class:"handle-label"},Qf=we(n.defineComponent({__name:"FlowNode",props:{data:{},error:{type:Boolean}},setup(e){const{t}=Re.createI18n("en-us",je),{getInEdgesByNodeId:o,getOutEdgesByNodeId:r,toggleExpanded:i}=rt(),a=n.computed(()=>ya(e.data.type)),l=n.computed(()=>o(e.data.id).every(y=>y.targetField===void 0)),s=n.computed(()=>r(e.data.id).every(y=>y.sourceField===void 0)),c=n.computed(()=>e.data.expanded.input??!1),d=n.computed(()=>e.data.expanded.output??!1),f=n.computed(()=>{var y,v;if(e.data.type==="property"){const k=(y=e.data.config)==null?void 0:y.property;return kl(k)}return(v=a.value.io)==null?void 0:v.input}),u=n.computed(()=>{var y,v;if(e.data.type==="property"){const k=(y=e.data.config)==null?void 0:y.property;return El(k)}return(v=a.value.io)==null?void 0:v.output}),p=n.computed(()=>Uc(e.data)),m=n.computed(()=>e.data.phase==="response"),g=n.computed(()=>e.data.phase==="request"?ge.Left:ge.Right),_=n.computed(()=>e.data.phase==="request"?ge.Right:ge.Left),h=n.computed(()=>p.value?t(`plugins.free-form.datakit.flow_editor.node_types.${e.data.type}.name`):e.data.name),b=n.computed(()=>p.value?qw:zw);function w(y){y==="input"&&!l.value||y==="output"&&!s.value||i(e.data.id,y)}return n.watch(l,y=>{y||i(e.data.id,"input",!0,!1)},{immediate:!0}),n.watch(s,y=>{y||i(e.data.id,"output",!0,!1)},{immediate:!0}),(y,v)=>(n.openBlock(),n.createElementBlock("div",{class:n.normalizeClass(["flow-node",{reversed:m.value,implicit:p.value}])},[n.createElementVNode("div",tO,[n.createElementVNode("div",nO,[n.createElementVNode("div",oO,[y.error?(n.openBlock(),n.createBlock(n.unref(Ee.WarningIcon),{key:0,class:"error-icon",color:n.unref(Hw),size:16},null,8,["color"])):n.createCommentVNode("",!0),n.createElementVNode("div",rO,n.toDisplayString(h.value),1)]),p.value?n.createCommentVNode("",!0):(n.openBlock(),n.createBlock(Jf,{key:0,size:"small",type:y.data.type},null,8,["type"]))]),n.renderSlot(y.$slots,"default",{},void 0,!0)]),n.createElementVNode("div",{class:n.normalizeClass(["handles",{reversed:m.value}])},[n.createElementVNode("div",iO,[f.value?(n.openBlock(),n.createElementBlock(n.Fragment,{key:0},[n.createElementVNode("div",aO,[n.createVNode(n.unref(Ht),{id:"input",position:g.value,type:"target"},null,8,["position"]),n.createElementVNode("div",lO,[n.createElementVNode("div",{class:n.normalizeClass(["handle-label",{"has-fields":y.data.fields.input.length>0,collapsible:l.value}])},[v[2]||(v[2]=n.createElementVNode("div",{class:"text"}," inputs ",-1)),y.data.fields.input.length>0?(n.openBlock(),n.createElementBlock("div",{key:0,class:"icon",onClick:v[0]||(v[0]=n.withModifiers(k=>w("input"),["stop"]))},[c.value?n.createCommentVNode("",!0):(n.openBlock(),n.createBlock(n.unref(Ee.UnfoldMoreIcon),{key:0,size:n.unref(go)},null,8,["size"])),c.value?(n.openBlock(),n.createBlock(n.unref(Ee.UnfoldLessIcon),{key:1,color:l.value?void 0:n.unref(Vc),size:n.unref(go)},null,8,["color","size"])):n.createCommentVNode("",!0)])):n.createCommentVNode("",!0)],2),c.value?(n.openBlock(),n.createBlock(yi,{key:0,color:b.value,position:g.value,type:"bar"},null,8,["color","position"])):n.createCommentVNode("",!0)])]),c.value?(n.openBlock(!0),n.createElementBlock(n.Fragment,{key:0},n.renderList(y.data.fields.input,(k,E)=>(n.openBlock(),n.createElementBlock("div",{key:`inputs-${k.id}`,class:"handle indented"},[n.createVNode(n.unref(Ht),{id:`inputs@${k.id}`,position:g.value,type:"target"},null,8,["id","position"]),n.createElementVNode("div",sO,[n.createElementVNode("div",cO,n.toDisplayString(k.name),1),n.createVNode(yi,{color:b.value,position:g.value,type:E<y.data.fields.input.length-1?"trident":"corner"},null,8,["color","position","type"])])]))),128)):n.createCommentVNode("",!0)],64)):n.createCommentVNode("",!0)]),n.createElementVNode("div",dO,[u.value?(n.openBlock(),n.createElementBlock(n.Fragment,{key:0},[n.createElementVNode("div",uO,[n.createElementVNode("div",fO,[n.createElementVNode("div",{class:n.normalizeClass(["handle-label text",{"has-fields":y.data.fields.output.length>0,collapsible:s.value}])},[v[3]||(v[3]=n.createElementVNode("div",{class:"text"}," outputs ",-1)),y.data.fields.output.length>0?(n.openBlock(),n.createElementBlock("div",{key:0,class:"icon",onClick:v[1]||(v[1]=n.withModifiers(k=>w("output"),["stop"]))},[d.value?n.createCommentVNode("",!0):(n.openBlock(),n.createBlock(n.unref(Ee.UnfoldMoreIcon),{key:0,size:n.unref(go)},null,8,["size"])),d.value?(n.openBlock(),n.createBlock(n.unref(Ee.UnfoldLessIcon),{key:1,color:s.value?void 0:n.unref(Vc),size:n.unref(go)},null,8,["color","size"])):n.createCommentVNode("",!0)])):n.createCommentVNode("",!0)],2),d.value?(n.openBlock(),n.createBlock(yi,{key:0,color:b.value,position:_.value,type:"bar"},null,8,["color","position"])):n.createCommentVNode("",!0)]),n.createVNode(n.unref(Ht),{id:"output",position:_.value,type:"source"},null,8,["position"])]),d.value?(n.openBlock(!0),n.createElementBlock(n.Fragment,{key:0},n.renderList(y.data.fields.output,(k,E)=>(n.openBlock(),n.createElementBlock("div",{key:`outputs-${k.id}`,class:"handle indented"},[n.createElementVNode("div",pO,[n.createElementVNode("div",mO,n.toDisplayString(k.name),1),n.createVNode(yi,{color:b.value,position:_.value,type:E<y.data.fields.output.length-1?"trident":"corner"},null,8,["color","position","type"])]),n.createVNode(n.unref(Ht),{id:`outputs@${k.id}`,position:_.value,type:"source"},null,8,["id","position"])]))),128)):n.createCommentVNode("",!0)],64)):n.createCommentVNode("",!0)])],2)],2))}}),[["__scopeId","data-v-b8317dd1"]]),gO={ref:"flow-wrapper",class:"dk-flow-wrapper"},ep=we(n.defineComponent({__name:"EditorCanvasFlow",props:{phase:{}},setup(e){const t=e,o=n.useTemplateRef("flow-wrapper"),r=n.ref(!1),a=`${n.useId()}-${t.phase}`,{vueFlowStore:l,editorStore:s,nodes:c,edges:d,autoLayout:f}=eO(t.phase,a),{addNode:u,clear:p}=s,{project:m,vueFlowRef:g,addSelectedNodes:_,getNodes:h}=l,{selectNode:b,propertiesPanelOpen:w,newCreatedNodeId:y,invalidConfigNodeIds:v}=rt();async function k(T){b(T),await n.nextTick();const q=h.value.find(j=>j.id===T);_(q?[q]:[])}function E(T){var B,$;const q=(B=T.dataTransfer)==null?void 0:B.getData(ad);if(!q)return;T.preventDefault();const j=JSON.parse(q);if(j.action!=="create-node")return;const{top:A=0,left:I=0}=(($=g.value)==null?void 0:$.getBoundingClientRect())||{},C=m({x:T.clientX-I,y:T.clientY-A}),{type:D,anchor:P}=j.data,L={type:D,phase:t.phase,position:{x:C.x-P.offsetX,y:C.y-P.offsetY}},F=u(L);k(F),F&&(y.value=F,w.value=!0)}function R(){r.value||(r.value=!0,O(),p())}function O(){f({boundingRect:o.value.getBoundingClientRect()})}return(T,q)=>(n.openBlock(),n.createElementBlock("div",gO,[n.createVNode(n.unref(Qu),{id:a,class:"flow",edges:n.unref(d),"fit-view-on-init":"","multi-selection-key-code":null,nodes:n.unref(c),onDragover:q[0]||(q[0]=n.withModifiers(()=>{},["prevent"])),onDrop:q[1]||(q[1]=j=>E(j)),onNodeClick:q[2]||(q[2]=j=>w.value=!0),onNodesInitialized:R},{"node-flow":n.withCtx(j=>[n.createVNode(Qf,{data:j.data,error:n.unref(v).has(j.data.id)},null,8,["data","error"])]),default:n.withCtx(()=>[n.createVNode(n.unref(vx)),n.createVNode(n.unref(Xx),{position:"bottom-left"},{default:n.withCtx(()=>[n.createElementVNode("button",{class:"vue-flow__controls-button vue-flow__controls-interactive custom",onClick:O},[n.createVNode(n.unref(Ee.SparklesIcon),{size:18})])]),_:1})]),_:1},8,["edges","nodes"])],512))}}),[["__scopeId","data-v-e3ec7bb9"]]),hO={class:"dk-editor-main"},yO={class:"header"},_O={class:"actions"},bO={ref:"canvasContainer",class:"body"},wO=we(n.defineComponent({__name:"EditorMain",setup(e){const{t}=Re.createI18n("en-us",je),{modalOpen:o}=rt();function r(){o.value=!1}return(i,a)=>(n.openBlock(),n.createElementBlock("div",hO,[n.createElementVNode("header",yO,[n.createElementVNode("div",_O,[n.createVNode(n.unref(Ie.KButton),{appearance:"tertiary",target:"_blank",to:"https://developer.konghq.com/plugins/datakit/"},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(t)("plugins.free-form.datakit.flow_editor.view_docs"))+" ",1),n.createVNode(n.unref(Ee.ExternalLinkIcon))]),_:1}),n.createVNode(n.unref(Ie.KButton),{onClick:r},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(t)("plugins.free-form.datakit.flow_editor.done")),1)]),_:1})])]),n.createElementVNode("div",bO,[n.createVNode(bk,null,{request:n.withCtx(()=>[n.createVNode(ep,{phase:"request"})]),response:n.withCtx(()=>[n.createVNode(ep,{phase:"response"})]),_:1})],512)]))}}),[["__scopeId","data-v-bd7f8196"]]),EO={class:"icon"},kO={class:"content"},CO={class:"title"},vO={class:"description"},NO=we(n.defineComponent({__name:"NodePanelItem",props:{type:{}},setup(e){const{summary:t,icon:o}=_r[e.type];return(r,i)=>(n.openBlock(),n.createElementBlock("div",{class:n.normalizeClass(["dk-node-panel-item",{[`node-type-${r.type}`]:!0}])},[n.createElementVNode("div",EO,[n.createVNode(n.unref(o),{size:16})]),n.createElementVNode("div",kO,[n.createElementVNode("div",CO,n.toDisplayString(r.type),1),n.createElementVNode("div",vO,n.toDisplayString(n.unref(t)),1)])],2))}}),[["__scopeId","data-v-e75cecee"]]),SO={class:"dk-node-panel"},xO={class:"title"},AO={class:"node-list"},TO={"aria-hidden":"true",class:"preview",inert:""},IO=we(n.defineComponent({__name:"NodePanel",setup(e){const{t}=Re.createI18n("en-us",je),{createNode:o}=rt(),r=`dk-drag-preview-${n.useId()}`,i=n.shallowRef(),a=n.computed(()=>i.value?[{id:"preview",type:"flow",data:i.value,position:{x:0,y:0}}]:[]),l=async(s,c)=>{var O,T;const d=s.currentTarget,{left:f,top:u,width:p,height:m}=d.getBoundingClientRect(),g=s.clientX-f,_=s.clientY-u;i.value=o({type:c}),await n.nextTick();const h=document.querySelector(`#${r}`)||d,b=h.cloneNode(!0),{offsetWidth:w,offsetHeight:y}=h;Object.assign(b.style,{position:"absolute",top:"-9999px",left:"-9999px",width:`${w}px`,height:`${y}px`,boxSizing:"border-box"}),document.body.appendChild(b);const v=g/p,k=_/m,E={ratioX:v,ratioY:k,offsetX:w*v,offsetY:y*k},R={action:"create-node",data:{type:c,anchor:E}};(O=s.dataTransfer)==null||O.setData(ad,JSON.stringify(R)),(T=s.dataTransfer)==null||T.setDragImage(b,E.offsetX,E.offsetY),requestAnimationFrame(()=>{b.remove(),i.value=void 0})};return(s,c)=>{const d=n.resolveComponent("KLabel");return n.openBlock(),n.createElementBlock("div",SO,[n.createElementVNode("h3",xO,[n.createVNode(d,{class:"label",info:n.unref(t)("plugins.free-form.datakit.flow_editor.node_panel.description")},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(t)("plugins.free-form.datakit.flow_editor.node_panel.title")),1)]),_:1},8,["info"])]),n.createElementVNode("div",AO,[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(Object.keys(n.unref(_r)),f=>(n.openBlock(),n.createBlock(NO,{key:f,draggable:"true",type:f,onDragstart:u=>l(u,f)},null,8,["type","onDragstart"]))),128))]),n.createElementVNode("div",TO,[n.createVNode(n.unref(Qu),{nodes:a.value},{"node-flow":n.withCtx(f=>[n.createVNode(Qf,{id:r,data:f.data},null,8,["data"])]),_:1},8,["nodes"])])])}}}),[["__scopeId","data-v-8e8421d3"]]),PO=n.defineComponent({__name:"HttpMethodField",props:{name:{}},setup(e){return(t,o)=>(n.openBlock(),n.createBlock(Et,{items:n.unref(ra)([...n.unref(mk)]),name:t.name},null,8,["items","name"]))}}),OO=we(n.defineComponent({__name:"InputsRecordField",props:{name:{},items:{}},emits:["change:inputs"],setup(e){const{getSchema:t}=Ve(),{i18n:o}=xe(),r=n.computed(()=>{const i=t("inputs");return i?i.fields.map(a=>Object.keys(a)[0]):[]});return(i,a)=>(n.openBlock(),n.createBlock(dt,{"as-child":"",name:i.name,"reset-label-path":"isolate"},{default:n.withCtx(()=>[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(r.value,l=>(n.openBlock(),n.createBlock(Et,{key:l,class:"dk-inputs-field-indent",clearable:"",items:i.items,name:l,placeholder:n.unref(o).t("plugins.free-form.datakit.flow_editor.node_properties.input.placeholder"),onChange:s=>i.$emit("change:inputs",l,s?s.value:null)},null,8,["items","name","placeholder","onChange"]))),128))]),_:1},8,["name"]))}}),[["__scopeId","data-v-a849b44b"]]),$O=["data-testid"],BO={class:"dk-inputs-map-field-entry-body"},VO={class:"dk-inputs-map-field-entry-content"},RO={class:"dk-inputs-map-field-indent"},DO=we(n.defineComponent({__name:"InputsMapField",props:{items:{},fieldNameValidator:{},name:{},initialValue:{},label:{},keyPlaceholder:{},valuePlaceholder:{},defaultKey:{},defaultValue:{},labelAttributes:{},showVaultSecretPicker:{type:Boolean},keyOrder:{}},emits:["change:inputs","add:field","remove:field","rename:field","change"],setup(e,{emit:t}){const o=e,r=t,{entries:i,addEntry:a,removeEntry:l,field:s}=ua(o,r),{i18n:{t:c}}=xe(),d=n.useTemplateRef("root"),f=n.ref(null),u=n.ref({});let p;async function m(k,E="key"){var R;d.value&&(await n.nextTick(),(R=d.value.querySelector(`[data-${E}-input="${k}"]`))==null||R.focus())}function g(){const{id:k}=a(),E=i.value.findIndex(({key:R})=>!R);m(E===-1?i.value.length-1:E),f.value=k}function _(k){l(k.id),k.id===f.value&&(f.value=null),k.key.trim()!==""&&r("remove:field",k.key)}function h(k){p=k.key}function b(k){if(w(k)){k.key=p,delete u.value[k.id];return}if(k.id===f.value){if(k.key.trim()==="")return;r("add:field",k.key,k.value),f.value=null}else r("rename:field",p,k.key);p=k.key}function w(k){delete u.value[k.id];const E=o.fieldNameValidator("input",p,k.key);if(E)return u.value[k.id]=E,E}function y(k){w(k)}function v(k,E){k.id!==f.value&&r("change:inputs",k.key,E)}return(k,E)=>{const R=n.resolveComponent("KAlert"),O=n.resolveComponent("KLabel"),T=n.resolveComponent("KInput"),q=n.resolveComponent("KSelect"),j=n.resolveComponent("KButton");return n.unref(s).error?(n.openBlock(),n.createBlock(R,{key:0,appearance:"danger",message:n.unref(s).error.message},null,8,["message"])):(n.openBlock(),n.createElementBlock("div",{key:1,ref_key:"root",ref:d,class:"dk-inputs-map-field"},[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(i),(A,I)=>(n.openBlock(),n.createElementBlock("div",{key:A.id,class:"dk-inputs-map-field-entry dk-inputs-map-field-indent","data-testid":`ff-kv-container-${n.unref(s).path.value}.${I}`},[n.createVNode(O,{for:`ff-kv-entry-key-${n.unref(s).path.value}.${I}`},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(c)("plugins.free-form.datakit.flow_editor.node_properties.input_name.label")),1)]),_:2},1032,["for"]),n.createElementVNode("div",BO,[n.createElementVNode("div",VO,[n.createVNode(T,{id:`ff-kv-entry-key-${n.unref(s).path.value}.${I}`,modelValue:A.key,"onUpdate:modelValue":[C=>A.key=C,C=>w(A)],modelModifiers:{trim:!0},class:"ff-kv-field-entry-key","data-key-input":I,"data-testid":`ff-key-${n.unref(s).path.value}.${I}`,error:!!u.value[A.id],"error-message":u.value[A.id],placeholder:n.unref(c)("plugins.free-form.datakit.flow_editor.node_properties.input_name.placeholder"),onBlur:C=>y(A),onChange:C=>b(A),onFocus:C=>h(A)},null,8,["id","modelValue","onUpdate:modelValue","data-key-input","data-testid","error","error-message","placeholder","onBlur","onChange","onFocus"]),n.createVNode(q,{modelValue:A.value,"onUpdate:modelValue":C=>A.value=C,class:"ff-kv-field-entry-value",clearable:"","data-testid":`ff-value-${n.unref(s).path.value}.${I}`,items:k.items,placeholder:n.unref(c)("plugins.free-form.datakit.flow_editor.node_properties.input.placeholder"),onChange:C=>v(A,(C==null?void 0:C.value)??null)},null,8,["modelValue","onUpdate:modelValue","data-testid","items","placeholder","onChange"])]),n.createVNode(j,{appearance:"none","data-testid":`ff-kv-remove-btn-${n.unref(s).path.value}.${I}`,icon:"",onClick:C=>_(A)},{default:n.withCtx(()=>[n.createVNode(n.unref(Ee.CloseIcon))]),_:2},1032,["data-testid","onClick"])])],8,$O))),128)),n.createElementVNode("div",RO,[n.createVNode(j,{appearance:"tertiary","data-testid":`ff-kv-add-btn-${n.unref(s).path.value}`,disabled:!!f.value,onClick:g},{default:n.withCtx(()=>[n.createVNode(n.unref(Ee.AddIcon)),n.createTextVNode(" "+n.toDisplayString(n.unref(c)("plugins.free-form.datakit.flow_editor.node_properties.input.add_button")),1)]),_:1},8,["data-testid","disabled"])])],512))}}}),[["__scopeId","data-v-685121cd"]]),Yn=n.defineComponent({__name:"InputsField",props:{items:{},fieldNames:{},fieldNameValidator:{}},emits:["change:input","change:inputs","add:field","remove:field","rename:field"],setup(e,{emit:t}){const o=t,{getSchema:r}=Ve(),{i18n:i}=xe(),a=n.computed(()=>r("inputs")),l=n.computed(()=>a.value?a.value.type==="record"?OO:DO:null);function s(p){o("change:input",p?p.value:null)}function c(p,m){o("add:field",p,m)}function d(p,m){o("change:inputs",p,m)}function f(p){o("remove:field",p)}function u(p,m){o("rename:field",p,m)}return(p,m)=>(n.openBlock(),n.createElementBlock(n.Fragment,null,[n.unref(r)("input")?(n.openBlock(),n.createBlock(Et,{key:0,clearable:"","enable-filtering":"",items:p.items,label:"Inputs",name:"input",placeholder:n.unref(i).t("plugins.free-form.datakit.flow_editor.node_properties.input.placeholder"),onChange:s},null,8,["items","placeholder"])):n.createCommentVNode("",!0),l.value?(n.openBlock(),n.createBlock(n.unref(l),{key:1,"field-name-validator":p.fieldNameValidator,items:p.items,"key-order":p.fieldNames,name:"inputs","onAdd:field":c,"onChange:inputs":d,"onRemove:field":f,"onRename:field":u},null,8,["field-name-validator","items","key-order"])):n.createCommentVNode("",!0)],64))}}),MO={fields:[{input:{description:"filter input(s)",len_max:255,len_min:1,match_any:{err:"must be one of NODE_NAME or NODE_NAME.FIELD",patterns:["^[A-Za-z_][A-Za-z0-9_-]*$","^[A-Za-z_][A-Za-z0-9_-]*%..+$"]},required:!1,type:"string"}},{inputs:{description:"call node inputs",fields:[{body:{description:"HTTP request body",len_max:255,len_min:1,match_any:{err:"must be one of NODE_NAME or NODE_NAME.FIELD",patterns:["^[A-Za-z_][A-Za-z0-9_-]*$","^[A-Za-z_][A-Za-z0-9_-]*%..+$"]},required:!1,type:"string"}},{headers:{description:"HTTP request headers",len_max:255,len_min:1,match_any:{err:"must be one of NODE_NAME or NODE_NAME.FIELD",patterns:["^[A-Za-z_][A-Za-z0-9_-]*$","^[A-Za-z_][A-Za-z0-9_-]*%..+$"]},required:!1,type:"string"}},{query:{description:"HTTP request query",len_max:255,len_min:1,match_any:{err:"must be one of NODE_NAME or NODE_NAME.FIELD",patterns:["^[A-Za-z_][A-Za-z0-9_-]*$","^[A-Za-z_][A-Za-z0-9_-]*%..+$"]},required:!1,type:"string"}}],required:!1,type:"record"}}],type:"record"},FO={fields:[{input:{description:"filter input(s)",len_max:255,len_min:1,match_any:{err:"must be one of NODE_NAME or NODE_NAME.FIELD",patterns:["^[A-Za-z_][A-Za-z0-9_-]*$","^[A-Za-z_][A-Za-z0-9_-]*%..+$"]},required:!1,type:"string"}},{inputs:{description:"call node inputs",fields:[{body:{description:"HTTP request body",len_max:255,len_min:1,match_any:{err:"must be one of NODE_NAME or NODE_NAME.FIELD",patterns:["^[A-Za-z_][A-Za-z0-9_-]*$","^[A-Za-z_][A-Za-z0-9_-]*%..+$"]},required:!1,type:"string"}},{headers:{description:"HTTP request headers",len_max:255,len_min:1,match_any:{err:"must be one of NODE_NAME or NODE_NAME.FIELD",patterns:["^[A-Za-z_][A-Za-z0-9_-]*$","^[A-Za-z_][A-Za-z0-9_-]*%..+$"]},required:!1,type:"string"}}],required:!1,type:"record"}}],type:"record"};function LO(e){const t=Number(e);return!isNaN(t)&&isFinite(t)}function Wn(...e){return function(o){for(const r of e){const i=r(o);if(i)return i}}}function Xn(e){const{i18n:{t}}=xe(),o=()=>e?typeof e=="string"?e:t("plugins.free-form.datakit.flow_editor.node_properties.errors.not_empty",e):"Field is required";return function(i){if(i==null||typeof i=="string"&&i.trim()==="")return o()}}function Cl(e,t){const{i18n:{t:o}}=xe();return function(i){if(i!=null)switch(e){case"identifier":{const a=()=>t?typeof t=="string"?t:o("plugins.free-form.datakit.flow_editor.node_properties.errors.invalid_identifier_format",t):"Invalid identifier format";return/^[A-Za-z_][A-Za-z0-9_-]*$/.test(i)?void 0:a()}case"url":{const a=()=>t?typeof t=="string"?t:o("plugins.free-form.datakit.flow_editor.node_properties.errors.invalid_url_format"):"Invalid URL format";try{new URL(i);return}catch{return a()}}default:return}}}function UO(e=0,t=1/0,o){const{i18n:{t:r}}=xe();return function(a){if(a!=null&&typeof a=="string"&&(a.length<e||a.length>t))return o?typeof o=="string"?o:r("plugins.free-form.datakit.flow_editor.node_properties.errors.string_len_range",{fieldName:o.fieldName,minLength:e,maxLength:t}):`Value must be between ${e} and ${t} characters`}}function tp(e){const{i18n:{t}}=xe();return function(r){if(!LO(r))return e?typeof e=="string"?e:t("plugins.free-form.datakit.flow_editor.node_properties.errors.not_number",e):"Value must be a number"}}function np(e,t){const{i18n:{t:o}}=xe();return function(i){if(i==null)return;const a=tp(t)(i);if(a)return a;const l=Number(i);switch(e){case"float":{const s=()=>t?typeof t=="string"?t:o("plugins.free-form.datakit.flow_editor.node_properties.errors.not_float",t):"Invalid float format";return Number.isFinite(l)?void 0:s()}case"integer":{const s=()=>t?typeof t=="string"?t:o("plugins.free-form.datakit.flow_editor.node_properties.errors.not_integer",t):"Invalid integer format";return Number.isInteger(l)?void 0:s()}default:return}}}function op(e=-1/0,t=1/0,o){const{i18n:{t:r}}=xe();return function(a){if(a==null)return;const l=tp(o)(a);if(l)return l;const s=Number(a);if(s<e||s>t)return o?typeof o=="string"?o:r("plugins.free-form.datakit.flow_editor.node_properties.errors.number_range",{fieldName:o.fieldName,min:e,max:t}):`Value must be between ${e} and ${t}`}}function KO(e,t){const{state:o}=rt(),{i18n:{t:r}}=xe();return function(a){if(o.value.nodes.some(l=>l.name===a&&l.id!==e))return t?typeof t=="string"?t:r("plugins.free-form.datakit.flow_editor.node_properties.errors.not_unique",t):"Name must be unique."}}function jO(e,t,o){const{i18n:{t:r}}=xe();return function(a){if(!t)return;if(o?t.fields[e].some(s=>s.name===a&&s.id!==o):t.fields[e].some(s=>s.name===a)){const s=r(e==="input"?"plugins.free-form.datakit.flow_editor.node_properties.input_name.label":"plugins.free-form.datakit.flow_editor.node_properties.output_value.value_name");return r("plugins.free-form.datakit.flow_editor.node_properties.errors.not_unique",{fieldName:s})}}}function rp(e){const{i18n:{t}}=xe(),o={fieldName:t("plugins.free-form.datakit.flow_editor.node_properties.name")};return Wn(Xn(o),Cl("identifier",o),KO(e,o))}function GO(e){const{i18n:{t}}=xe(),{getNodeById:o}=rt();return function(i,a,l){const s={fieldName:t(i==="input"?"plugins.free-form.datakit.flow_editor.node_properties.input_name.label":"plugins.free-form.datakit.flow_editor.node_properties.output_value.value_name")};return Wn(Xn(s),Cl("identifier",s),jO(i,o(e),l))(a)}}function qO(e){const t=n.ref({}),o=n.computed(()=>Object.values(t.value).every(l=>!l)),r={};Object.keys(e).forEach(l=>{const s=e[l],c=u=>{const p=typeof u=="function"?u():u,m=s(p);return t.value[l]=m,m},d=()=>{t.value[l]=void 0},f=u=>(d(),c(u));r[l]={handleChange:f,handleBlur:f,validate:f,isValid:n.computed(()=>t.value[l]===void 0),error:n.computed(()=>t.value[l])}});function i(){t.value={}}function a(l){var s;for(const c of Object.keys(e)){const d=l[c],f=typeof d=="function"?d():d;(s=r[c])==null||s.validate(f)}return t.value}return{isValid:o,errorMap:t,fields:r,clearErrors:i,validate:a}}function bi(e){const{validationConfig:t,getValidationData:o,skipValidationOnMount:r,toggleNodeValid:i}=e,a=n.computed(()=>typeof t=="function"?t():t),l=n.computed(()=>qO(a.value)),s=n.computed(()=>l.value.fields),c=n.computed(()=>l.value.isValid.value);function d(){const u=o(),p=l.value.validate(u),m={};for(const g in a.value)m[g]=p[g];return m}function f(u,p){return{onBlur:()=>{const m=o(),g=s.value[u];g&&g.handleBlur(m[u])},onUpdate:()=>{const m=o(),g=s.value[u];g&&g.handleChange(m[u]),p==null||p()},error:n.computed(()=>{const m=s.value[u];return m?!m.isValid.value:!1}),errorMessage:n.computed(()=>{const m=s.value[u];return m?m.error.value??"":""})}}return n.onMounted(()=>{r!=null&&r.value||d()}),n.onBeforeUnmount(async()=>{try{const u=d(),p=Object.values(u).filter(Boolean).length>0;i(!p)}catch{}}),n.watch(()=>c.value,i,{immediate:!0}),{fields:s.value,isValid:c,validateAll:d,createFieldHandler:f}}function wn(e,t){const{state:o,renameNode:r,getNodeById:i,addField:a,renameField:l,removeField:s,replaceConfig:c,disconnectEdge:d,connectEdge:f,newCreatedNodeId:u,invalidConfigNodeIds:p}=rt();let m=!1;n.watch(o,async()=>{m=!0,await n.nextTick(),m=!1},{immediate:!0,deep:!0}),console.log("state",o.value),window.store=rt();const g=n.computed(()=>{const L=i(e);if(!L)throw new Error("Node not existed");return L}),_=n.computed(()=>{const F=o.value.edges.filter(B=>B.target===e).reduce((B,$)=>{var ne,z;const G=i($.source),ee=(ne=an(G,"output",$.sourceField))==null?void 0:ne.id,re=(z=an(g.value,"input",$.targetField))==null?void 0:z.name,J=G.id+(ee?`.${ee}`:"");return re?B.inputs={...B.inputs,[re]:J}:B.input=J,B},{});return g.value.fields.input.forEach(B=>{F.inputs||(F.inputs={}),F.inputs[B.name]||(F.inputs[B.name]=null)}),{...g.value.config,...F,name:g.value.name}}),h=L=>{r(e,L??"",!0,`${e}:rename`)},b=(L,F=!0)=>{if(m)return;if(!t)throw new Error("getFormInnerData is not defined");const B=hc(t(),["name","input","inputs"]),$=L?`update:${e}:${L}`:void 0;c(e,B,F,$)},w=(L,F)=>{const B=Dn(g.value,L,F);if(!B)throw new Error(`Field with name "${F}" not found in node "${g.value.name}"`);return B},y=(L,F,B)=>{const $=!!B;a(e,L,F,!$),$&&O(F,B)},v=(L,F,B)=>{if(m)return;const $=w(L,F).id;l(e,$,B)},k=(L,F)=>{const B=w(L,F).id;s(e,B)},E=n.computed(()=>o.value.edges.filter(L=>L.target===e&&!L.targetField)[0]),R=n.computed(()=>o.value.edges.filter(L=>L.target===e&&L.targetField)),O=(L,F)=>{if(m)return;const B=F==null,$=w("input",L).id;if(B){const ne=R.value.find(z=>z.targetField===$);ne&&d(ne.id,!0);return}E.value&&d(E.value.id,!1);const G=R.value.find(ne=>ne.targetField===$);G&&d(G.id,!1);const{nodeId:ee,fieldId:re}=Kc(F),J=w("input",L).id;f({source:ee,sourceField:re,target:e,targetField:J})},T=(L,F=!0)=>{if(m)return;const B=L==null;for(const ee of[...R.value,E.value].filter(Boolean))d(ee.id,F&&B);if(B)return;const{nodeId:$,fieldId:G}=Kc(L);f({source:$,sourceField:G,target:e,targetField:void 0},F)},q=L=>{const F=[...o.value.edges,{source:L,target:e}];return ba(Er(F))},j=n.computed(()=>{var F,B;const L=[];for(const $ of o.value.nodes)if((F=ya($.type).io)!=null&&F.output&&$.fields.output&&$.id!==e&&!($.type==="property"&&!El((B=$.config)==null?void 0:B.property))&&!q($.id)){L.push({value:$.id,label:$.name});for(const ee of $.fields.output)L.push({value:`${$.id}.${ee.id}`,label:`${$.name}.${ee.name}`})}return L}),A=n.computed(()=>g.value.fields.input.map(L=>L.name)||[]),I=n.computed(()=>u.value===e);function C(L){p.value.delete(e),L||p.value.add(e)}const D=GO(e);function P(L,F,B){const $=i(e);if(!$)throw new Error("Node not found when validating field name");const G=Dn($,L,F);return D(L,B,G==null?void 0:G.id)}return{formData:_,inputOptions:j,inputEdge:E,inputsEdges:R,inputsFieldNames:A,skipValidationOnMount:I,currentNode:g,setName:h,setConfig:b,addField:y,renameFieldByName:v,removeFieldByName:k,setInputs:O,setInput:T,nameValidator:rp(e),fieldNameValidator:P,toggleNodeValid:C}}function En(e){const{getSchema:t}=Ve();return n.computed(()=>{if(Bt(e))switch(e){case"response":return FO;case"service_request":return MO}try{const l=t().fields[0].config.fields[0].nodes.elements.subschema_definitions[e];if(!l)throw new Error(`Subschema "${e}" not found in the schema.`);return l}catch(o){throw new Error(`Failed to get subschema "${e}": ${o.message}`)}})}const wi=n.defineComponent({__name:"NameField",props:{name:{},validate:{type:Function}},emits:["update"],setup(e,{emit:t}){const o=e,r=t,{i18n:{t:i}}=xe(),a=n.ref(o.name),l=n.computed(()=>{const f=o.validate(a.value.trim());return f===void 0?"":f});let s=a.value.trim();function c(){if(l.value){a.value=s;return}r("update",a.value.trim())}function d(){s=a.value.trim()}return n.watch(()=>o.name,f=>{f!==a.value&&(a.value=f)}),(f,u)=>{const p=n.resolveComponent("KInput");return n.openBlock(),n.createBlock(p,{"model-value":a.value,"onUpdate:modelValue":u[0]||(u[0]=m=>a.value=m),"data-1p-ignore":"",error:!!l.value,"error-message":l.value,label:n.unref(i)("plugins.free-form.datakit.flow_editor.node_properties.name"),required:"",onChange:c,onFocus:d},null,8,["model-value","error","error-message","label"])}}}),zO=n.defineComponent({__name:"NodeFormCall",props:{nodeId:{}},setup(e){const{i18n:{t}}=xe(),o=n.useTemplateRef("form"),r=En("call"),{formData:i,setName:a,setConfig:l,inputOptions:s,setInputs:c,setInput:d,inputsFieldNames:f,nameValidator:u,skipValidationOnMount:p,toggleNodeValid:m,fieldNameValidator:g}=wn(e.nodeId,()=>o.value.getInnerData()),{createFieldHandler:_}=bi({validationConfig:{url:Wn(Xn({fieldName:"URL"}),Cl("url",{fieldName:"URL"})),timeout:Wn(np("integer",{fieldName:t("plugins.free-form.datakit.flow_editor.node_properties.timeout.label")}),op(0,2147483646,{fieldName:t("plugins.free-form.datakit.flow_editor.node_properties.timeout.label")}))},getValidationData:()=>({url:i.value.url,timeout:i.value.timeout}),skipValidationOnMount:p,toggleNodeValid:m}),h=_("url",()=>l("url")),b=_("timeout",()=>l("timeout"));return(w,y)=>{const v=n.resolveComponent("KLabel");return n.openBlock(),n.createBlock(mt,{ref:"form",data:n.unref(i),schema:n.unref(r)},{default:n.withCtx(()=>[n.createVNode(wi,{name:n.unref(i).name,validate:n.unref(u),onUpdate:n.unref(a)},null,8,["name","validate","onUpdate"]),n.createVNode(v,{class:"dk-node-configuration-label"},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(t)("plugins.free-form.datakit.flow_editor.node_properties.Configuration")),1)]),_:1}),n.createVNode(Bn,{error:n.unref(h).error.value,"error-message":n.unref(h).errorMessage.value,name:"url",onBlur:n.unref(h).onBlur,"onUpdate:modelValue":n.unref(h).onUpdate},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),n.createVNode(PO,{name:"method","onUpdate:modelValue":y[0]||(y[0]=k=>n.unref(l)())}),n.createVNode(Vn,{error:n.unref(b).error.value,"error-message":n.unref(b).errorMessage.value,label:n.unref(t)("plugins.free-form.datakit.flow_editor.node_properties.timeout.label"),name:"timeout",onBlur:n.unref(b).onBlur,"onUpdate:modelValue":n.unref(b).onUpdate},null,8,["error","error-message","label","onBlur","onUpdate:modelValue"]),n.createVNode(Bn,{name:"ssl_server_name","onUpdate:modelValue":y[1]||(y[1]=k=>n.unref(l)("ssl_server_name"))}),n.createVNode(Yn,{"field-name-validator":n.unref(g),"field-names":n.unref(f),items:n.unref(s),"onChange:input":n.unref(d),"onChange:inputs":n.unref(c)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"])}}}),HO=n.defineComponent({__name:"NodeFormServiceRequest",props:{nodeId:{}},setup(e){const t=n.useTemplateRef("form"),o=En("service_request"),{formData:r,inputOptions:i,setInputs:a,setInput:l,inputsFieldNames:s,fieldNameValidator:c}=wn(e.nodeId,()=>t.value.getInnerData());return(d,f)=>(n.openBlock(),n.createBlock(mt,{ref:"form",data:n.unref(r),schema:n.unref(o)},{default:n.withCtx(()=>[n.createVNode(Yn,{"field-name-validator":n.unref(c),"field-names":n.unref(s),items:n.unref(i),"onChange:input":n.unref(l),"onChange:inputs":n.unref(a)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),YO=n.defineComponent({__name:"NodeFormResponse",props:{nodeId:{}},setup(e){const t=n.useTemplateRef("form"),o=En("response"),{formData:r,inputOptions:i,setInputs:a,setInput:l,inputsFieldNames:s,fieldNameValidator:c}=wn(e.nodeId,()=>t.value.getInnerData());return(d,f)=>(n.openBlock(),n.createBlock(mt,{ref:"form",data:n.unref(r),schema:n.unref(o)},{default:n.withCtx(()=>[n.createVNode(Yn,{"field-name-validator":n.unref(c),"field-names":n.unref(s),items:n.unref(i),"onChange:input":n.unref(l),"onChange:inputs":n.unref(a)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),WO=n.defineComponent({__name:"NodeFormJq",props:{nodeId:{}},setup(e){const{i18n:{t}}=xe(),o=n.useTemplateRef("form"),r=En("jq"),{formData:i,setName:a,setConfig:l,inputOptions:s,setInputs:c,setInput:d,addField:f,removeFieldByName:u,renameFieldByName:p,inputsFieldNames:m,nameValidator:g,skipValidationOnMount:_,toggleNodeValid:h,fieldNameValidator:b}=wn(e.nodeId,()=>o.value.getInnerData());function w(O,T){f("input",O,T)}function y(O){u("input",O)}function v(O,T){p("input",O,T)}const k=t("plugins.free-form.datakit.flow_editor.node_properties.jq.label"),{createFieldHandler:E}=bi({validationConfig:{jq:Wn(Xn({fieldName:k}),UO(1,10240,{fieldName:k}))},getValidationData:()=>({jq:i.value.jq}),skipValidationOnMount:_,toggleNodeValid:h}),R=E("jq",()=>l("jq"));return(O,T)=>{const q=n.resolveComponent("KLabel");return n.openBlock(),n.createBlock(mt,{ref:"form",data:n.unref(i),schema:n.unref(r)},{default:n.withCtx(()=>[n.createVNode(wi,{name:n.unref(i).name,validate:n.unref(g),onUpdate:n.unref(a)},null,8,["name","validate","onUpdate"]),n.createVNode(q,{class:"dk-node-configuration-label"},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(t)("plugins.free-form.datakit.flow_editor.node_properties.Configuration")),1)]),_:1}),n.createVNode(Bn,{error:n.unref(R).error.value,help:n.unref(R).errorMessage.value,label:n.unref(k),multiline:"",name:"jq",resizable:"",rows:"2",onBlur:n.unref(R).onBlur,"onUpdate:modelValue":n.unref(R).onUpdate},null,8,["error","help","label","onBlur","onUpdate:modelValue"]),n.createVNode(Yn,{"field-name-validator":n.unref(b),"field-names":n.unref(m),items:n.unref(s),"onAdd:field":w,"onChange:input":n.unref(d),"onChange:inputs":n.unref(c),"onRemove:field":y,"onRename:field":v},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"])}}}),XO=we(n.defineComponent({__name:"OutputValueField",props:{fieldNameValidator:{},name:{},initialValue:{},label:{},keyPlaceholder:{},valuePlaceholder:{},defaultKey:{},defaultValue:{},labelAttributes:{},showVaultSecretPicker:{type:Boolean},keyOrder:{}},emits:["change:value","add:field","rename:field","remove:field","change"],setup(e,{emit:t}){const o=e,r=t,i=n.ref({}),{entries:a,addEntry:l,removeEntry:s,field:c}=ua(o,r,!1),{i18n:d}=xe(),f=n.useTemplateRef("root"),u=n.ref(null);let p;async function m(k,E="key"){var R;f.value&&(await n.nextTick(),(R=f.value.querySelector(`[data-${E}-input="${k}"]`))==null||R.focus())}function g(){const k=l(),E=a.value.findIndex(({key:R})=>!R);m(E===-1?a.value.length-1:E),u.value=k}function _(k){var E;k.id===((E=u.value)==null?void 0:E.id)&&(u.value=null),s(k.id),k.key.trim()!==""&&r("remove:field",k.key)}function h(k){p=k.key}function b(k){var E;if(y(k)){k.key=p,delete i.value[k.id];return}if(k.id===((E=u.value)==null?void 0:E.id)){if(k.key.trim()==="")return;u.value=null,r("add:field",k.key,k.value)}else r("rename:field",p,k.key);p=k.key}function w(k,E){var O;if(E.id===((O=u.value)==null?void 0:O.id))return;const R=k.target.value.trim();r("change:value",E.key,R)}function y(k){delete i.value[k.id];const E=o.fieldNameValidator("output",p,k.key);if(E)return i.value[k.id]=E,E}function v(k){y(k)}return n.watchEffect(()=>{u.value&&!a.value.some(k=>k.id===u.value.id)&&a.value.push(u.value)}),(k,E)=>{const R=n.resolveComponent("KAlert"),O=n.resolveComponent("KLabel"),T=n.resolveComponent("KButton"),q=n.resolveComponent("KInput"),j=n.resolveComponent("KCard");return n.unref(c).error?(n.openBlock(),n.createBlock(R,{key:0,appearance:"danger",message:n.unref(c).error.message},null,8,["message"])):(n.openBlock(),n.createElementBlock("div",{key:1,ref_key:"root",ref:f,class:"dk-output-value-field"},[n.createVNode(O,{class:"dk-node-configuration-label"},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(d).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.label")),1)]),_:1}),(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(a),(A,I)=>(n.openBlock(),n.createBlock(j,{key:A.id,class:"dk-output-value-field-entry","data-testid":`ff-kv-container-${n.unref(c).path.value}.${I}`},{actions:n.withCtx(()=>[n.createVNode(T,{appearance:"none","data-testid":`ff-kv-remove-btn-${n.unref(c).path.value}.${I}`,icon:"",onClick:C=>_(A)},{default:n.withCtx(()=>[n.createVNode(n.unref(Ee.CloseIcon))]),_:2},1032,["data-testid","onClick"])]),default:n.withCtx(()=>[n.createVNode(q,{id:`ff-kv-entry-key-${n.unref(c).path.value}.${I}`,modelValue:A.key,"onUpdate:modelValue":[C=>A.key=C,C=>y(A)],modelModifiers:{trim:!0},class:"ff-kv-field-entry-key","data-key-input":I,"data-testid":`ff-key-${n.unref(c).path.value}.${I}`,error:!!i.value[A.id],"error-message":i.value[A.id],label:n.unref(d).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.value_name"),required:"",onBlur:C=>v(A),onChange:C=>b(A),onFocus:C=>h(A)},null,8,["id","modelValue","onUpdate:modelValue","data-key-input","data-testid","error","error-message","label","onBlur","onChange","onFocus"]),n.createVNode(q,{modelValue:A.value,"onUpdate:modelValue":C=>A.value=C,modelModifiers:{trim:!0},class:"ff-kv-field-entry-value","data-testid":`ff-value-${n.unref(c).path.value}.${I}`,label:n.unref(d).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.value"),onChange:C=>w(C,A)},null,8,["modelValue","onUpdate:modelValue","data-testid","label","onChange"])]),_:2},1032,["data-testid"]))),128)),n.createVNode(T,{appearance:"tertiary","data-testid":`ff-kv-add-btn-${n.unref(c).path.value}`,disabled:!!u.value,onClick:g},{default:n.withCtx(()=>[n.createVNode(n.unref(Ee.AddIcon)),n.createTextVNode(" "+n.toDisplayString(n.unref(d).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.add_button")),1)]),_:1},8,["data-testid","disabled"])],512))}}}),[["__scopeId","data-v-9f3f9fea"]]);function ZO(e){const t={};for(const[o,r]of Object.entries(e))typeof r=="object"&&r!==null?t[o]=JSON.stringify(r):t[o]=String(r);return t}function Ei(e){const t={};for(const[o,r]of Object.entries(e))if(r!=null){t[o]=r;try{r==="null"?t[o]=null:(r==="true"||r==="false"||/^-?\d+(\.\d+)?$/.test(r)||r.startsWith("{")&&r.endsWith("}")||r.startsWith("[")&&r.endsWith("]"))&&(t[o]=JSON.parse(r))}catch{}}return t}function JO(e,t,o){const r={};for(const i of Object.keys(e))i===t?r[o]=e[t]:r[i]=e[i];return r}const QO=n.defineComponent({__name:"NodeFormStatic",props:{nodeId:{}},setup(e){const{renameNode:t,getOutEdgesByNodeId:o,addField:r,renameField:i,removeField:a,replaceConfig:l,getNodeById:s}=rt(),{fieldNameValidator:c}=wn(e.nodeId),d=En("static"),f=rp(e.nodeId),u=n.computed(()=>s(e.nodeId)),p=n.computed(()=>{var y;return((y=u.value)==null?void 0:y.fields.output.map(v=>v.name))||[]});function m(y){if(!u.value)throw new Error("No current node");t(u.value.id,y??"")}const g=n.computed(()=>{var O;if(!u.value)return{};const y=((O=u.value.config)==null?void 0:O.values)??{},v={},k=o(u.value.id).map(T=>T.sourceField).filter(Boolean).map(T=>an(u.value,"output",T)).map(T=>T==null?void 0:T.name).filter(Boolean),E=u.value.fields.output.map(T=>T.name);return new Set([...k,...E]).forEach(T=>{if(T in y){v[T]=y[T];return}v[T]=""}),{name:u.value.name,values:ZO(v)}});function _(y,v){if(!u.value)throw new Error("No selected node");if(r(e.nodeId,"output",y,!v),v){const k={values:Ei({...g.value.values,[y]:v})};l(e.nodeId,k)}}function h(y,v){if(!u.value)throw new Error("No selected node");const k=Dn(u.value,"output",y);if(!k)throw new Error("No field found to rename");const E={values:Ei(JO(g.value.values??{},y,v))};l(e.nodeId,E,!1),i(e.nodeId,k.id,v)}function b(y){var E;if(!u.value)throw new Error("No selected node");const v=Dn(u.value,"output",y);if(!v)throw new Error("No field found to delete");a((E=u.value)==null?void 0:E.id,v.id,!0,!1);const k={values:Ei({...g.value.values})};delete k.values[y],l(e.nodeId,k)}function w(y,v){if(!u.value)throw new Error("No selected node");const k={...g.value.values};k[y]=v;const E={values:Ei(k)};l(e.nodeId,E)}return(y,v)=>{const k=n.resolveComponent("NameField");return n.openBlock(),n.createBlock(mt,{ref:"form",data:g.value,schema:n.unref(d)},{default:n.withCtx(()=>{var E;return[n.createVNode(k,{name:((E=u.value)==null?void 0:E.name)??"",validate:n.unref(f),onUpdate:m},null,8,["name","validate"]),n.createVNode(XO,{"field-name-validator":n.unref(c),"key-order":p.value,name:"values","onAdd:field":_,"onChange:value":w,"onRemove:field":b,"onRename:field":h},null,8,["field-name-validator","key-order"])]}),_:1},8,["data","schema"])}}}),e$={class:"dk-kong-property-item"},t$={class:"property-type"},n$={class:"property-badges"},o$=we(n.defineComponent({__name:"PropertiesField",props:{validators:{}},emits:["update:model-value","update:property-key"],setup(e,{emit:t}){const{i18n:{t:o}}=xe(),r=e,i=t,{formData:a}=Ve(),l=n.ref(Do(a.property)),s=n.computed(()=>Mo(a.property)),c=n.ref(wl(a.property)),d=n.computed(()=>a.property??""),f=n.computed(()=>Object.entries(bn).map(([m])=>{var h;const g=Mo(m)?(h=a.property)==null?void 0:h.startsWith(m.replace(Hn,"")):a.property===m;return{label:g&&c.value?m.replace(Hn,c.value):m,value:m,selected:g}}));function u(m){const g=_i.find(_=>{var h;return(h=a.property)==null?void 0:h.startsWith(_)});g&&(a.property=g+m,r.validators.key.handleChange(a.property),i("update:property-key",a.property))}function p(m){l.value!==Do(m==null?void 0:m.value)&&(a.property=(m==null?void 0:m.value)||null,l.value=Do(a.property),r.validators.property.handleBlur(()=>a.property),i("update:model-value",a.property))}return n.watch(()=>a.property,m=>{c.value=wl(m),l.value=Do(m)}),(m,g)=>{const _=n.resolveComponent("KBadge"),h=n.resolveComponent("KSelect"),b=n.resolveComponent("KInput");return n.openBlock(),n.createElementBlock(n.Fragment,null,[(n.openBlock(),n.createBlock(h,{key:d.value,"enable-filtering":"",error:!m.validators.property.isValid.value,help:m.validators.property.error.value,items:f.value,label:"Property","label-attributes":{maxWidth:"300px",placement:"top",info:"The property name to get/set"},required:"",onBlur:g[0]||(g[0]=w=>m.validators.property.handleBlur(()=>n.unref(a).property)),onChange:p},{"item-template":n.withCtx(({item:w})=>[n.createElementVNode("div",e$,[n.createElementVNode("div",null,[n.createElementVNode("div",null,n.toDisplayString(w.label),1),n.createElementVNode("div",t$,n.toDisplayString(n.unref(bn)[w.value].dataType),1)]),n.createElementVNode("div",n$,[n.unref(bn)[w.value].readable?(n.openBlock(),n.createBlock(_,{key:0,appearance:"info"},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(o)("plugins.free-form.datakit.flow_editor.node_properties.property.get")),1)]),_:1})):n.createCommentVNode("",!0),n.unref(bn)[w.value].writable?(n.openBlock(),n.createBlock(_,{key:1,appearance:"warning"},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(o)("plugins.free-form.datakit.flow_editor.node_properties.property.set")),1)]),_:1})):n.createCommentVNode("",!0)])])]),_:1},8,["error","help","items"])),s.value?(n.openBlock(),n.createBlock(b,{key:0,"model-value":c.value,"onUpdate:modelValue":[g[1]||(g[1]=w=>c.value=w),u],error:!m.validators.key.isValid.value,"error-message":m.validators.key.error.value,label:"key",required:"",onBlur:g[2]||(g[2]=w=>m.validators.key.handleBlur(()=>n.unref(a).property))},null,8,["model-value","error","error-message"])):n.createCommentVNode("",!0)],64)}}}),[["__scopeId","data-v-0ab1be87"]]),r$=n.defineComponent({__name:"NodeFormProperty",props:{nodeId:{}},setup(e){const t=n.useTemplateRef("form"),{selectedNode:o,disconnectInEdges:r,disconnectOutEdges:i}=rt(),a=En("property"),{formData:l,setName:s,setConfig:c,inputOptions:d,setInputs:f,setInput:u,inputsFieldNames:p,nameValidator:m,toggleNodeValid:g,skipValidationOnMount:_,fieldNameValidator:h}=wn(e.nodeId,()=>t.value.getInnerData()),b=n.computed(()=>kl(l.value.property));function w(v){var E;const k=(E=o.value)==null?void 0:E.id;if(!k)throw new Error("Expected selectedNode to be defined");El(v)||i(k,!1),kl(v)||r(k,!1),c()}const{fields:y}=bi({validationConfig:()=>({property:Xn({fieldName:"Property"}),key:Mo(l.value.property)?Xn({fieldName:"Key"}):()=>{}}),getValidationData:()=>({property:l.value.property,key:wl(l.value.property)}),skipValidationOnMount:_,toggleNodeValid:g});return(v,k)=>(n.openBlock(),n.createBlock(mt,{ref:"form",data:n.unref(l),schema:n.unref(a)},{default:n.withCtx(()=>[n.createVNode(wi,{name:n.unref(l).name,validate:n.unref(m),onUpdate:n.unref(s)},null,8,["name","validate","onUpdate"]),n.createVNode(Et,{name:"content_type","onUpdate:modelValue":n.unref(c)},null,8,["onUpdate:modelValue"]),n.createVNode(o$,{validators:n.unref(y),"onUpdate:modelValue":w,"onUpdate:propertyKey":k[0]||(k[0]=E=>n.unref(c)("property-key"))},null,8,["validators"]),b.value?(n.openBlock(),n.createBlock(Yn,{key:0,"field-name-validator":n.unref(h),"field-names":n.unref(p),items:n.unref(d),"onChange:input":n.unref(u),"onChange:inputs":n.unref(f)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])):n.createCommentVNode("",!0)]),_:1},8,["data","schema"]))}}),i$=n.defineComponent({__name:"NodeFormExit",props:{nodeId:{}},setup(e){const t=n.useTemplateRef("form"),o=En("exit"),{formData:r,setName:i,setConfig:a,inputOptions:l,setInputs:s,setInput:c,inputsFieldNames:d,nameValidator:f,toggleNodeValid:u,skipValidationOnMount:p,fieldNameValidator:m}=wn(e.nodeId,()=>t.value.getInnerData()),{createFieldHandler:g}=bi({validationConfig:{status:Wn(np("integer",{fieldName:"Status"}),op(200,255,{fieldName:"Status"}))},getValidationData:()=>({status:r.value.status}),skipValidationOnMount:p,toggleNodeValid:u}),_=g("status",()=>a("status"));return(h,b)=>(n.openBlock(),n.createBlock(mt,{ref:"form",data:n.unref(r),schema:n.unref(o)},{default:n.withCtx(()=>[n.createVNode(wi,{name:n.unref(r).name,validate:n.unref(f),onUpdate:n.unref(i)},null,8,["name","validate","onUpdate"]),n.createVNode(Vn,{error:n.unref(_).error.value,"error-message":n.unref(_).errorMessage.value,name:"status",onBlur:n.unref(_).onBlur,"onUpdate:modelValue":n.unref(_).onUpdate},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),n.createVNode(da,{name:"warn_headers_sent","onUpdate:modelValue":b[0]||(b[0]=w=>n.unref(a)())}),n.createVNode(Yn,{"field-name-validator":n.unref(m),"field-names":n.unref(d),items:n.unref(l),"onChange:input":n.unref(c),"onChange:inputs":n.unref(s)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),a$=["innerHTML"],l$=we(n.defineComponent({__name:"NodePropertiesPanel",props:{maxWidth:{default:()=>fk},offsetTop:{default:()=>pk},visible:{type:Boolean},nodeId:{}},emits:["close"],setup(e){const{getNodeById:t}=rt(),o=n.computed(()=>e.nodeId&&t(e.nodeId)),r=n.computed(()=>{var i;switch((i=o.value)==null?void 0:i.type){case"call":return zO;case"service_request":return HO;case"response":return YO;case"jq":return WO;case"static":return QO;case"property":return r$;case"exit":return i$;default:return null}});return(i,a)=>(n.openBlock(),n.createBlock(n.unref(Ie.KSlideout),{class:"dk-node-properties-panel","close-on-blur":!1,"has-overlay":!1,"max-width":i.maxWidth,"offset-top":i.offsetTop,visible:i.visible,onClose:a[0]||(a[0]=l=>i.$emit("close"))},n.createSlots({default:n.withCtx(()=>[o.value?(n.openBlock(),n.createElementBlock("div",{key:0,class:"dk-node-properties-panel-desc",innerHTML:n.unref(kt)(o.value.type)},null,8,a$)):n.createCommentVNode("",!0),r.value?(n.openBlock(),n.createBlock(n.unref(r),{key:i.nodeId,class:"dk-node-properties-panel-form","node-id":i.nodeId},null,8,["node-id"])):n.createCommentVNode("",!0)]),_:2},[o.value?{name:"title",fn:n.withCtx(()=>[n.createVNode(Jf,{type:o.value.type},null,8,["type"])]),key:"0"}:void 0]),1032,["max-width","offset-top","visible"]))}}),[["__scopeId","data-v-1bb64727"]]),s$={class:"dk-editor-content"},c$={class:"header"},d$={class:"title"},u$={class:"body"},f$={class:"node-selection-panel"},p$={class:"main"},m$=we(n.defineComponent({__name:"EditorContent",setup(e){const{t}=Re.createI18n("en-us",je),{sidePanelExpanded:o}=wa(),{propertiesPanelOpen:r,selectedNode:i,newCreatedNodeId:a}=rt();function l(){r.value=!1,a.value=null}return n.watch(i,s=>{s||l(),(!s||s.id!==a.value)&&(a.value=null)}),(s,c)=>{var d;return n.openBlock(),n.createElementBlock("div",s$,[n.createElementVNode("aside",{class:n.normalizeClass(["side-panel",{expanded:n.unref(o)}])},[n.createElementVNode("header",c$,[n.createElementVNode("h2",d$,n.toDisplayString(n.unref(t)("plugins.free-form.datakit.flow_editor.name")),1)]),n.createElementVNode("div",u$,[n.createElementVNode("div",f$,[n.createVNode(IO)])])],2),n.createElementVNode("div",p$,[n.createVNode(wO)]),n.createVNode(l$,{"node-id":(d=n.unref(i))==null?void 0:d.id,visible:n.unref(r),onClose:l},null,8,["node-id","visible"])])}}}),[["__scopeId","data-v-0e99b201"]]),g$=we(n.defineComponent({__name:"EditorModal",props:{open:{type:Boolean},openModifiers:{}},emits:["update:open"],setup(e){n.useCssVars(c=>({d8114238:n.unref(uk),16852710:n.unref(dk)}));const t=n.useTemplateRef("modal"),o=n.useModel(e,"open"),r=n.useTemplateRef("content"),i=Je.useScrollLock(document),{activate:a,deactivate:l}=ck(t,{returnFocusOnDeactivate:!0,initialFocus:()=>{var c;return(c=r.value)==null?void 0:c.$el}});n.watch(o,async c=>{i.value=!!c,await n.nextTick(),c?a():l()},{immediate:!0});function s(){o.value=!1}return(c,d)=>o.value?(n.openBlock(),n.createElementBlock("div",{key:0,ref_key:"modal",ref:t,class:"dk-editor-modal"},[n.createVNode(_k,{class:"nav",onBack:s}),n.createVNode(m$,{ref_key:"content",ref:r,class:"content",tabindex:"0"},null,512)],512)):n.createCommentVNode("",!0)}}),[["__scopeId","data-v-e38cc292"]]),h$={class:"dk-flow-editor"},y$={class:"field"},_$=we(n.defineComponent({__name:"FlowEditor",props:{editing:{type:Boolean},config:{}},emits:["change","error"],setup(e,{emit:t}){var l;const{t:o}=Re.createI18n("en-us",je),r=t;function i(s){r("change",{...e.config,...s})}const{modalOpen:a}=TE(((l=e.config)==null?void 0:l.nodes)??[],[],{onChange:i});return(s,c)=>{const d=n.resolveComponent("KButton");return n.openBlock(),n.createElementBlock("div",h$,[n.createVNode(d,{appearance:"secondary",onClick:c[0]||(c[0]=f=>a.value=!0)},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(o)("plugins.free-form.datakit.flow_editor.cta")),1)]),_:1}),n.createVNode(g$,{open:n.unref(a),"onUpdate:open":c[1]||(c[1]=f=>n.isRef(a)?a.value=f:null)},null,8,["open"]),n.createElementVNode("div",y$,[n.createVNode(da,{name:"config.debug"})])])}}}),[["__scopeId","data-v-dad48070"]]);/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function ip(e){return typeof e>"u"||e===null}function b$(e){return typeof e=="object"&&e!==null}function w$(e){return Array.isArray(e)?e:ip(e)?[]:[e]}function E$(e,t){var o,r,i,a;if(t)for(a=Object.keys(t),o=0,r=a.length;o<r;o+=1)i=a[o],e[i]=t[i];return e}function k$(e,t){var o="",r;for(r=0;r<t;r+=1)o+=e;return o}function C$(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}var v$=ip,N$=b$,S$=w$,x$=k$,A$=C$,T$=E$,qe={isNothing:v$,isObject:N$,toArray:S$,repeat:x$,isNegativeZero:A$,extend:T$};function ap(e,t){var o="",r=e.reason||"(unknown reason)";return e.mark?(e.mark.name&&(o+='in "'+e.mark.name+'" '),o+="("+(e.mark.line+1)+":"+(e.mark.column+1)+")",!t&&e.mark.snippet&&(o+=`
46
46
 
47
47
  `+e.mark.snippet),r+" "+o):r}function Fo(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=ap(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Fo.prototype=Object.create(Error.prototype),Fo.prototype.constructor=Fo,Fo.prototype.toString=function(t){return this.name+": "+ap(this,t)};var et=Fo;function vl(e,t,o,r,i){var a="",l="",s=Math.floor(i/2)-1;return r-t>s&&(a=" ... ",t=r-s+a.length),o-r>s&&(l=" ...",o=r+s-l.length),{str:a+e.slice(t,o).replace(/\t/g,"→")+l,pos:r-t+a.length}}function Nl(e,t){return qe.repeat(" ",t-e.length)+e}function I$(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),typeof t.indent!="number"&&(t.indent=1),typeof t.linesBefore!="number"&&(t.linesBefore=3),typeof t.linesAfter!="number"&&(t.linesAfter=2);for(var o=/\r?\n|\r|\0/g,r=[0],i=[],a,l=-1;a=o.exec(e.buffer);)i.push(a.index),r.push(a.index+a[0].length),e.position<=a.index&&l<0&&(l=r.length-2);l<0&&(l=r.length-1);var s="",c,d,f=Math.min(e.line+t.linesAfter,i.length).toString().length,u=t.maxLength-(t.indent+f+3);for(c=1;c<=t.linesBefore&&!(l-c<0);c++)d=vl(e.buffer,r[l-c],i[l-c],e.position-(r[l]-r[l-c]),u),s=qe.repeat(" ",t.indent)+Nl((e.line-c+1).toString(),f)+" | "+d.str+`
48
48
  `+s;for(d=vl(e.buffer,r[l],i[l],e.position,u),s+=qe.repeat(" ",t.indent)+Nl((e.line+1).toString(),f)+" | "+d.str+`
@@ -147,5 +147,5 @@ Edge: ${e}`,USEVUEFLOW_OPTIONS:()=>"The options parameter is deprecated and will
147
147
  type: exit
148
148
  input: API
149
149
  status: 200
150
- `},Symbol.toStringTag,{value:"Module"})),DV={class:"dk-code-editor"},MV={class:"examples-content"},FV={ref:"editor-root",class:"editor"},Fl="YAML Syntax",LV="datakit.insert-example",UV=we(n.defineComponent({__name:"CodeEditor",props:{editing:{type:Boolean},config:{}},emits:["change","error"],setup(e,{expose:t,emit:o}){const{t:r}=Re.createI18n("en-us",je),i=o,a=n.useTemplateRef("editor-root"),l=n.shallowRef(null);function s(c){const d=l.value,f=d==null?void 0:d.getModel();if(!d||!f)return;const u=sm[c];if(d.getValue()!==u){const p=f.getFullModelRange();d.pushUndoStop(),d.executeEdits(LV,[{range:p,text:u}]),d.pushUndoStop()}d.focus()}return n.onMounted(()=>{const c=Qo.editor.create(a.value,{language:"yaml",automaticLayout:!0,minimap:{enabled:!1},scrollBeyondLastLine:!1,tabSize:2,scrollbar:{alwaysConsumeMouseWheel:!1},autoIndent:"keep"});l.value=c,e.editing&&c.setValue(lm.dump(n.toRaw(e.config),{schema:Ml,noArrayIndent:!0})),c.onDidChangeModelContent(()=>{const d=c.getModel(),f=c.getValue()||"";try{const u=lm.load(f,{schema:Ml,json:!0});Qo.editor.setModelMarkers(d,Fl,[]),i("change",u)}catch(u){const{message:p,mark:m}=u,{line:g,column:_}=m||{line:0,column:0},h=p.split(`
151
- `)[0],b=[{startLineNumber:g+1,startColumn:_+1,endLineNumber:g+1,endColumn:_+2,message:h,severity:Qo.MarkerSeverity.Error,source:Fl}];Qo.editor.setModelMarkers(d,Fl,b),i("error",h)}})}),n.onBeforeUnmount(()=>{var c;(c=l.value)==null||c.dispose()}),t({setExampleCode:s}),(c,d)=>(n.openBlock(),n.createElementBlock("div",DV,[n.createVNode(n.unref(Ie.KAlert),{class:"examples"},{icon:n.withCtx(()=>[n.createVNode(n.unref(Ee.SparklesIcon))]),default:n.withCtx(()=>[n.createElementVNode("div",MV,[n.createTextVNode(n.toDisplayString(n.unref(r)("plugins.free-form.datakit.description_example"))+" ",1),(n.openBlock(),n.createElementBlock(n.Fragment,null,n.renderList(sm,(f,u)=>n.createVNode(n.unref(Ie.KButton),{key:u,appearance:"secondary",size:"small",onClick:p=>s(u)},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(r)(`plugins.free-form.datakit.examples.${u}`)),1)]),_:2},1032,["onClick"])),64))])]),_:1}),n.createElementVNode("div",FV,null,512)]))}}),[["__scopeId","data-v-a56a23de"]]),KV={key:0},jV={key:1},GV=["innerHTML"],qV=n.defineComponent({__name:"DatakitForm",props:{generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{},schema:{},formSchema:{},model:{},formModel:{},formOptions:{},isEditing:{type:Boolean},onModelUpdated:{type:Function},onFormChange:{type:Function},onValidityChange:{type:Function}},setup(e){const{t}=Re.createI18n("en-us",je),o=e,r=n.inject(os.DATAKIT_ENABLE_FLOW_EDITOR,!1),{editorMode:i}=wa(),a=n.computed(()=>r?i.value:"code"),l={flow:Ee.DesignIcon,code:Ee.CodeblockIcon},s=[{label:t("plugins.free-form.datakit.flow_editor.mode"),value:"flow"},{label:t("plugins.free-form.datakit.code_editor.mode"),value:"code"}],c=n.computed(()=>{switch(i.value){case"code":return t("plugins.free-form.datakit.description_code");case"flow":return t("plugins.free-form.datakit.description_flow");default:return""}}),d=n.ref({...o.model.config});function f(m){for(const g in m.config)g!=="nodes"&&(d.value[g]=m.config[g])}function u(m){var g;o.onFormChange({config:m}),(g=o.onValidityChange)==null||g.call(o,{model:"config",valid:!0}),d.value=m}function p(m){var g;(g=o.onValidityChange)==null||g.call(o,{model:"config",valid:!1,error:m})}return(m,g)=>(n.openBlock(),n.createBlock(hE,n.mergeProps(o,{class:"dk-form"}),n.createSlots({default:n.withCtx(_=>[n.createVNode(mt,n.mergeProps(_,{data:{config:d.value},tag:"div",onChange:f}),{default:n.withCtx(()=>[a.value==="flow"?(n.openBlock(),n.createElementBlock("div",KV,[n.createVNode(_$,{config:d.value,editing:o.isEditing,onChange:u},null,8,["config","editing"])])):a.value==="code"?(n.openBlock(),n.createElementBlock("div",jV,[n.createVNode(UV,{class:"code-editor",config:d.value,editing:o.isEditing,onChange:u,onError:p},null,8,["config","editing"])])):n.createCommentVNode("",!0)]),_:2},1040,["data"])]),"plugin-config-description":n.withCtx(()=>[n.createElementVNode("span",{innerHTML:c.value},null,8,GV)]),_:2},[n.unref(r)?{name:"plugin-config-extra",fn:n.withCtx(()=>[n.createVNode(n.unref(Ie.KSegmentedControl),{modelValue:n.unref(i),"onUpdate:modelValue":g[0]||(g[0]=_=>n.isRef(i)?i.value=_:null),options:s},{"option-label":n.withCtx(({option:_})=>[(n.openBlock(),n.createBlock(n.resolveDynamicComponent(l[_.value]))),n.createTextVNode(" "+n.toDisplayString(_.label),1)]),_:1},8,["modelValue"])]),key:"0"}:void 0]),1040))}}),cm=e=>{if(!(!e||typeof e!="object"))for(const[t,o]of Object.entries(e))typeof o=="string"&&(e[t]=o.split(/\s*,\s*/).filter(Boolean))},dm=e=>{if(!(!e||typeof e!="object"))for(const[t,o]of Object.entries(e))Array.isArray(o)&&(e[t]=o.join(", "))},zV=we(n.defineComponent({__name:"ConfigForm",props:{schema:{},data:{},onChange:{type:Function}},emits:["change"],setup(e,{emit:t}){const o=t,{i18n:{t:r}}=Oe.useI18n(),l={prepareFormData:c=>{var f,u;const d=Tn(c);return(u=(f=d.config)==null?void 0:f.tools)!=null&&u.length&&d.config.tools.forEach(p=>{dm(p.headers),dm(p.query)}),d},hasValue:c=>!!(c!=null&&c.config)},s=c=>{var f,u;const d=Tn(c);(u=(f=d.config)==null?void 0:f.tools)!=null&&u.length&&d.config.tools.forEach(p=>{cm(p.headers),cm(p.query)}),o("change",d)};return(c,d)=>(n.openBlock(),n.createBlock(mt,{class:"ai-mcp-config-form",config:l,data:c.data,schema:c.schema,tag:"div",onChange:s},{default:n.withCtx(()=>[n.createVNode(dt,{"as-child":"",name:"config","reset-label-path":"reset"},{tools:n.withCtx(({name:f})=>[n.createVNode(yr,{appearance:"tabs","item-label":(u,p)=>n.unref(r)("plugins.free-form.ai-mcp.tool_item_label",{index:p+1}),name:f,"sticky-tabs":""},null,8,["item-label","name"])]),_:1}),n.createVNode(fa)]),_:1},8,["data","schema"]))}}),[["__scopeId","data-v-7cb4b052"]]),um=Object.freeze(Object.defineProperty({__proto__:null,AIMcpForm:n.defineComponent({__name:"AIMcpForm",props:{schema:{},formSchema:{},model:{},formModel:{},formOptions:{},isEditing:{type:Boolean},onModelUpdated:{type:Function},onFormChange:{type:Function}},setup(e){const t=e,o=n.useSlots();return n.provide(ve.AUTOFILL_SLOT,o==null?void 0:o[ve.AUTOFILL_SLOT_NAME]),(r,i)=>(n.openBlock(),n.createBlock(pa,n.normalizeProps(n.guardReactiveProps(t)),{default:n.withCtx(a=>[n.createVNode(zV,n.normalizeProps(n.guardReactiveProps(a)),null,16)]),_:1},16))}}),DatakitForm:qV,RequestCalloutForm:_w,ServiceProtectionForm:uE},Symbol.toStringTag,{value:"Module"})),HV={class:"kong-ui-entities-plugin-form"},YV={key:1,class:"entity-form"},WV={class:"plugin-config-empty-state"},XV=we(n.defineComponent({__name:"PluginEntityForm",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e==null?void 0:e.app)||e.app==="konnect"&&!e.controlPlaneId||e.app==="kongManager"&&typeof e.workspace!="string")},entityMap:{type:Object,default:()=>({})},record:{type:Object,default:()=>({})},schema:{type:Object,default:()=>({})},rawSchema:{type:Object,default:()=>({})},editing:{type:Boolean,default:!1},credential:{type:Boolean,default:!1},enableVaultSecretPicker:{type:Boolean,default:!1},enableRedisPartial:{type:Boolean,default:!1}},emits:["loading","model-updated","showNewPartialModal","globalAction","validity-change"],setup(e,{emit:t}){var J,ne;const o=Object.keys(ve.sharedForms),r=Object.keys(um);if(new Set([...o,...r]).size!==o.length+r.length)throw new Error("Duplicate form component names found in `sharedForms` and `freeForm`");const i=t,a=e,{axiosInstance:l}=ce.useAxios((J=a.config)==null?void 0:J.axiosRequestConfig),{parseSchema:s}=Oe.useSchemas({entityId:((ne=a.entityMap.focusedEntity)==null?void 0:ne.id)||void 0,credential:a.credential,enableRedisPartial:a.enableRedisPartial,experimentalRenders:a.config.app==="konnect"?a.config.experimentalRenders:void 0}),{convertToDotNotation:c,unFlattenObject:d,dismissField:f,isObjectEmpty:u,unsetNullForeignKey:p}=Oe.usePluginHelpers(),m=Oe.useExperimentalFreeForms(),{objectsAreEqual:g}=ce.useHelpers(),{i18n:{t:_}}=xe(),h=(z,Z)=>{let ie=`${a.config.apiBaseUrl}${Be.form[a.config.app].entityGetOne}`;return a.config.app==="konnect"?ie=ie.replace(/{controlPlaneId}/gi,a.config.controlPlaneId||""):a.config.app==="kongManager"&&(ie=ie.replace(/\/{workspace}/gi,a.config.workspace?`/${a.config.workspace}`:"")),ie=ie.replace(/{entity}/gi,z),ie=ie.replace(/{id}/gi,Z),ie},b=z=>{let Z=`${a.config.apiBaseUrl}${Be.form[a.config.app].entityGetAll}`;return a.config.app==="konnect"?Z=Z.replace(/{controlPlaneId}/gi,a.config.controlPlaneId||""):a.config.app==="kongManager"&&(Z=Z.replace(/\/{workspace}/gi,a.config.workspace?`/${a.config.workspace}`:"")),Z=Z.replace(/{entity}/gi,z),Z},w=(z,Z)=>{const ie=h(z,Z);return l.get(ie)},y=(z,Z)=>{const ie=b(z);return a.config.app==="konnect"?l.get(ie).then(oe=>{const{data:{data:ue}}=oe;if(delete Z.size,delete Z.offset,ue.length&&Object.keys(Z).length===1){const de=Object.keys(Z)[0],Y=ue.filter(te=>te[de]?!!te[de].toLowerCase().includes(Z[de].toLowerCase()):!1);oe.data.data=Y}return oe}):l.get(ie,{params:Z})};n.provide(ve.FORMS_API_KEY,{getOne:w,getAll:y}),n.provide(ve.FORMS_CONFIG,a.config);const v=n.ref(""),k=n.ref(""),E=n.ref(null),R=n.ref({}),O=n.reactive({}),T=n.reactive({}),q=n.computed(()=>{var z;return(z=E.value)==null?void 0:z.options}),j=n.ref(!1),A=n.ref(),I=(z,Z)=>{j.value=z??"",A.value=Z},C=z=>{var Z;(Z=A.value)==null||Z.call(A,z),j.value=!1},D=()=>{var Y,te;const z={...a.schema},Z=T,ie=O,oe=Object.keys(Z),ue={};if(!u(R.value))for(let N=0;N<((te=(Y=R.value)==null?void 0:Y.fields)==null?void 0:te.length);N++)z[R.value.fields[N].model]=R.value.fields[N];ve.customFields.forEach(N=>{z[N]&&(z[N].fields.forEach(S=>{S.fields&&S.fields.forEach(x=>{z[x.model]=x}),S.model&&(z[S.model]=S)}),delete z[N])}),oe.forEach(N=>{var K;if(!z[N]){N==="partials"&&(ue[N]=Z[N]);return}const S=z[N];let x=Z[N];const V=ie[N],M=Array.isArray(x)?"array":typeof x,X=S?S.valueType:null,Q=S?S.valueArrayType:null,U=S?S.transform:null;if(x==null&&V==null&&!S.submitWhenNull)return;if(S){if(X&&M!==X)switch(X){case"array":M==="string"&&x.length&&(x=x.split(",").map(le=>{if(le=le.trim(),Q==="string")return String(le);if(Q==="number")return Number(le);if(Q==="boolean"){if(typeof le=="string")return le.toLowerCase()==="true"||le==="1";if(typeof le=="number")return le===1}return le})),(!x||!x.length)&&(x=S.submitWhenNull?null:[]);break;case"number":x=Number(x);break;case"boolean":M==="string"&&(x=x.toLowerCase()==="true"||x==="1"),M==="number"&&(x=x===1);break;case"string":x=x==null?"":String(x);break}else X==="array"&&(!x||!x.length?x=S.submitWhenNull?null:[]:((K=S.inputAttributes)==null?void 0:K.type)==="number"&&(x=x.map(le=>Number(le))));if(S.type==="array"&&S.nestedFields){const le=se=>{Object.keys(se).forEach(ae=>{se[ae]&&typeof se[ae]=="object"&&!Array.isArray(se[ae])&&se[ae]!==null?le(se[ae]):(se[ae]===void 0||se[ae]===null||typeof se[ae]=="number"&&isNaN(se[ae])||typeof se[ae]=="string"&&se[ae].trim().length===0)&&delete se[ae]})};x&&typeof x=="object"&&le(x)}S.type==="object-advanced"&&S.fields&&x!==null&&(Object.entries(x).length===0?x=null:Object.keys(x).forEach(le=>{Array.isArray(x[le])||(x[le]=x[le].split(","))}))}let W=c(N);if(S.fieldNameHasDashes){const[le,...se]=W.split(".").reverse();W=[le.replace(/_/g,"-"),...se].reverse().join(".")}if(X==="object-expand"){let le;[W,le]=W.split(".");let se={};ue[W]&&(se=ue[W]),se[le]=x,x=se}V!==void 0&&x===""&&x!==V?ue[W]=X==="object"?{}:null:S.type==="checklist"&&x===""?ue[W]=[]:x!==""&&(ue[W]=x),ue[W]=U?U(x):ue[W],p(W,ue)});const de=d(ue);return k.value&&Object.assign(de,$.value),de},P=(z,Z={})=>{f(T,Z,z,a.editing),i("model-updated",{model:T,originalModel:O,data:D()})},L=(z,Z)=>{var ue;const ie={[Z]:z};typeof((ue=a.schema[Z])==null?void 0:ue.modelTransformer)=="function"&&(ie[Z]=a.schema[Z].modelTransformer(z));const oe=Object.assign({},T,ie);Object.assign(T,oe),i("model-updated",{model:T,originalModel:O,data:D()})},F=z=>{i("validity-change",z)},B=(z,Z)=>{Object.keys(z).forEach(ie=>{var te,N;let oe=Z?`${Z}-${ie}`:ie,ue=a.schema[oe];if(!ue){const S=Z?`${Z}-${ie.replace(/-/g,"_")}`:ie.replace(/-/g,"_");(te=a.schema[S])!=null&&te.fieldNameHasDashes&&(oe=S,ue=a.schema[oe]),Z&&((N=a.schema[Z])==null?void 0:N.keyFromObject)===ie&&(oe=Z,ue=a.schema[oe])}const de=z[ie],Y=typeof de;if(ue&&ue.type==="object-advanced"&&!de){T[oe]={},O[oe]={};return}if(Array.isArray(de)){T[oe]=JSON.parse(JSON.stringify(de)),O[oe]=JSON.parse(JSON.stringify(de));return}if(Y==="object"&&de&&!de.length)return B(de,oe);if(Y==="object"&&de&&de.length&&ue.type==="input"){T[oe]=de.join(", "),O[oe]=de.join(", ");return}T[oe]=de,O[oe]=de}),i("model-updated",{model:T,originalModel:O,data:D()})},$=n.shallowRef(a.record),G=z=>{$.value=z,i("model-updated",{model:{...T,...z},originalModel:O,data:D()})},ee=n.ref(!0),re=()=>{var z;if(a.record&&a.schema&&(B({enabled:a.record.enabled??!0,...a.record.instance_name&&{instance_name:a.record.instance_name||""},...a.record.protocols&&{protocols:a.record.protocols},...a.record.tags&&{tags:a.record.tags}}),a.credential?((a.record.consumer_id||a.record.consumer)&&B({consumer_id:a.record.consumer_id||a.record.consumer}),B(a.record)):a.record.config&&((a.record.consumer_id||a.record.consumer||a.record.service_id||a.record.service||a.record.route_id||a.record.route||a.record.consumer_group_id||a.record.consumer_group)&&B({service_id:a.record.service_id||a.record.service,route_id:a.record.route_id||a.record.route,consumer_id:a.record.consumer_id||a.record.consumer,consumer_group_id:a.record.consumer_group_id||a.record.consumer_group}),a.record.partials&&P("redis",{partials:a.record.partials}),k.value?G(a.record):B(a.record.config,"config"))),Object.keys(a.entityMap).length&&!a.entityMap.global&&a.schema){const Z={};for(const ie in a.entityMap){const oe=a.entityMap[ie].id,ue=a.entityMap[ie].idField,de=ue==="consumer_group_id"?"consumer_group-id":JSON.parse(JSON.stringify(ue).replace("_","-"));Object.prototype.hasOwnProperty.call(T,de)&&(Z[de]=oe)}B(Z)}if((z=a.entityMap.consumer)!=null&&z.id&&a.schema&&a.credential){const Z={};Object.prototype.hasOwnProperty.call(T,"consumer")&&(Z.consumer=a.entityMap.consumer.id),B(Z)}ee.value=!1};return n.watch(ee,z=>{i("loading",z)}),n.watch(()=>a.schema,(z,Z)=>{var oe,ue;if(g(z||{},Z||{}))return;const ie=s(z);Object.assign(T,ie.model),R.value={fields:(ue=(oe=R.value)==null?void 0:oe.fields)==null?void 0:ue.map(de=>({...de,disabled:de.disabled||!1}))},Object.assign(O,JSON.parse(JSON.stringify(ie.model))),k.value=ns(ie.model.name,m),v.value=ve.getSharedFormName(ie.model.name),re()},{immediate:!0,deep:!0}),n.onBeforeMount(()=>{var z,Z;E.value=s(a.schema),Object.assign(T,((z=E.value)==null?void 0:z.model)||{}),R.value=((Z=E.value)==null?void 0:Z.schema)||{},re()}),(z,Z)=>{var oe;const ie=n.resolveComponent("KSkeleton");return n.openBlock(),n.createElementBlock(n.Fragment,null,[n.createElementVNode("div",HV,[ee.value?(n.openBlock(),n.createBlock(ie,{key:0,type:"form"})):T.id&&e.editing||!e.editing?(n.openBlock(),n.createElementBlock("div",YV,[k.value?(n.openBlock(),n.createBlock(n.resolveDynamicComponent(um[k.value]),{key:0,"form-model":T,"form-options":q.value,"form-schema":R.value,"is-editing":e.editing,model:e.record,"on-form-change":G,"on-model-updated":L,"on-validity-change":F,schema:e.rawSchema,onGlobalAction:Z[0]||(Z[0]=(ue,de)=>z.$emit("globalAction",ue,de))},n.createSlots({_:2},[e.enableVaultSecretPicker?{name:n.unref(ve.AUTOFILL_SLOT_NAME),fn:n.withCtx(ue=>[ue.schema.referenceable?(n.openBlock(),n.createBlock(n.unref(Jo.VaultSecretPickerProvider),n.mergeProps({key:0},ue,{onOpen:I}),null,16)):n.createCommentVNode("",!0)]),key:"0"}:void 0]),1064,["form-model","form-options","form-schema","is-editing","model","schema"])):v.value?(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref(ve.sharedForms)[v.value]),{key:1,"enable-redis-partial":e.enableRedisPartial,"form-model":T,"form-options":q.value,"form-schema":R.value,"is-editing":e.editing,"on-model-updated":L,"on-partial-toggled":P,"show-new-partial-modal":ue=>z.$emit("showNewPartialModal",ue)},n.createSlots({_:2},[e.enableVaultSecretPicker?{name:n.unref(ve.AUTOFILL_SLOT_NAME),fn:n.withCtx(ue=>[ue.schema.referenceable?(n.openBlock(),n.createBlock(n.unref(Jo.VaultSecretPickerProvider),n.mergeProps({key:0},ue,{onOpen:I}),null,16)):n.createCommentVNode("",!0)]),key:"0"}:void 0]),1064,["enable-redis-partial","form-model","form-options","form-schema","is-editing","show-new-partial-modal"])):(n.openBlock(),n.createBlock(n.unref(ve.VueFormGenerator),{key:2,"enable-redis-partial":e.enableRedisPartial,"is-editing":e.editing,model:T,options:q.value,schema:R.value,onModelUpdated:L,onPartialToggled:P,onRefreshModel:D,onShowNewPartialModal:Z[1]||(Z[1]=ue=>z.$emit("showNewPartialModal",ue))},n.createSlots({"plugin-config-empty-state":n.withCtx(()=>[n.createElementVNode("div",WV,n.toDisplayString(n.unref(_)("plugins.form.grouping.plugin_configuration.empty")),1)]),_:2},[(oe=n.unref(Tt)[T.name])!=null&&oe.fieldRules&&(a.config.isNewOtelSchema||T.name!=="opentelemetry")?{name:"plugin-config-before-content",fn:n.withCtx(()=>[n.createVNode(ag,{rules:n.unref(Tt)[T.name].fieldRules},null,8,["rules"])]),key:"0"}:void 0,e.enableVaultSecretPicker?{name:n.unref(ve.AUTOFILL_SLOT_NAME),fn:n.withCtx(ue=>[ue.schema.referenceable?(n.openBlock(),n.createBlock(n.unref(Jo.VaultSecretPickerProvider),n.mergeProps({key:0},ue,{onOpen:I}),null,16)):n.createCommentVNode("",!0)]),key:"1"}:void 0]),1032,["enable-redis-partial","is-editing","model","options","schema"]))])):n.createCommentVNode("",!0)]),n.createVNode(n.unref(Jo.VaultSecretPicker),{config:a.config,setup:j.value,onCancel:Z[2]||(Z[2]=()=>j.value=!1),onProceed:C},null,8,["config","setup"])],64)}}}),[["__scopeId","data-v-780e65cb"]]),ZV={key:1},JV=n.defineComponent({__name:"PluginFormActionsWrapper",props:{teleportTarget:{type:String,default:""}},setup(e){return(t,o)=>e.teleportTarget?(n.openBlock(),n.createBlock(n.Teleport,{key:0,to:e.teleportTarget},[n.renderSlot(t.$slots,"default")],8,["to"])):(n.openBlock(),n.createElementBlock("div",ZV,[n.renderSlot(t.$slots,"default")]))}}),QV={class:"kong-ui-entities-plugin-form-container"},eR={key:0},tR={class:"plugin-form-actions"},nR=we(n.defineComponent({__name:"PluginForm",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e==null?void 0:e.app)||e.app==="konnect"&&!e.controlPlaneId||e.app==="kongManager"&&typeof e.workspace!="string")},pluginType:{type:String,required:!0},pluginId:{type:String,default:""},hideScopeSelection:{type:Boolean,default:!1},disableScopeSelection:{type:Boolean,default:!1},credential:{type:Boolean,default:!1},developer:{type:Boolean,default:!1},isWizardStep:{type:Boolean,default:!1},actionsTeleportTarget:{type:String,default:""},noCardWrapper:{type:Boolean,default:!1},hideViewConfigAction:{type:Boolean,default:!1},enableVaultSecretPicker:{type:Boolean,default:!1},schema:{type:Object,default:null},enableRedisPartial:{type:Boolean,default:!1}},emits:["cancel","error:fetch-schema","error","loading","update","model-updated","showNewPartialModal","globalAction"],setup(e,{emit:t}){var Q;const o=t,r=e,i=no.useRouter(),{i18n:{t:a}}=Oe.useI18n(),{customSchemas:l,typedefs:s}=Oe.useSchemas({app:r.config.app,credential:r.credential,experimentalRenders:r.config.app==="konnect"?r.config.experimentalRenders:void 0}),{formatPluginFieldLabel:c}=Oe.usePluginHelpers(),{getMessageFromError:d}=ce.useErrors(),{capitalize:f}=ce.useStringHelpers(),{objectsAreEqual:u}=ce.useHelpers(),{axiosInstance:p}=ce.useAxios((Q=r.config)==null?void 0:Q.axiosRequestConfig),m=n.ref(!1),g=n.computed(()=>!!r.pluginId),_=n.computed(()=>r.pluginId?ce.EntityBaseFormType.Edit:ce.EntityBaseFormType.Create),h=n.ref(void 0),b=n.ref(void 0),w=n.computed(()=>!!(r.credential&&r.config.entityId)),y=n.ref(void 0),v=n.ref({}),k=n.ref(),E=n.ref();n.provide(Rc,{redisType:k,redisPath:E,isEditing:g.value});const R=n.ref(!1),O=n.reactive({enabled:!0,protocols:[],tags:[]}),T=n.reactive({fields:{enabled:!0,protocols:[],tags:[]},isReadonly:!1,clientErrorMessage:"",serverErrorMessage:""}),q=n.ref([{title:a("view_configuration.json"),hash:"#json"},{title:a("view_configuration.yaml"),hash:"#yaml"}]);r.config.app==="konnect"&&q.value.splice(1,0,{title:a("view_configuration.terraform"),hash:"#terraform"});const j=n.ref(""),A=n.computed(()=>{if(w.value){let U=Be.form[r.config.app].credential[_.value];return U=U.replace(/{resourceEndpoint}/gi,P.value),U}return r.config.entityType&&r.config.entityId?Be.form[r.config.app].edit.forEntity.replace(/{entityType}/gi,r.config.entityType).replace(/{entityId}/gi,r.config.entityId):Be.form[r.config.app].edit.all}),I=()=>{m.value=!m.value},C=n.computed(()=>{var ae,_e,be,Ce,Se,pe,fe,ot;const U=r.config.entityType==="consumers"&&r.config.entityId||((_e=(ae=y.value)==null?void 0:ae.consumer)==null?void 0:_e.id),W=r.config.entityType==="consumer_groups"&&r.config.entityId||((Ce=(be=y.value)==null?void 0:be.consumer_group)==null?void 0:Ce.id),K=r.config.entityType==="services"&&r.config.entityId||((pe=(Se=y.value)==null?void 0:Se.service)==null?void 0:pe.id),le=r.config.entityType==="routes"&&r.config.entityId||((ot=(fe=y.value)==null?void 0:fe.route)==null?void 0:ot.id);if(!(U||W||K||le))return{global:{entity:H.PluginScope.GLOBAL,entityEndpoint:"plugins"}};const se={};return K&&(se.service={entity:H.PluginScope.SERVICE,entityEndpoint:"services",id:K,idField:Xt.SERVICE}),le&&(se.route={entity:H.PluginScope.ROUTE,entityEndpoint:"routes",id:le,idField:Xt.ROUTE}),U&&(se.consumer={entity:H.PluginScope.CONSUMER,entityEndpoint:"consumers",id:U,idField:Xt.CONSUMER}),W&&(se.consumer_group={entity:H.PluginScope.CONSUMER_GROUP,entityEndpoint:"consumer_groups",id:W,idField:Xt.CONSUMER_GROUP}),r.config.entityType&&(se.focusedEntity={entity:H.PluginScope[r.config.entityType.substring(0,r.config.entityType.length-1).toUpperCase()],entityEndpoint:r.config.entityType,id:r.config.entityId,idField:Xt[r.config.entityType.substring(0,r.config.entityType.length-1).toUpperCase()]}),se}),D=n.reactive({name:{default:r.pluginType,type:"input",inputType:"hidden",styleClasses:"d-none hidden-field",pinned:!0},enabled:{type:"switch",model:"enabled",label:a("plugins.form.fields.enabled.label"),textOn:a("plugins.form.fields.enabled.on_text"),textOff:a("plugins.form.fields.enabled.off_text"),styleClasses:"field-switch hide-label",default:!0,pinned:!0},selectionGroup:{type:r.hideScopeSelection&&(r.hideScopeSelection||_.value===ce.EntityBaseFormType.Create&&r.config.entityId)?"foreign":"selectionGroup",disabled:r.disableScopeSelection,inputType:"hidden",styleClasses:"hide-label",fields:[{label:a("plugins.form.scoping.global.label"),description:a("plugins.form.scoping.global.help")}],pinned:!0},protocols:{id:"protocols",default:[],help:a("plugins.form.fields.protocols.help"),label:a("plugins.form.fields.protocols.label"),required:!0,styleClasses:"plugin-protocols-select",type:"multiselect",values:[{label:"grpc",value:"grpc"},{label:"grpcs",value:"grpcs"},{label:"http",value:"http"},{label:"https",value:"https"},{label:"tcp",value:"tcp"},{label:"tls",value:"tls"},{label:"tls_passthrough",value:"tls_passthrough"},{label:"udp",value:"udp"},{label:"ws",value:"ws"},{label:"wss",value:"wss"}]},instance_name:{default:"",type:"input",label:a("plugins.form.fields.instance_name.label"),inputType:"text",help:a("plugins.form.fields.instance_name.help")},tags:s.tags}),P=n.computed(()=>{var K;const U=r.developer?"developers":"consumers",W=((K=Sn[r.pluginType])==null?void 0:K.endpoint)||"/plugins";return`${U}/${r.config.entityId}${r.developer?"/credentials":""}${W}`}),L=U=>{const W=Array.from(new Set(U.map(K=>typeof K)));return W.length>1?"string":W[0]},F=(U,W,K,le)=>{var be,Ce;let se=W&&W.fields||[];const ae=l[r.pluginType],_e=(Ce=(be=Sn[r.pluginType])==null?void 0:be.schema)==null?void 0:Ce.fields;return Array.isArray(se)&&(se=se.reduce((Se,pe)=>{const fe=Object.keys(pe)[0];return fe.match(/-/g)?Se[fe.replace(/-/g,"_")]={...pe[fe],fieldNameHasDashes:!0}:Se[fe]=pe[fe],Se},{})),Object.keys(se).sort().forEach(Se=>{var Go,qo,zo,Ho,Yo,Wo,Xo;const pe=se[Se];pe.type==="set"&&(pe.type="array");const fe=U?`${U}-${Se}`:`${Se}`;if((Go=ae==null?void 0:ae.fieldsToDelete)!=null&&Go.includes(fe)){_c(K,fe);return}if(Object.prototype.hasOwnProperty.call(pe,"overwrite")||pe.hidden)return;if(pe.type==="table")return F(fe,pe.schema,K);if(pe.fields)return le&&pe.type==="record"?(K[fe]={type:"object",model:Se,schema:{fields:Object.values(F(fe,pe,{},!0))}},K):F(fe,pe,K);if(K[fe]={id:fe,model:Se},K[fe].type=pe.type==="boolean"?"checkbox":"input",K[fe].required=pe.required,K[fe].referenceable=pe.referenceable,fe.startsWith("config-"))if(!le&&pe.type==="array"&&(j.value=fe),le&&j.value&&fe.startsWith(j.value)){const ke=fe.slice(j.value.length+1);K[fe].label=ke.split("-").map(c).join(".")}else K[fe].label=c(fe);if((U==="config"||U.startsWith("config-"))&&(qo=se[Se])!=null&&qo.description&&(K[fe].help=Zo.marked.parse(se[Se].description,{mangle:!1,headerIds:!1})),pe.type==="map"){if(K[fe].type="object-advanced",K[fe].values=pe.values,pe.values.type==="array"){const{type:ke}=pe.values.elements||{};K[fe].schema={fields:[{schema:{fields:[{...Pe,model:fe,valueArrayType:ke==="integer"?"number":ke||"string",inputAttributes:{...Pe.inputAttributes,type:ke==="integer"?"number":"text",inputMode:ke==="integer"?"numeric":"text"}}]}}]}}else pe.values.fields&&(K[fe].schema={fields:[{type:"object",model:"object",schema:{fields:pe.values.fields.map(ke=>{const Ye=Object.keys(ke)[0];return{model:Ye,type:"input",label:f(Ye),placeholder:Ye,inputType:ke[Ye].type}})}}]});return K}if(pe.enum&&pe.type==="array"&&(K[fe].type="checklist",K[fe].values=pe.enum,K[fe].multi=!0,K[fe].multiSelect=!0),pe.one_of&&pe.type!=="array"&&(K[fe].type="select",K[fe].values=pe.one_of,K[fe].selectOptions={noneSelectedText:a("plugins.form.no_selection")}),pe.elements&&pe.type==="array"){const ke=pe.elements;if(K[fe].referenceable=ke.referenceable,K[fe].elements=ke,["string","integer","number"].includes(ke.type)&&!ke.one_of){const{id:Ye,help:Ue,label:Ne,hint:Ze,values:at,referenceable:Cn,model:vn}=K[fe],{inputAttributes:Ai,...XR}=JSON.parse(JSON.stringify(Pe));Ai.type=ke.type==="string"?"text":"number",K[fe]={id:Ye,help:Ue,label:Ne,hint:Ze,values:at,referenceable:Cn,model:vn,inputAttributes:Ai,...XR}}}if(pe.hint&&(K[fe].hint=pe.hint),ae&&!ae.overwriteDefault&&Object.keys(ae).forEach(ke=>{if(ke===fe){const{help:Ye,label:Ue,hint:Ne,values:Ze,referenceable:at,elements:Cn}=K[fe],{help:vn,...Ai}=ae[ke];K[fe]={help:Ye,label:Ue,hint:Ne,values:Ze,referenceable:at,elements:Cn,...Ai},typeof vn=="string"&&(K[fe].help=Zo.marked.parse(vn,{mangle:!1,headerIds:!1}))}}),pe.type==="array"&&((zo=pe.elements)==null?void 0:zo.type)==="record"&&Array.isArray(pe.elements.fields)){let ke={};for(const Ue of pe.elements.fields)ke={...ke,...Ue};const Ye=(Wo=(Yo=(Ho=K[fe])==null?void 0:Ho.items)==null?void 0:Yo.schema)==null?void 0:Wo.fields;if(Array.isArray(Ye))for(const Ue of K[fe].items.schema.fields){const Ne=(Xo=ke[Ue.model])==null?void 0:Xo.description;Ue.help===void 0&&typeof Ne=="string"&&(Ue.help=Zo.marked.parse(Ne,{mangle:!1,headerIds:!1}))}if(Ye||(K[fe].type="array",K[fe].newElementButtonLabelClasses="kong-form-new-element-button-label",K[fe].fieldClasses="array-card-container-wrapper",K[fe].itemContainerComponent="FieldArrayCardContainer",K[fe].items={type:"object",schema:{fields:Object.values(F(fe,pe.elements,{},!0))}},K[fe].items.schema.fields.forEach(Ue=>{var Ne,Ze;for(const at of pe.elements.fields){const Cn=Object.keys(at)[0],vn=((Ze=(Ne=Ue.id)==null?void 0:Ne.split)==null?void 0:Ze.call(Ne,"-"))??[];if(vn[vn.length-1]===Cn){Ue.model=Cn,Ue.label=c(Cn);break}}}),pe.elements.type==="record"&&(K[fe].nestedFields=!0)),!K[fe].nestedFields)K[fe].items.default=()=>pe.elements.fields.reduce((Ue,Ne)=>{const Ze=Object.keys(Ne)[0];return Ue[Ze]=Ne[Ze].default,Ue},{});else{const Ue=(Ne,Ze)=>{if(Ne.type==="object"){Ne.model&&(Ze[Ne.model]={});for(const at of Ne.schema.fields)Ue(at,Ne.model?Ze[Ne.model]:Ze)}else Ne.model&&(Ze[Ne.model]=Ne.default)};K[fe].items.default=()=>{const Ne={};return Ue(K[fe].items,Ne),Ne}}}if(w.value&&_e){for(let ke=0;ke<_e.length;ke++)if(_e[ke][fe]){K[fe]={...K[fe],..._e[ke][fe]};break}}if(pe.required&&pe.type!=="boolean"&&(K[fe].required=!0,K[fe].selectOptions={hideNoneSelectedText:!0}),pe.required&&pe.type==="boolean"&&(K[fe].default=pe.default??!1),pe.default!=null&&typeof pe.default!="object"&&pe.default!=="function"&&(K[fe].default=pe.default),K[fe].type==="input"){["string","number"].includes(typeof K[fe].default)&&r.config.app==="konnect"&&(K[fe].placeholder=`Default: ${K[fe].default===""?"<empty string>":K[fe].default}`);const{type:ke}=pe.elements||{};ke&&(K[fe].valueArrayType=ke==="integer"?"number":ke),K[fe].inputType=pe.type==="array"||pe.type==="string"?pe.encrypted?"password":"text":pe.type}let ot="string";pe.enum?ot=L(pe.enum):pe.type==="boolean"?ot="boolean":pe.type==="number"||pe.type==="integer"?(ot="number",K[fe].inputType="number"):pe.type==="array"?(ot="array",K[fe].default=pe.default,pe.len_min>0&&(K[fe].submitWhenNull=!0)):pe.type==="foreign"?ot="object":pe.default&&Array.isArray(pe.default)?(ot="array",K[fe].valueArrayType=L(pe.default)):pe.default&&(ot=typeof pe.default),K[fe].valueType=ot,pe.fieldNameHasDashes&&(K[fe].fieldNameHasDashes=!0)}),K},B=()=>{var Se,pe,fe,ot,Go,qo,zo,Ho,Yo,Wo,Xo,ke;const U=((Se=Tt[r.pluginType])==null?void 0:Se.scope.includes(H.PluginScope.SERVICE))??!0,W=((pe=Tt[r.pluginType])==null?void 0:pe.scope.includes(H.PluginScope.ROUTE))??!0,K=((fe=Tt[r.pluginType])==null?void 0:fe.scope.includes(H.PluginScope.CONSUMER))??!0,le=r.config.disableConsumerGroupScope?!1:((ot=Tt[r.pluginType])==null?void 0:ot.scope.includes(H.PluginScope.CONSUMER_GROUP))??!0,se=r.config.entityType==="consumers"&&!!r.config.entityId||!!((qo=(Go=y.value)==null?void 0:Go.consumer)!=null&&qo.id),ae=r.config.entityType==="consumer_groups"&&!!r.config.entityId||!!((Ho=(zo=y.value)==null?void 0:zo.consumer_group)!=null&&Ho.id),_e=r.config.entityType==="services"&&!!r.config.entityId||!!((Wo=(Yo=y.value)==null?void 0:Yo.service)!=null&&Wo.id),be=r.config.entityType==="routes"&&!!r.config.entityId||!!((ke=(Xo=y.value)==null?void 0:Xo.route)!=null&&ke.id),Ce=[];if(U&&Ce.push({id:"service-id",model:"service-id",label:a("plugins.form.scoping.gateway_service.label"),placeholder:a("plugins.form.scoping.gateway_service.placeholder"),type:"AutoSuggest",entity:"services",inputValues:{fields:["name","id"]},help:a("plugins.form.scoping.gateway_service.help"),disabled:_e&&r.disableScopeSelection}),W&&Ce.push({id:"route-id",model:"route-id",label:a("plugins.form.scoping.route.label"),placeholder:a("plugins.form.scoping.route.placeholder"),type:"AutoSuggest",entity:"routes",inputValues:{fields:["name","id"],primaryField:"id"},help:a("plugins.form.scoping.route.help"),disabled:be&&r.disableScopeSelection}),K&&Ce.push({model:"consumer-id",label:a("plugins.form.scoping.consumer.label"),placeholder:a("plugins.form.scoping.consumer.placeholder"),type:"AutoSuggest",entity:"consumers",inputValues:{fields:["username","custom_id","id"],primaryField:"username"},help:a("plugins.form.scoping.consumer.help"),disabled:se&&r.disableScopeSelection}),le&&Ce.push({model:"consumer_group-id",label:a("plugins.form.scoping.consumer_group.label"),placeholder:a("plugins.form.scoping.consumer_group.placeholder"),type:"AutoSuggest",entity:"consumer_groups",entityDataKey:"consumer_group",inputValues:{fields:["name","id"],primaryField:"name"},help:a("plugins.form.scoping.consumer_group.help"),disabled:ae&&r.disableScopeSelection}),Ce.length){const Ye=[...U?["service"]:[],...W?["route"]:[],...K?["consumer"]:[],...le?["consumer_group"]:[]],Ne=Ye.splice(Ye.length-2,2).map(at=>a(at==="service"?"plugins.form.scoping.gateway_service.plural":`plugins.form.scoping.${at}.plural`)).join(`${Ye.length>0?",":""} and/or `),Ze=["Specific",[...Ye.length>0?[Ye.map(at=>a(at==="service"?"plugins.form.scoping.gateway_service.plural":`plugins.form.scoping.${at}.plural`)).join(", ")]:[],Ne].join(", ")].join(" ");D.selectionGroup.fields.push({label:a("plugins.form.scoping.label"),description:Ze,fields:[]}),D.selectionGroup.fields[1].fields=Ce}l[r.pluginType]&&l[r.pluginType].overwriteDefault&&Object.hasOwnProperty.call(l[r.pluginType],"formSchema")&&Object.assign(D,l[r.pluginType].formSchema)},$=n.computed(()=>!u(T.fields,O,!0)),G=n.computed(()=>!M.value&&!R.value&&(_.value===ce.EntityBaseFormType.Create||$.value)),ee=n.ref(!1),re=n.ref(),J=U=>{r.credential&&U.password&&(U.password=""),T.fields.id=(U==null?void 0:U.id)||void 0,re.value=U==null?void 0:U.ordering,Object.assign(O,T.fields),y.value=U,ee.value=!0},ne=n.ref({}),z=U=>{var W;T.fields=U.model,T.fields.id=((W=y.value)==null?void 0:W.id)||void 0,Object.assign(O,U.originalModel),ne.value=U.data,r.isWizardStep&&o("model-updated",{model:T.fields,data:U.data,resourceEndpoint:P.value})},Z=n.ref(new Map),ie=n.computed(()=>[T.clientErrorMessage,T.serverErrorMessage].filter(Boolean).join("; ")),oe=U=>{U.valid?Z.value.delete(U.model):Z.value.set(U.model,U.error),T.clientErrorMessage=[...Z.value.entries()].map(([W,K])=>`${W}: ${typeof K=="string"?K:d(K)}`).join("; "),T.clientErrorMessage&&(T.serverErrorMessage="")};n.watch([C,ee],(U,W)=>{const K=U[0]!==W[0],le=U[1],se=W[1];if(!w.value&&_.value===ce.EntityBaseFormType.Edit&&(K||le&&le!==se)){const ae=F("config",v.value,D);te.value&&(ae._isCustomPlugin=!0),k.value&&(ae._supported_redis_partial_type=k.value),b.value=ae}},{deep:!0});const ue=()=>{r.config.cancelRoute?i.push(r.config.cancelRoute):o("cancel")},de=n.computed(()=>{let U=`${r.config.apiBaseUrl}${Be.form[r.config.app].validate}`;return r.config.app==="konnect"?U=U.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||""):r.config.app==="kongManager"&&(U=U.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"")),U=U.replace(/{id}/gi,r.pluginId),U}),Y=n.computed(()=>{const U=r.config.entityType&&r.config.entityId&&!r.developer,W=w.value?Be.form[r.config.app].credential[_.value]:Be.form[r.config.app][_.value][U?"forEntity":"all"];let K=`${r.config.apiBaseUrl}${W}`;return r.config.app==="konnect"?K=K.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||""):r.config.app==="kongManager"&&(K=K.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"")),K=K.replace(/{resourceEndpoint}/gi,P.value),K=K.replace(/{id}/gi,r.pluginId),K=K.replace(/{entityType}/gi,r.config.entityType||""),K=K.replace(/{entityId}/gi,r.config.entityId||""),K}),te=n.computed(()=>!Object.keys(Tt).includes(r.pluginType)),N=n.computed(()=>{const U=ne.value;if(w.value){for(const W in H.PluginScope){const K=H.PluginScope[W];U[K]&&!U[K].id&&(U[K]={id:r.config.entityId})}delete U.created_at}return ne.value.partials&&E.value&&_c(U,E.value),U}),S=async()=>{if(!T.clientErrorMessage&&!r.isWizardStep)try{T.isReadonly=!0;let U;const W=JSON.parse(JSON.stringify(N.value)),K=l[r.pluginType];typeof(K==null?void 0:K.shamefullyTransformPayload)=="function"&&K.shamefullyTransformPayload({originalModel:O,model:T.fields,payload:W,schema:b.value}),!w.value&&!te.value&&await p.post(de.value,W),_.value==="create"?U=await p.post(Y.value,W):_.value==="edit"&&(U=r.config.app==="konnect"||k.value&&W.partials?await p.put(Y.value,Object.assign({ordering:re.value},W)):await p.patch(Y.value,W)),Object.assign(O,T.fields),o("update",U==null?void 0:U.data)}catch(U){T.serverErrorMessage=d(U),o("error",U)}finally{T.isReadonly=!1}},x=n.computed(()=>{var le;const U=w.value?(le=Sn[r.pluginType])==null?void 0:le.schemaEndpoint:r.pluginType,W=w.value?Be.form[r.config.app].credentialSchema:Be.form[r.config.app].pluginSchema;let K=`${r.config.apiBaseUrl}${W}`;return r.config.app==="konnect"?K=K.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||""):r.config.app==="kongManager"&&(K=K.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"")),K=K.replace(/{plugin}/gi,U),K}),V=n.ref(""),M=n.ref(!1),X=n.ref("");return n.onBeforeMount(async()=>{var U,W,K,le;M.value=!0;try{if(w.value&&r.config.app==="konnect"){const se=(U=Sn[r.pluginType])==null?void 0:U.schemaEndpoint,ae=Am[se];V.value=se,b.value=F("",ae,{}),M.value=!1}else{const se=r.schema??(await p.get(x.value)).data;if(h.value=se,se)if(w.value)b.value=F("",se,{}),M.value=!1;else{const ae=se.fields.find(be=>be.config);v.value=ae?ae.config:se,se.supported_partials&&(k.value=Object.keys(se.supported_partials).find(be=>[er.REDIS_CE,er.REDIS_EE].includes(be)),E.value=(W=se.supported_partials[k.value])==null?void 0:W[0]),B();const _e=(K=se.fields.find(be=>be.protocols))==null?void 0:K.protocols;if(_e){const{default:be=[],elements:Ce={}}=_e;D.protocols.default=be,D.protocols.placeholder=r.config.app==="konnect"?a("plugins.form.fields.protocols.placeholderWithDefaultValues",{protocols:be.join(", ")}):a("plugins.form.fields.protocols.placeholder"),(le=Ce.one_of)!=null&&le.length&&(D.protocols.values=Ce.one_of.map(Se=>({label:Se,value:Se})))}if(ee.value||_.value===ce.EntityBaseFormType.Create){const be=F("config",v.value,D);k.value&&(be._supported_redis_partial_type=k.value),te.value&&(be._isCustomPlugin=!0),b.value=be}}}}catch(se){console.error(se),X.value=d(se),o("error:fetch-schema",se)}finally{M.value=!1}}),(U,W)=>{const K=n.resolveComponent("KSkeleton"),le=n.resolveComponent("KEmptyState"),se=n.resolveComponent("KButton"),ae=n.resolveComponent("KTabs"),_e=n.resolveComponent("KSlideout");return n.openBlock(),n.createElementBlock("div",QV,[M.value?(n.openBlock(),n.createBlock(K,{key:0,type:"form"})):X.value?(n.openBlock(),n.createBlock(le,{key:1,"action-button-visible":!1,"data-testid":"plugin-form-schema-error","icon-variant":"error"},{default:n.withCtx(()=>[n.createElementVNode("h3",null,n.toDisplayString(n.unref(a)("errors.load_schema")),1)]),_:1})):(n.openBlock(),n.createBlock(n.unref(ce.EntityBaseForm),{key:2,"can-submit":G.value,config:e.config,"edit-id":e.pluginId,"entity-type":n.unref(ce.SupportedEntityType).Plugin,"error-message":ie.value,"fetch-url":A.value,"form-fields":N.value,"is-readonly":T.isReadonly,"no-validate":"","wrapper-component":e.noCardWrapper?"div":void 0,onCancel:ue,"onFetch:error":W[4]||(W[4]=be=>U.$emit("error",be)),"onFetch:success":J,onLoading:W[5]||(W[5]=be=>U.$emit("loading",be))},{"form-actions":n.withCtx(()=>[e.isWizardStep?(n.openBlock(),n.createElementBlock("div",eR)):(n.openBlock(),n.createBlock(JV,{key:1,"teleport-target":e.actionsTeleportTarget},{default:n.withCtx(()=>[n.createElementVNode("div",tR,[e.hideViewConfigAction?n.createCommentVNode("",!0):(n.openBlock(),n.createBlock(se,{key:0,appearance:"tertiary","data-testid":`plugin-${g.value?"edit":"create"}-form-view-configuration`,onClick:W[3]||(W[3]=be=>I())},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(a)("actions.view_configuration")),1)]),_:1},8,["data-testid"])),n.createVNode(se,{appearance:"secondary",class:"form-action-button","data-testid":`plugin-${g.value?"edit":"create"}-form-cancel`,disabled:T.isReadonly,onClick:ue},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(a)("actions.cancel")),1)]),_:1},8,["data-testid","disabled"]),n.createVNode(se,{appearance:"primary","data-testid":`plugin-${g.value?"edit":"create"}-form-submit`,disabled:!G.value||T.isReadonly,type:"submit",onClick:S},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(a)("actions.save")),1)]),_:1},8,["data-testid","disabled"])])]),_:1},8,["teleport-target"]))]),default:n.withCtx(()=>[n.createElementVNode("form",{hidden:"",onSubmit:S},null,32),n.createVNode(XV,{config:e.config,credential:w.value,editing:_.value===n.unref(ce.EntityBaseFormType).Edit,"enable-redis-partial":e.enableRedisPartial,"enable-vault-secret-picker":r.enableVaultSecretPicker,"entity-map":C.value,"raw-schema":h.value,record:y.value,schema:b.value,onGlobalAction:W[0]||(W[0]=(be,Ce)=>U.$emit("globalAction",be,Ce)),onLoading:W[1]||(W[1]=be=>R.value=be),onModelUpdated:z,onShowNewPartialModal:W[2]||(W[2]=be=>U.$emit("showNewPartialModal",be)),onValidityChange:oe},null,8,["config","credential","editing","enable-redis-partial","enable-vault-secret-picker","entity-map","raw-schema","record","schema"])]),_:1},8,["can-submit","config","edit-id","entity-type","error-message","fetch-url","form-fields","is-readonly","wrapper-component"])),n.createVNode(_e,{"close-on-blur":!1,"data-testid":"form-view-configuration-slideout","has-overlay":!1,"offset-top":60,title:n.unref(a)("view_configuration.title"),visible:m.value,onClose:I},{default:n.withCtx(()=>[n.createElementVNode("div",null,n.toDisplayString(n.unref(a)("view_configuration.message")),1),n.createVNode(ae,{"data-testid":"form-view-configuration-slideout-tabs",tabs:q.value},{json:n.withCtx(()=>[n.createVNode(n.unref(ce.JsonCodeBlock),{config:e.config,"entity-record":N.value,"fetcher-url":Y.value,"request-method":r.pluginId?"put":"post"},null,8,["config","entity-record","fetcher-url","request-method"])]),yaml:n.withCtx(()=>[n.createVNode(n.unref(ce.YamlCodeBlock),{"entity-record":N.value},null,8,["entity-record"])]),terraform:n.withCtx(()=>[n.createVNode(n.unref(ce.TerraformCodeBlock),{"credential-type":V.value,"entity-record":N.value,"entity-type":n.unref(ce.SupportedEntityType).Plugin},null,8,["credential-type","entity-record","entity-type"])]),_:1},8,["tabs"])]),_:1},8,["title","visible"])])}}}),[["__scopeId","data-v-420ab237"]]),oR={class:"kong-ui-entities-plugins-list"},rR={class:"button-row"},iR={class:"empty-state-icon-gateway"},aR={class:"name-cell-wrapper"},lR={class:"info-wrapper"},sR={key:0,class:"info-name"},cR={key:1,class:"info-name"},dR={key:2,class:"info-type"},uR={key:1},fR=we(n.defineComponent({__name:"PluginList",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e==null?void 0:e.app)||!e.createRoute||!e.getViewRoute||!e.getEditRoute||!e.getConfigureDynamicOrderingRoute||e.app==="kongManager"&&!e.isExactMatch&&!e.filterSchema)},cacheIdentifier:{type:String,default:""},canCreate:{type:Function,required:!1,default:async()=>!0},canDelete:{type:Function,required:!1,default:async()=>!0},canEdit:{type:Function,required:!1,default:async()=>!0},canToggle:{type:Function,required:!1,default:async()=>!0},canRetrieve:{type:Function,required:!1,default:async()=>!0},canRetrieveScopedEntity:{type:Function,required:!1,default:async()=>!0},canConfigureDynamicOrdering:{type:Function,required:!1,default:async()=>!0},title:{type:String,default:""},titleTag:{type:String,default:"h2"},useActionOutside:{type:Boolean,default:!1}},emits:["error","click:learn-more","copy:success","copy:error","delete:success","toggle-enabled"],setup(e,{emit:t}){var x,V;const o=Oe.usePluginMetaData(),r=t,i=e,{i18n:{t:a}}=Oe.useI18n(),l=no.useRouter(),{axiosInstance:s}=ce.useAxios((x=i.config)==null?void 0:x.axiosRequestConfig),{hasRecords:c,handleStateChange:d}=ce.useTableState(()=>y.value),f=n.computed(()=>c.value&&i.config.app==="konnect"),u=n.computed(()=>!!i.config.entityId),p=n.computed(()=>{var M;return((M=i.config)==null?void 0:M.entityType)==="consumers"}),m=n.computed(()=>{var M;return((M=i.config)==null?void 0:M.entityType)==="consumer_groups"}),g=i.config.app==="konnect"||ce.useGatewayFeatureSupported({gatewayInfo:i.config.gatewayInfo,supportedRange:{enterprise:["3.0"]}}),_=n.computed(()=>i.config.app!=="kongManager"||!!i.config.disableSorting),h={name:{label:a("plugins.list.table_headers.name"),searchable:!0,sortable:!0,hidable:!1}};(V=i.config)!=null&&V.entityId||(h.appliedTo={label:a("plugins.list.table_headers.applied_to"),sortable:!1}),h.enabled={label:a("plugins.list.table_headers.enabled"),searchable:!0,sortable:!0},g&&(h.ordering={label:a("plugins.list.table_headers.ordering"),sortable:!0}),h.tags={label:a("plugins.list.table_headers.tags"),sortable:!1};const b=h,w=n.computed(()=>{var X,Q,U,W;let M=i.config.entityType?`${i.config.apiBaseUrl}${Be.list[i.config.app].forEntity}`:`${i.config.apiBaseUrl}${Be.list[i.config.app].all}`;return i.config.app==="konnect"?M=M.replace(/{controlPlaneId}/gi,((X=i.config)==null?void 0:X.controlPlaneId)||""):i.config.app==="kongManager"&&(M=M.replace(/\/{workspace}/gi,(Q=i.config)!=null&&Q.workspace?`/${i.config.workspace}`:"")),M.replace(/{entityType}/gi,((U=i.config)==null?void 0:U.entityType)||"").replace(/{entityId}/gi,((W=i.config)==null?void 0:W.entityId)||"")}),y=n.ref(""),v=n.computed(()=>i.config.app==="konnect"||i.config.isExactMatch?{isExactMatch:!0,fields:{name:h.name,id:{label:a("plugins.list.table_headers.id"),sortable:!0}},placeholder:a(`search.placeholder.${i.config.isExactMatch?"exact":i.config.app}`)}:{isExactMatch:!1,fields:{enabled:{...h.enabled,label:a("search.filter.field.enabled")},name:h.name,instance_name:{label:a("plugins.list.table_headers.instance_name"),searchable:!0}},schema:i.config.filterSchema}),{fetcher:k,fetcherState:E,fetcherCacheKey:R}=ce.useFetcher(n.computed(()=>({...i.config,cacheIdentifier:i.cacheIdentifier})),w),O=()=>{y.value=""},T=()=>{R.value++},q=n.ref(null),j=M=>{var Q,U,W,K;const X=[];return((Q=M.route)!=null&&Q.id||M.route_id)&&X.push({type:"route",badgeText:a("plugins.list.table_headers.applied_to_badges.route")}),((U=M.service)!=null&&U.id||M.service_id)&&X.push({type:"service",badgeText:a("plugins.list.table_headers.applied_to_badges.service")}),((W=M.consumer)!=null&&W.id||M.consumer_id)&&X.push({type:"consumer",badgeText:a("plugins.list.table_headers.applied_to_badges.consumer")}),((K=M.consumer_group)!=null&&K.id||M.consumer_group_id)&&X.push({type:"consumer_group",badgeText:a("plugins.list.table_headers.applied_to_badges.consumer_group")}),X.length?X:[{type:null,badgeText:a("plugins.list.table_headers.applied_to_badges.global")}]},A=async(M,X)=>{var Q;return M===null?!1:await((Q=i.canRetrieveScopedEntity)==null?void 0:Q.call(i,M,X.id))},I=(M,X)=>{var U,W,K,le,se;let Q=null;switch(M){case"route":Q=(U=X.route)==null?void 0:U.id;break;case"service":Q=(W=X.service)==null?void 0:W.id;break;case"consumer":Q=(K=X.consumer)==null?void 0:K.id;break;case"consumer_group":Q=(le=X.consumer_group)==null?void 0:le.id;break}Q&&((se=i.config)!=null&&se.getScopedEntityViewRoute)&&l.push(i.config.getScopedEntityViewRoute(M,Q))},C=n.ref(!1),D=n.ref(null),P=n.computed(()=>{const M={action:"disable",id:"",name:""};if(D.value){const{enabled:X,id:Q,name:U}=D.value;M.action=X?"disable":"enable",M.id=Q,M.name=o.getDisplayName(U)||Q}return M}),L=M=>{C.value=!0,D.value=M},F=()=>{C.value=!1,D.value=null},B=async()=>{var U,W,K,le,se,ae,_e,be;if(!await((U=i.canEdit)==null?void 0:U.call(i,D.value))||!D.value)return;let X=`${i.config.apiBaseUrl}${(se=Be.item[i.config.app])==null?void 0:se[(W=i.config)!=null&&W.entityType?"forEntity":"all"].replace(/{entityType}/gi,((K=i.config)==null?void 0:K.entityType)||"").replace(/{entityId}/gi,((le=i.config)==null?void 0:le.entityId)||"")}`.replace(/{id}/gi,D.value.id||"");i.config.app==="konnect"?X=X.replace(/{controlPlaneId}/gi,((ae=i.config)==null?void 0:ae.controlPlaneId)||""):i.config.app==="kongManager"&&(X=X.replace(/\/{workspace}/gi,(_e=i.config)!=null&&_e.workspace?`/${i.config.workspace}`:""));const Q=!D.value.enabled;try{const{data:Ce}=((be=i.config)==null?void 0:be.app)==="konnect"?await s.put(X,{...D.value,enabled:Q},{timeout:12e4}):await s.patch(X,{...D.value,enabled:Q},{timeout:12e4});r("toggle-enabled",Q,Ce),D.value.enabled=Q}catch(Ce){r("error",Ce)}},$=async(M,X)=>{const Q=M.id;if(!await X(Q)){r("copy:error",{entity:M,field:"id",message:a("errors.copy")});return}r("copy:success",{entity:M,field:"id",message:a("copy.success",{val:Q})})},G=async(M,X)=>{const Q=JSON.stringify(M);if(!await X(Q)){r("copy:error",{entity:M,message:a("errors.copy")});return}r("copy:success",{entity:M,message:a("copy.success_brief")})},ee=async M=>{var Q;await((Q=i.canRetrieve)==null?void 0:Q.call(i,M))&&l.push(i.config.getViewRoute(M))},re=M=>({label:a("actions.view"),to:i.config.getViewRoute(M)}),J=M=>({label:a("actions.edit"),to:i.config.getEditRoute(M)}),ne=M=>({label:a("actions.configure_dynamic_ordering"),to:i.config.getConfigureDynamicOrderingRoute(M)}),z=n.ref(void 0),Z=n.ref(!1),ie=n.ref(!1),oe=n.ref(""),ue=ce.useDeleteUrlBuilder(i.config,w.value),de=M=>{z.value=M,Z.value=!0},Y=()=>{Z.value=!1},te=async()=>{var M,X,Q;if((M=z.value)!=null&&M.id){ie.value=!0;try{await s.delete(ue(z.value.id)),ie.value=!1,Z.value=!1,R.value++,r("delete:success",z.value)}catch(U){oe.value=((Q=(X=U.response)==null?void 0:X.data)==null?void 0:Q.message)||U.message||a("errors.delete"),r("error",U)}finally{ie.value=!1}}},N=()=>{l.push(i.config.createRoute)};n.watch(E,M=>{var X,Q,U;if(M.status===ce.FetcherStatus.Error){q.value={title:a("errors.general")},(U=(Q=(X=M.error)==null?void 0:X.response)==null?void 0:Q.data)!=null&&U.message&&(q.value.message=M.error.response.data.message),r("error",M.error);return}q.value=null});const S=n.ref({ctaPath:i.config.createRoute,ctaText:void 0,message:`${a("plugins.list.empty_state.description")}${i.config.additionMessageForEmptyState?` ${i.config.additionMessageForEmptyState}`:""}`,title:a("plugins.title")});return n.onBeforeMount(async()=>{await i.canCreate()&&(S.value.title=a("plugins.list.empty_state.title"),S.value.ctaText=a("actions.create"))}),(M,X)=>{const Q=n.resolveComponent("KButton"),U=n.resolveComponent("KBadge"),W=n.resolveComponent("KTruncate"),K=n.resolveComponent("KInputSwitch"),le=n.resolveComponent("KDropdownItem"),se=n.resolveComponent("KClipboardProvider");return n.openBlock(),n.createElementBlock("div",oR,[n.createVNode(n.unref(ce.EntityBaseTable),{"cache-identifier":e.cacheIdentifier,"disable-sorting":_.value,"empty-state-options":S.value,"enable-entity-actions":"","error-message":q.value,fetcher:n.unref(k),"fetcher-cache-key":n.unref(R),"pagination-type":"offset","preferences-storage-key":"kong-ui-entities-plugins-list",query:y.value,"table-headers":n.unref(b),title:e.title,"title-tag":e.titleTag,onClearSearchInput:O,"onClick:row":X[4]||(X[4]=ae=>ee(ae)),onSort:T,onState:n.unref(d)},n.createSlots({"toolbar-filter":n.withCtx(()=>[n.createVNode(n.unref(ce.EntityFilter),{modelValue:y.value,"onUpdate:modelValue":X[0]||(X[0]=ae=>y.value=ae),config:v.value},null,8,["modelValue","config"])]),"toolbar-button":n.withCtx(()=>[(n.openBlock(),n.createBlock(n.Teleport,{disabled:!e.useActionOutside,to:"#kong-ui-app-page-header-action-button"},[n.createElementVNode("div",rR,[!u.value&&f.value?(n.openBlock(),n.createBlock(Q,{key:0,appearance:"secondary",class:"open-learning-hub","data-testid":"plugins-learn-more-button",icon:"",onClick:X[1]||(X[1]=ae=>M.$emit("click:learn-more"))},{default:n.withCtx(()=>[n.createVNode(n.unref(Ee.BookIcon),{decorative:""})]),_:1})):n.createCommentVNode("",!0),n.createVNode(n.unref(ce.PermissionsWrapper),{"auth-function":()=>e.canCreate()},{default:n.withCtx(()=>[n.createVNode(Q,{appearance:"primary","data-testid":"toolbar-add-plugin",size:e.useActionOutside?"medium":"large",to:e.config.createRoute},{default:n.withCtx(()=>[n.createVNode(n.unref(Ee.AddIcon)),n.createTextVNode(" "+n.toDisplayString(n.unref(a)("plugins.list.toolbar_actions.new_plugin")),1)]),_:1},8,["size","to"])]),_:1},8,["auth-function"])])],8,["disabled"]))]),name:n.withCtx(({row:ae})=>[n.createElementVNode("div",aR,[n.createVNode(n.unref(ro.PluginIcon),{class:"plugin-icon",name:ae.name,size:24},null,8,["name"]),n.createElementVNode("div",lR,[ae.instance_name?(n.openBlock(),n.createElementBlock("span",sR,n.toDisplayString(ae.instance_name),1)):(n.openBlock(),n.createElementBlock("span",cR,n.toDisplayString(n.unref(o).getDisplayName(ae.name)),1)),ae.instance_name?(n.openBlock(),n.createElementBlock("span",dR,n.toDisplayString(n.unref(o).getDisplayName(ae.name)),1)):n.createCommentVNode("",!0)])])]),appliedTo:n.withCtx(({row:ae})=>[j(ae).length>0?(n.openBlock(),n.createBlock(W,{key:0},{default:n.withCtx(()=>[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(j(ae),_e=>(n.openBlock(),n.createBlock(n.unref(ce.PermissionsWrapper),{key:_e.badgeText,"auth-function":()=>A(_e.type,ae),"force-show":""},{default:n.withCtx(({isAllowed:be})=>[n.createVNode(U,{class:n.normalizeClass(be||"disabled"),onClick:n.withModifiers(Ce=>be&&_e.type&&I(_e.type,ae),["stop"])},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(_e.badgeText),1)]),_:2},1032,["class","onClick"])]),_:2},1032,["auth-function"]))),128))]),_:2},1024)):(n.openBlock(),n.createElementBlock("span",uR,"-"))]),enabled:n.withCtx(({row:ae})=>[n.createVNode(n.unref(ce.PermissionsWrapper),{"auth-function":async()=>!!(await e.canEdit(ae)&&await e.canToggle(ae)),"force-show":""},{default:n.withCtx(({isAllowed:_e})=>{var be,Ce;return[n.createElementVNode("div",{onClick:X[3]||(X[3]=n.withModifiers(()=>{},["stop"]))},[n.createVNode(K,{disabled:!_e,"disabled-tooltip-text":!_e&&((Ce=(be=e.config).getToggleDisabledTooltip)==null?void 0:Ce.call(be,ae))||void 0,"model-value":ae.enabled,onClick:n.withModifiers(Se=>_e&&L(ae),["stop","prevent"])},null,8,["disabled","disabled-tooltip-text","model-value","onClick"])])]}),_:2},1032,["auth-function"])]),ordering:n.withCtx(({rowValue:ae})=>[n.createVNode(U,{appearance:n.unref(pc)(ae)?"info":"warning"},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(pc)(ae)?n.unref(a)("plugins.list.table_headers.ordering_badge.static"):n.unref(a)("plugins.list.table_headers.ordering_badge.dynamic")),1)]),_:2},1032,["appearance"])]),tags:n.withCtx(({rowValue:ae})=>[n.createVNode(n.unref(ce.TableTags),{tags:ae},null,8,["tags"])]),actions:n.withCtx(({row:ae})=>[n.createVNode(se,null,{default:n.withCtx(({copyToClipboard:_e})=>[n.createVNode(le,{"data-testid":"action-entity-copy-id",onClick:be=>$(ae,_e)},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(a)("actions.copy_id")),1)]),_:2},1032,["onClick"])]),_:2},1024),n.createVNode(se,null,{default:n.withCtx(({copyToClipboard:_e})=>[n.createVNode(le,{"data-testid":"action-entity-copy-json",onClick:be=>G(ae,_e)},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(a)("actions.copy_json")),1)]),_:2},1032,["onClick"])]),_:2},1024),n.createVNode(n.unref(ce.PermissionsWrapper),{"auth-function":()=>e.canRetrieve(ae)},{default:n.withCtx(()=>[n.createVNode(le,{"data-testid":"action-entity-view","has-divider":"",item:re(ae)},null,8,["item"])]),_:2},1032,["auth-function"]),n.createVNode(n.unref(ce.PermissionsWrapper),{"auth-function":()=>e.canEdit(ae)},{default:n.withCtx(()=>[n.createVNode(le,{"data-testid":"action-entity-edit",item:J(ae)},null,8,["item"])]),_:2},1032,["auth-function"]),!p.value&&!m.value&&n.unref(g)?(n.openBlock(),n.createBlock(n.unref(ce.PermissionsWrapper),{key:0,"auth-function":()=>e.canConfigureDynamicOrdering(ae)},{default:n.withCtx(()=>[ne(ae)?(n.openBlock(),n.createBlock(le,{key:0,"data-testid":"action-entity-config-dyn-order",item:ne(ae)},null,8,["item"])):n.createCommentVNode("",!0)]),_:2},1032,["auth-function"])):n.createCommentVNode("",!0),n.createVNode(n.unref(ce.PermissionsWrapper),{"auth-function":()=>e.canDelete(ae)},{default:n.withCtx(()=>[n.createVNode(le,{danger:"","data-testid":"action-entity-delete","has-divider":"",onClick:_e=>de(ae)},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(a)("actions.delete")),1)]),_:2},1032,["onClick"])]),_:2},1032,["auth-function"])]),_:2},[!y.value&&e.config.app==="konnect"?{name:"empty-state",fn:n.withCtx(()=>{var ae;return[n.createVNode(n.unref(ce.EntityEmptyState),{"action-button-text":n.unref(a)("plugins.list.empty_state_v2.create_cta"),appearance:"secondary","can-create":()=>e.canCreate(),"data-testid":e.config.entityId?"nested-plugins-entity-empty-state":"plugins-entity-empty-state",description:n.unref(a)("plugins.list.empty_state_v2.description"),"learn-more":e.config.app==="konnect",title:n.unref(a)("plugins.list.empty_state_v2.title"),"onClick:create":N,"onClick:learnMore":X[2]||(X[2]=_e=>M.$emit("click:learn-more"))},n.createSlots({image:n.withCtx(()=>[n.createElementVNode("div",iR,[n.createVNode(n.unref(Ee.PlugIcon),{color:n.unref(Yw),size:n.unref(Xw)},null,8,["color","size"])])]),_:2},[(ae=e.config)!=null&&ae.isControlPlaneGroup?{name:"message",fn:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(a)("plugins.list.empty_state_v2.group")),1)]),key:"0"}:void 0]),1032,["action-button-text","can-create","data-testid","description","learn-more","title"])]}),key:"0"}:void 0]),1032,["cache-identifier","disable-sorting","empty-state-options","error-message","fetcher","fetcher-cache-key","query","table-headers","title","title-tag","onState"]),n.createVNode(n.unref(ce.EntityToggleModal),{action:P.value.action,"entity-id":P.value.id,"entity-name":P.value.name,"entity-type":n.unref(a)("glossary.plugin"),"on-confirm":B,visible:C.value,onCancel:F,onProceed:F},null,8,["action","entity-id","entity-name","entity-type","visible"]),n.createVNode(n.unref(ce.EntityDeleteModal),{"action-pending":ie.value,description:n.unref(a)("delete.description"),"entity-name":z.value&&(z.value.instance_name||z.value.name||z.value.id),"entity-type":n.unref(ce.EntityTypes).Plugin,error:oe.value,title:n.unref(a)("delete.title"),visible:Z.value,onCancel:Y,onProceed:te},null,8,["action-pending","description","entity-name","entity-type","error","title","visible"])])}}}),[["__scopeId","data-v-3f031caf"]]),pR={class:"plugin-select-card-wrapper"},mR=["data-testid"],gR={class:"plugin-card-header"},hR={class:"plugin-card-title"},yR={key:0,class:"plugin-card-actions"},_R=["data-testid","title"],bR={key:0,class:"plugin-card-text"},wR={key:0},ER=["title"],Ll=we(n.defineComponent({__name:"PluginSelectCard",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e==null?void 0:e.app)||!e.getCreateRoute)},canDeleteCustomPlugin:{type:Boolean,default:!1},canEditCustomPlugin:{type:Boolean,default:!1},plugin:{type:Object,required:!0},navigateOnClick:{type:Boolean,default:!0}},emits:["plugin-clicked","custom-plugin-delete"],setup(e,{emit:t}){const o=t,r=e,i=no.useRouter(),{i18n:{t:a}}=Oe.useI18n(),l=n.computed(()=>r.config.app==="konnect"?r.config.controlPlaneId:""),s=n.computed(()=>!!(!r.plugin.available||r.plugin.disabledMessage)),c=n.computed(()=>!!(m.value&&!p.value&&r.navigateOnClick&&l.value&&(r.canDeleteCustomPlugin||r.canEditCustomPlugin))),d=()=>{i.push(r.config.getCreateRoute(r.plugin.id))},f=()=>{r.navigateOnClick?d():u()},u=()=>{o("plugin-clicked",r.plugin)},p=n.computed(()=>r.plugin.id==="custom-plugin-create"),m=n.computed(()=>r.config.app==="konnect"&&r.plugin.group===H.PluginGroup.CUSTOM_PLUGINS),g=()=>{r.config.app==="konnect"&&o("custom-plugin-delete")},_=(b,w)=>{const y=r.config;r.config.app==="konnect"&&typeof y.getCustomEditRoute=="function"&&y.getCustomEditRoute&&i.push(y.getCustomEditRoute(b,w))},h=()=>{if(!s.value&&r.config.app==="konnect"){const b=r.config;p.value&&b.createCustomRoute?i.push(b.createCustomRoute):m.value&&d()}};return(b,w)=>{const y=n.resolveComponent("KButton"),v=n.resolveComponent("KDropdownItem"),k=n.resolveComponent("KDropdownMenu"),E=n.resolveComponent("KTooltip");return n.openBlock(),n.createElementBlock("div",pR,[n.createVNode(E,{text:e.plugin.disabledMessage},{default:n.withCtx(()=>[n.createElementVNode("a",{class:n.normalizeClass(["plugin-select-card",{disabled:s.value}]),"data-testid":`${e.plugin.id}-card`,role:"button",onClick:w[1]||(w[1]=R=>s.value||m.value?void 0:f())},[n.createElementVNode("div",gR,[n.createElementVNode("div",hR,[n.createElementVNode("span",{class:n.normalizeClass({"non-custom-title":!m.value})},n.toDisplayString(e.plugin.name),3)]),c.value?(n.openBlock(),n.createElementBlock("div",yR,[n.createVNode(k,{"data-testid":"custom-plugin-actions","kpop-attributes":{placement:"bottom-end"},width:"150"},{default:n.withCtx(()=>[n.createVNode(y,{appearance:"tertiary",class:"actions-trigger","data-testid":"overflow-actions-button",icon:"",size:"small"},{default:n.withCtx(()=>[n.createVNode(n.unref(Ee.MoreIcon),{size:n.unref(Ww)},null,8,["size"])]),_:1})]),items:n.withCtx(()=>[e.canDeleteCustomPlugin?(n.openBlock(),n.createBlock(v,{key:0,"data-testid":"edit-plugin-schema",onClick:w[0]||(w[0]=n.withModifiers(R=>_(e.plugin.name,e.plugin.customPluginType),["stop"]))},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(a)("actions.edit")),1)]),_:1})):n.createCommentVNode("",!0),e.canDeleteCustomPlugin?(n.openBlock(),n.createBlock(v,{key:1,danger:"","data-testid":"delete-plugin-schema","has-divider":"",onClick:n.withModifiers(g,["stop"])},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(a)("actions.delete")),1)]),_:1})):n.createCommentVNode("",!0)]),_:1})])):n.createCommentVNode("",!0)]),n.createElementVNode("div",{class:n.normalizeClass(["plugin-card-body",{"custom-plugin":m.value}]),"data-testid":e.plugin.name,title:e.plugin.available?e.plugin.name:n.unref(a)("plugins.select.unavailable_tooltip"),onClick:h},[n.createVNode(n.unref(ro.PluginIcon),{alt:e.plugin.name,class:"plugin-card-icon",name:e.plugin.id,size:55},null,8,["alt","name"]),e.plugin.description||m.value&&!p.value?(n.openBlock(),n.createElementBlock("div",bR,[m.value&&!p.value?(n.openBlock(),n.createElementBlock("p",wR,n.toDisplayString(n.unref(a)("plugins.select.custom_badge_text")),1)):n.createCommentVNode("",!0),e.plugin.description?(n.openBlock(),n.createElementBlock("p",{key:1,class:"plugin-card-text",title:e.plugin.description},n.toDisplayString(e.plugin.description),9,ER)):n.createCommentVNode("",!0)])):n.createCommentVNode("",!0)],10,_R),n.createElementVNode("div",{class:"plugin-card-footer",onClick:h},n.toDisplayString(p.value?n.unref(a)("actions.create_custom"):e.plugin.exists?n.unref(a)("actions.enabled"):n.unref(a)("actions.enable")),1)],10,mR)]),_:1},8,["text"])])}}}),[["__scopeId","data-v-65d53934"]]),kR=we(n.defineComponent({__name:"DeleteCustomPluginSchemaModal",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e==null?void 0:e.app))},plugin:{type:Object,required:!0}},emits:["closed","proceed"],setup(e,{emit:t}){var g;const o=e,r=t,{i18nT:i,i18n:{t:a}}=Oe.useI18n(),{getMessageFromError:l}=ce.useErrors(),{axiosInstance:s}=ce.useAxios((g=o.config)==null?void 0:g.axiosRequestConfig),c=n.computed(()=>{var _;return u.value?a("delete.plugin_schema_in_use_title"):a("delete.title",{name:((_=o.plugin)==null?void 0:_.name)||a("delete.custom_plugin")})}),d=n.ref(!1),f=n.ref(""),u=n.ref(!1),p=n.computed(()=>{if(o.config.app==="konnect"){const _=o.plugin.customPluginType==="streaming"?Be.select[o.config.app].streamingCustomPluginItem:Be.select[o.config.app].schemaCustomPluginItem;let h=`${o.config.apiBaseUrl}${_}`;return h=h.replace(/{controlPlaneId}/gi,o.config.controlPlaneId||""),h=h.replace(/{pluginId}/gi,o.plugin.id),h}return null}),m=async()=>{var _,h,b,w;if(d.value=!0,f.value="",!(!((_=o.plugin)!=null&&_.name)||((h=o.config)==null?void 0:h.app)!=="konnect"))try{p.value&&await s.delete(p.value),r("proceed")}catch(y){const{response:v}=y;(v==null?void 0:v.status)===400&&((w=(b=v.data)==null?void 0:b.message)!=null&&w.includes("plugin schema is currently in use"))?u.value=!0:f.value=l(y)}finally{d.value=!1}};return(_,h)=>{const b=n.resolveComponent("KButton"),w=n.resolveComponent("KModal");return!u.value&&e.plugin?(n.openBlock(),n.createBlock(n.unref(ce.EntityDeleteModal),{key:0,"action-pending":d.value,class:"delete-custom-plugin-schema-modal","data-testid":"delete-custom-plugin-schema-modal",description:n.unref(a)("delete.description_custom"),"entity-name":e.plugin.name,"entity-type":n.unref(ce.EntityTypes).Plugin,error:f.value,"need-confirm":"",title:c.value,visible:"",onCancel:h[0]||(h[0]=y=>_.$emit("closed")),onProceed:m},null,8,["action-pending","description","entity-name","entity-type","error","title"])):e.plugin?(n.openBlock(),n.createBlock(w,{key:1,"action-button-disabled":d.value,class:"delete-custom-plugin-schema-modal","data-testid":"delete-custom-plugin-schema-modal",title:c.value,visible:"",onCancel:h[2]||(h[2]=y=>_.$emit("closed"))},{default:n.withCtx(()=>[n.createElementVNode("div",null,[n.createVNode(n.unref(i),{keypath:"delete.plugin_schema_in_use_message",tag:"p"},{name:n.withCtx(()=>[n.createElementVNode("strong",null,n.toDisplayString(e.plugin.name),1)]),_:1})])]),"footer-actions":n.withCtx(()=>[n.createElementVNode("div",null,[n.createVNode(b,{appearance:"tertiary",class:"cancel-button","data-testid":"delete-custom-plugin-form-cancel",onClick:h[1]||(h[1]=y=>_.$emit("closed"))},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(a)("actions.cancel")),1)]),_:1})])]),_:1},8,["action-button-disabled","title"])):n.createCommentVNode("",!0)}}}),[["__scopeId","data-v-9e0dee7f"]]),CR={class:"custom-plugins-grid"},vR={class:"empty-state-title"},NR={class:"empty-state-description"},Ul=310,SR=we(n.defineComponent({__name:"PluginCustomGrid",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e==null?void 0:e.app)||!e.getCreateRoute)},canCreateCustomPlugin:{type:Boolean,default:!1},canDeleteCustomPlugin:{type:Boolean,default:!1},canEditCustomPlugin:{type:Boolean,default:!1},pluginList:{type:Object,default:()=>({})},navigateOnClick:{type:Boolean,default:!0}},emits:["plugin-clicked","revalidate","delete:success"],setup(e,{emit:t}){const o=e,r=t,{i18n:{t:i}}=Oe.useI18n(),{getTallestPluginCardHeight:a,getToggleVisibility:l}=Oe.usePluginHelpers(),s=n.ref(!0),c=k=>{r("plugin-clicked",k)},d=n.computed(()=>{if(o.config.app==="kongManager")return[];const k=JSON.parse(JSON.stringify(o.pluginList))[H.PluginGroup.CUSTOM_PLUGINS]||[];return o.canCreateCustomPlugin&&o.navigateOnClick&&o.config.createCustomRoute?[{id:"custom-plugin-create",name:i("plugins.select.tabs.custom.create.name"),available:!0,group:H.PluginGroup.CUSTOM_PLUGINS,description:i("plugins.select.tabs.custom.create.description")}].concat(k):k}),f=n.ref(!1),u=n.ref(null),p=k=>{f.value=!0,u.value={id:k.id,name:k.name,customPluginType:k.customPluginType}},m=k=>{var E;k&&(r("revalidate"),r("delete:success",((E=u.value)==null?void 0:E.name)||"")),f.value=!1,u.value=null},g=n.ref(Ul),_=n.ref(null),h=n.ref(null),b=n.computed(()=>s.value?{overflowY:"hidden",maxHeight:`${g.value}px`}:{}),w=n.ref(!1),y=()=>{g.value=Math.max(a(h.value),Ul),v()},v=()=>{var k,E;(k=h.value)!=null&&k.length&&(w.value=l(_.value,(E=h.value)==null?void 0:E.length))};return n.onMounted(async()=>{await n.nextTick(),g.value=Math.max(a(h.value),Ul),v(),window==null||window.addEventListener("resize",y)}),n.onUnmounted(()=>{window==null||window.removeEventListener("resize",y)}),(k,E)=>{const R=n.resolveComponent("KEmptyState"),O=n.resolveComponent("KCollapse");return n.openBlock(),n.createElementBlock("div",CR,[d.value.length?(n.openBlock(),n.createBlock(O,{key:1,modelValue:s.value,"onUpdate:modelValue":E[0]||(E[0]=T=>s.value=T),class:"custom-plugins-collapse","data-testid":`${n.unref(H.PluginGroup).CUSTOM_PLUGINS}-collapse`,title:n.unref(H.PluginGroup).CUSTOM_PLUGINS,"trigger-label":s.value?n.unref(i)("plugins.select.view_more"):n.unref(i)("plugins.select.view_less")},n.createSlots({"visible-content":n.withCtx(()=>[n.createElementVNode("div",{ref_key:"pluginCardContainerRef",ref:_,class:"plugin-card-container",style:n.normalizeStyle(b.value)},[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(d.value,(T,q)=>(n.openBlock(),n.createBlock(Ll,{key:`plugin-card-${q}`,ref_for:!0,ref_key:"pluginCardRef",ref:h,"can-delete-custom-plugin":e.canDeleteCustomPlugin,"can-edit-custom-plugin":e.canEditCustomPlugin,config:e.config,"navigate-on-click":e.navigateOnClick,plugin:T,onCustomPluginDelete:j=>p(T),onPluginClicked:c},null,8,["can-delete-custom-plugin","can-edit-custom-plugin","config","navigate-on-click","plugin","onCustomPluginDelete"]))),128))],4)]),_:2},[w.value?void 0:{name:"trigger",fn:n.withCtx(()=>[E[2]||(E[2]=n.createTextVNode("   ",-1))]),key:"0"}]),1032,["modelValue","data-testid","title","trigger-label"])):(n.openBlock(),n.createBlock(R,{key:0,"action-button-visible":!1,class:"custom-plugins-empty-state","icon-variant":"kong"},{title:n.withCtx(()=>[n.createElementVNode("span",vR,n.toDisplayString(n.unref(i)("plugins.select.tabs.custom.empty_title")),1)]),default:n.withCtx(()=>[n.createElementVNode("span",NR,n.toDisplayString(n.unref(i)("plugins.select.tabs.custom.empty_description")),1)]),_:1})),f.value&&u.value?(n.openBlock(),n.createBlock(kR,{key:2,config:e.config,plugin:u.value,onClosed:m,onProceed:E[1]||(E[1]=T=>m(!0))},null,8,["config","plugin"])):n.createCommentVNode("",!0)])}}}),[["__scopeId","data-v-f4b90f47"]]),Kl=310,fm=we(n.defineComponent({__name:"PluginSelectGroup",props:n.mergeModels({config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e==null?void 0:e.app)||!e.getCreateRoute)},name:{type:String,required:!0},plugins:{type:Array,required:!0},navigateOnClick:{type:Boolean,default:!0}},{modelValue:{type:Boolean,required:!0},modelModifiers:{}}),emits:n.mergeModels(["plugin-clicked"],["update:modelValue"]),setup(e,{emit:t}){const o=n.useModel(e,"modelValue"),r=e,i=t,{i18n:{t:a}}=Oe.useI18n(),{getTallestPluginCardHeight:l,getToggleVisibility:s}=Oe.usePluginHelpers(),c=n.ref(Kl),d=n.ref(null),f=n.ref(null),u=n.computed(()=>o.value?{overflowY:"hidden",maxHeight:`${c.value}px`}:{}),p=n.ref(!1),m=()=>{c.value=Math.max(l(f.value),Kl),g()},g=()=>{var _,h;(_=f.value)!=null&&_.length&&(p.value=s(d.value,(h=f.value)==null?void 0:h.length))};return n.onMounted(async()=>{await n.nextTick(),c.value=Math.max(l(f.value),Kl),g(),window==null||window.addEventListener("resize",m)}),n.onUnmounted(()=>{window==null||window.removeEventListener("resize",m)}),(_,h)=>{const b=n.resolveComponent("KCollapse");return n.openBlock(),n.createBlock(b,{modelValue:o.value,"onUpdate:modelValue":h[0]||(h[0]=w=>o.value=w),class:"plugins-collapse","data-testid":`${r.name}-collapse`,title:r.name,"trigger-label":o.value?n.unref(a)("plugins.select.view_more"):n.unref(a)("plugins.select.view_less")},n.createSlots({"visible-content":n.withCtx(()=>[n.createElementVNode("div",{ref_key:"pluginCardContainerRef",ref:d,class:"plugin-card-container",style:n.normalizeStyle(u.value)},[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(r.plugins,w=>(n.openBlock(),n.createBlock(Ll,{key:`plugin-card-${w.id}`,ref_for:!0,ref_key:"pluginCardRef",ref:f,config:e.config,"navigate-on-click":e.navigateOnClick,plugin:w,onPluginClicked:y=>i("plugin-clicked",w)},null,8,["config","navigate-on-click","plugin","onPluginClicked"]))),128))],4)]),_:2},[p.value?void 0:{name:"trigger",fn:n.withCtx(()=>[h[1]||(h[1]=n.createTextVNode("   ",-1))]),key:"0"}]),1032,["modelValue","data-testid","title","trigger-label"])}}}),[["__scopeId","data-v-a1074120"]]),xR={class:"plugin-select-grid"},AR={class:"empty-state-title"},TR={class:"empty-state-description"},jl=n.defineComponent({__name:"PluginSelectGrid",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e==null?void 0:e.app)||!e.getCreateRoute)},pluginList:{type:Object,default:()=>({})},navigateOnClick:{type:Boolean,default:!0},highlightedPlugins:{type:Array,default:()=>[]},highlightedPluginsTitle:{type:String,default:""},hideHighlightedPlugins:{type:Boolean,default:!1}},emits:["plugin-clicked"],setup(e,{emit:t}){const o=e,r=t,{i18n:{t:i}}=Oe.useI18n(),a=n.ref(!1),l=n.ref(Hl),s=d=>{r("plugin-clicked",d)},c=n.computed(()=>{const d=JSON.parse(JSON.stringify(o.pluginList));return o.config.app==="konnect"&&delete d[H.PluginGroup.CUSTOM_PLUGINS],d});return(d,f)=>{const u=n.resolveComponent("KEmptyState");return n.openBlock(),n.createElementBlock("div",xR,[Object.keys(c.value).length?n.createCommentVNode("",!0):(n.openBlock(),n.createBlock(u,{key:0,"action-button-visible":!1,class:"plugins-empty-state","data-testid":"plugins-empty-state","icon-variant":"kong"},{title:n.withCtx(()=>[n.createElementVNode("span",AR,n.toDisplayString(n.unref(i)("plugins.select.tabs.kong.empty_title")),1)]),default:n.withCtx(()=>[n.createElementVNode("span",TR,n.toDisplayString(n.unref(i)("plugins.select.tabs.kong.empty_description")),1)]),_:1})),!o.hideHighlightedPlugins&&o.highlightedPlugins.length>0?(n.openBlock(),n.createBlock(fm,{key:1,modelValue:a.value,"onUpdate:modelValue":f[0]||(f[0]=p=>a.value=p),config:e.config,name:o.highlightedPluginsTitle||n.unref(i)("plugins.select.highlighted_plugins.title"),"navigate-on-click":e.navigateOnClick,plugins:o.highlightedPlugins,onPluginClicked:f[1]||(f[1]=p=>s(p))},null,8,["modelValue","config","name","navigate-on-click","plugins"])):n.createCommentVNode("",!0),(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(zl),p=>(n.openBlock(),n.createElementBlock(n.Fragment,null,[c.value[p]?(n.openBlock(),n.createElementBlock("div",{key:p},[n.createVNode(fm,{modelValue:l.value[p],"onUpdate:modelValue":m=>l.value[p]=m,config:e.config,name:p,"navigate-on-click":e.navigateOnClick,plugins:c.value[p]||[],onPluginClicked:f[2]||(f[2]=m=>s(m))},null,8,["modelValue","onUpdate:modelValue","config","name","navigate-on-click","plugins"])])):n.createCommentVNode("",!0)],64))),256))])}}}),IR={class:"kong-ui-entities-plugin-select-form"},PR={class:"plugins-filter-input-container"},OR={key:0},$R={key:3,"aria-live":"polite",class:"plugins-results-container"},BR={"data-testid":"kong-tab"},VR={class:"tab-description"},RR={"data-testid":"custom-tab"},DR={class:"tab-description"},MR=we(n.defineComponent({__name:"PluginSelect",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e==null?void 0:e.app)||!e.getCreateRoute)},customPluginSupport:{type:String,default:"none"},canCreateCustomPlugin:{type:Function,required:!1,default:async()=>!0},canDeleteCustomPlugin:{type:Function,required:!1,default:async()=>!0},canEditCustomPlugin:{type:Function,required:!1,default:async()=>!0},navigateOnClick:{type:Boolean,default:!0},availableOnServer:{type:Boolean,default:!0},ignoredPlugins:{type:Array,default:()=>[]},disabledPlugins:{type:Object,default:()=>({})},highlightedPluginIds:{type:Array,default:()=>[]},highlightedPluginsTitle:{type:String,default:""}},emits:["loading","plugin-clicked","delete-custom:success"],setup(e,{emit:t}){var B;const o=e,r=t,i=no.useRoute(),a=no.useRouter(),{i18n:{t:l}}=Oe.useI18n(),{pluginMetaData:s}=Oe.usePluginMetaData(),{getMessageFromError:c}=ce.useErrors(),{sortAlpha:d,objectsAreEqual:f}=ce.useHelpers(),u=n.ref(""),p=n.ref(!0),m=n.ref(!1),g=n.ref(""),_=n.ref([]),h=n.ref([]),b=n.ref({}),w=n.ref([]),{axiosInstance:y}=ce.useAxios((B=o.config)==null?void 0:B.axiosRequestConfig),v=n.computed(()=>b.value?Object.entries(b.value).filter(([$])=>$!==H.PluginGroup.CUSTOM_PLUGINS).reduce(($,[,G])=>{for(const ee of G)$[ee.id]=ee;return $},{}):{}),k=n.computed(()=>{var ee;if(!b.value)return{};const $=u.value.toLowerCase(),G=JSON.parse(JSON.stringify(b.value));for(const re in b.value){const J=((ee=b.value[re])==null?void 0:ee.filter(ne=>ne.name.toLowerCase().includes($)||ne.id.toLowerCase().includes($)||ne.group.toLowerCase().includes($)))||[];J.length?G[re]=J:delete G[re]}return G}),E=n.computed(()=>o.highlightedPluginIds.reduce(($,G)=>{const ee=v.value[G];return ee&&$.push(ee),$},[])),R=n.computed(()=>Object.keys(k.value).length>0),O=n.computed(()=>Object.keys(b.value).length>0&&!R.value),T=n.computed(()=>o.config.app==="konnect"?[{hash:"#kong",title:l("plugins.select.tabs.kong.title")},{hash:"#custom",title:l("plugins.select.tabs.custom.title"),disabled:["none","disabled"].includes(o.customPluginSupport)}]:[]),q=n.computed(()=>{var G;let $=T.value.length&&((i==null?void 0:i.hash)||((G=T.value[0])==null?void 0:G.hash))||"";return $==="#custom"&&["none","disabled"].includes(o.customPluginSupport)&&($="#kong"),$}),j=()=>[...new Set([...Object.keys({...o.availableOnServer?{}:s}),..._.value])].filter($=>!o.ignoredPlugins.includes($)).filter($=>o.config.entityType&&(o.config.entityType==="services"&&s[$]&&!s[$].scope.includes(H.PluginScope.SERVICE)||o.config.entityType==="routes"&&s[$]&&!s[$].scope.includes(H.PluginScope.ROUTE)||o.config.entityType==="consumer_groups"&&s[$]&&!s[$].scope.includes(H.PluginScope.CONSUMER_GROUP)||o.config.entityType==="consumers"&&s[$]&&!s[$].scope.includes(H.PluginScope.CONSUMER))?!1:$).reduce(($,G)=>{var z;const ee=s[G]&&s[G].name||G,re={...s[G],id:G,name:ee,available:_.value.includes(G),disabledMessage:"",group:((z=s[G])==null?void 0:z.group)||H.PluginGroup.CUSTOM_PLUGINS};re.group===H.PluginGroup.CUSTOM_PLUGINS&&(re.customPluginType=h.value.find(Z=>Z.name===G)?"streaming":"schema"),o.disabledPlugins&&(re.disabledMessage=o.disabledPlugins[G]);const J=re.group||l("plugins.select.misc_plugins");let ne=$[J];return ne||(ne=[]),ne.push(re),ne.sort(d("name")),$[J]=ne,$},{}),A=n.computed(()=>{var G;let $=`${o.config.apiBaseUrl}${Be.select[o.config.app].availablePlugins}`;return o.config.app==="konnect"?$=$.replace(/{controlPlaneId}/gi,o.config.controlPlaneId||""):o.config.app==="kongManager"&&($=((G=o.config.gatewayInfo)==null?void 0:G.edition)==="community"?`${o.config.apiBaseUrl}${Be.select[o.config.app].availablePluginsForOss}`:$.replace(/\/{workspace}/gi,o.config.workspace?`/${o.config.workspace}`:"")),$}),I=n.computed(()=>{if(o.config.app==="konnect"&&o.customPluginSupport==="streaming"){let $=`${o.config.apiBaseUrl}${Be.select[o.config.app].streamingCustomPlugins}`;return $=$.replace(/{controlPlaneId}/gi,o.config.controlPlaneId||""),$}return null}),C=n.computed(()=>{if(o.config.entityType&&o.config.entityId){let $=`${o.config.apiBaseUrl}${Be.list[o.config.app].forEntity}`;return o.config.app==="konnect"?$=$.replace(/{controlPlaneId}/gi,o.config.controlPlaneId||""):o.config.app==="kongManager"&&($=$.replace(/\/{workspace}/gi,o.config.workspace?`/${o.config.workspace}`:"")),$.replace(/{entityType}/gi,o.config.entityType||"").replace(/{entityId}/gi,o.config.entityId||"")}return""}),D=$=>{a.replace({hash:$,query:i.query})};n.watch(()=>o.disabledPlugins,($,G)=>{!f($,G)&&!p.value&&(b.value=j())}),n.watch(()=>o.ignoredPlugins,($,G)=>{!f($,G)&&!p.value&&(b.value=j())}),n.watch(p,$=>{r("loading",$)});const P=n.ref(!1),L=n.ref(!1),F=n.ref(!1);return n.onBeforeMount(async()=>{P.value=await o.canCreateCustomPlugin(),L.value=await o.canEditCustomPlugin(),F.value=await o.canDeleteCustomPlugin()}),n.onMounted(async()=>{try{const{data:$}=await y.get(A.value);if(o.config.app==="konnect"){const{names:G}=$;if(_.value=G||[],I.value){const{data:ee}=await y.get(I.value);h.value=ee.data||[]}}else if(o.config.app==="kongManager"){const{plugins:{available_on_server:G}}=$;_.value=G?Object.keys(G):[]}}catch($){m.value=!0,g.value=c($)}if(C.value)try{const{data:{data:$}}=await y.get(C.value);if($!=null&&$.length){const G=$.reduce((ee,re)=>(re.name&&ee.push(re.name),ee),[]);w.value=w.value.concat(G)}}catch{}m.value||(b.value=j()),p.value=!1}),($,G)=>{const ee=n.resolveComponent("KInput"),re=n.resolveComponent("KSkeletonBox"),J=n.resolveComponent("KSkeleton"),ne=n.resolveComponent("KEmptyState"),z=n.resolveComponent("KTooltip"),Z=n.resolveComponent("KTabs");return n.openBlock(),n.createElementBlock("div",IR,[n.createElementVNode("div",PR,[n.createVNode(ee,{modelValue:u.value,"onUpdate:modelValue":G[0]||(G[0]=ie=>u.value=ie),modelModifiers:{trim:!0},class:"plugins-filter-input","data-testid":"plugins-filter",placeholder:n.unref(l)("search.placeholder.select"),type:"search"},null,8,["modelValue","placeholder"])]),p.value?(n.openBlock(),n.createElementBlock("section",OR,[n.createVNode(re,{class:"plugins-skeleton-title",width:"10"}),n.createVNode(J,{"card-count":8,class:"plugins-skeleton-cards",type:"card"})])):m.value?(n.openBlock(),n.createBlock(ne,{key:1,"action-button-visible":!1,"data-testid":"plugins-fetch-error","icon-variant":"error"},{default:n.withCtx(()=>[n.createElementVNode("h3",null,n.toDisplayString(g.value),1)]),_:1})):O.value&&u.value?(n.openBlock(),n.createBlock(ne,{key:2,"action-button-visible":!1,"data-testid":"plugins-empty-state","icon-variant":"search"},{default:n.withCtx(()=>[n.createElementVNode("h5",null,n.toDisplayString(n.unref(l)("search.no_results",{filter:u.value})),1)]),_:1})):(n.openBlock(),n.createElementBlock("section",$R,[T.value.length&&e.customPluginSupport!=="none"?(n.openBlock(),n.createBlock(Z,{key:0,modelValue:q.value,"onUpdate:modelValue":G[5]||(G[5]=ie=>q.value=ie),"data-testid":"plugins-tabs",tabs:T.value,onChange:D},n.createSlots({kong:n.withCtx(()=>[n.createElementVNode("div",BR,[n.createElementVNode("p",VR,n.toDisplayString(n.unref(l)("plugins.select.tabs.kong.description")),1),n.createVNode(jl,{config:e.config,"hide-highlighted-plugins":u.value.length>0,"highlighted-plugins":E.value,"highlighted-plugins-title":o.highlightedPluginsTitle,"navigate-on-click":e.navigateOnClick,"plugin-list":k.value,onPluginClicked:G[1]||(G[1]=ie=>$.$emit("plugin-clicked",ie))},null,8,["config","hide-highlighted-plugins","highlighted-plugins","highlighted-plugins-title","navigate-on-click","plugin-list"])])]),custom:n.withCtx(()=>[n.createElementVNode("div",RR,[n.createElementVNode("p",DR,n.toDisplayString(n.unref(l)("plugins.select.tabs.custom.description")),1),n.createVNode(SR,{"can-create-custom-plugin":P.value,"can-delete-custom-plugin":F.value,"can-edit-custom-plugin":L.value,config:e.config,"navigate-on-click":e.navigateOnClick,"plugin-list":k.value,"onDelete:success":G[2]||(G[2]=ie=>$.$emit("delete-custom:success",ie)),onPluginClicked:G[3]||(G[3]=ie=>$.$emit("plugin-clicked",ie)),onRevalidate:G[4]||(G[4]=()=>b.value=j())},null,8,["can-create-custom-plugin","can-delete-custom-plugin","can-edit-custom-plugin","config","navigate-on-click","plugin-list"])])]),_:2},[e.customPluginSupport==="disabled"?{name:"custom-anchor",fn:n.withCtx(()=>[n.createVNode(z,{"max-width":"300",text:n.unref(l)("plugins.select.tabs.custom.disabled_tooltip")},{default:n.withCtx(()=>[n.createElementVNode("div",null,n.toDisplayString(n.unref(l)("plugins.select.tabs.custom.title")),1)]),_:1},8,["text"])]),key:"0"}:void 0]),1032,["modelValue","tabs"])):(n.openBlock(),n.createBlock(jl,{key:1,config:e.config,"hide-highlighted-plugins":u.value.length>0,"highlighted-plugins":E.value,"highlighted-plugins-title":o.highlightedPluginsTitle,"navigate-on-click":e.navigateOnClick,"plugin-list":k.value,onPluginClicked:G[6]||(G[6]=ie=>$.$emit("plugin-clicked",ie))},null,8,["config","hide-highlighted-plugins","highlighted-plugins","highlighted-plugins-title","navigate-on-click","plugin-list"]))]))])}}}),[["__scopeId","data-v-c18b2b5c"]]),FR={class:"kong-ui-entity-plugin-config-card"},LR={class:"name-cell-wrapper"},UR={class:"info-name"},KR={key:0},jR={key:0},GR={key:0},qR={key:0},zR={key:0},Gl="config",HR=we(n.defineComponent({__name:"PluginConfigCard",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e==null?void 0:e.app)||e.app==="konnect"&&!e.controlPlaneId||e.app==="kongManager"&&typeof e.workspace!="string"||!e.entityId||!e.pluginType)},configCardDoc:{type:String,default:"",required:!1},showIdAsLink:{type:Boolean,default:!1},hideTitle:{type:Boolean,default:!1},scopedEntityType:{type:String,required:!1,default:""},scopedEntityId:{type:String,required:!1,default:""},expandPartial:{type:Boolean,default:!0}},emits:["loading","fetch:error","error:fetch-schema","fetch:success","navigation-click"],setup(e,{emit:t}){var w;const o=t,r=e,{i18n:{t:i}}=Oe.useI18n(),a=Oe.usePluginMetaData(),{setFieldType:l}=Oe.usePluginHelpers(),{getPropValue:s}=ce.useHelpers(),c=n.computed(()=>{var y;return(y=Be.item[r.config.app])==null?void 0:y[r.scopedEntityType?"forEntity":"all"].replace(/{entityType}/gi,r.scopedEntityType).replace(/{entityId}/gi,r.scopedEntityId).concat(r.expandPartial?"?expand_partials=true":"")}),d=n.computed(()=>{var k,E;const y={},v=((k=_.value)==null?void 0:k.fields)||[];for(let R=0;R<v.length;R++){const O=_.value.fields[R],T=(E=Object.keys(O))==null?void 0:E[0];l(y,T,O[T])}return{...y,instance_name:{section:ce.ConfigurationSchemaSection.Basic,order:1.5},consumer:{label:i("plugins.fields.consumer"),section:ce.ConfigurationSchemaSection.Basic,order:6},route:{label:i("plugins.fields.route"),section:ce.ConfigurationSchemaSection.Basic,order:6},service:{label:i("plugins.fields.service"),section:ce.ConfigurationSchemaSection.Basic,order:6},consumer_group:{label:i("plugins.fields.consumer_group"),section:ce.ConfigurationSchemaSection.Basic,order:6},protocols:{type:ce.ConfigurationSchemaType.BadgeTag,section:ce.ConfigurationSchemaSection.Basic,order:7}}}),f=n.computed(()=>{var v,k,E;if(!((v=_.value)!=null&&v.fields))return[];const y=(k=_.value.fields)==null?void 0:k.find(R=>{var T;return((T=Object.keys(R))==null?void 0:T[0])===Gl});return((E=y==null?void 0:y[Gl])==null?void 0:E.fields)||[]}),u=n.computed(()=>{var v,k;const y={};if(!f.value)return y;for(let E=0;E<((v=f.value)==null?void 0:v.length);E++){const R=f.value[E],O=(k=Object.keys(R))==null?void 0:k[0],T=R[O];T.required&&(y[O]={order:1}),l(y,O,T)}return y}),{getMessageFromError:p}=ce.useErrors(),{axiosInstance:m}=ce.useAxios((w=r.config)==null?void 0:w.axiosRequestConfig),g=n.computed(()=>{var v,k;let y=`${r.config.apiBaseUrl}${Be.form[r.config.app].pluginSchema}`;return r.config.app==="konnect"?y=y.replace(/{controlPlaneId}/gi,((v=r.config)==null?void 0:v.controlPlaneId)||""):r.config.app==="kongManager"&&(y=y.replace(/\/{workspace}/gi,(k=r.config)!=null&&k.workspace?`/${r.config.workspace}`:"")),y=y.replace(/{plugin}/gi,r.config.pluginType),y}),_=n.ref({});ce.useSchemaProvider(_);const h=n.ref(!1),b=n.ref("");return n.onBeforeMount(async()=>{h.value=!0;try{const{data:y}=await m.get(g.value);_.value=y}catch(y){b.value=p(y),o("error:fetch-schema",y)}finally{h.value=!1}}),(y,v)=>{const k=n.resolveComponent("KSkeleton"),E=n.resolveComponent("KEmptyState"),R=n.resolveComponent("KCopy");return n.openBlock(),n.createElementBlock("div",FR,[h.value?(n.openBlock(),n.createBlock(k,{key:0,"data-testid":"plugin-config-card-loader","table-columns":2,type:"table"})):b.value?(n.openBlock(),n.createBlock(E,{key:1,"data-testid":"plugin-config-card-schema-error","icon-variant":"error"},{default:n.withCtx(()=>[n.createElementVNode("h3",null,n.toDisplayString(b.value),1)]),_:1})):(n.openBlock(),n.createBlock(n.unref(ce.EntityBaseConfigCard),{key:2,config:e.config,"config-card-doc":e.configCardDoc,"config-schema":d.value,"entity-type":n.unref(ce.SupportedEntityType).Plugin,"fetch-url":c.value,"hide-title":e.hideTitle,"plugin-config-key":Gl,"plugin-config-schema":u.value,"onFetch:error":v[0]||(v[0]=O=>y.$emit("fetch:error",O)),"onFetch:success":v[1]||(v[1]=O=>y.$emit("fetch:success",O)),onLoading:v[2]||(v[2]=O=>y.$emit("loading",O))},{name:n.withCtx(O=>[n.createElementVNode("div",LR,[n.createVNode(n.unref(ro.PluginIcon),{class:"plugin-icon",name:n.unref(s)("rowValue",O),size:24},null,8,["name"]),n.createElementVNode("span",UR,n.toDisplayString(n.unref(a).getDisplayName(n.unref(s)("rowValue",O))),1)])]),consumer:n.withCtx(O=>[n.unref(s)("rowValue",O)?e.showIdAsLink?(n.openBlock(),n.createBlock(n.unref(ce.InternalLinkItem),{key:1,item:{key:n.unref(s)("rowValue",O).id,value:n.unref(s)("rowValue",O).id,type:n.unref(ce.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>y.$emit("navigation-click",n.unref(s)("rowValue",O).id,"consumer")},null,8,["item","onNavigationClick"])):(n.openBlock(),n.createBlock(R,{key:2,"copy-tooltip":n.unref(i)("copy.tooltip",{label:n.unref(s)("row",O).label}),"data-testid":"consumer-copy-uuid",text:n.unref(s)("rowValue",O).id},null,8,["copy-tooltip","text"])):(n.openBlock(),n.createElementBlock("span",KR,"–"))]),route:n.withCtx(O=>[n.unref(s)("rowValue",O)?e.showIdAsLink?(n.openBlock(),n.createBlock(n.unref(ce.InternalLinkItem),{key:1,item:{key:n.unref(s)("rowValue",O).id,value:n.unref(s)("rowValue",O).id,type:n.unref(ce.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>y.$emit("navigation-click",n.unref(s)("rowValue",O).id,"route")},null,8,["item","onNavigationClick"])):(n.openBlock(),n.createBlock(R,{key:2,"copy-tooltip":n.unref(i)("copy.tooltip",{label:n.unref(s)("row",O).label}),"data-testid":"route-copy-uuid",text:n.unref(s)("rowValue",O).id},null,8,["copy-tooltip","text"])):(n.openBlock(),n.createElementBlock("span",jR,"–"))]),service:n.withCtx(O=>[n.unref(s)("rowValue",O)?e.showIdAsLink?(n.openBlock(),n.createBlock(n.unref(ce.InternalLinkItem),{key:1,item:{key:n.unref(s)("rowValue",O).id,value:n.unref(s)("rowValue",O).id,type:n.unref(ce.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>y.$emit("navigation-click",n.unref(s)("rowValue",O).id,"service")},null,8,["item","onNavigationClick"])):(n.openBlock(),n.createBlock(R,{key:2,"copy-tooltip":n.unref(i)("copy.tooltip",{label:n.unref(s)("row",O).label}),"data-testid":"service-copy-uuid",text:n.unref(s)("rowValue",O).id},null,8,["copy-tooltip","text"])):(n.openBlock(),n.createElementBlock("span",GR,"–"))]),consumer_group:n.withCtx(O=>[n.unref(s)("rowValue",O)?e.showIdAsLink?(n.openBlock(),n.createBlock(n.unref(ce.InternalLinkItem),{key:1,item:{key:n.unref(s)("rowValue",O).id,value:n.unref(s)("rowValue",O).id,type:n.unref(ce.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>y.$emit("navigation-click",n.unref(s)("rowValue",O).id,"consumer_group")},null,8,["item","onNavigationClick"])):(n.openBlock(),n.createBlock(R,{key:2,"copy-tooltip":n.unref(i)("copy.tooltip",{label:n.unref(s)("row",O).label}),"data-testid":"consumer-group-copy-uuid",text:n.unref(s)("rowValue",O).id},null,8,["copy-tooltip","text"])):(n.openBlock(),n.createElementBlock("span",qR,"–"))]),partials:n.withCtx(O=>{var T,q,j,A,I,C,D,P,L;return[n.unref(s)("rowValue",O)?e.showIdAsLink?(n.openBlock(),n.createBlock(n.unref(ce.InternalLinkItem),{key:1,item:{key:(q=(T=n.unref(s)("rowValue",O))==null?void 0:T[0])==null?void 0:q.id,value:((A=(j=n.unref(s)("rowValue",O))==null?void 0:j[0])==null?void 0:A.id)+((C=(I=n.unref(s)("rowValue",O))==null?void 0:I[0])!=null&&C.name?"/"+((P=(D=n.unref(s)("rowValue",O))==null?void 0:D[0])==null?void 0:P.name):""),type:n.unref(ce.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>{var F,B;return y.$emit("navigation-click",(B=(F=n.unref(s)("rowValue",O))==null?void 0:F[0])==null?void 0:B.id,"partial")}},null,8,["item","onNavigationClick"])):(n.openBlock(),n.createBlock(R,{key:2,"copy-tooltip":n.unref(i)("copy.tooltip",{label:n.unref(s)("row",O).label}),"data-testid":"partial-copy-uuid",text:(L=n.unref(s)("rowValue",O))==null?void 0:L[0].id},null,8,["copy-tooltip","text"])):(n.openBlock(),n.createElementBlock("span",zR,"–"))]}),_:1},8,["config","config-card-doc","config-schema","entity-type","fetch-url","hide-title","plugin-config-schema"]))])}}}),[["__scopeId","data-v-53806ec8"]]),{usePluginMetaData:YR,useProvideExperimentalFreeForms:WR}=Oe;Object.defineProperty(he,"PluginGroup",{enumerable:!0,get:()=>H.PluginGroup}),Object.defineProperty(he,"PluginScope",{enumerable:!0,get:()=>H.PluginScope}),Object.defineProperty(he,"PluginIcon",{enumerable:!0,get:()=>ro.PluginIcon}),Object.defineProperty(he,"getPluginIconURL",{enumerable:!0,get:()=>ro.getPluginIconURL}),he.EXPERIMENTAL_FREE_FORM_PROVIDER=Ti,he.EntityTypeIdField=Xt,he.FEATURE_FLAGS=os,he.PLUGIN_GROUPS_COLLAPSE_STATUS=Hl,he.PluginConfigCard=HR,he.PluginForm=nR,he.PluginGroupArray=zl,he.PluginList=fR,he.PluginPartialType=er,he.PluginSelect=MR,he.PluginSelectCard=Ll,he.PluginSelectGrid=jl,he.pluginEndpoints=Be,he.usePluginMetaData=YR,he.useProvideExperimentalFreeForms=WR,Object.defineProperty(he,Symbol.toStringTag,{value:"Module"})});
150
+ `},Symbol.toStringTag,{value:"Module"})),DV={class:"dk-code-editor"},MV={class:"examples-content"},FV={ref:"editor-root",class:"editor"},Fl="YAML Syntax",LV="datakit.insert-example",UV=we(n.defineComponent({__name:"CodeEditor",props:{editing:{type:Boolean},config:{}},emits:["change","error"],setup(e,{expose:t,emit:o}){const{t:r}=Re.createI18n("en-us",je),i=o,a=n.useTemplateRef("editor-root"),l=n.shallowRef(null);function s(c){const d=l.value,f=d==null?void 0:d.getModel();if(!d||!f)return;const u=sm[c];if(d.getValue()!==u){const p=f.getFullModelRange();d.pushUndoStop(),d.executeEdits(LV,[{range:p,text:u}]),d.pushUndoStop()}d.focus()}return n.onMounted(()=>{const c=Qo.editor.create(a.value,{language:"yaml",automaticLayout:!0,minimap:{enabled:!1},scrollBeyondLastLine:!1,tabSize:2,scrollbar:{alwaysConsumeMouseWheel:!1},autoIndent:"keep"});l.value=c,e.config&&Object.keys(e.config).length>0&&c.setValue(lm.dump(n.toRaw(e.config),{schema:Ml,noArrayIndent:!0})),c.onDidChangeModelContent(()=>{const d=c.getModel(),f=c.getValue()||"";try{const u=lm.load(f,{schema:Ml,json:!0});Qo.editor.setModelMarkers(d,Fl,[]),i("change",u)}catch(u){const{message:p,mark:m}=u,{line:g,column:_}=m||{line:0,column:0},h=p.split(`
151
+ `)[0],b=[{startLineNumber:g+1,startColumn:_+1,endLineNumber:g+1,endColumn:_+2,message:h,severity:Qo.MarkerSeverity.Error,source:Fl}];Qo.editor.setModelMarkers(d,Fl,b),i("error",h)}})}),n.onBeforeUnmount(()=>{var c;(c=l.value)==null||c.dispose()}),t({setExampleCode:s}),(c,d)=>(n.openBlock(),n.createElementBlock("div",DV,[n.createVNode(n.unref(Ie.KAlert),{class:"examples"},{icon:n.withCtx(()=>[n.createVNode(n.unref(Ee.SparklesIcon))]),default:n.withCtx(()=>[n.createElementVNode("div",MV,[n.createTextVNode(n.toDisplayString(n.unref(r)("plugins.free-form.datakit.description_example"))+" ",1),(n.openBlock(),n.createElementBlock(n.Fragment,null,n.renderList(sm,(f,u)=>n.createVNode(n.unref(Ie.KButton),{key:u,appearance:"secondary",size:"small",onClick:p=>s(u)},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(r)(`plugins.free-form.datakit.examples.${u}`)),1)]),_:2},1032,["onClick"])),64))])]),_:1}),n.createElementVNode("div",FV,null,512)]))}}),[["__scopeId","data-v-d63d9bf4"]]),KV=["innerHTML"],jV=n.defineComponent({__name:"DatakitForm",props:{generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{},schema:{},formSchema:{},model:{},formModel:{},formOptions:{},isEditing:{type:Boolean},onModelUpdated:{type:Function},onFormChange:{type:Function},onValidityChange:{type:Function}},setup(e){const{t}=Re.createI18n("en-us",je),o=e,r=n.inject(os.DATAKIT_ENABLE_FLOW_EDITOR,!1),{editorMode:i}=wa(),a=n.computed(()=>r?i.value:"code"),l={flow:Ee.DesignIcon,code:Ee.CodeblockIcon},s=[{label:t("plugins.free-form.datakit.flow_editor.mode"),value:"flow"},{label:t("plugins.free-form.datakit.code_editor.mode"),value:"code"}],c=n.computed(()=>{switch(i.value){case"code":return t("plugins.free-form.datakit.description_code");case"flow":return t("plugins.free-form.datakit.description_flow");default:return""}}),d=n.ref({...o.model.config});function f(m){for(const g in m.config)g!=="nodes"&&(d.value[g]=m.config[g])}function u(m){var g;o.onFormChange({config:m}),(g=o.onValidityChange)==null||g.call(o,{model:"config",valid:!0}),d.value=m}function p(m){var g;(g=o.onValidityChange)==null||g.call(o,{model:"config",valid:!1,error:m})}return(m,g)=>(n.openBlock(),n.createBlock(hE,n.mergeProps(o,{class:"dk-form"}),n.createSlots({default:n.withCtx(_=>[n.createVNode(mt,n.mergeProps(_,{data:{config:d.value},tag:"div",onChange:f}),{default:n.withCtx(()=>[a.value==="flow"?(n.openBlock(),n.createBlock(_$,{key:0,config:d.value,editing:o.isEditing,onChange:u},null,8,["config","editing"])):a.value==="code"?(n.openBlock(),n.createBlock(UV,{key:1,class:"code-editor",config:d.value,editing:o.isEditing,onChange:u,onError:p},null,8,["config","editing"])):n.createCommentVNode("",!0)]),_:2},1040,["data"])]),"plugin-config-description":n.withCtx(()=>[n.createElementVNode("span",{innerHTML:c.value},null,8,KV)]),_:2},[n.unref(r)?{name:"plugin-config-extra",fn:n.withCtx(()=>[n.createVNode(n.unref(Ie.KSegmentedControl),{modelValue:n.unref(i),"onUpdate:modelValue":g[0]||(g[0]=_=>n.isRef(i)?i.value=_:null),options:s},{"option-label":n.withCtx(({option:_})=>[(n.openBlock(),n.createBlock(n.resolveDynamicComponent(l[_.value]))),n.createTextVNode(" "+n.toDisplayString(_.label),1)]),_:1},8,["modelValue"])]),key:"0"}:void 0]),1040))}}),cm=e=>{if(!(!e||typeof e!="object"))for(const[t,o]of Object.entries(e))typeof o=="string"&&(e[t]=o.split(/\s*,\s*/).filter(Boolean))},dm=e=>{if(!(!e||typeof e!="object"))for(const[t,o]of Object.entries(e))Array.isArray(o)&&(e[t]=o.join(", "))},GV=we(n.defineComponent({__name:"ConfigForm",props:{schema:{},data:{},onChange:{type:Function}},emits:["change"],setup(e,{emit:t}){const o=t,{i18n:{t:r}}=Oe.useI18n(),l={prepareFormData:c=>{var f,u;const d=Tn(c);return(u=(f=d.config)==null?void 0:f.tools)!=null&&u.length&&d.config.tools.forEach(p=>{dm(p.headers),dm(p.query)}),d},hasValue:c=>!!(c!=null&&c.config)},s=c=>{var f,u;const d=Tn(c);(u=(f=d.config)==null?void 0:f.tools)!=null&&u.length&&d.config.tools.forEach(p=>{cm(p.headers),cm(p.query)}),o("change",d)};return(c,d)=>(n.openBlock(),n.createBlock(mt,{class:"ai-mcp-config-form",config:l,data:c.data,schema:c.schema,tag:"div",onChange:s},{default:n.withCtx(()=>[n.createVNode(dt,{"as-child":"",name:"config","reset-label-path":"reset"},{tools:n.withCtx(({name:f})=>[n.createVNode(yr,{appearance:"tabs","item-label":(u,p)=>n.unref(r)("plugins.free-form.ai-mcp.tool_item_label",{index:p+1}),name:f,"sticky-tabs":""},null,8,["item-label","name"])]),_:1}),n.createVNode(fa)]),_:1},8,["data","schema"]))}}),[["__scopeId","data-v-7cb4b052"]]),um=Object.freeze(Object.defineProperty({__proto__:null,AIMcpForm:n.defineComponent({__name:"AIMcpForm",props:{schema:{},formSchema:{},model:{},formModel:{},formOptions:{},isEditing:{type:Boolean},onModelUpdated:{type:Function},onFormChange:{type:Function}},setup(e){const t=e,o=n.useSlots();return n.provide(ve.AUTOFILL_SLOT,o==null?void 0:o[ve.AUTOFILL_SLOT_NAME]),(r,i)=>(n.openBlock(),n.createBlock(pa,n.normalizeProps(n.guardReactiveProps(t)),{default:n.withCtx(a=>[n.createVNode(GV,n.normalizeProps(n.guardReactiveProps(a)),null,16)]),_:1},16))}}),DatakitForm:jV,RequestCalloutForm:_w,ServiceProtectionForm:uE},Symbol.toStringTag,{value:"Module"})),qV={class:"kong-ui-entities-plugin-form"},zV={key:1,class:"entity-form"},HV={class:"plugin-config-empty-state"},YV=we(n.defineComponent({__name:"PluginEntityForm",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e==null?void 0:e.app)||e.app==="konnect"&&!e.controlPlaneId||e.app==="kongManager"&&typeof e.workspace!="string")},entityMap:{type:Object,default:()=>({})},record:{type:Object,default:()=>({})},schema:{type:Object,default:()=>({})},rawSchema:{type:Object,default:()=>({})},editing:{type:Boolean,default:!1},credential:{type:Boolean,default:!1},enableVaultSecretPicker:{type:Boolean,default:!1},enableRedisPartial:{type:Boolean,default:!1}},emits:["loading","model-updated","showNewPartialModal","globalAction","validity-change"],setup(e,{emit:t}){var J,ne;const o=Object.keys(ve.sharedForms),r=Object.keys(um);if(new Set([...o,...r]).size!==o.length+r.length)throw new Error("Duplicate form component names found in `sharedForms` and `freeForm`");const i=t,a=e,{axiosInstance:l}=ce.useAxios((J=a.config)==null?void 0:J.axiosRequestConfig),{parseSchema:s}=Oe.useSchemas({entityId:((ne=a.entityMap.focusedEntity)==null?void 0:ne.id)||void 0,credential:a.credential,enableRedisPartial:a.enableRedisPartial,experimentalRenders:a.config.app==="konnect"?a.config.experimentalRenders:void 0}),{convertToDotNotation:c,unFlattenObject:d,dismissField:f,isObjectEmpty:u,unsetNullForeignKey:p}=Oe.usePluginHelpers(),m=Oe.useExperimentalFreeForms(),{objectsAreEqual:g}=ce.useHelpers(),{i18n:{t:_}}=xe(),h=(z,Z)=>{let ie=`${a.config.apiBaseUrl}${Be.form[a.config.app].entityGetOne}`;return a.config.app==="konnect"?ie=ie.replace(/{controlPlaneId}/gi,a.config.controlPlaneId||""):a.config.app==="kongManager"&&(ie=ie.replace(/\/{workspace}/gi,a.config.workspace?`/${a.config.workspace}`:"")),ie=ie.replace(/{entity}/gi,z),ie=ie.replace(/{id}/gi,Z),ie},b=z=>{let Z=`${a.config.apiBaseUrl}${Be.form[a.config.app].entityGetAll}`;return a.config.app==="konnect"?Z=Z.replace(/{controlPlaneId}/gi,a.config.controlPlaneId||""):a.config.app==="kongManager"&&(Z=Z.replace(/\/{workspace}/gi,a.config.workspace?`/${a.config.workspace}`:"")),Z=Z.replace(/{entity}/gi,z),Z},w=(z,Z)=>{const ie=h(z,Z);return l.get(ie)},y=(z,Z)=>{const ie=b(z);return a.config.app==="konnect"?l.get(ie).then(oe=>{const{data:{data:ue}}=oe;if(delete Z.size,delete Z.offset,ue.length&&Object.keys(Z).length===1){const de=Object.keys(Z)[0],Y=ue.filter(te=>te[de]?!!te[de].toLowerCase().includes(Z[de].toLowerCase()):!1);oe.data.data=Y}return oe}):l.get(ie,{params:Z})};n.provide(ve.FORMS_API_KEY,{getOne:w,getAll:y}),n.provide(ve.FORMS_CONFIG,a.config);const v=n.ref(""),k=n.ref(""),E=n.ref(null),R=n.ref({}),O=n.reactive({}),T=n.reactive({}),q=n.computed(()=>{var z;return(z=E.value)==null?void 0:z.options}),j=n.ref(!1),A=n.ref(),I=(z,Z)=>{j.value=z??"",A.value=Z},C=z=>{var Z;(Z=A.value)==null||Z.call(A,z),j.value=!1},D=()=>{var Y,te;const z={...a.schema},Z=T,ie=O,oe=Object.keys(Z),ue={};if(!u(R.value))for(let N=0;N<((te=(Y=R.value)==null?void 0:Y.fields)==null?void 0:te.length);N++)z[R.value.fields[N].model]=R.value.fields[N];ve.customFields.forEach(N=>{z[N]&&(z[N].fields.forEach(S=>{S.fields&&S.fields.forEach(x=>{z[x.model]=x}),S.model&&(z[S.model]=S)}),delete z[N])}),oe.forEach(N=>{var K;if(!z[N]){N==="partials"&&(ue[N]=Z[N]);return}const S=z[N];let x=Z[N];const V=ie[N],M=Array.isArray(x)?"array":typeof x,X=S?S.valueType:null,Q=S?S.valueArrayType:null,U=S?S.transform:null;if(x==null&&V==null&&!S.submitWhenNull)return;if(S){if(X&&M!==X)switch(X){case"array":M==="string"&&x.length&&(x=x.split(",").map(le=>{if(le=le.trim(),Q==="string")return String(le);if(Q==="number")return Number(le);if(Q==="boolean"){if(typeof le=="string")return le.toLowerCase()==="true"||le==="1";if(typeof le=="number")return le===1}return le})),(!x||!x.length)&&(x=S.submitWhenNull?null:[]);break;case"number":x=Number(x);break;case"boolean":M==="string"&&(x=x.toLowerCase()==="true"||x==="1"),M==="number"&&(x=x===1);break;case"string":x=x==null?"":String(x);break}else X==="array"&&(!x||!x.length?x=S.submitWhenNull?null:[]:((K=S.inputAttributes)==null?void 0:K.type)==="number"&&(x=x.map(le=>Number(le))));if(S.type==="array"&&S.nestedFields){const le=se=>{Object.keys(se).forEach(ae=>{se[ae]&&typeof se[ae]=="object"&&!Array.isArray(se[ae])&&se[ae]!==null?le(se[ae]):(se[ae]===void 0||se[ae]===null||typeof se[ae]=="number"&&isNaN(se[ae])||typeof se[ae]=="string"&&se[ae].trim().length===0)&&delete se[ae]})};x&&typeof x=="object"&&le(x)}S.type==="object-advanced"&&S.fields&&x!==null&&(Object.entries(x).length===0?x=null:Object.keys(x).forEach(le=>{Array.isArray(x[le])||(x[le]=x[le].split(","))}))}let W=c(N);if(S.fieldNameHasDashes){const[le,...se]=W.split(".").reverse();W=[le.replace(/_/g,"-"),...se].reverse().join(".")}if(X==="object-expand"){let le;[W,le]=W.split(".");let se={};ue[W]&&(se=ue[W]),se[le]=x,x=se}V!==void 0&&x===""&&x!==V?ue[W]=X==="object"?{}:null:S.type==="checklist"&&x===""?ue[W]=[]:x!==""&&(ue[W]=x),ue[W]=U?U(x):ue[W],p(W,ue)});const de=d(ue);return k.value&&Object.assign(de,$.value),de},P=(z,Z={})=>{f(T,Z,z,a.editing),i("model-updated",{model:T,originalModel:O,data:D()})},L=(z,Z)=>{var ue;const ie={[Z]:z};typeof((ue=a.schema[Z])==null?void 0:ue.modelTransformer)=="function"&&(ie[Z]=a.schema[Z].modelTransformer(z));const oe=Object.assign({},T,ie);Object.assign(T,oe),i("model-updated",{model:T,originalModel:O,data:D()})},F=z=>{i("validity-change",z)},B=(z,Z)=>{Object.keys(z).forEach(ie=>{var te,N;let oe=Z?`${Z}-${ie}`:ie,ue=a.schema[oe];if(!ue){const S=Z?`${Z}-${ie.replace(/-/g,"_")}`:ie.replace(/-/g,"_");(te=a.schema[S])!=null&&te.fieldNameHasDashes&&(oe=S,ue=a.schema[oe]),Z&&((N=a.schema[Z])==null?void 0:N.keyFromObject)===ie&&(oe=Z,ue=a.schema[oe])}const de=z[ie],Y=typeof de;if(ue&&ue.type==="object-advanced"&&!de){T[oe]={},O[oe]={};return}if(Array.isArray(de)){T[oe]=JSON.parse(JSON.stringify(de)),O[oe]=JSON.parse(JSON.stringify(de));return}if(Y==="object"&&de&&!de.length)return B(de,oe);if(Y==="object"&&de&&de.length&&ue.type==="input"){T[oe]=de.join(", "),O[oe]=de.join(", ");return}T[oe]=de,O[oe]=de}),i("model-updated",{model:T,originalModel:O,data:D()})},$=n.shallowRef(a.record),G=z=>{$.value=z,i("model-updated",{model:{...T,...z},originalModel:O,data:D()})},ee=n.ref(!0),re=()=>{var z;if(a.record&&a.schema&&(B({enabled:a.record.enabled??!0,...a.record.instance_name&&{instance_name:a.record.instance_name||""},...a.record.protocols&&{protocols:a.record.protocols},...a.record.tags&&{tags:a.record.tags}}),a.credential?((a.record.consumer_id||a.record.consumer)&&B({consumer_id:a.record.consumer_id||a.record.consumer}),B(a.record)):a.record.config&&((a.record.consumer_id||a.record.consumer||a.record.service_id||a.record.service||a.record.route_id||a.record.route||a.record.consumer_group_id||a.record.consumer_group)&&B({service_id:a.record.service_id||a.record.service,route_id:a.record.route_id||a.record.route,consumer_id:a.record.consumer_id||a.record.consumer,consumer_group_id:a.record.consumer_group_id||a.record.consumer_group}),a.record.partials&&P("redis",{partials:a.record.partials}),k.value?G(a.record):B(a.record.config,"config"))),Object.keys(a.entityMap).length&&!a.entityMap.global&&a.schema){const Z={};for(const ie in a.entityMap){const oe=a.entityMap[ie].id,ue=a.entityMap[ie].idField,de=ue==="consumer_group_id"?"consumer_group-id":JSON.parse(JSON.stringify(ue).replace("_","-"));Object.prototype.hasOwnProperty.call(T,de)&&(Z[de]=oe)}B(Z)}if((z=a.entityMap.consumer)!=null&&z.id&&a.schema&&a.credential){const Z={};Object.prototype.hasOwnProperty.call(T,"consumer")&&(Z.consumer=a.entityMap.consumer.id),B(Z)}ee.value=!1};return n.watch(ee,z=>{i("loading",z)}),n.watch(()=>a.schema,(z,Z)=>{var oe,ue;if(g(z||{},Z||{}))return;const ie=s(z);Object.assign(T,ie.model),R.value={fields:(ue=(oe=R.value)==null?void 0:oe.fields)==null?void 0:ue.map(de=>({...de,disabled:de.disabled||!1}))},Object.assign(O,JSON.parse(JSON.stringify(ie.model))),k.value=ns(ie.model.name,m),v.value=ve.getSharedFormName(ie.model.name),re()},{immediate:!0,deep:!0}),n.onBeforeMount(()=>{var z,Z;E.value=s(a.schema),Object.assign(T,((z=E.value)==null?void 0:z.model)||{}),R.value=((Z=E.value)==null?void 0:Z.schema)||{},re()}),(z,Z)=>{var oe;const ie=n.resolveComponent("KSkeleton");return n.openBlock(),n.createElementBlock(n.Fragment,null,[n.createElementVNode("div",qV,[ee.value?(n.openBlock(),n.createBlock(ie,{key:0,type:"form"})):T.id&&e.editing||!e.editing?(n.openBlock(),n.createElementBlock("div",zV,[k.value?(n.openBlock(),n.createBlock(n.resolveDynamicComponent(um[k.value]),{key:0,"form-model":T,"form-options":q.value,"form-schema":R.value,"is-editing":e.editing,model:e.record,"on-form-change":G,"on-model-updated":L,"on-validity-change":F,schema:e.rawSchema,onGlobalAction:Z[0]||(Z[0]=(ue,de)=>z.$emit("globalAction",ue,de))},n.createSlots({_:2},[e.enableVaultSecretPicker?{name:n.unref(ve.AUTOFILL_SLOT_NAME),fn:n.withCtx(ue=>[ue.schema.referenceable?(n.openBlock(),n.createBlock(n.unref(Jo.VaultSecretPickerProvider),n.mergeProps({key:0},ue,{onOpen:I}),null,16)):n.createCommentVNode("",!0)]),key:"0"}:void 0]),1064,["form-model","form-options","form-schema","is-editing","model","schema"])):v.value?(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref(ve.sharedForms)[v.value]),{key:1,"enable-redis-partial":e.enableRedisPartial,"form-model":T,"form-options":q.value,"form-schema":R.value,"is-editing":e.editing,"on-model-updated":L,"on-partial-toggled":P,"show-new-partial-modal":ue=>z.$emit("showNewPartialModal",ue)},n.createSlots({_:2},[e.enableVaultSecretPicker?{name:n.unref(ve.AUTOFILL_SLOT_NAME),fn:n.withCtx(ue=>[ue.schema.referenceable?(n.openBlock(),n.createBlock(n.unref(Jo.VaultSecretPickerProvider),n.mergeProps({key:0},ue,{onOpen:I}),null,16)):n.createCommentVNode("",!0)]),key:"0"}:void 0]),1064,["enable-redis-partial","form-model","form-options","form-schema","is-editing","show-new-partial-modal"])):(n.openBlock(),n.createBlock(n.unref(ve.VueFormGenerator),{key:2,"enable-redis-partial":e.enableRedisPartial,"is-editing":e.editing,model:T,options:q.value,schema:R.value,onModelUpdated:L,onPartialToggled:P,onRefreshModel:D,onShowNewPartialModal:Z[1]||(Z[1]=ue=>z.$emit("showNewPartialModal",ue))},n.createSlots({"plugin-config-empty-state":n.withCtx(()=>[n.createElementVNode("div",HV,n.toDisplayString(n.unref(_)("plugins.form.grouping.plugin_configuration.empty")),1)]),_:2},[(oe=n.unref(Tt)[T.name])!=null&&oe.fieldRules&&(a.config.isNewOtelSchema||T.name!=="opentelemetry")?{name:"plugin-config-before-content",fn:n.withCtx(()=>[n.createVNode(ag,{rules:n.unref(Tt)[T.name].fieldRules},null,8,["rules"])]),key:"0"}:void 0,e.enableVaultSecretPicker?{name:n.unref(ve.AUTOFILL_SLOT_NAME),fn:n.withCtx(ue=>[ue.schema.referenceable?(n.openBlock(),n.createBlock(n.unref(Jo.VaultSecretPickerProvider),n.mergeProps({key:0},ue,{onOpen:I}),null,16)):n.createCommentVNode("",!0)]),key:"1"}:void 0]),1032,["enable-redis-partial","is-editing","model","options","schema"]))])):n.createCommentVNode("",!0)]),n.createVNode(n.unref(Jo.VaultSecretPicker),{config:a.config,setup:j.value,onCancel:Z[2]||(Z[2]=()=>j.value=!1),onProceed:C},null,8,["config","setup"])],64)}}}),[["__scopeId","data-v-780e65cb"]]),WV={key:1},XV=n.defineComponent({__name:"PluginFormActionsWrapper",props:{teleportTarget:{type:String,default:""}},setup(e){return(t,o)=>e.teleportTarget?(n.openBlock(),n.createBlock(n.Teleport,{key:0,to:e.teleportTarget},[n.renderSlot(t.$slots,"default")],8,["to"])):(n.openBlock(),n.createElementBlock("div",WV,[n.renderSlot(t.$slots,"default")]))}}),ZV={class:"kong-ui-entities-plugin-form-container"},JV={key:0},QV={class:"plugin-form-actions"},eR=we(n.defineComponent({__name:"PluginForm",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e==null?void 0:e.app)||e.app==="konnect"&&!e.controlPlaneId||e.app==="kongManager"&&typeof e.workspace!="string")},pluginType:{type:String,required:!0},pluginId:{type:String,default:""},hideScopeSelection:{type:Boolean,default:!1},disableScopeSelection:{type:Boolean,default:!1},credential:{type:Boolean,default:!1},developer:{type:Boolean,default:!1},isWizardStep:{type:Boolean,default:!1},actionsTeleportTarget:{type:String,default:""},noCardWrapper:{type:Boolean,default:!1},hideViewConfigAction:{type:Boolean,default:!1},enableVaultSecretPicker:{type:Boolean,default:!1},schema:{type:Object,default:null},enableRedisPartial:{type:Boolean,default:!1}},emits:["cancel","error:fetch-schema","error","loading","update","model-updated","showNewPartialModal","globalAction"],setup(e,{emit:t}){var Q;const o=t,r=e,i=no.useRouter(),{i18n:{t:a}}=Oe.useI18n(),{customSchemas:l,typedefs:s}=Oe.useSchemas({app:r.config.app,credential:r.credential,experimentalRenders:r.config.app==="konnect"?r.config.experimentalRenders:void 0}),{formatPluginFieldLabel:c}=Oe.usePluginHelpers(),{getMessageFromError:d}=ce.useErrors(),{capitalize:f}=ce.useStringHelpers(),{objectsAreEqual:u}=ce.useHelpers(),{axiosInstance:p}=ce.useAxios((Q=r.config)==null?void 0:Q.axiosRequestConfig),m=n.ref(!1),g=n.computed(()=>!!r.pluginId),_=n.computed(()=>r.pluginId?ce.EntityBaseFormType.Edit:ce.EntityBaseFormType.Create),h=n.ref(void 0),b=n.ref(void 0),w=n.computed(()=>!!(r.credential&&r.config.entityId)),y=n.ref(void 0),v=n.ref({}),k=n.ref(),E=n.ref();n.provide(Rc,{redisType:k,redisPath:E,isEditing:g.value});const R=n.ref(!1),O=n.reactive({enabled:!0,protocols:[],tags:[]}),T=n.reactive({fields:{enabled:!0,protocols:[],tags:[]},isReadonly:!1,clientErrorMessage:"",serverErrorMessage:""}),q=n.ref([{title:a("view_configuration.json"),hash:"#json"},{title:a("view_configuration.yaml"),hash:"#yaml"}]);r.config.app==="konnect"&&q.value.splice(1,0,{title:a("view_configuration.terraform"),hash:"#terraform"});const j=n.ref(""),A=n.computed(()=>{if(w.value){let U=Be.form[r.config.app].credential[_.value];return U=U.replace(/{resourceEndpoint}/gi,P.value),U}return r.config.entityType&&r.config.entityId?Be.form[r.config.app].edit.forEntity.replace(/{entityType}/gi,r.config.entityType).replace(/{entityId}/gi,r.config.entityId):Be.form[r.config.app].edit.all}),I=()=>{m.value=!m.value},C=n.computed(()=>{var ae,_e,be,Ce,Se,pe,fe,ot;const U=r.config.entityType==="consumers"&&r.config.entityId||((_e=(ae=y.value)==null?void 0:ae.consumer)==null?void 0:_e.id),W=r.config.entityType==="consumer_groups"&&r.config.entityId||((Ce=(be=y.value)==null?void 0:be.consumer_group)==null?void 0:Ce.id),K=r.config.entityType==="services"&&r.config.entityId||((pe=(Se=y.value)==null?void 0:Se.service)==null?void 0:pe.id),le=r.config.entityType==="routes"&&r.config.entityId||((ot=(fe=y.value)==null?void 0:fe.route)==null?void 0:ot.id);if(!(U||W||K||le))return{global:{entity:H.PluginScope.GLOBAL,entityEndpoint:"plugins"}};const se={};return K&&(se.service={entity:H.PluginScope.SERVICE,entityEndpoint:"services",id:K,idField:Xt.SERVICE}),le&&(se.route={entity:H.PluginScope.ROUTE,entityEndpoint:"routes",id:le,idField:Xt.ROUTE}),U&&(se.consumer={entity:H.PluginScope.CONSUMER,entityEndpoint:"consumers",id:U,idField:Xt.CONSUMER}),W&&(se.consumer_group={entity:H.PluginScope.CONSUMER_GROUP,entityEndpoint:"consumer_groups",id:W,idField:Xt.CONSUMER_GROUP}),r.config.entityType&&(se.focusedEntity={entity:H.PluginScope[r.config.entityType.substring(0,r.config.entityType.length-1).toUpperCase()],entityEndpoint:r.config.entityType,id:r.config.entityId,idField:Xt[r.config.entityType.substring(0,r.config.entityType.length-1).toUpperCase()]}),se}),D=n.reactive({name:{default:r.pluginType,type:"input",inputType:"hidden",styleClasses:"d-none hidden-field",pinned:!0},enabled:{type:"switch",model:"enabled",label:a("plugins.form.fields.enabled.label"),textOn:a("plugins.form.fields.enabled.on_text"),textOff:a("plugins.form.fields.enabled.off_text"),styleClasses:"field-switch hide-label",default:!0,pinned:!0},selectionGroup:{type:r.hideScopeSelection&&(r.hideScopeSelection||_.value===ce.EntityBaseFormType.Create&&r.config.entityId)?"foreign":"selectionGroup",disabled:r.disableScopeSelection,inputType:"hidden",styleClasses:"hide-label",fields:[{label:a("plugins.form.scoping.global.label"),description:a("plugins.form.scoping.global.help")}],pinned:!0},protocols:{id:"protocols",default:[],help:a("plugins.form.fields.protocols.help"),label:a("plugins.form.fields.protocols.label"),required:!0,styleClasses:"plugin-protocols-select",type:"multiselect",values:[{label:"grpc",value:"grpc"},{label:"grpcs",value:"grpcs"},{label:"http",value:"http"},{label:"https",value:"https"},{label:"tcp",value:"tcp"},{label:"tls",value:"tls"},{label:"tls_passthrough",value:"tls_passthrough"},{label:"udp",value:"udp"},{label:"ws",value:"ws"},{label:"wss",value:"wss"}]},instance_name:{default:"",type:"input",label:a("plugins.form.fields.instance_name.label"),inputType:"text",help:a("plugins.form.fields.instance_name.help")},tags:s.tags}),P=n.computed(()=>{var K;const U=r.developer?"developers":"consumers",W=((K=Sn[r.pluginType])==null?void 0:K.endpoint)||"/plugins";return`${U}/${r.config.entityId}${r.developer?"/credentials":""}${W}`}),L=U=>{const W=Array.from(new Set(U.map(K=>typeof K)));return W.length>1?"string":W[0]},F=(U,W,K,le)=>{var be,Ce;let se=W&&W.fields||[];const ae=l[r.pluginType],_e=(Ce=(be=Sn[r.pluginType])==null?void 0:be.schema)==null?void 0:Ce.fields;return Array.isArray(se)&&(se=se.reduce((Se,pe)=>{const fe=Object.keys(pe)[0];return fe.match(/-/g)?Se[fe.replace(/-/g,"_")]={...pe[fe],fieldNameHasDashes:!0}:Se[fe]=pe[fe],Se},{})),Object.keys(se).sort().forEach(Se=>{var Go,qo,zo,Ho,Yo,Wo,Xo;const pe=se[Se];pe.type==="set"&&(pe.type="array");const fe=U?`${U}-${Se}`:`${Se}`;if((Go=ae==null?void 0:ae.fieldsToDelete)!=null&&Go.includes(fe)){_c(K,fe);return}if(Object.prototype.hasOwnProperty.call(pe,"overwrite")||pe.hidden)return;if(pe.type==="table")return F(fe,pe.schema,K);if(pe.fields)return le&&pe.type==="record"?(K[fe]={type:"object",model:Se,schema:{fields:Object.values(F(fe,pe,{},!0))}},K):F(fe,pe,K);if(K[fe]={id:fe,model:Se},K[fe].type=pe.type==="boolean"?"checkbox":"input",K[fe].required=pe.required,K[fe].referenceable=pe.referenceable,fe.startsWith("config-"))if(!le&&pe.type==="array"&&(j.value=fe),le&&j.value&&fe.startsWith(j.value)){const ke=fe.slice(j.value.length+1);K[fe].label=ke.split("-").map(c).join(".")}else K[fe].label=c(fe);if((U==="config"||U.startsWith("config-"))&&(qo=se[Se])!=null&&qo.description&&(K[fe].help=Zo.marked.parse(se[Se].description,{mangle:!1,headerIds:!1})),pe.type==="map"){if(K[fe].type="object-advanced",K[fe].values=pe.values,pe.values.type==="array"){const{type:ke}=pe.values.elements||{};K[fe].schema={fields:[{schema:{fields:[{...Pe,model:fe,valueArrayType:ke==="integer"?"number":ke||"string",inputAttributes:{...Pe.inputAttributes,type:ke==="integer"?"number":"text",inputMode:ke==="integer"?"numeric":"text"}}]}}]}}else pe.values.fields&&(K[fe].schema={fields:[{type:"object",model:"object",schema:{fields:pe.values.fields.map(ke=>{const Ye=Object.keys(ke)[0];return{model:Ye,type:"input",label:f(Ye),placeholder:Ye,inputType:ke[Ye].type}})}}]});return K}if(pe.enum&&pe.type==="array"&&(K[fe].type="checklist",K[fe].values=pe.enum,K[fe].multi=!0,K[fe].multiSelect=!0),pe.one_of&&pe.type!=="array"&&(K[fe].type="select",K[fe].values=pe.one_of,K[fe].selectOptions={noneSelectedText:a("plugins.form.no_selection")}),pe.elements&&pe.type==="array"){const ke=pe.elements;if(K[fe].referenceable=ke.referenceable,K[fe].elements=ke,["string","integer","number"].includes(ke.type)&&!ke.one_of){const{id:Ye,help:Ue,label:Ne,hint:Ze,values:at,referenceable:Cn,model:vn}=K[fe],{inputAttributes:Ai,...YR}=JSON.parse(JSON.stringify(Pe));Ai.type=ke.type==="string"?"text":"number",K[fe]={id:Ye,help:Ue,label:Ne,hint:Ze,values:at,referenceable:Cn,model:vn,inputAttributes:Ai,...YR}}}if(pe.hint&&(K[fe].hint=pe.hint),ae&&!ae.overwriteDefault&&Object.keys(ae).forEach(ke=>{if(ke===fe){const{help:Ye,label:Ue,hint:Ne,values:Ze,referenceable:at,elements:Cn}=K[fe],{help:vn,...Ai}=ae[ke];K[fe]={help:Ye,label:Ue,hint:Ne,values:Ze,referenceable:at,elements:Cn,...Ai},typeof vn=="string"&&(K[fe].help=Zo.marked.parse(vn,{mangle:!1,headerIds:!1}))}}),pe.type==="array"&&((zo=pe.elements)==null?void 0:zo.type)==="record"&&Array.isArray(pe.elements.fields)){let ke={};for(const Ue of pe.elements.fields)ke={...ke,...Ue};const Ye=(Wo=(Yo=(Ho=K[fe])==null?void 0:Ho.items)==null?void 0:Yo.schema)==null?void 0:Wo.fields;if(Array.isArray(Ye))for(const Ue of K[fe].items.schema.fields){const Ne=(Xo=ke[Ue.model])==null?void 0:Xo.description;Ue.help===void 0&&typeof Ne=="string"&&(Ue.help=Zo.marked.parse(Ne,{mangle:!1,headerIds:!1}))}if(Ye||(K[fe].type="array",K[fe].newElementButtonLabelClasses="kong-form-new-element-button-label",K[fe].fieldClasses="array-card-container-wrapper",K[fe].itemContainerComponent="FieldArrayCardContainer",K[fe].items={type:"object",schema:{fields:Object.values(F(fe,pe.elements,{},!0))}},K[fe].items.schema.fields.forEach(Ue=>{var Ne,Ze;for(const at of pe.elements.fields){const Cn=Object.keys(at)[0],vn=((Ze=(Ne=Ue.id)==null?void 0:Ne.split)==null?void 0:Ze.call(Ne,"-"))??[];if(vn[vn.length-1]===Cn){Ue.model=Cn,Ue.label=c(Cn);break}}}),pe.elements.type==="record"&&(K[fe].nestedFields=!0)),!K[fe].nestedFields)K[fe].items.default=()=>pe.elements.fields.reduce((Ue,Ne)=>{const Ze=Object.keys(Ne)[0];return Ue[Ze]=Ne[Ze].default,Ue},{});else{const Ue=(Ne,Ze)=>{if(Ne.type==="object"){Ne.model&&(Ze[Ne.model]={});for(const at of Ne.schema.fields)Ue(at,Ne.model?Ze[Ne.model]:Ze)}else Ne.model&&(Ze[Ne.model]=Ne.default)};K[fe].items.default=()=>{const Ne={};return Ue(K[fe].items,Ne),Ne}}}if(w.value&&_e){for(let ke=0;ke<_e.length;ke++)if(_e[ke][fe]){K[fe]={...K[fe],..._e[ke][fe]};break}}if(pe.required&&pe.type!=="boolean"&&(K[fe].required=!0,K[fe].selectOptions={hideNoneSelectedText:!0}),pe.required&&pe.type==="boolean"&&(K[fe].default=pe.default??!1),pe.default!=null&&typeof pe.default!="object"&&pe.default!=="function"&&(K[fe].default=pe.default),K[fe].type==="input"){["string","number"].includes(typeof K[fe].default)&&r.config.app==="konnect"&&(K[fe].placeholder=`Default: ${K[fe].default===""?"<empty string>":K[fe].default}`);const{type:ke}=pe.elements||{};ke&&(K[fe].valueArrayType=ke==="integer"?"number":ke),K[fe].inputType=pe.type==="array"||pe.type==="string"?pe.encrypted?"password":"text":pe.type}let ot="string";pe.enum?ot=L(pe.enum):pe.type==="boolean"?ot="boolean":pe.type==="number"||pe.type==="integer"?(ot="number",K[fe].inputType="number"):pe.type==="array"?(ot="array",K[fe].default=pe.default,pe.len_min>0&&(K[fe].submitWhenNull=!0)):pe.type==="foreign"?ot="object":pe.default&&Array.isArray(pe.default)?(ot="array",K[fe].valueArrayType=L(pe.default)):pe.default&&(ot=typeof pe.default),K[fe].valueType=ot,pe.fieldNameHasDashes&&(K[fe].fieldNameHasDashes=!0)}),K},B=()=>{var Se,pe,fe,ot,Go,qo,zo,Ho,Yo,Wo,Xo,ke;const U=((Se=Tt[r.pluginType])==null?void 0:Se.scope.includes(H.PluginScope.SERVICE))??!0,W=((pe=Tt[r.pluginType])==null?void 0:pe.scope.includes(H.PluginScope.ROUTE))??!0,K=((fe=Tt[r.pluginType])==null?void 0:fe.scope.includes(H.PluginScope.CONSUMER))??!0,le=r.config.disableConsumerGroupScope?!1:((ot=Tt[r.pluginType])==null?void 0:ot.scope.includes(H.PluginScope.CONSUMER_GROUP))??!0,se=r.config.entityType==="consumers"&&!!r.config.entityId||!!((qo=(Go=y.value)==null?void 0:Go.consumer)!=null&&qo.id),ae=r.config.entityType==="consumer_groups"&&!!r.config.entityId||!!((Ho=(zo=y.value)==null?void 0:zo.consumer_group)!=null&&Ho.id),_e=r.config.entityType==="services"&&!!r.config.entityId||!!((Wo=(Yo=y.value)==null?void 0:Yo.service)!=null&&Wo.id),be=r.config.entityType==="routes"&&!!r.config.entityId||!!((ke=(Xo=y.value)==null?void 0:Xo.route)!=null&&ke.id),Ce=[];if(U&&Ce.push({id:"service-id",model:"service-id",label:a("plugins.form.scoping.gateway_service.label"),placeholder:a("plugins.form.scoping.gateway_service.placeholder"),type:"AutoSuggest",entity:"services",inputValues:{fields:["name","id"]},help:a("plugins.form.scoping.gateway_service.help"),disabled:_e&&r.disableScopeSelection}),W&&Ce.push({id:"route-id",model:"route-id",label:a("plugins.form.scoping.route.label"),placeholder:a("plugins.form.scoping.route.placeholder"),type:"AutoSuggest",entity:"routes",inputValues:{fields:["name","id"],primaryField:"id"},help:a("plugins.form.scoping.route.help"),disabled:be&&r.disableScopeSelection}),K&&Ce.push({model:"consumer-id",label:a("plugins.form.scoping.consumer.label"),placeholder:a("plugins.form.scoping.consumer.placeholder"),type:"AutoSuggest",entity:"consumers",inputValues:{fields:["username","custom_id","id"],primaryField:"username"},help:a("plugins.form.scoping.consumer.help"),disabled:se&&r.disableScopeSelection}),le&&Ce.push({model:"consumer_group-id",label:a("plugins.form.scoping.consumer_group.label"),placeholder:a("plugins.form.scoping.consumer_group.placeholder"),type:"AutoSuggest",entity:"consumer_groups",entityDataKey:"consumer_group",inputValues:{fields:["name","id"],primaryField:"name"},help:a("plugins.form.scoping.consumer_group.help"),disabled:ae&&r.disableScopeSelection}),Ce.length){const Ye=[...U?["service"]:[],...W?["route"]:[],...K?["consumer"]:[],...le?["consumer_group"]:[]],Ne=Ye.splice(Ye.length-2,2).map(at=>a(at==="service"?"plugins.form.scoping.gateway_service.plural":`plugins.form.scoping.${at}.plural`)).join(`${Ye.length>0?",":""} and/or `),Ze=["Specific",[...Ye.length>0?[Ye.map(at=>a(at==="service"?"plugins.form.scoping.gateway_service.plural":`plugins.form.scoping.${at}.plural`)).join(", ")]:[],Ne].join(", ")].join(" ");D.selectionGroup.fields.push({label:a("plugins.form.scoping.label"),description:Ze,fields:[]}),D.selectionGroup.fields[1].fields=Ce}l[r.pluginType]&&l[r.pluginType].overwriteDefault&&Object.hasOwnProperty.call(l[r.pluginType],"formSchema")&&Object.assign(D,l[r.pluginType].formSchema)},$=n.computed(()=>!u(T.fields,O,!0)),G=n.computed(()=>!M.value&&!R.value&&(_.value===ce.EntityBaseFormType.Create||$.value)),ee=n.ref(!1),re=n.ref(),J=U=>{r.credential&&U.password&&(U.password=""),T.fields.id=(U==null?void 0:U.id)||void 0,re.value=U==null?void 0:U.ordering,Object.assign(O,T.fields),y.value=U,ee.value=!0},ne=n.ref({}),z=U=>{var W;T.fields=U.model,T.fields.id=((W=y.value)==null?void 0:W.id)||void 0,Object.assign(O,U.originalModel),ne.value=U.data,r.isWizardStep&&o("model-updated",{model:T.fields,data:U.data,resourceEndpoint:P.value})},Z=n.ref(new Map),ie=n.computed(()=>[T.clientErrorMessage,T.serverErrorMessage].filter(Boolean).join("; ")),oe=U=>{U.valid?Z.value.delete(U.model):Z.value.set(U.model,U.error),T.clientErrorMessage=[...Z.value.entries()].map(([W,K])=>`${W}: ${typeof K=="string"?K:d(K)}`).join("; "),T.clientErrorMessage&&(T.serverErrorMessage="")};n.watch([C,ee],(U,W)=>{const K=U[0]!==W[0],le=U[1],se=W[1];if(!w.value&&_.value===ce.EntityBaseFormType.Edit&&(K||le&&le!==se)){const ae=F("config",v.value,D);te.value&&(ae._isCustomPlugin=!0),k.value&&(ae._supported_redis_partial_type=k.value),b.value=ae}},{deep:!0});const ue=()=>{r.config.cancelRoute?i.push(r.config.cancelRoute):o("cancel")},de=n.computed(()=>{let U=`${r.config.apiBaseUrl}${Be.form[r.config.app].validate}`;return r.config.app==="konnect"?U=U.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||""):r.config.app==="kongManager"&&(U=U.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"")),U=U.replace(/{id}/gi,r.pluginId),U}),Y=n.computed(()=>{const U=r.config.entityType&&r.config.entityId&&!r.developer,W=w.value?Be.form[r.config.app].credential[_.value]:Be.form[r.config.app][_.value][U?"forEntity":"all"];let K=`${r.config.apiBaseUrl}${W}`;return r.config.app==="konnect"?K=K.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||""):r.config.app==="kongManager"&&(K=K.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"")),K=K.replace(/{resourceEndpoint}/gi,P.value),K=K.replace(/{id}/gi,r.pluginId),K=K.replace(/{entityType}/gi,r.config.entityType||""),K=K.replace(/{entityId}/gi,r.config.entityId||""),K}),te=n.computed(()=>!Object.keys(Tt).includes(r.pluginType)),N=n.computed(()=>{const U=ne.value;if(w.value){for(const W in H.PluginScope){const K=H.PluginScope[W];U[K]&&!U[K].id&&(U[K]={id:r.config.entityId})}delete U.created_at}return ne.value.partials&&E.value&&_c(U,E.value),U}),S=async()=>{if(!T.clientErrorMessage&&!r.isWizardStep)try{T.isReadonly=!0;let U;const W=JSON.parse(JSON.stringify(N.value)),K=l[r.pluginType];typeof(K==null?void 0:K.shamefullyTransformPayload)=="function"&&K.shamefullyTransformPayload({originalModel:O,model:T.fields,payload:W,schema:b.value}),!w.value&&!te.value&&await p.post(de.value,W),_.value==="create"?U=await p.post(Y.value,W):_.value==="edit"&&(U=r.config.app==="konnect"||k.value&&W.partials?await p.put(Y.value,Object.assign({ordering:re.value},W)):await p.patch(Y.value,W)),Object.assign(O,T.fields),o("update",U==null?void 0:U.data)}catch(U){T.serverErrorMessage=d(U),o("error",U)}finally{T.isReadonly=!1}},x=n.computed(()=>{var le;const U=w.value?(le=Sn[r.pluginType])==null?void 0:le.schemaEndpoint:r.pluginType,W=w.value?Be.form[r.config.app].credentialSchema:Be.form[r.config.app].pluginSchema;let K=`${r.config.apiBaseUrl}${W}`;return r.config.app==="konnect"?K=K.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||""):r.config.app==="kongManager"&&(K=K.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"")),K=K.replace(/{plugin}/gi,U),K}),V=n.ref(""),M=n.ref(!1),X=n.ref("");return n.onBeforeMount(async()=>{var U,W,K,le;M.value=!0;try{if(w.value&&r.config.app==="konnect"){const se=(U=Sn[r.pluginType])==null?void 0:U.schemaEndpoint,ae=Am[se];V.value=se,b.value=F("",ae,{}),M.value=!1}else{const se=r.schema??(await p.get(x.value)).data;if(h.value=se,se)if(w.value)b.value=F("",se,{}),M.value=!1;else{const ae=se.fields.find(be=>be.config);v.value=ae?ae.config:se,se.supported_partials&&(k.value=Object.keys(se.supported_partials).find(be=>[er.REDIS_CE,er.REDIS_EE].includes(be)),E.value=(W=se.supported_partials[k.value])==null?void 0:W[0]),B();const _e=(K=se.fields.find(be=>be.protocols))==null?void 0:K.protocols;if(_e){const{default:be=[],elements:Ce={}}=_e;D.protocols.default=be,D.protocols.placeholder=r.config.app==="konnect"?a("plugins.form.fields.protocols.placeholderWithDefaultValues",{protocols:be.join(", ")}):a("plugins.form.fields.protocols.placeholder"),(le=Ce.one_of)!=null&&le.length&&(D.protocols.values=Ce.one_of.map(Se=>({label:Se,value:Se})))}if(ee.value||_.value===ce.EntityBaseFormType.Create){const be=F("config",v.value,D);k.value&&(be._supported_redis_partial_type=k.value),te.value&&(be._isCustomPlugin=!0),b.value=be}}}}catch(se){console.error(se),X.value=d(se),o("error:fetch-schema",se)}finally{M.value=!1}}),(U,W)=>{const K=n.resolveComponent("KSkeleton"),le=n.resolveComponent("KEmptyState"),se=n.resolveComponent("KButton"),ae=n.resolveComponent("KTabs"),_e=n.resolveComponent("KSlideout");return n.openBlock(),n.createElementBlock("div",ZV,[M.value?(n.openBlock(),n.createBlock(K,{key:0,type:"form"})):X.value?(n.openBlock(),n.createBlock(le,{key:1,"action-button-visible":!1,"data-testid":"plugin-form-schema-error","icon-variant":"error"},{default:n.withCtx(()=>[n.createElementVNode("h3",null,n.toDisplayString(n.unref(a)("errors.load_schema")),1)]),_:1})):(n.openBlock(),n.createBlock(n.unref(ce.EntityBaseForm),{key:2,"can-submit":G.value,config:e.config,"edit-id":e.pluginId,"entity-type":n.unref(ce.SupportedEntityType).Plugin,"error-message":ie.value,"fetch-url":A.value,"form-fields":N.value,"is-readonly":T.isReadonly,"no-validate":"","wrapper-component":e.noCardWrapper?"div":void 0,onCancel:ue,"onFetch:error":W[4]||(W[4]=be=>U.$emit("error",be)),"onFetch:success":J,onLoading:W[5]||(W[5]=be=>U.$emit("loading",be))},{"form-actions":n.withCtx(()=>[e.isWizardStep?(n.openBlock(),n.createElementBlock("div",JV)):(n.openBlock(),n.createBlock(XV,{key:1,"teleport-target":e.actionsTeleportTarget},{default:n.withCtx(()=>[n.createElementVNode("div",QV,[e.hideViewConfigAction?n.createCommentVNode("",!0):(n.openBlock(),n.createBlock(se,{key:0,appearance:"tertiary","data-testid":`plugin-${g.value?"edit":"create"}-form-view-configuration`,onClick:W[3]||(W[3]=be=>I())},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(a)("actions.view_configuration")),1)]),_:1},8,["data-testid"])),n.createVNode(se,{appearance:"secondary",class:"form-action-button","data-testid":`plugin-${g.value?"edit":"create"}-form-cancel`,disabled:T.isReadonly,onClick:ue},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(a)("actions.cancel")),1)]),_:1},8,["data-testid","disabled"]),n.createVNode(se,{appearance:"primary","data-testid":`plugin-${g.value?"edit":"create"}-form-submit`,disabled:!G.value||T.isReadonly,type:"submit",onClick:S},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(a)("actions.save")),1)]),_:1},8,["data-testid","disabled"])])]),_:1},8,["teleport-target"]))]),default:n.withCtx(()=>[n.createElementVNode("form",{hidden:"",onSubmit:S},null,32),n.createVNode(YV,{config:e.config,credential:w.value,editing:_.value===n.unref(ce.EntityBaseFormType).Edit,"enable-redis-partial":e.enableRedisPartial,"enable-vault-secret-picker":r.enableVaultSecretPicker,"entity-map":C.value,"raw-schema":h.value,record:y.value,schema:b.value,onGlobalAction:W[0]||(W[0]=(be,Ce)=>U.$emit("globalAction",be,Ce)),onLoading:W[1]||(W[1]=be=>R.value=be),onModelUpdated:z,onShowNewPartialModal:W[2]||(W[2]=be=>U.$emit("showNewPartialModal",be)),onValidityChange:oe},null,8,["config","credential","editing","enable-redis-partial","enable-vault-secret-picker","entity-map","raw-schema","record","schema"])]),_:1},8,["can-submit","config","edit-id","entity-type","error-message","fetch-url","form-fields","is-readonly","wrapper-component"])),n.createVNode(_e,{"close-on-blur":!1,"data-testid":"form-view-configuration-slideout","has-overlay":!1,"offset-top":60,title:n.unref(a)("view_configuration.title"),visible:m.value,onClose:I},{default:n.withCtx(()=>[n.createElementVNode("div",null,n.toDisplayString(n.unref(a)("view_configuration.message")),1),n.createVNode(ae,{"data-testid":"form-view-configuration-slideout-tabs",tabs:q.value},{json:n.withCtx(()=>[n.createVNode(n.unref(ce.JsonCodeBlock),{config:e.config,"entity-record":N.value,"fetcher-url":Y.value,"request-method":r.pluginId?"put":"post"},null,8,["config","entity-record","fetcher-url","request-method"])]),yaml:n.withCtx(()=>[n.createVNode(n.unref(ce.YamlCodeBlock),{"entity-record":N.value},null,8,["entity-record"])]),terraform:n.withCtx(()=>[n.createVNode(n.unref(ce.TerraformCodeBlock),{"credential-type":V.value,"entity-record":N.value,"entity-type":n.unref(ce.SupportedEntityType).Plugin},null,8,["credential-type","entity-record","entity-type"])]),_:1},8,["tabs"])]),_:1},8,["title","visible"])])}}}),[["__scopeId","data-v-420ab237"]]),tR={class:"kong-ui-entities-plugins-list"},nR={class:"button-row"},oR={class:"empty-state-icon-gateway"},rR={class:"name-cell-wrapper"},iR={class:"info-wrapper"},aR={key:0,class:"info-name"},lR={key:1,class:"info-name"},sR={key:2,class:"info-type"},cR={key:1},dR=we(n.defineComponent({__name:"PluginList",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e==null?void 0:e.app)||!e.createRoute||!e.getViewRoute||!e.getEditRoute||!e.getConfigureDynamicOrderingRoute||e.app==="kongManager"&&!e.isExactMatch&&!e.filterSchema)},cacheIdentifier:{type:String,default:""},canCreate:{type:Function,required:!1,default:async()=>!0},canDelete:{type:Function,required:!1,default:async()=>!0},canEdit:{type:Function,required:!1,default:async()=>!0},canToggle:{type:Function,required:!1,default:async()=>!0},canRetrieve:{type:Function,required:!1,default:async()=>!0},canRetrieveScopedEntity:{type:Function,required:!1,default:async()=>!0},canConfigureDynamicOrdering:{type:Function,required:!1,default:async()=>!0},title:{type:String,default:""},titleTag:{type:String,default:"h2"},useActionOutside:{type:Boolean,default:!1}},emits:["error","click:learn-more","copy:success","copy:error","delete:success","toggle-enabled"],setup(e,{emit:t}){var x,V;const o=Oe.usePluginMetaData(),r=t,i=e,{i18n:{t:a}}=Oe.useI18n(),l=no.useRouter(),{axiosInstance:s}=ce.useAxios((x=i.config)==null?void 0:x.axiosRequestConfig),{hasRecords:c,handleStateChange:d}=ce.useTableState(()=>y.value),f=n.computed(()=>c.value&&i.config.app==="konnect"),u=n.computed(()=>!!i.config.entityId),p=n.computed(()=>{var M;return((M=i.config)==null?void 0:M.entityType)==="consumers"}),m=n.computed(()=>{var M;return((M=i.config)==null?void 0:M.entityType)==="consumer_groups"}),g=i.config.app==="konnect"||ce.useGatewayFeatureSupported({gatewayInfo:i.config.gatewayInfo,supportedRange:{enterprise:["3.0"]}}),_=n.computed(()=>i.config.app!=="kongManager"||!!i.config.disableSorting),h={name:{label:a("plugins.list.table_headers.name"),searchable:!0,sortable:!0,hidable:!1}};(V=i.config)!=null&&V.entityId||(h.appliedTo={label:a("plugins.list.table_headers.applied_to"),sortable:!1}),h.enabled={label:a("plugins.list.table_headers.enabled"),searchable:!0,sortable:!0},g&&(h.ordering={label:a("plugins.list.table_headers.ordering"),sortable:!0}),h.tags={label:a("plugins.list.table_headers.tags"),sortable:!1};const b=h,w=n.computed(()=>{var X,Q,U,W;let M=i.config.entityType?`${i.config.apiBaseUrl}${Be.list[i.config.app].forEntity}`:`${i.config.apiBaseUrl}${Be.list[i.config.app].all}`;return i.config.app==="konnect"?M=M.replace(/{controlPlaneId}/gi,((X=i.config)==null?void 0:X.controlPlaneId)||""):i.config.app==="kongManager"&&(M=M.replace(/\/{workspace}/gi,(Q=i.config)!=null&&Q.workspace?`/${i.config.workspace}`:"")),M.replace(/{entityType}/gi,((U=i.config)==null?void 0:U.entityType)||"").replace(/{entityId}/gi,((W=i.config)==null?void 0:W.entityId)||"")}),y=n.ref(""),v=n.computed(()=>i.config.app==="konnect"||i.config.isExactMatch?{isExactMatch:!0,fields:{name:h.name,id:{label:a("plugins.list.table_headers.id"),sortable:!0}},placeholder:a(`search.placeholder.${i.config.isExactMatch?"exact":i.config.app}`)}:{isExactMatch:!1,fields:{enabled:{...h.enabled,label:a("search.filter.field.enabled")},name:h.name,instance_name:{label:a("plugins.list.table_headers.instance_name"),searchable:!0}},schema:i.config.filterSchema}),{fetcher:k,fetcherState:E,fetcherCacheKey:R}=ce.useFetcher(n.computed(()=>({...i.config,cacheIdentifier:i.cacheIdentifier})),w),O=()=>{y.value=""},T=()=>{R.value++},q=n.ref(null),j=M=>{var Q,U,W,K;const X=[];return((Q=M.route)!=null&&Q.id||M.route_id)&&X.push({type:"route",badgeText:a("plugins.list.table_headers.applied_to_badges.route")}),((U=M.service)!=null&&U.id||M.service_id)&&X.push({type:"service",badgeText:a("plugins.list.table_headers.applied_to_badges.service")}),((W=M.consumer)!=null&&W.id||M.consumer_id)&&X.push({type:"consumer",badgeText:a("plugins.list.table_headers.applied_to_badges.consumer")}),((K=M.consumer_group)!=null&&K.id||M.consumer_group_id)&&X.push({type:"consumer_group",badgeText:a("plugins.list.table_headers.applied_to_badges.consumer_group")}),X.length?X:[{type:null,badgeText:a("plugins.list.table_headers.applied_to_badges.global")}]},A=async(M,X)=>{var Q;return M===null?!1:await((Q=i.canRetrieveScopedEntity)==null?void 0:Q.call(i,M,X.id))},I=(M,X)=>{var U,W,K,le,se;let Q=null;switch(M){case"route":Q=(U=X.route)==null?void 0:U.id;break;case"service":Q=(W=X.service)==null?void 0:W.id;break;case"consumer":Q=(K=X.consumer)==null?void 0:K.id;break;case"consumer_group":Q=(le=X.consumer_group)==null?void 0:le.id;break}Q&&((se=i.config)!=null&&se.getScopedEntityViewRoute)&&l.push(i.config.getScopedEntityViewRoute(M,Q))},C=n.ref(!1),D=n.ref(null),P=n.computed(()=>{const M={action:"disable",id:"",name:""};if(D.value){const{enabled:X,id:Q,name:U}=D.value;M.action=X?"disable":"enable",M.id=Q,M.name=o.getDisplayName(U)||Q}return M}),L=M=>{C.value=!0,D.value=M},F=()=>{C.value=!1,D.value=null},B=async()=>{var U,W,K,le,se,ae,_e,be;if(!await((U=i.canEdit)==null?void 0:U.call(i,D.value))||!D.value)return;let X=`${i.config.apiBaseUrl}${(se=Be.item[i.config.app])==null?void 0:se[(W=i.config)!=null&&W.entityType?"forEntity":"all"].replace(/{entityType}/gi,((K=i.config)==null?void 0:K.entityType)||"").replace(/{entityId}/gi,((le=i.config)==null?void 0:le.entityId)||"")}`.replace(/{id}/gi,D.value.id||"");i.config.app==="konnect"?X=X.replace(/{controlPlaneId}/gi,((ae=i.config)==null?void 0:ae.controlPlaneId)||""):i.config.app==="kongManager"&&(X=X.replace(/\/{workspace}/gi,(_e=i.config)!=null&&_e.workspace?`/${i.config.workspace}`:""));const Q=!D.value.enabled;try{const{data:Ce}=((be=i.config)==null?void 0:be.app)==="konnect"?await s.put(X,{...D.value,enabled:Q},{timeout:12e4}):await s.patch(X,{...D.value,enabled:Q},{timeout:12e4});r("toggle-enabled",Q,Ce),D.value.enabled=Q}catch(Ce){r("error",Ce)}},$=async(M,X)=>{const Q=M.id;if(!await X(Q)){r("copy:error",{entity:M,field:"id",message:a("errors.copy")});return}r("copy:success",{entity:M,field:"id",message:a("copy.success",{val:Q})})},G=async(M,X)=>{const Q=JSON.stringify(M);if(!await X(Q)){r("copy:error",{entity:M,message:a("errors.copy")});return}r("copy:success",{entity:M,message:a("copy.success_brief")})},ee=async M=>{var Q;await((Q=i.canRetrieve)==null?void 0:Q.call(i,M))&&l.push(i.config.getViewRoute(M))},re=M=>({label:a("actions.view"),to:i.config.getViewRoute(M)}),J=M=>({label:a("actions.edit"),to:i.config.getEditRoute(M)}),ne=M=>({label:a("actions.configure_dynamic_ordering"),to:i.config.getConfigureDynamicOrderingRoute(M)}),z=n.ref(void 0),Z=n.ref(!1),ie=n.ref(!1),oe=n.ref(""),ue=ce.useDeleteUrlBuilder(i.config,w.value),de=M=>{z.value=M,Z.value=!0},Y=()=>{Z.value=!1},te=async()=>{var M,X,Q;if((M=z.value)!=null&&M.id){ie.value=!0;try{await s.delete(ue(z.value.id)),ie.value=!1,Z.value=!1,R.value++,r("delete:success",z.value)}catch(U){oe.value=((Q=(X=U.response)==null?void 0:X.data)==null?void 0:Q.message)||U.message||a("errors.delete"),r("error",U)}finally{ie.value=!1}}},N=()=>{l.push(i.config.createRoute)};n.watch(E,M=>{var X,Q,U;if(M.status===ce.FetcherStatus.Error){q.value={title:a("errors.general")},(U=(Q=(X=M.error)==null?void 0:X.response)==null?void 0:Q.data)!=null&&U.message&&(q.value.message=M.error.response.data.message),r("error",M.error);return}q.value=null});const S=n.ref({ctaPath:i.config.createRoute,ctaText:void 0,message:`${a("plugins.list.empty_state.description")}${i.config.additionMessageForEmptyState?` ${i.config.additionMessageForEmptyState}`:""}`,title:a("plugins.title")});return n.onBeforeMount(async()=>{await i.canCreate()&&(S.value.title=a("plugins.list.empty_state.title"),S.value.ctaText=a("actions.create"))}),(M,X)=>{const Q=n.resolveComponent("KButton"),U=n.resolveComponent("KBadge"),W=n.resolveComponent("KTruncate"),K=n.resolveComponent("KInputSwitch"),le=n.resolveComponent("KDropdownItem"),se=n.resolveComponent("KClipboardProvider");return n.openBlock(),n.createElementBlock("div",tR,[n.createVNode(n.unref(ce.EntityBaseTable),{"cache-identifier":e.cacheIdentifier,"disable-sorting":_.value,"empty-state-options":S.value,"enable-entity-actions":"","error-message":q.value,fetcher:n.unref(k),"fetcher-cache-key":n.unref(R),"pagination-type":"offset","preferences-storage-key":"kong-ui-entities-plugins-list",query:y.value,"table-headers":n.unref(b),title:e.title,"title-tag":e.titleTag,onClearSearchInput:O,"onClick:row":X[4]||(X[4]=ae=>ee(ae)),onSort:T,onState:n.unref(d)},n.createSlots({"toolbar-filter":n.withCtx(()=>[n.createVNode(n.unref(ce.EntityFilter),{modelValue:y.value,"onUpdate:modelValue":X[0]||(X[0]=ae=>y.value=ae),config:v.value},null,8,["modelValue","config"])]),"toolbar-button":n.withCtx(()=>[(n.openBlock(),n.createBlock(n.Teleport,{disabled:!e.useActionOutside,to:"#kong-ui-app-page-header-action-button"},[n.createElementVNode("div",nR,[!u.value&&f.value?(n.openBlock(),n.createBlock(Q,{key:0,appearance:"secondary",class:"open-learning-hub","data-testid":"plugins-learn-more-button",icon:"",onClick:X[1]||(X[1]=ae=>M.$emit("click:learn-more"))},{default:n.withCtx(()=>[n.createVNode(n.unref(Ee.BookIcon),{decorative:""})]),_:1})):n.createCommentVNode("",!0),n.createVNode(n.unref(ce.PermissionsWrapper),{"auth-function":()=>e.canCreate()},{default:n.withCtx(()=>[n.createVNode(Q,{appearance:"primary","data-testid":"toolbar-add-plugin",size:e.useActionOutside?"medium":"large",to:e.config.createRoute},{default:n.withCtx(()=>[n.createVNode(n.unref(Ee.AddIcon)),n.createTextVNode(" "+n.toDisplayString(n.unref(a)("plugins.list.toolbar_actions.new_plugin")),1)]),_:1},8,["size","to"])]),_:1},8,["auth-function"])])],8,["disabled"]))]),name:n.withCtx(({row:ae})=>[n.createElementVNode("div",rR,[n.createVNode(n.unref(ro.PluginIcon),{class:"plugin-icon",name:ae.name,size:24},null,8,["name"]),n.createElementVNode("div",iR,[ae.instance_name?(n.openBlock(),n.createElementBlock("span",aR,n.toDisplayString(ae.instance_name),1)):(n.openBlock(),n.createElementBlock("span",lR,n.toDisplayString(n.unref(o).getDisplayName(ae.name)),1)),ae.instance_name?(n.openBlock(),n.createElementBlock("span",sR,n.toDisplayString(n.unref(o).getDisplayName(ae.name)),1)):n.createCommentVNode("",!0)])])]),appliedTo:n.withCtx(({row:ae})=>[j(ae).length>0?(n.openBlock(),n.createBlock(W,{key:0},{default:n.withCtx(()=>[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(j(ae),_e=>(n.openBlock(),n.createBlock(n.unref(ce.PermissionsWrapper),{key:_e.badgeText,"auth-function":()=>A(_e.type,ae),"force-show":""},{default:n.withCtx(({isAllowed:be})=>[n.createVNode(U,{class:n.normalizeClass(be||"disabled"),onClick:n.withModifiers(Ce=>be&&_e.type&&I(_e.type,ae),["stop"])},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(_e.badgeText),1)]),_:2},1032,["class","onClick"])]),_:2},1032,["auth-function"]))),128))]),_:2},1024)):(n.openBlock(),n.createElementBlock("span",cR,"-"))]),enabled:n.withCtx(({row:ae})=>[n.createVNode(n.unref(ce.PermissionsWrapper),{"auth-function":async()=>!!(await e.canEdit(ae)&&await e.canToggle(ae)),"force-show":""},{default:n.withCtx(({isAllowed:_e})=>{var be,Ce;return[n.createElementVNode("div",{onClick:X[3]||(X[3]=n.withModifiers(()=>{},["stop"]))},[n.createVNode(K,{disabled:!_e,"disabled-tooltip-text":!_e&&((Ce=(be=e.config).getToggleDisabledTooltip)==null?void 0:Ce.call(be,ae))||void 0,"model-value":ae.enabled,onClick:n.withModifiers(Se=>_e&&L(ae),["stop","prevent"])},null,8,["disabled","disabled-tooltip-text","model-value","onClick"])])]}),_:2},1032,["auth-function"])]),ordering:n.withCtx(({rowValue:ae})=>[n.createVNode(U,{appearance:n.unref(pc)(ae)?"info":"warning"},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(pc)(ae)?n.unref(a)("plugins.list.table_headers.ordering_badge.static"):n.unref(a)("plugins.list.table_headers.ordering_badge.dynamic")),1)]),_:2},1032,["appearance"])]),tags:n.withCtx(({rowValue:ae})=>[n.createVNode(n.unref(ce.TableTags),{tags:ae},null,8,["tags"])]),actions:n.withCtx(({row:ae})=>[n.createVNode(se,null,{default:n.withCtx(({copyToClipboard:_e})=>[n.createVNode(le,{"data-testid":"action-entity-copy-id",onClick:be=>$(ae,_e)},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(a)("actions.copy_id")),1)]),_:2},1032,["onClick"])]),_:2},1024),n.createVNode(se,null,{default:n.withCtx(({copyToClipboard:_e})=>[n.createVNode(le,{"data-testid":"action-entity-copy-json",onClick:be=>G(ae,_e)},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(a)("actions.copy_json")),1)]),_:2},1032,["onClick"])]),_:2},1024),n.createVNode(n.unref(ce.PermissionsWrapper),{"auth-function":()=>e.canRetrieve(ae)},{default:n.withCtx(()=>[n.createVNode(le,{"data-testid":"action-entity-view","has-divider":"",item:re(ae)},null,8,["item"])]),_:2},1032,["auth-function"]),n.createVNode(n.unref(ce.PermissionsWrapper),{"auth-function":()=>e.canEdit(ae)},{default:n.withCtx(()=>[n.createVNode(le,{"data-testid":"action-entity-edit",item:J(ae)},null,8,["item"])]),_:2},1032,["auth-function"]),!p.value&&!m.value&&n.unref(g)?(n.openBlock(),n.createBlock(n.unref(ce.PermissionsWrapper),{key:0,"auth-function":()=>e.canConfigureDynamicOrdering(ae)},{default:n.withCtx(()=>[ne(ae)?(n.openBlock(),n.createBlock(le,{key:0,"data-testid":"action-entity-config-dyn-order",item:ne(ae)},null,8,["item"])):n.createCommentVNode("",!0)]),_:2},1032,["auth-function"])):n.createCommentVNode("",!0),n.createVNode(n.unref(ce.PermissionsWrapper),{"auth-function":()=>e.canDelete(ae)},{default:n.withCtx(()=>[n.createVNode(le,{danger:"","data-testid":"action-entity-delete","has-divider":"",onClick:_e=>de(ae)},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(a)("actions.delete")),1)]),_:2},1032,["onClick"])]),_:2},1032,["auth-function"])]),_:2},[!y.value&&e.config.app==="konnect"?{name:"empty-state",fn:n.withCtx(()=>{var ae;return[n.createVNode(n.unref(ce.EntityEmptyState),{"action-button-text":n.unref(a)("plugins.list.empty_state_v2.create_cta"),appearance:"secondary","can-create":()=>e.canCreate(),"data-testid":e.config.entityId?"nested-plugins-entity-empty-state":"plugins-entity-empty-state",description:n.unref(a)("plugins.list.empty_state_v2.description"),"learn-more":e.config.app==="konnect",title:n.unref(a)("plugins.list.empty_state_v2.title"),"onClick:create":N,"onClick:learnMore":X[2]||(X[2]=_e=>M.$emit("click:learn-more"))},n.createSlots({image:n.withCtx(()=>[n.createElementVNode("div",oR,[n.createVNode(n.unref(Ee.PlugIcon),{color:n.unref(Yw),size:n.unref(Xw)},null,8,["color","size"])])]),_:2},[(ae=e.config)!=null&&ae.isControlPlaneGroup?{name:"message",fn:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(a)("plugins.list.empty_state_v2.group")),1)]),key:"0"}:void 0]),1032,["action-button-text","can-create","data-testid","description","learn-more","title"])]}),key:"0"}:void 0]),1032,["cache-identifier","disable-sorting","empty-state-options","error-message","fetcher","fetcher-cache-key","query","table-headers","title","title-tag","onState"]),n.createVNode(n.unref(ce.EntityToggleModal),{action:P.value.action,"entity-id":P.value.id,"entity-name":P.value.name,"entity-type":n.unref(a)("glossary.plugin"),"on-confirm":B,visible:C.value,onCancel:F,onProceed:F},null,8,["action","entity-id","entity-name","entity-type","visible"]),n.createVNode(n.unref(ce.EntityDeleteModal),{"action-pending":ie.value,description:n.unref(a)("delete.description"),"entity-name":z.value&&(z.value.instance_name||z.value.name||z.value.id),"entity-type":n.unref(ce.EntityTypes).Plugin,error:oe.value,title:n.unref(a)("delete.title"),visible:Z.value,onCancel:Y,onProceed:te},null,8,["action-pending","description","entity-name","entity-type","error","title","visible"])])}}}),[["__scopeId","data-v-3f031caf"]]),uR={class:"plugin-select-card-wrapper"},fR=["data-testid"],pR={class:"plugin-card-header"},mR={class:"plugin-card-title"},gR={key:0,class:"plugin-card-actions"},hR=["data-testid","title"],yR={key:0,class:"plugin-card-text"},_R={key:0},bR=["title"],Ll=we(n.defineComponent({__name:"PluginSelectCard",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e==null?void 0:e.app)||!e.getCreateRoute)},canDeleteCustomPlugin:{type:Boolean,default:!1},canEditCustomPlugin:{type:Boolean,default:!1},plugin:{type:Object,required:!0},navigateOnClick:{type:Boolean,default:!0}},emits:["plugin-clicked","custom-plugin-delete"],setup(e,{emit:t}){const o=t,r=e,i=no.useRouter(),{i18n:{t:a}}=Oe.useI18n(),l=n.computed(()=>r.config.app==="konnect"?r.config.controlPlaneId:""),s=n.computed(()=>!!(!r.plugin.available||r.plugin.disabledMessage)),c=n.computed(()=>!!(m.value&&!p.value&&r.navigateOnClick&&l.value&&(r.canDeleteCustomPlugin||r.canEditCustomPlugin))),d=()=>{i.push(r.config.getCreateRoute(r.plugin.id))},f=()=>{r.navigateOnClick?d():u()},u=()=>{o("plugin-clicked",r.plugin)},p=n.computed(()=>r.plugin.id==="custom-plugin-create"),m=n.computed(()=>r.config.app==="konnect"&&r.plugin.group===H.PluginGroup.CUSTOM_PLUGINS),g=()=>{r.config.app==="konnect"&&o("custom-plugin-delete")},_=(b,w)=>{const y=r.config;r.config.app==="konnect"&&typeof y.getCustomEditRoute=="function"&&y.getCustomEditRoute&&i.push(y.getCustomEditRoute(b,w))},h=()=>{if(!s.value&&r.config.app==="konnect"){const b=r.config;p.value&&b.createCustomRoute?i.push(b.createCustomRoute):m.value&&d()}};return(b,w)=>{const y=n.resolveComponent("KButton"),v=n.resolveComponent("KDropdownItem"),k=n.resolveComponent("KDropdownMenu"),E=n.resolveComponent("KTooltip");return n.openBlock(),n.createElementBlock("div",uR,[n.createVNode(E,{text:e.plugin.disabledMessage},{default:n.withCtx(()=>[n.createElementVNode("a",{class:n.normalizeClass(["plugin-select-card",{disabled:s.value}]),"data-testid":`${e.plugin.id}-card`,role:"button",onClick:w[1]||(w[1]=R=>s.value||m.value?void 0:f())},[n.createElementVNode("div",pR,[n.createElementVNode("div",mR,[n.createElementVNode("span",{class:n.normalizeClass({"non-custom-title":!m.value})},n.toDisplayString(e.plugin.name),3)]),c.value?(n.openBlock(),n.createElementBlock("div",gR,[n.createVNode(k,{"data-testid":"custom-plugin-actions","kpop-attributes":{placement:"bottom-end"},width:"150"},{default:n.withCtx(()=>[n.createVNode(y,{appearance:"tertiary",class:"actions-trigger","data-testid":"overflow-actions-button",icon:"",size:"small"},{default:n.withCtx(()=>[n.createVNode(n.unref(Ee.MoreIcon),{size:n.unref(Ww)},null,8,["size"])]),_:1})]),items:n.withCtx(()=>[e.canDeleteCustomPlugin?(n.openBlock(),n.createBlock(v,{key:0,"data-testid":"edit-plugin-schema",onClick:w[0]||(w[0]=n.withModifiers(R=>_(e.plugin.name,e.plugin.customPluginType),["stop"]))},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(a)("actions.edit")),1)]),_:1})):n.createCommentVNode("",!0),e.canDeleteCustomPlugin?(n.openBlock(),n.createBlock(v,{key:1,danger:"","data-testid":"delete-plugin-schema","has-divider":"",onClick:n.withModifiers(g,["stop"])},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(a)("actions.delete")),1)]),_:1})):n.createCommentVNode("",!0)]),_:1})])):n.createCommentVNode("",!0)]),n.createElementVNode("div",{class:n.normalizeClass(["plugin-card-body",{"custom-plugin":m.value}]),"data-testid":e.plugin.name,title:e.plugin.available?e.plugin.name:n.unref(a)("plugins.select.unavailable_tooltip"),onClick:h},[n.createVNode(n.unref(ro.PluginIcon),{alt:e.plugin.name,class:"plugin-card-icon",name:e.plugin.id,size:55},null,8,["alt","name"]),e.plugin.description||m.value&&!p.value?(n.openBlock(),n.createElementBlock("div",yR,[m.value&&!p.value?(n.openBlock(),n.createElementBlock("p",_R,n.toDisplayString(n.unref(a)("plugins.select.custom_badge_text")),1)):n.createCommentVNode("",!0),e.plugin.description?(n.openBlock(),n.createElementBlock("p",{key:1,class:"plugin-card-text",title:e.plugin.description},n.toDisplayString(e.plugin.description),9,bR)):n.createCommentVNode("",!0)])):n.createCommentVNode("",!0)],10,hR),n.createElementVNode("div",{class:"plugin-card-footer",onClick:h},n.toDisplayString(p.value?n.unref(a)("actions.create_custom"):e.plugin.exists?n.unref(a)("actions.enabled"):n.unref(a)("actions.enable")),1)],10,fR)]),_:1},8,["text"])])}}}),[["__scopeId","data-v-65d53934"]]),wR=we(n.defineComponent({__name:"DeleteCustomPluginSchemaModal",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e==null?void 0:e.app))},plugin:{type:Object,required:!0}},emits:["closed","proceed"],setup(e,{emit:t}){var g;const o=e,r=t,{i18nT:i,i18n:{t:a}}=Oe.useI18n(),{getMessageFromError:l}=ce.useErrors(),{axiosInstance:s}=ce.useAxios((g=o.config)==null?void 0:g.axiosRequestConfig),c=n.computed(()=>{var _;return u.value?a("delete.plugin_schema_in_use_title"):a("delete.title",{name:((_=o.plugin)==null?void 0:_.name)||a("delete.custom_plugin")})}),d=n.ref(!1),f=n.ref(""),u=n.ref(!1),p=n.computed(()=>{if(o.config.app==="konnect"){const _=o.plugin.customPluginType==="streaming"?Be.select[o.config.app].streamingCustomPluginItem:Be.select[o.config.app].schemaCustomPluginItem;let h=`${o.config.apiBaseUrl}${_}`;return h=h.replace(/{controlPlaneId}/gi,o.config.controlPlaneId||""),h=h.replace(/{pluginId}/gi,o.plugin.id),h}return null}),m=async()=>{var _,h,b,w;if(d.value=!0,f.value="",!(!((_=o.plugin)!=null&&_.name)||((h=o.config)==null?void 0:h.app)!=="konnect"))try{p.value&&await s.delete(p.value),r("proceed")}catch(y){const{response:v}=y;(v==null?void 0:v.status)===400&&((w=(b=v.data)==null?void 0:b.message)!=null&&w.includes("plugin schema is currently in use"))?u.value=!0:f.value=l(y)}finally{d.value=!1}};return(_,h)=>{const b=n.resolveComponent("KButton"),w=n.resolveComponent("KModal");return!u.value&&e.plugin?(n.openBlock(),n.createBlock(n.unref(ce.EntityDeleteModal),{key:0,"action-pending":d.value,class:"delete-custom-plugin-schema-modal","data-testid":"delete-custom-plugin-schema-modal",description:n.unref(a)("delete.description_custom"),"entity-name":e.plugin.name,"entity-type":n.unref(ce.EntityTypes).Plugin,error:f.value,"need-confirm":"",title:c.value,visible:"",onCancel:h[0]||(h[0]=y=>_.$emit("closed")),onProceed:m},null,8,["action-pending","description","entity-name","entity-type","error","title"])):e.plugin?(n.openBlock(),n.createBlock(w,{key:1,"action-button-disabled":d.value,class:"delete-custom-plugin-schema-modal","data-testid":"delete-custom-plugin-schema-modal",title:c.value,visible:"",onCancel:h[2]||(h[2]=y=>_.$emit("closed"))},{default:n.withCtx(()=>[n.createElementVNode("div",null,[n.createVNode(n.unref(i),{keypath:"delete.plugin_schema_in_use_message",tag:"p"},{name:n.withCtx(()=>[n.createElementVNode("strong",null,n.toDisplayString(e.plugin.name),1)]),_:1})])]),"footer-actions":n.withCtx(()=>[n.createElementVNode("div",null,[n.createVNode(b,{appearance:"tertiary",class:"cancel-button","data-testid":"delete-custom-plugin-form-cancel",onClick:h[1]||(h[1]=y=>_.$emit("closed"))},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(n.unref(a)("actions.cancel")),1)]),_:1})])]),_:1},8,["action-button-disabled","title"])):n.createCommentVNode("",!0)}}}),[["__scopeId","data-v-9e0dee7f"]]),ER={class:"custom-plugins-grid"},kR={class:"empty-state-title"},CR={class:"empty-state-description"},Ul=310,vR=we(n.defineComponent({__name:"PluginCustomGrid",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e==null?void 0:e.app)||!e.getCreateRoute)},canCreateCustomPlugin:{type:Boolean,default:!1},canDeleteCustomPlugin:{type:Boolean,default:!1},canEditCustomPlugin:{type:Boolean,default:!1},pluginList:{type:Object,default:()=>({})},navigateOnClick:{type:Boolean,default:!0}},emits:["plugin-clicked","revalidate","delete:success"],setup(e,{emit:t}){const o=e,r=t,{i18n:{t:i}}=Oe.useI18n(),{getTallestPluginCardHeight:a,getToggleVisibility:l}=Oe.usePluginHelpers(),s=n.ref(!0),c=k=>{r("plugin-clicked",k)},d=n.computed(()=>{if(o.config.app==="kongManager")return[];const k=JSON.parse(JSON.stringify(o.pluginList))[H.PluginGroup.CUSTOM_PLUGINS]||[];return o.canCreateCustomPlugin&&o.navigateOnClick&&o.config.createCustomRoute?[{id:"custom-plugin-create",name:i("plugins.select.tabs.custom.create.name"),available:!0,group:H.PluginGroup.CUSTOM_PLUGINS,description:i("plugins.select.tabs.custom.create.description")}].concat(k):k}),f=n.ref(!1),u=n.ref(null),p=k=>{f.value=!0,u.value={id:k.id,name:k.name,customPluginType:k.customPluginType}},m=k=>{var E;k&&(r("revalidate"),r("delete:success",((E=u.value)==null?void 0:E.name)||"")),f.value=!1,u.value=null},g=n.ref(Ul),_=n.ref(null),h=n.ref(null),b=n.computed(()=>s.value?{overflowY:"hidden",maxHeight:`${g.value}px`}:{}),w=n.ref(!1),y=()=>{g.value=Math.max(a(h.value),Ul),v()},v=()=>{var k,E;(k=h.value)!=null&&k.length&&(w.value=l(_.value,(E=h.value)==null?void 0:E.length))};return n.onMounted(async()=>{await n.nextTick(),g.value=Math.max(a(h.value),Ul),v(),window==null||window.addEventListener("resize",y)}),n.onUnmounted(()=>{window==null||window.removeEventListener("resize",y)}),(k,E)=>{const R=n.resolveComponent("KEmptyState"),O=n.resolveComponent("KCollapse");return n.openBlock(),n.createElementBlock("div",ER,[d.value.length?(n.openBlock(),n.createBlock(O,{key:1,modelValue:s.value,"onUpdate:modelValue":E[0]||(E[0]=T=>s.value=T),class:"custom-plugins-collapse","data-testid":`${n.unref(H.PluginGroup).CUSTOM_PLUGINS}-collapse`,title:n.unref(H.PluginGroup).CUSTOM_PLUGINS,"trigger-label":s.value?n.unref(i)("plugins.select.view_more"):n.unref(i)("plugins.select.view_less")},n.createSlots({"visible-content":n.withCtx(()=>[n.createElementVNode("div",{ref_key:"pluginCardContainerRef",ref:_,class:"plugin-card-container",style:n.normalizeStyle(b.value)},[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(d.value,(T,q)=>(n.openBlock(),n.createBlock(Ll,{key:`plugin-card-${q}`,ref_for:!0,ref_key:"pluginCardRef",ref:h,"can-delete-custom-plugin":e.canDeleteCustomPlugin,"can-edit-custom-plugin":e.canEditCustomPlugin,config:e.config,"navigate-on-click":e.navigateOnClick,plugin:T,onCustomPluginDelete:j=>p(T),onPluginClicked:c},null,8,["can-delete-custom-plugin","can-edit-custom-plugin","config","navigate-on-click","plugin","onCustomPluginDelete"]))),128))],4)]),_:2},[w.value?void 0:{name:"trigger",fn:n.withCtx(()=>[E[2]||(E[2]=n.createTextVNode("   ",-1))]),key:"0"}]),1032,["modelValue","data-testid","title","trigger-label"])):(n.openBlock(),n.createBlock(R,{key:0,"action-button-visible":!1,class:"custom-plugins-empty-state","icon-variant":"kong"},{title:n.withCtx(()=>[n.createElementVNode("span",kR,n.toDisplayString(n.unref(i)("plugins.select.tabs.custom.empty_title")),1)]),default:n.withCtx(()=>[n.createElementVNode("span",CR,n.toDisplayString(n.unref(i)("plugins.select.tabs.custom.empty_description")),1)]),_:1})),f.value&&u.value?(n.openBlock(),n.createBlock(wR,{key:2,config:e.config,plugin:u.value,onClosed:m,onProceed:E[1]||(E[1]=T=>m(!0))},null,8,["config","plugin"])):n.createCommentVNode("",!0)])}}}),[["__scopeId","data-v-f4b90f47"]]),Kl=310,fm=we(n.defineComponent({__name:"PluginSelectGroup",props:n.mergeModels({config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e==null?void 0:e.app)||!e.getCreateRoute)},name:{type:String,required:!0},plugins:{type:Array,required:!0},navigateOnClick:{type:Boolean,default:!0}},{modelValue:{type:Boolean,required:!0},modelModifiers:{}}),emits:n.mergeModels(["plugin-clicked"],["update:modelValue"]),setup(e,{emit:t}){const o=n.useModel(e,"modelValue"),r=e,i=t,{i18n:{t:a}}=Oe.useI18n(),{getTallestPluginCardHeight:l,getToggleVisibility:s}=Oe.usePluginHelpers(),c=n.ref(Kl),d=n.ref(null),f=n.ref(null),u=n.computed(()=>o.value?{overflowY:"hidden",maxHeight:`${c.value}px`}:{}),p=n.ref(!1),m=()=>{c.value=Math.max(l(f.value),Kl),g()},g=()=>{var _,h;(_=f.value)!=null&&_.length&&(p.value=s(d.value,(h=f.value)==null?void 0:h.length))};return n.onMounted(async()=>{await n.nextTick(),c.value=Math.max(l(f.value),Kl),g(),window==null||window.addEventListener("resize",m)}),n.onUnmounted(()=>{window==null||window.removeEventListener("resize",m)}),(_,h)=>{const b=n.resolveComponent("KCollapse");return n.openBlock(),n.createBlock(b,{modelValue:o.value,"onUpdate:modelValue":h[0]||(h[0]=w=>o.value=w),class:"plugins-collapse","data-testid":`${r.name}-collapse`,title:r.name,"trigger-label":o.value?n.unref(a)("plugins.select.view_more"):n.unref(a)("plugins.select.view_less")},n.createSlots({"visible-content":n.withCtx(()=>[n.createElementVNode("div",{ref_key:"pluginCardContainerRef",ref:d,class:"plugin-card-container",style:n.normalizeStyle(u.value)},[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(r.plugins,w=>(n.openBlock(),n.createBlock(Ll,{key:`plugin-card-${w.id}`,ref_for:!0,ref_key:"pluginCardRef",ref:f,config:e.config,"navigate-on-click":e.navigateOnClick,plugin:w,onPluginClicked:y=>i("plugin-clicked",w)},null,8,["config","navigate-on-click","plugin","onPluginClicked"]))),128))],4)]),_:2},[p.value?void 0:{name:"trigger",fn:n.withCtx(()=>[h[1]||(h[1]=n.createTextVNode("   ",-1))]),key:"0"}]),1032,["modelValue","data-testid","title","trigger-label"])}}}),[["__scopeId","data-v-a1074120"]]),NR={class:"plugin-select-grid"},SR={class:"empty-state-title"},xR={class:"empty-state-description"},jl=n.defineComponent({__name:"PluginSelectGrid",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e==null?void 0:e.app)||!e.getCreateRoute)},pluginList:{type:Object,default:()=>({})},navigateOnClick:{type:Boolean,default:!0},highlightedPlugins:{type:Array,default:()=>[]},highlightedPluginsTitle:{type:String,default:""},hideHighlightedPlugins:{type:Boolean,default:!1}},emits:["plugin-clicked"],setup(e,{emit:t}){const o=e,r=t,{i18n:{t:i}}=Oe.useI18n(),a=n.ref(!1),l=n.ref(Hl),s=d=>{r("plugin-clicked",d)},c=n.computed(()=>{const d=JSON.parse(JSON.stringify(o.pluginList));return o.config.app==="konnect"&&delete d[H.PluginGroup.CUSTOM_PLUGINS],d});return(d,f)=>{const u=n.resolveComponent("KEmptyState");return n.openBlock(),n.createElementBlock("div",NR,[Object.keys(c.value).length?n.createCommentVNode("",!0):(n.openBlock(),n.createBlock(u,{key:0,"action-button-visible":!1,class:"plugins-empty-state","data-testid":"plugins-empty-state","icon-variant":"kong"},{title:n.withCtx(()=>[n.createElementVNode("span",SR,n.toDisplayString(n.unref(i)("plugins.select.tabs.kong.empty_title")),1)]),default:n.withCtx(()=>[n.createElementVNode("span",xR,n.toDisplayString(n.unref(i)("plugins.select.tabs.kong.empty_description")),1)]),_:1})),!o.hideHighlightedPlugins&&o.highlightedPlugins.length>0?(n.openBlock(),n.createBlock(fm,{key:1,modelValue:a.value,"onUpdate:modelValue":f[0]||(f[0]=p=>a.value=p),config:e.config,name:o.highlightedPluginsTitle||n.unref(i)("plugins.select.highlighted_plugins.title"),"navigate-on-click":e.navigateOnClick,plugins:o.highlightedPlugins,onPluginClicked:f[1]||(f[1]=p=>s(p))},null,8,["modelValue","config","name","navigate-on-click","plugins"])):n.createCommentVNode("",!0),(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(zl),p=>(n.openBlock(),n.createElementBlock(n.Fragment,null,[c.value[p]?(n.openBlock(),n.createElementBlock("div",{key:p},[n.createVNode(fm,{modelValue:l.value[p],"onUpdate:modelValue":m=>l.value[p]=m,config:e.config,name:p,"navigate-on-click":e.navigateOnClick,plugins:c.value[p]||[],onPluginClicked:f[2]||(f[2]=m=>s(m))},null,8,["modelValue","onUpdate:modelValue","config","name","navigate-on-click","plugins"])])):n.createCommentVNode("",!0)],64))),256))])}}}),AR={class:"kong-ui-entities-plugin-select-form"},TR={class:"plugins-filter-input-container"},IR={key:0},PR={key:3,"aria-live":"polite",class:"plugins-results-container"},OR={"data-testid":"kong-tab"},$R={class:"tab-description"},BR={"data-testid":"custom-tab"},VR={class:"tab-description"},RR=we(n.defineComponent({__name:"PluginSelect",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e==null?void 0:e.app)||!e.getCreateRoute)},customPluginSupport:{type:String,default:"none"},canCreateCustomPlugin:{type:Function,required:!1,default:async()=>!0},canDeleteCustomPlugin:{type:Function,required:!1,default:async()=>!0},canEditCustomPlugin:{type:Function,required:!1,default:async()=>!0},navigateOnClick:{type:Boolean,default:!0},availableOnServer:{type:Boolean,default:!0},ignoredPlugins:{type:Array,default:()=>[]},disabledPlugins:{type:Object,default:()=>({})},highlightedPluginIds:{type:Array,default:()=>[]},highlightedPluginsTitle:{type:String,default:""}},emits:["loading","plugin-clicked","delete-custom:success"],setup(e,{emit:t}){var B;const o=e,r=t,i=no.useRoute(),a=no.useRouter(),{i18n:{t:l}}=Oe.useI18n(),{pluginMetaData:s}=Oe.usePluginMetaData(),{getMessageFromError:c}=ce.useErrors(),{sortAlpha:d,objectsAreEqual:f}=ce.useHelpers(),u=n.ref(""),p=n.ref(!0),m=n.ref(!1),g=n.ref(""),_=n.ref([]),h=n.ref([]),b=n.ref({}),w=n.ref([]),{axiosInstance:y}=ce.useAxios((B=o.config)==null?void 0:B.axiosRequestConfig),v=n.computed(()=>b.value?Object.entries(b.value).filter(([$])=>$!==H.PluginGroup.CUSTOM_PLUGINS).reduce(($,[,G])=>{for(const ee of G)$[ee.id]=ee;return $},{}):{}),k=n.computed(()=>{var ee;if(!b.value)return{};const $=u.value.toLowerCase(),G=JSON.parse(JSON.stringify(b.value));for(const re in b.value){const J=((ee=b.value[re])==null?void 0:ee.filter(ne=>ne.name.toLowerCase().includes($)||ne.id.toLowerCase().includes($)||ne.group.toLowerCase().includes($)))||[];J.length?G[re]=J:delete G[re]}return G}),E=n.computed(()=>o.highlightedPluginIds.reduce(($,G)=>{const ee=v.value[G];return ee&&$.push(ee),$},[])),R=n.computed(()=>Object.keys(k.value).length>0),O=n.computed(()=>Object.keys(b.value).length>0&&!R.value),T=n.computed(()=>o.config.app==="konnect"?[{hash:"#kong",title:l("plugins.select.tabs.kong.title")},{hash:"#custom",title:l("plugins.select.tabs.custom.title"),disabled:["none","disabled"].includes(o.customPluginSupport)}]:[]),q=n.computed(()=>{var G;let $=T.value.length&&((i==null?void 0:i.hash)||((G=T.value[0])==null?void 0:G.hash))||"";return $==="#custom"&&["none","disabled"].includes(o.customPluginSupport)&&($="#kong"),$}),j=()=>[...new Set([...Object.keys({...o.availableOnServer?{}:s}),..._.value])].filter($=>!o.ignoredPlugins.includes($)).filter($=>o.config.entityType&&(o.config.entityType==="services"&&s[$]&&!s[$].scope.includes(H.PluginScope.SERVICE)||o.config.entityType==="routes"&&s[$]&&!s[$].scope.includes(H.PluginScope.ROUTE)||o.config.entityType==="consumer_groups"&&s[$]&&!s[$].scope.includes(H.PluginScope.CONSUMER_GROUP)||o.config.entityType==="consumers"&&s[$]&&!s[$].scope.includes(H.PluginScope.CONSUMER))?!1:$).reduce(($,G)=>{var z;const ee=s[G]&&s[G].name||G,re={...s[G],id:G,name:ee,available:_.value.includes(G),disabledMessage:"",group:((z=s[G])==null?void 0:z.group)||H.PluginGroup.CUSTOM_PLUGINS};re.group===H.PluginGroup.CUSTOM_PLUGINS&&(re.customPluginType=h.value.find(Z=>Z.name===G)?"streaming":"schema"),o.disabledPlugins&&(re.disabledMessage=o.disabledPlugins[G]);const J=re.group||l("plugins.select.misc_plugins");let ne=$[J];return ne||(ne=[]),ne.push(re),ne.sort(d("name")),$[J]=ne,$},{}),A=n.computed(()=>{var G;let $=`${o.config.apiBaseUrl}${Be.select[o.config.app].availablePlugins}`;return o.config.app==="konnect"?$=$.replace(/{controlPlaneId}/gi,o.config.controlPlaneId||""):o.config.app==="kongManager"&&($=((G=o.config.gatewayInfo)==null?void 0:G.edition)==="community"?`${o.config.apiBaseUrl}${Be.select[o.config.app].availablePluginsForOss}`:$.replace(/\/{workspace}/gi,o.config.workspace?`/${o.config.workspace}`:"")),$}),I=n.computed(()=>{if(o.config.app==="konnect"&&o.customPluginSupport==="streaming"){let $=`${o.config.apiBaseUrl}${Be.select[o.config.app].streamingCustomPlugins}`;return $=$.replace(/{controlPlaneId}/gi,o.config.controlPlaneId||""),$}return null}),C=n.computed(()=>{if(o.config.entityType&&o.config.entityId){let $=`${o.config.apiBaseUrl}${Be.list[o.config.app].forEntity}`;return o.config.app==="konnect"?$=$.replace(/{controlPlaneId}/gi,o.config.controlPlaneId||""):o.config.app==="kongManager"&&($=$.replace(/\/{workspace}/gi,o.config.workspace?`/${o.config.workspace}`:"")),$.replace(/{entityType}/gi,o.config.entityType||"").replace(/{entityId}/gi,o.config.entityId||"")}return""}),D=$=>{a.replace({hash:$,query:i.query})};n.watch(()=>o.disabledPlugins,($,G)=>{!f($,G)&&!p.value&&(b.value=j())}),n.watch(()=>o.ignoredPlugins,($,G)=>{!f($,G)&&!p.value&&(b.value=j())}),n.watch(p,$=>{r("loading",$)});const P=n.ref(!1),L=n.ref(!1),F=n.ref(!1);return n.onBeforeMount(async()=>{P.value=await o.canCreateCustomPlugin(),L.value=await o.canEditCustomPlugin(),F.value=await o.canDeleteCustomPlugin()}),n.onMounted(async()=>{try{const{data:$}=await y.get(A.value);if(o.config.app==="konnect"){const{names:G}=$;if(_.value=G||[],I.value){const{data:ee}=await y.get(I.value);h.value=ee.data||[]}}else if(o.config.app==="kongManager"){const{plugins:{available_on_server:G}}=$;_.value=G?Object.keys(G):[]}}catch($){m.value=!0,g.value=c($)}if(C.value)try{const{data:{data:$}}=await y.get(C.value);if($!=null&&$.length){const G=$.reduce((ee,re)=>(re.name&&ee.push(re.name),ee),[]);w.value=w.value.concat(G)}}catch{}m.value||(b.value=j()),p.value=!1}),($,G)=>{const ee=n.resolveComponent("KInput"),re=n.resolveComponent("KSkeletonBox"),J=n.resolveComponent("KSkeleton"),ne=n.resolveComponent("KEmptyState"),z=n.resolveComponent("KTooltip"),Z=n.resolveComponent("KTabs");return n.openBlock(),n.createElementBlock("div",AR,[n.createElementVNode("div",TR,[n.createVNode(ee,{modelValue:u.value,"onUpdate:modelValue":G[0]||(G[0]=ie=>u.value=ie),modelModifiers:{trim:!0},class:"plugins-filter-input","data-testid":"plugins-filter",placeholder:n.unref(l)("search.placeholder.select"),type:"search"},null,8,["modelValue","placeholder"])]),p.value?(n.openBlock(),n.createElementBlock("section",IR,[n.createVNode(re,{class:"plugins-skeleton-title",width:"10"}),n.createVNode(J,{"card-count":8,class:"plugins-skeleton-cards",type:"card"})])):m.value?(n.openBlock(),n.createBlock(ne,{key:1,"action-button-visible":!1,"data-testid":"plugins-fetch-error","icon-variant":"error"},{default:n.withCtx(()=>[n.createElementVNode("h3",null,n.toDisplayString(g.value),1)]),_:1})):O.value&&u.value?(n.openBlock(),n.createBlock(ne,{key:2,"action-button-visible":!1,"data-testid":"plugins-empty-state","icon-variant":"search"},{default:n.withCtx(()=>[n.createElementVNode("h5",null,n.toDisplayString(n.unref(l)("search.no_results",{filter:u.value})),1)]),_:1})):(n.openBlock(),n.createElementBlock("section",PR,[T.value.length&&e.customPluginSupport!=="none"?(n.openBlock(),n.createBlock(Z,{key:0,modelValue:q.value,"onUpdate:modelValue":G[5]||(G[5]=ie=>q.value=ie),"data-testid":"plugins-tabs",tabs:T.value,onChange:D},n.createSlots({kong:n.withCtx(()=>[n.createElementVNode("div",OR,[n.createElementVNode("p",$R,n.toDisplayString(n.unref(l)("plugins.select.tabs.kong.description")),1),n.createVNode(jl,{config:e.config,"hide-highlighted-plugins":u.value.length>0,"highlighted-plugins":E.value,"highlighted-plugins-title":o.highlightedPluginsTitle,"navigate-on-click":e.navigateOnClick,"plugin-list":k.value,onPluginClicked:G[1]||(G[1]=ie=>$.$emit("plugin-clicked",ie))},null,8,["config","hide-highlighted-plugins","highlighted-plugins","highlighted-plugins-title","navigate-on-click","plugin-list"])])]),custom:n.withCtx(()=>[n.createElementVNode("div",BR,[n.createElementVNode("p",VR,n.toDisplayString(n.unref(l)("plugins.select.tabs.custom.description")),1),n.createVNode(vR,{"can-create-custom-plugin":P.value,"can-delete-custom-plugin":F.value,"can-edit-custom-plugin":L.value,config:e.config,"navigate-on-click":e.navigateOnClick,"plugin-list":k.value,"onDelete:success":G[2]||(G[2]=ie=>$.$emit("delete-custom:success",ie)),onPluginClicked:G[3]||(G[3]=ie=>$.$emit("plugin-clicked",ie)),onRevalidate:G[4]||(G[4]=()=>b.value=j())},null,8,["can-create-custom-plugin","can-delete-custom-plugin","can-edit-custom-plugin","config","navigate-on-click","plugin-list"])])]),_:2},[e.customPluginSupport==="disabled"?{name:"custom-anchor",fn:n.withCtx(()=>[n.createVNode(z,{"max-width":"300",text:n.unref(l)("plugins.select.tabs.custom.disabled_tooltip")},{default:n.withCtx(()=>[n.createElementVNode("div",null,n.toDisplayString(n.unref(l)("plugins.select.tabs.custom.title")),1)]),_:1},8,["text"])]),key:"0"}:void 0]),1032,["modelValue","tabs"])):(n.openBlock(),n.createBlock(jl,{key:1,config:e.config,"hide-highlighted-plugins":u.value.length>0,"highlighted-plugins":E.value,"highlighted-plugins-title":o.highlightedPluginsTitle,"navigate-on-click":e.navigateOnClick,"plugin-list":k.value,onPluginClicked:G[6]||(G[6]=ie=>$.$emit("plugin-clicked",ie))},null,8,["config","hide-highlighted-plugins","highlighted-plugins","highlighted-plugins-title","navigate-on-click","plugin-list"]))]))])}}}),[["__scopeId","data-v-c18b2b5c"]]),DR={class:"kong-ui-entity-plugin-config-card"},MR={class:"name-cell-wrapper"},FR={class:"info-name"},LR={key:0},UR={key:0},KR={key:0},jR={key:0},GR={key:0},Gl="config",qR=we(n.defineComponent({__name:"PluginConfigCard",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e==null?void 0:e.app)||e.app==="konnect"&&!e.controlPlaneId||e.app==="kongManager"&&typeof e.workspace!="string"||!e.entityId||!e.pluginType)},configCardDoc:{type:String,default:"",required:!1},showIdAsLink:{type:Boolean,default:!1},hideTitle:{type:Boolean,default:!1},scopedEntityType:{type:String,required:!1,default:""},scopedEntityId:{type:String,required:!1,default:""},expandPartial:{type:Boolean,default:!0}},emits:["loading","fetch:error","error:fetch-schema","fetch:success","navigation-click"],setup(e,{emit:t}){var w;const o=t,r=e,{i18n:{t:i}}=Oe.useI18n(),a=Oe.usePluginMetaData(),{setFieldType:l}=Oe.usePluginHelpers(),{getPropValue:s}=ce.useHelpers(),c=n.computed(()=>{var y;return(y=Be.item[r.config.app])==null?void 0:y[r.scopedEntityType?"forEntity":"all"].replace(/{entityType}/gi,r.scopedEntityType).replace(/{entityId}/gi,r.scopedEntityId).concat(r.expandPartial?"?expand_partials=true":"")}),d=n.computed(()=>{var k,E;const y={},v=((k=_.value)==null?void 0:k.fields)||[];for(let R=0;R<v.length;R++){const O=_.value.fields[R],T=(E=Object.keys(O))==null?void 0:E[0];l(y,T,O[T])}return{...y,instance_name:{section:ce.ConfigurationSchemaSection.Basic,order:1.5},consumer:{label:i("plugins.fields.consumer"),section:ce.ConfigurationSchemaSection.Basic,order:6},route:{label:i("plugins.fields.route"),section:ce.ConfigurationSchemaSection.Basic,order:6},service:{label:i("plugins.fields.service"),section:ce.ConfigurationSchemaSection.Basic,order:6},consumer_group:{label:i("plugins.fields.consumer_group"),section:ce.ConfigurationSchemaSection.Basic,order:6},protocols:{type:ce.ConfigurationSchemaType.BadgeTag,section:ce.ConfigurationSchemaSection.Basic,order:7}}}),f=n.computed(()=>{var v,k,E;if(!((v=_.value)!=null&&v.fields))return[];const y=(k=_.value.fields)==null?void 0:k.find(R=>{var T;return((T=Object.keys(R))==null?void 0:T[0])===Gl});return((E=y==null?void 0:y[Gl])==null?void 0:E.fields)||[]}),u=n.computed(()=>{var v,k;const y={};if(!f.value)return y;for(let E=0;E<((v=f.value)==null?void 0:v.length);E++){const R=f.value[E],O=(k=Object.keys(R))==null?void 0:k[0],T=R[O];T.required&&(y[O]={order:1}),l(y,O,T)}return y}),{getMessageFromError:p}=ce.useErrors(),{axiosInstance:m}=ce.useAxios((w=r.config)==null?void 0:w.axiosRequestConfig),g=n.computed(()=>{var v,k;let y=`${r.config.apiBaseUrl}${Be.form[r.config.app].pluginSchema}`;return r.config.app==="konnect"?y=y.replace(/{controlPlaneId}/gi,((v=r.config)==null?void 0:v.controlPlaneId)||""):r.config.app==="kongManager"&&(y=y.replace(/\/{workspace}/gi,(k=r.config)!=null&&k.workspace?`/${r.config.workspace}`:"")),y=y.replace(/{plugin}/gi,r.config.pluginType),y}),_=n.ref({});ce.useSchemaProvider(_);const h=n.ref(!1),b=n.ref("");return n.onBeforeMount(async()=>{h.value=!0;try{const{data:y}=await m.get(g.value);_.value=y}catch(y){b.value=p(y),o("error:fetch-schema",y)}finally{h.value=!1}}),(y,v)=>{const k=n.resolveComponent("KSkeleton"),E=n.resolveComponent("KEmptyState"),R=n.resolveComponent("KCopy");return n.openBlock(),n.createElementBlock("div",DR,[h.value?(n.openBlock(),n.createBlock(k,{key:0,"data-testid":"plugin-config-card-loader","table-columns":2,type:"table"})):b.value?(n.openBlock(),n.createBlock(E,{key:1,"data-testid":"plugin-config-card-schema-error","icon-variant":"error"},{default:n.withCtx(()=>[n.createElementVNode("h3",null,n.toDisplayString(b.value),1)]),_:1})):(n.openBlock(),n.createBlock(n.unref(ce.EntityBaseConfigCard),{key:2,config:e.config,"config-card-doc":e.configCardDoc,"config-schema":d.value,"entity-type":n.unref(ce.SupportedEntityType).Plugin,"fetch-url":c.value,"hide-title":e.hideTitle,"plugin-config-key":Gl,"plugin-config-schema":u.value,"onFetch:error":v[0]||(v[0]=O=>y.$emit("fetch:error",O)),"onFetch:success":v[1]||(v[1]=O=>y.$emit("fetch:success",O)),onLoading:v[2]||(v[2]=O=>y.$emit("loading",O))},{name:n.withCtx(O=>[n.createElementVNode("div",MR,[n.createVNode(n.unref(ro.PluginIcon),{class:"plugin-icon",name:n.unref(s)("rowValue",O),size:24},null,8,["name"]),n.createElementVNode("span",FR,n.toDisplayString(n.unref(a).getDisplayName(n.unref(s)("rowValue",O))),1)])]),consumer:n.withCtx(O=>[n.unref(s)("rowValue",O)?e.showIdAsLink?(n.openBlock(),n.createBlock(n.unref(ce.InternalLinkItem),{key:1,item:{key:n.unref(s)("rowValue",O).id,value:n.unref(s)("rowValue",O).id,type:n.unref(ce.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>y.$emit("navigation-click",n.unref(s)("rowValue",O).id,"consumer")},null,8,["item","onNavigationClick"])):(n.openBlock(),n.createBlock(R,{key:2,"copy-tooltip":n.unref(i)("copy.tooltip",{label:n.unref(s)("row",O).label}),"data-testid":"consumer-copy-uuid",text:n.unref(s)("rowValue",O).id},null,8,["copy-tooltip","text"])):(n.openBlock(),n.createElementBlock("span",LR,"–"))]),route:n.withCtx(O=>[n.unref(s)("rowValue",O)?e.showIdAsLink?(n.openBlock(),n.createBlock(n.unref(ce.InternalLinkItem),{key:1,item:{key:n.unref(s)("rowValue",O).id,value:n.unref(s)("rowValue",O).id,type:n.unref(ce.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>y.$emit("navigation-click",n.unref(s)("rowValue",O).id,"route")},null,8,["item","onNavigationClick"])):(n.openBlock(),n.createBlock(R,{key:2,"copy-tooltip":n.unref(i)("copy.tooltip",{label:n.unref(s)("row",O).label}),"data-testid":"route-copy-uuid",text:n.unref(s)("rowValue",O).id},null,8,["copy-tooltip","text"])):(n.openBlock(),n.createElementBlock("span",UR,"–"))]),service:n.withCtx(O=>[n.unref(s)("rowValue",O)?e.showIdAsLink?(n.openBlock(),n.createBlock(n.unref(ce.InternalLinkItem),{key:1,item:{key:n.unref(s)("rowValue",O).id,value:n.unref(s)("rowValue",O).id,type:n.unref(ce.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>y.$emit("navigation-click",n.unref(s)("rowValue",O).id,"service")},null,8,["item","onNavigationClick"])):(n.openBlock(),n.createBlock(R,{key:2,"copy-tooltip":n.unref(i)("copy.tooltip",{label:n.unref(s)("row",O).label}),"data-testid":"service-copy-uuid",text:n.unref(s)("rowValue",O).id},null,8,["copy-tooltip","text"])):(n.openBlock(),n.createElementBlock("span",KR,"–"))]),consumer_group:n.withCtx(O=>[n.unref(s)("rowValue",O)?e.showIdAsLink?(n.openBlock(),n.createBlock(n.unref(ce.InternalLinkItem),{key:1,item:{key:n.unref(s)("rowValue",O).id,value:n.unref(s)("rowValue",O).id,type:n.unref(ce.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>y.$emit("navigation-click",n.unref(s)("rowValue",O).id,"consumer_group")},null,8,["item","onNavigationClick"])):(n.openBlock(),n.createBlock(R,{key:2,"copy-tooltip":n.unref(i)("copy.tooltip",{label:n.unref(s)("row",O).label}),"data-testid":"consumer-group-copy-uuid",text:n.unref(s)("rowValue",O).id},null,8,["copy-tooltip","text"])):(n.openBlock(),n.createElementBlock("span",jR,"–"))]),partials:n.withCtx(O=>{var T,q,j,A,I,C,D,P,L;return[n.unref(s)("rowValue",O)?e.showIdAsLink?(n.openBlock(),n.createBlock(n.unref(ce.InternalLinkItem),{key:1,item:{key:(q=(T=n.unref(s)("rowValue",O))==null?void 0:T[0])==null?void 0:q.id,value:((A=(j=n.unref(s)("rowValue",O))==null?void 0:j[0])==null?void 0:A.id)+((C=(I=n.unref(s)("rowValue",O))==null?void 0:I[0])!=null&&C.name?"/"+((P=(D=n.unref(s)("rowValue",O))==null?void 0:D[0])==null?void 0:P.name):""),type:n.unref(ce.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>{var F,B;return y.$emit("navigation-click",(B=(F=n.unref(s)("rowValue",O))==null?void 0:F[0])==null?void 0:B.id,"partial")}},null,8,["item","onNavigationClick"])):(n.openBlock(),n.createBlock(R,{key:2,"copy-tooltip":n.unref(i)("copy.tooltip",{label:n.unref(s)("row",O).label}),"data-testid":"partial-copy-uuid",text:(L=n.unref(s)("rowValue",O))==null?void 0:L[0].id},null,8,["copy-tooltip","text"])):(n.openBlock(),n.createElementBlock("span",GR,"–"))]}),_:1},8,["config","config-card-doc","config-schema","entity-type","fetch-url","hide-title","plugin-config-schema"]))])}}}),[["__scopeId","data-v-53806ec8"]]),{usePluginMetaData:zR,useProvideExperimentalFreeForms:HR}=Oe;Object.defineProperty(he,"PluginGroup",{enumerable:!0,get:()=>H.PluginGroup}),Object.defineProperty(he,"PluginScope",{enumerable:!0,get:()=>H.PluginScope}),Object.defineProperty(he,"PluginIcon",{enumerable:!0,get:()=>ro.PluginIcon}),Object.defineProperty(he,"getPluginIconURL",{enumerable:!0,get:()=>ro.getPluginIconURL}),he.EXPERIMENTAL_FREE_FORM_PROVIDER=Ti,he.EntityTypeIdField=Xt,he.FEATURE_FLAGS=os,he.PLUGIN_GROUPS_COLLAPSE_STATUS=Hl,he.PluginConfigCard=qR,he.PluginForm=eR,he.PluginGroupArray=zl,he.PluginList=dR,he.PluginPartialType=er,he.PluginSelect=RR,he.PluginSelectCard=Ll,he.PluginSelectGrid=jl,he.pluginEndpoints=Be,he.usePluginMetaData=zR,he.useProvideExperimentalFreeForms=HR,Object.defineProperty(he,Symbol.toStringTag,{value:"Module"})});